مقایسه الگوریتم های بهینه سازی در متلب

در این پست سورس کدی برای شما آماده کرده ایم که به مقایسه و تحلیل الگوریتم های بهینه سازی در متلب می پردازد. شاید مهم ترین سوال و دغدغه اکثر محققان در استفاده از الگوریتم های بهینه سازی و مخصوصاً الگوریتم های فرا ابتکاری یا Metaheuristic، انتخاب یک الگوریتم مناسب برای حل مسئله است. به طور قاطع نمی توان گفت برای حل یک مسئله کدام الگوریتم بهینه سازی یا متاهیورستیک مناسب است و فقط با مقایسه نتایج می توان ادعا کرد کدام الگوریتم روش بهتری را ارائه می کند. در ادامه به مقایسه 12 الگوریتم بهینه سازی می پردازیم.

هدف از الگوریتم های بهینه سازی يافتن یک جواب قابل قبول، با توجه به محدوديت‌ و نياز مسئله است. در تعیین جواب يك مسئله، ممكن است جواب‌هاي مختلفي برای آن وجود داشته باشد. براي مقايسه جواب های یک مسئله و انتخاب جواب بهينه، تابعي به نام تابع هدف یا تابع هزینه که Cost Function نیز نامیده می شود، تعريف مي‌شود. انتخاب اين تابع به ماهیت مسئله وابسته است. به عنوان مثال، زمان يا هزينه از جمله اهداف رايج بهينه‌سازي شبكه‌هاي حمل و نقل است.

فرآيند بهينه ­سازي

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

  • فرموله كردن مسئله

در اين مرحله، يك مسئله ­ي تصميم ­گيري، همراه با يك ساختار كلي از آن تعريف مي‌شود. اين ساختار كلي ممكن است خيلي دقيق نباشد اما وضعيت كلي مسئله را، كه شامل فاكتورهاي ورودي و خروجي و اهداف مسئله است، بيان مي­ كند. شفاف­ سازي و ساختاردهي به مسئله، ممكن است براي بسياري از مسايل بهينه­ سازي، كاري پيچيده باشد.

  • مدل­ سازي مسئله

در اين مرحله يك مدل رياضي كلي براي مسئله، ساخته مي­ شود. مدل­سازي ممكن است از مدل­ هاي مشابه در پيشينه ­ي موضوع كمك بگيرد. اين گام موجب تجزيه مسئله به يك يا چند مدل بهينه‌سازي مي­ گردد.

  • بهينه­ سازي مسئله

پس از مدل سازي مسئله، روال حل، يك راه ­حل خوب براي مسئله توليد مي­ كند. اين راه‌حل ممكن است بهينه يا تقريباً بهينه باشد. نكته ­اي كه بايد به آن توجه داشت اين است كه راه ­حل به دست آمده، راه­ حلي براي مدل طراحي شده است، نه براي مسئله ­ي واقعي. در هنگام فرموله كردن و مدلسازي ممكن است تغييراتي در مسئله واقعي به وجود آمده و مسئله­ ي جديد، نسبت به مسئله­ ي واقعي تفاوت زيادي داشته باشد.

  • استقرار مسئله

راه ­حل به دست آمده توسط تصميم گيرنده بررسي مي­ شود و در صورتي كه قابل قبول باشد، مورد استفاده قرار مي­ گيرد و در صورتي كه راه­حل قابل قبول نباشد، مدل يا الگوريتم بهينه­ سازي بايد توسعه داده شده و فرايند بهينه­ سازي تكرار گردد.

مقایسه الگوریتم ها

در سورس کدی که در متلب برای شما آماده شده است به مقایسه 12 الگوریتم بهینه سازی و نتایج حاصل از آنها پرداخته شده است. این الگوریتم ها مبتنی بر جمعیت یا population based بوده که با الهام گیری از طبیعت و محیط پیرامون ما اقدام به حل مسئله می کنند. این الگوریتم ها عبارتند از:

  • الگوریتم ژنتیک GA
  • الگوریتم ازدحام ذرات PSO
  • الگوریتم کلونی مورچگان ACO
  • الگوریتم زنبور عسل مصنوعی BEE
  • الگوریتم استراتژی تکاملی انطباق ماتریس کوواریانس CMA-ES
  • الگوریتم تفاضل تکاملی DE
  • الگوریتم کرم شب تاب FA
  • الگوریتم جهش قورباغه SFLA
  • الگوریتم رقابت استعماری ICA
  • الگوریتم گرگ خاکستری GWO
  • الگوریتم وال یا نهنگ WOA
  • الگوریتم شمع و پروانه MFO

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

قسمتی از سورس کد

تصاویر خروجی

مقایسه الگوریتم های بهینه سازی

 

مقایسه الگوریتم های بهینه سازی

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

درباره محصول

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

2 دیدگاه برای مقایسه الگوریتم های بهینه سازی در متلب

  1. امین جلیل زاده

    نظرات و پیشنهادات خود را با ما در میان بگذارید.

  2. مجید

    باسلام
    لطفا مرجع اصلی این مقاله را لطف میکنید ؟

    سپاس

    • امین جلیل زاده

      سلام
      مجید عزیز این محصول پیاده سازی مقاله نیست. ما چند الگوریتم بهینه سازی مهم رو کنار هم گذاشتیم و با 23 تابع محک آنها را باهم مقایسه کردیم. از خود این محصول میشه مقاله نوشت.

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

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

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

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