سورس کد الگوریتم رقابت استعماری در متلب

الگوریتم رقابت استعماری در متلب عنوان موضوعی است که در این پست به آن پرداخته شده است. این الگوریتم با نام Imperialist Competitive Algorithm یا الگوریتم ICA نیز نامیده می شود. در این مجموعه سعی می کنیم تا جزئیات بهتری از سورس کد الگوریتم رقابت استعماری در متلب ICA ارائه دهیم.

الگوریتم رقابت استعماری روشی در حوزه محاسبات تکاملی است که به یافتن پاسخ بهینه مسائل مختلف بهینه‌سازی می‌پردازد. این الگوریتم با مدل سازی ریاضی فرآیند تکامل اجتماعی – سیاسی، الگوریتمی برای حل مسائل ریاضی بهینه‌سازی ارائه می‌دهد.

الگوریتم رقابت استعماری (ICA)

همانند همه الگوریتم‌های قرار گرفته در دسته الگوریتم های بهینه سازی، الگوریتم رقابت استعماری نیز مجموعه اولیه ای از جوابهای احتمالی را تشکیل می‌دهد. این جواب های اولیه در الگوریتم ژنتیک با عنوان «کروموزوم»، در الگوریتم ازدحام ذرات با عنوان «ذره» و در الگوریتم رقابت استعماری نیز با عنوان «کشور» شناخته می‌شوند. الگوریتم رقابت استعماری با روند خاصی که در ادامه می‌آید، این جوابهای اولیه (کشورها) را به تدریج بهبود داده و در نهایت جواب مناسب مسئله بهینه‌سازی (کشور مطلوب) را در اختیار می‌گذارد.

الگوریتم رقابت استعماری (ICA)

پایه‌های اصلی این الگوریتم را سیاست همسان سازی (Assimilation)، رقابت استعماری (Imperialistic Competition) و انقلاب (Revolution) تشکیل می‌دهند. این الگوریتم با تقلید از روند تکامل اجتماعی، اقتصادی و سیاسی کشورها و با مدلسازی ریاضی بخش‌هایی از این فرایند، عملگرهایی را در قالب منظم به صورت الگوریتم ارائه می‌دهد که می‌توانند به حل مسائل پیچیده بهینه‌سازی کمک کنند. در واقع این الگوریتم جوابهای مسئله بهینه‌سازی را در قالب کشورها نگریسته و سعی می‌کند در طی فرایندی تکرار شونده این جواب‌ها را رفته رفته بهبود داده و در نهایت به جواب بهینه مسئله برساند.

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

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

  1. چند نقطه تصادفی روی تابع انتخاب کرده و امپراتوری‌های اولیه را تشکیل بده.
  2. مستعمرات را به سمت کشور امپریالیست حرکت بده (سیاست همسان‌سازی یا جذب).
  3. عملگر انقلاب را اعمال کن.
  4. اگر مستعمره‌ای در یک امپراتوری وجود داشته باشد که هزینه ای کمتر از امپریالیست داشته باشد جای مستعمره و امپریالیست را عوض کن.
  5. هزینه کل یک امپراتوری را حساب کن (با در نظر گرفتن هزینه امپریالیست و مستعمراتشان).
  6. یک (چند) مستعمره از ضعیف‌ترین امپراتوری را انتخاب کرده و آن را به امپراتوری که بیشترین احتمال تصاحب را دارد، بده.
  7. امپراتوری‌های ضعیف را حذف کن.
  8. اگر تنها یک امپراتوری باقیمانده باشد توقف کن و در غیر این صورت به 2 برو.

برای درک کامل الگوریتم الگوریتم رقابت استعماری مقاله ای تحت عنوان الگوریتم رقابت استعماری IMPERIALIST COMPETITIVE ALGORITHM  آماده کرده ایم که می توانید مطالعه کنید.

سورس کد الگوریتم رقابت استعماری در متلب

سورس کد الگوریتم ICA در Matlab شامل یک فایل با یک Script  که در واقع کد اصلی برنامه می باشد و بقیه فراخوانی ها از آنجا انجام می شود.همچنین این برنامه با 6 تابع تست ارائه شده است. توابع تست برای ارزیابی الگوریتم های بهینه سازی بکار می روند که در این سایت برای توضیحات بیشتر در مورد توابع تست الگوریتم های بهینه سازی مقاله ای آماده کردیم. توابع تست این پروژه عبارتند از :

  • تابع  SPHERE
  • تابع ACKLEY
  • تابع SUM SQUARES
  •  تابع ROSENBROCK
  • تابع SUM OF DIFFERENT POWERS
  • تابع ZAKHAROV

توابع زیادی برای تست عملکرد الگوریتم های بهینه سازی وجود دارد که در اینجا ما به این 6 تابع اکتفا کرده ایم. همچنین لازم به ذکر است که برای اجرای الگوریتم بهینه سازی روی مسئله مورد نظر تابع هزینه یا Cost Function آن تغییر خواهد کرد و بقیه الگوریتم دست نخورده باقی می ماند بنابراین برای اجرای الگوریتم ICA در متلب برای بهینه سازی مسئله خودتان تابع هزینه خود را بر اساس پارامترهای مسئله خود تعریف کنید. در ادامه قسمت هایی از سورس کد الگوریتم رقابت استعماری در  Matlab آورده شده است.

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

درباره محصول

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

1 دیدگاه برای سورس کد الگوریتم رقابت استعماری در متلب

  1. امتیاز 5 از 5

    programstore

    نطرات و دیدگاه های خود را با ما در میان بگذارید.

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

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

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

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