نمايش پست تنها
قديمي ۰۷-۸-۱۳۸۹, ۰۹:۳۵ بعد از ظهر   #1 (لینک دائم)
Astaraki Female
Administrator
 
آواتار Astaraki
 
تاريخ عضويت: خرداد ۱۳۸۷
محل سكونت: تهران-کرج!
پست ها: 3,465
تشكرها: 754
16,337 تشكر در 3,127 پست
My Mood: Mehrabon
ارسال پيغام Yahoo به Astaraki
Thumbs up دانلود کد برنامه بهینه سازی تابع اکلی (Ackley) توسط الگوریتم ژنتیک و الگوریتم

دانلود رایگان کد برنامه بهینه سازی تابع اکلی (Ackley) توسط الگوریتم ژنتیک و الگوریتم رقابت استعماری

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

بیان مسئله
تابع اکلی (Ackley) یکی از توابع استاندارد (Benchmark) بهینه سازی به شمار می رود. این تابع به صورت زیر بیان می شود.


با در نظر گرفتن یک مسئله بهینه سازی n بعدی، بردار x دارای n بعد را به گونه ای بیابید که هر xi در بازه
32.738- و 32.738 قرار گرفته و تابع زیر را مینیمم کند. نقطه بهینه این تابع در مبدأ قرار گرفته است. در متلب کدهای مربوط به این تابع را می توان به صورت زیر نوشت.


كد:
f = -20 * exp(-.2*sqrt(sum(x.^2)/n)) - exp(sum(cos(2*pi*x))/n) + 20 + exp(1);

شکل این تابع را در زیر می بینید. همانگونه که ملاحظه می کنید، این تابع دارای تعداد زیادی نقطه بهینه محلی است. نقاطی که به عنوان مانع در برابر یافتن نقطه بهینه مطلق آن که در مبدأ قرار دارد، عمل می کنند.




نتایج بهینه سازی
نتیجه استفاده از الگوریتم ژنتیک در شکل زیر نشان داده شده است. تابع اکلی مورد استفاده 15 بعدی در نظر گرفته است. یعنی در رابطه بالا n عدد 15 می باشد. جمعیت اولیه و تعداد تکرارهای الگوریتم ژنتیک به ترتیب برابر با 500 و 800 در نظر گرفته شده اند.

BestSolution = [0.0002 0.0001 -0.0001 -0.0003 0.0001 -0.0000 -0.0002 0.0000 0.0003 0.0001 -0.0000 0.0000 0.8212 -0.0001 0.0001]

BestCost = 0.9313


استفاده از الگوریتم رقابت استعماری نیز در مورد این تابع به نمودار، همگرایی و جوابهای زیر منجر می شود. تعداد کشورهای اولیه و نیز تعداد دهه ها در الگوریتم نیز به ترتیب برابر با 500 و 800 هستند.

BestSolution = 1.0e-003 * [-0.0912 0.0320 0.1145 -0.0060 0.1205 -0.0238 -0.0820 -0.1838 -0.0321 0.0440 -0.3396 -0.0864 0.0636 0.1659 -0.1984]

BestCost = 5.4233e-004


همانگونه که ملاحظه می کنید در این مورد الگوریتم رقابت استعماری به نتیجه به مراتب بهتری نسیت به الگوریتم ژنتیک رسیده است (BestCostها را با هم مقایسه کنید). البته همانگونه که در پست مربوط به مقایسه دو الگوریتم بهینه سازی شرح داده شده است، نتایج یکبار اجرای برنامه را نباید به کل اجراها تعمیم داد و باید بررسی آماری بیشتری انجام داد. نکته قابل توجه است که بر مبنای مقایسه های مختلف آماری انجام گرفته تا کنون که در مقالات متعددی منتشر شده اند، الگوریتم رقابت استعماری حداقل در مسائل بهینه سازی پیوسته با بعد زیاد موفقیت بسیار بالایی از خود نشان می دهد. با کاهش پیچیدگی همین مسئله (کاهش n)، ملاحظه می شد که الگوریتم ژنتیک به جواب حدود الگوریتم رقابت استعماری و حتی در بعضی معدود از اجراها به جواب کمی بهتر نیز رسید. در نهایت نتیجه گیری نهایی نیاز به انجام آزمونهای لازم آماری دارد.

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

در داخل فایل زیپ شده دو پوشه وجود دارند که یکی مربوط به الگوریتم ICA و دیگری مربوط به GA می باشد. در GA باید فایل MainGa را اجرا کنید. در ICA نیز باید فایل Main_ImperialistCompetitveAlgorithm را باز کرده و در متلب F5 را فشار دهید.

منبع:کدهای برنامه الگوریتم ژنتیک و الگوریتم رقابت استعماری

پسورد :
كد:
www.icasite.info
فايل ضميمه
نوع فايل: zip ackly_program_ica_ga (www.icasite.info).zip (463.2 كيلو بايت, 697 نمايش)

ويرايش شده توسط Astaraki; ۰۲-۱۲-۱۳۹۰ در ساعت ۰۵:۳۴ بعد از ظهر
Astaraki آفلاين است   پاسخ با نقل قول
از Astaraki تشكر كرده اند:
alireza_a4 (۰۲-۱۸-۱۳۹۴), dpaniz (۰۵-۲۱-۱۳۹۰), mohammad3010 (۰۲-۲۷-۱۳۹۱), mohammadmono (۰۲-۳-۱۳۹۰), parsaansari (۰۸-۶-۱۳۹۶)

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online