تخفیف نوروزی پی استور
هزینه سفارش:
۹۹,۰۰۰ تومان
الگوریتم سولین یا Boruvka راهی برای پیدا کردن درخت پوشای کمینه است. یک درخت پوشای مینیمم درختی است که در آن مجموع وزن لبه به حداقل برسد. این اولین الگوریتمی بود که در سال 1926 برای پیدا کردن درخت پوشای کمینه MSTs طراحی شد. آقای Otakar Boruvka از آن برای یافتن مسیریابی کارآمدترین شبکه برق استفاده کرده است.
سورس کد تعیین درخت پوشای کمینه با الگوریتم سولین در سی پلاس پلاس ++C در محیط ++Dev-C نوشته شده است. این برنامه مناسب برای دانشجویان و علاقه مندان به درس ساختمان داده و طراحی الگوریتم میباشد چرا که دارای کدهای روان و قابل فهم و آسان برای یادگیری میباشد.
الگوریتم سولین در سی پلاس پلاس عنوان سورس کدی است که در این پست به آن پرداخته میشود. برای تعیین درخت پوشای کمینه الگوریتمهای زیادی وجود دارد یکی از این الگوریتمها الگوریتم سولین Sollin میباشد. در ادامه به تشریح این مسئله خواهیم پرداخت.
الگوریتم سولین یا Boruvka راهی برای پیدا کردن درخت پوشای کمینه است. یک درخت پوشای مینیمم درختی است که در آن مجموع وزن لبه به حداقل برسد. این اولین الگوریتمی بود که در سال ۱۹۲۶ برای پیدا کردن درخت پوشای کمینه MSTs طراحی شد. آقای Otakar Boruvka از آن برای یافتن مسیریابی کارآمدترین شبکه برق استفاده کرده است. الگوریتمها و روشهای زیادی برای پیدا کردن درخت پوشای حداقل وجود دارد. الگوریتم Boruvka یک الگوریتم حریصانه است و مشابه الگوریتم Kruskal و الگوریتم Prim است.
این روش اساساً حد وسط بین دو الگوریتم کروسکال و پریم است. این الگوریتم اغلب با نام الگوریتم بروکا نیز شناخته میشود. در کتابهای ساختمان داده اغلب از این روش با نام الگوریتم سولین یاد میشود. برای یادگیری هر چه بهتر الگوریتم به مقالهای تحت عنوان الگوریتم سولین در همین سایت مراجعه کنید که به طور مفصل مراحل این الگوریتم در آن توضیح داده شده است.
بر خلاف الگوریتمهای پریم و راشال – کروسکال که در هر مرحله فقط یک لبه به درخت اضافه میکردند در الگوریتم سولین چندین لبه را برای درخت اضافه میکند. در ابتدا یک مرحله لبههای انتخاب شده، همراه با تمام n راس گراف، تشکیل یک درخت پوشا را میدهند. در خلال یک مرحله یک لبه برای هر درخت انتخاب میشود که دارای حداقل هزینه بوده یعنی اینکه دقیقاً دارای یک راس در درخت میباشد.
از آنجا که دو درخت در جنگل میتوانند یک لبه یکسان انتخاب کنند، لذا میتوان کپی تکراری لبهها را حذف کرد. در ابتدای مرحله اول مجموعه لبههای انتخاب شده خالی است. این الگوریتم هنگامی پایان مییابد که فقط یک درخت در انتهای یک مرحله باقی و یا هیچ لبهای برای انتخاب باقی نمانده باشد. شکل زیر روند اجرای الگوریتم سولین را نشان میدهد.
پیاده سازی الگوریتم Sollin در ++C شامل توابعی است که مراحل بالا را انجام میدهد. به دلیل محدودیت در شکل گرافیکی در ++C این کار با ورود اعداد و ارقام انجام میشود. مثلاً برای کشیدن گراف بایستی تعداد گرهها و یالها و هزینه هر یال بصورت دستی انجام میشود. سورس کد تابع اصلی الگوریتم sollin در ++C به صورت زیر است.
int main() { /* Let us create following weighted graph ۱۰ ۰--------۱ | \ | ۶| ۵\ |۱۵ | \ | ۲--------۳ ۴ */ int V = 4; // Number of vertices in graph int E = 5; // Number of edges in graph struct Graph* graph = createGraph(V, E); // add edge 0-1 graph->edge[0].src = 0; graph->edge[0].dest = 1; graph->edge[0].weight = 10; // add edge 0-2 graph->edge[1].src = 0; graph->edge[1].dest = 2; graph->edge[1].weight = 6; // add edge 0-3 graph->edge[2].src = 0; graph->edge[2].dest = 3; graph->edge[2].weight = 5; // add edge 1-3 graph->edge[3].src = 1; graph->edge[3].dest = 3; graph->edge[3].weight = 15; // add edge 2-3 graph->edge[4].src = 2; graph->edge[4].dest = 3; graph->edge[4].weight = 4; boruvkaMST(graph); return 0; }
خروجی حاصل از اجرای این الگوریتم نیز بصورت زیر است
Edge 0-3 included in MST Edge 0-1 included in MST Edge 2-3 included in MST Weight of MST is 19
یعنی لبه ۰-۳ و ۰-۱ و ۲-۳ انتخاب می شوند که هزینه درخت هم ۱۹ می شود. یعنی درخت بصورت زیر است
۰----۱۰---۱ | \ | ۶ ۵\ ۱۵ | \ | ۲----۴----۳ || || ۰---۱۰---۱ \ ۵\ \ ۲---۴----۳
این اثر تحت عنوان سورس کد تعیین درخت پوشای کمینه با الگوریتم سولین sollin به زبان سی پلاس پلاس ++C در محیط ++Dev-C نوشته شده است. این برنامه مناسب برای دانشجویان و علاقه مندان به درس ساختمان داده و طراحی الگوریتم میباشد چرا که دارای کدهای روان و قابل فهم و آسان برای یادگیری میباشد. خرید اثر توسط کلیه کارتهای شتاب امکان پذیر است و بلافاصله پس از خرید، لینک دانلود اثر در اختیار شما قرار خواهد گرفت. کیفیت فایل توسط کارشناسان پی استور تضمین میشود.
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
نام اثر: | تعیین درخت پوشای مینیمم با الگوریتم سولین در سی پلاس پلاس |
نوع اثر: | سورس کد |
برنامهنویس: | تیم برنامهنویسی پیاستور |
زبان برنامه نویسی: | سی پلاس پلاس ++C |
ویژگی: | قابلیت دانلود و ویرایش |
توجه: کیفیت این محصول توسط پی استور تضمین شده و در صورت عدم رضایت از محصول، به انتخاب شما:
هزینه سفارش:
۹۹,۰۰۰ تومان
نظرات
پیمان
با تشکر از شما
programstore
نظرات و دیدگاه های خود را با ما درمیان بگذارید.