تعیین درخت پوشای مینیمم با الگوریتم رقابت استعماری در متلب

در این پست به مسئله حل درخت پوشای مینیمم با الگوریتم رقابت استعماری در متلب پرداخته شده است. درخت پوشای مینیمم یا درخت پوشای کمینه درختی است از زیر مجموعه ای از گراف G که تمام رأس ها با حداقل تعداد ممکن لبه ها پوشیده شده است که دارای حداقل هزینه باشد. از این رو، در درخت پوشای مینیمم حلقه ای وجود ندارد و همچنین نمی تواند قطع باشد. الگوریتم رقابت استعماری یا Imperialist Competitive algorithm که به اختصار ICA نامیده می شود جزو الگوریتم های تکاملی یا فرا ابتکاری هستند که به یافتن پاسخ بهینه مسائل مختلف بهینه سازی می‌پردازد. این الگوریتم با مدل سازی ریاضی فرایند تکامل اجتماعی – سیاسی، الگوریتمی برای حل مسائل ریاضی بهینه‌سازی ارائه می‌دهد. در این پست با استفاده از فرآیند تولید جواب الگوریتم رقابت استعماری مسئله درخت پوشای کمینه در نرم افزار متلب ارائه شده است.

 

درخت پوشای کمینه (مینیمم)

با توجه به یک گراف متصل و بدون جهت، درخت پوشا از آن گراف یک زیرگرافی است که اولاً یک درخت است و تمام رأس ها را با یکدیگر متصل می کند. یک گراف می تواند انواع درخت های مختلف را پوشش دهد. یک Minimum Spanning Tree درخت پوشای کمینه (MST) یا درخت پوشای مینیمال برای یک گراف وزنم دار، متصل و بدون جهت یک درخت پوشا با وزن کمتر یا برابر با وزن هر درخت دیگر است. وزن یک درخت، مجموع وزن های داده شده به هر لبه درخت است.

درخت پوشای کمینه

الگوریتم رقابت استعماری Imperialist Competitive algorithm

 الگوریتم رقابت استعماری ICA روشی در حوزه محاسبات تکاملی است که به یافتن پاسخ بهینه مسائل مختلف بهینه سازی می‌پردازد. این الگوریتم با مدل سازی ریاضی فرایند تکامل اجتماعی – سیاسی، الگوریتمی برای حل مسائل ریاضی بهینه‌سازی ارائه می‌دهد ازلحاظ کاربرد، این الگوریتم در دسته الگوریتم‌های بهینه‌سازی تکاملی همچون الگوریتم های ژنتیک روش بهینه‌سازی ازدحام ذرات، الگوریتم کلونی مورچگان، الگوریتم تبرید شبیه‌سازی شده و … قرار می گیرد. همانند همه الگوریتم‌های قرارگرفته در این دسته، الگوریتم رقابت استعماری نیز مجموعه اولیه‌ای از جواب های احتمالی را تشکیل می دهد. این جواب های اولیه در الگوریتم ژنتیک با عنوان کروموزوم، در الگوریتم ازدحام ذرات با عنوان ذره و در الگوریتم رقابت استعماری نیز با عنوان کشور شناخته می‌شوند. الگوریتم رقابت استعماری با روند خاصی که در ادامه آمده است، این جواب های اولیه (کشورها) را به‌تدریج بهبود داده و درنهایت جواب مناسب مسئله بهینه سازی را در اختیار می‌گذارد.

رقابت استعماری

مراحل کلی روند الگوریتم به‌صورت زیر است.

1- چند نقطه تصادفی روی تابع انتخاب کرده و امپراتوری‌های اولیه را تشکیل بده.

2- مستعمرات را به سمت کشور امپریالیست حرکت بده (سیاست همسان‌سازی یا جذب).

3- عملگر انقلاب را اعمال کن.

4- اگر مستعمره‌ای در یک امپراتوری وجود داشته باشد که هزینه¬ای کمتر از امپریالیست داشته باشد جای مستعمره و امپریالیست را عوض کن.

5- هزینه کل یک امپراتوری را حساب کن (با در نظر گرفتن هزینه امپریالیست و مستعمراتشان).

6- یک (چند) مستعمره از ضعیف‌ترین امپراتوری را انتخاب کرده و آن را به امپراتوری که بیشترین احتمال تصاحب را دارد، بده.
7- امپراتوری‌های ضعیف را حذف کن.

8- اگر تنها یک امپراتوری باقیمانده باشد توقف کن و در غیر این صورت به 2 برو.

فلوچارت الگوریتم رقابت استعماری بصورت زیر است.

فلوچارت الگوریتم رقابت استعماری

قسمتی از سورس محصول

 

تصاویر خروجی محصول

درخت پوشای مینیمم با الگوریتم رقابت استعماری

 

درخت پوشای مینیمم با الگوریتم رقابت استعماری

ویدئوی معرفی محصول

درباره محصول

سورس کد تعیین درخت پوشای مینیمم با الگوریتم رقابت استعماری در متلب در محیط Matlab 2014b نوشته و اجرا شده است این سورس کد توسط تیم پشتیبانی پی استور تست و اجرا شده است. کیفیت محصول توسط پی استور تضمین می شود و محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری فرمایید به محض خرید لینک دانلود در دسترس خواهد بود.

1 دیدگاه برای تعیین درخت پوشای مینیمم با الگوریتم رقابت استعماری در متلب

  1. علی

    سلام برای جستجوی گرانشی فایلش رو دارید؟

    • programstore

      سلام بله هست ولی این الگوریتم روی مسئله درخت پوشا جواب خوبی نمی ده ولی اگه خواستین با ما در ارتباط باشید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

اطلاعات فروشنده