الگوریتم CMAES ( استراتژی تکاملی انطباق ماتریس کوواریانس ) در متلب

سورس کد الگوریتم CMAES ( استراتژی تکاملی انطباق ماتریس کوواریانس ) در متلب عنوان موضوعی است که در این پست به آن پرداخته می شود. الگوریتم CMA-ES از جمله الگوریتم‌های تکاملی شناخته شده‌‌ی بهینه‌سازي است که از یک توزیع نرمال، نمونه‌گیری کرده و جمعیت جدید را به وجود می‌آورد. این الگوریتم تکاملی یک ماتریس کواریانس و یک بردار میانگین را از جمعیت تخمین می‌زند. قوانین مختلف به روز‌رسانی، ماتریس کواریانس تطبیق یافته‌ای را در هر نسل ایجاد می‌کند که در کیفیت جمعیت جدید و در نتیجه هدایت تکامل نقش مهمی دارد.

الگوریتم CMAES

این الگوریتم مخفف Covariance Matrix Adaptation Evolution Strategy به معنای استراتژی تکاملی انطباق ماتریس کوواریانس می باشد. دو اصل اصلی برای سازگاری پارامترهای توزیع جستجو در الگوریتم CMA-ES مورد استفاده قرار می گیرند.

ابتدا، یک اصل حداکثر احتمال maximum-likelihood، برای افزایش احتمال موفقیت راه حل های کاندید شده و مراحل جستجو در نظر گرفته می شود. متوسط توزیع به روز می شود به طوری که احتمال موفقیت پیشین موفق به راه حل های حداکثر می شود. ماتریس کوواریانس توزیع (به طور تدریجی) به روز می شود به طوری که احتمال مراحل پیشین موفق جستجو افزایش می یابد. هر دو به روز رسانی را می توان به عنوان یک شیب طبیعی شناخت. همچنین، در نتیجه، CMA یک مولفه اصلی تکرار شده برای تجزیه و تحلیل مراحل جستجو موفق را در حالی که تمام محورهای اصلی را نگه می دارد انجام می دهد. برآورد الگوریتم های توزیع و روش متقاطع آنتروپی براساس ایده های بسیار مشابه است، اما ماتریس کوواریانس را با حداکثر کردن احتمال احتمال نقاط حل موفق به جای مراحل جستجو موفق، غیرمستقیم می کند.

دوم، دو مسیر از زمان تکامل میانگین توزیع استراتژی ثبت شده، به نام مسیر جستجو یا تکامل می باشد. این مسیرها حاوی اطلاعات مهمی درباره همبستگی بین مراحل متوالی هستند. به طور خاص، اگر مراحل متوالی در جهت مشابهی گرفته شود، مسیرهای تکاملی بلند می شوند. مسیرهای تکاملی از دو راه بهره برداری می شوند. یک راه برای روش انطباق ماتریس کوواریانس به جای مراحل موفقیت آمیز موفقیت آمیز استفاده می شود و باعث افزایش احتمال واریانس بسیار بیشتر جهت جهت مطلوب می شود. مسیر دیگر مورد استفاده برای کنترل اضافی اندازه گام است. هدف این کنترل گام به گام، ایجاد حرکات متوالی از توزیع به طور متعادل در انتظار است. کنترل گام اندازه گیری به طور موثر مانع از همگرایی زودرس می شود، اما همگام سازی سریع را به بهترین وجه امکان می دهد.

شبه کد الگوریتم CMAES

در زیر، بیشترین استفاده الگوریتم μ / μw، λ -CMA-ES مشخص شده است، که در هر گام تکرار ترکیبی وزنی از μ بهترین از λ راه حل های نامزد جدید برای به روز رسانی پارامترهای توزیع استفاده می شود. حلقه اصلی شامل سه بخش اصلی است:

1) نمونه برداری از راه حل های جدید؛

2) ترتیب مجدد راه حل های نمونه بر اساس تناسب آن؛

3) به روز رسانی متغیرهای حالت داخلی بر اساس نمونه های مرتب شده.

یک pseudocode از الگوریتم به شرح زیر است.

الگوریتم CMAES در متلب

شبه کد الگوریتم CMAES

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

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

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

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

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

برای دانلود سورس کامل محصول را خریداری فرمایید.

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

الگوریتم CMAES در متلب

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

درباره محصول

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

1 دیدگاه برای الگوریتم CMAES ( استراتژی تکاملی انطباق ماتریس کوواریانس ) در متلب

  1. programstore

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

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

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

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