انتخاب تعداد مناسب کشورهای اولیه و شرط توقف در الگوریتم رقابت استعماری - پرسش و پاسخ
پرسش ها:
- درطی فرآیند بهینه سازی در الگوریتم رقابت استعماری، از تعداد کشورها کاسته شود، بهتر است یا تا پایان بهینه سازی تعداد کشورها ثابت باشد؟
- آیا شرایط دیگری را هم می شود برای سقوط امپراطوری و همچنین شرایط همگرائی در نظر گرفت؟
- برای مسئله ای که تعداد کشورهای اولیه آن در حدود 300 تا 500 می باشد؛ چه تعداد امپراطوری اولیه برای الگوریتم مناسب می باشد؟
- انتخاب کمتر کشور و بیشتر تکرار ها بهتر هست یا برعکس؟ اگر مثلا تعداد کشورهای اولیه را 40 و تکرار را 100 در نظر بگیریم، بهتر هست یا اینکه تعداد کشورها را 50 و تعداد تکرار را 60 بگیرم؟
- چگونه می توان در متلب، اعداد تصادفی را به گونه ای ایجاد کرد که دارای میانگین و واریانس مشخصی باشند؟
- درطی فرآیند بهینه سازی در الگوریتم رقابت استعماری، از تعداد کشورها کاسته شود، بهتر است یا تا پایان بهینه سازی تعداد کشورها ثابت باشد؟
- آیا شرایط دیگری را هم می شود برای سقوط امپراطوری و همچنین شرایط همگرائی در نظر گرفت؟
- برای مسئله ای که تعداد کشورهای اولیه آن در حدود 300 تا 500 می باشد؛ چه تعداد امپراطوری اولیه برای الگوریتم مناسب می باشد؟
- انتخاب کمتر کشور و بیشتر تکرار ها بهتر هست یا برعکس؟ اگر مثلا تعداد کشورهای اولیه را 40 و تکرار را 100 در نظر بگیریم، بهتر هست یا اینکه تعداد کشورها را 50 و تعداد تکرار را 60 بگیرم؟
http://www.icasite.info/2010/
تعداد فراخوانی تابع هزینه در الگوریتم رقابت استعماری تقریباً برابر است با تعداد کشورهای اولیه ضرب در تعداد دهه ها (تکرارها). در الگوریتم های ژنتیک نیز این تعداد برابر است با تعداد جمعیت اولیه، ضرب در تعداد نسل ها (تعداد تکرارها). هرچه تعداد فراخوانی تابع هزینه را افزایش دهیم، اصولاً باید به جواب بهتری برسیم. اما این امر به افزایش زمان رسیدن به جواب نیز منجر می شود. بنابراین مستقل از هر گونه تحلیلی، با در نظر گرفتن صورت مسئله مطرح شده در بالا، به احتمال زیاد، در مورد سوال شما، حالت اول (تعداد کشورهای اولیه 40 و تکرار 100، مجموعاً 400 فراخوانی) به جواب بهتری نسبت به حالت دوم (تعداد کشورها 50 و تعداد تکرار 60، مجموعاً 300 فراخوانی) خواهد رسید. اما زمان رسیدن به جواب بیشتر طول می کشد. البته این پیش بینی از قطعیت برخودار نیست و ممکن است بر عکس آن نیز اتفاق بیافتد. آنچه بیان شد، به احتمال زیاد اتفاق می افتد، نه با قطعیت.
اما حال فرض کنیم که حالت های اول و دوم به گونه ای هستند که، مجموع تعداد فراخوانی تابع هزینه در هر دو حالت یکی است. مثلاً دو حالت زیر
- تعداد کشورها 30 و تعداد تکرار 80
- تعداد کشورها 80 و تعداد تکرار 30
در نهایت بعد از مدتی کار کردن با الگوریتم، ممکن است به حسی از میزان مناسب پارامترهای آن برسیم. اما در نهایت باید بدانیم که این پارامترها، اکسیری برای همه مسائل نیستند و ممکن است برای مسائل متفاوت به پارامترهای کاملاً متفاوتی برسیم.
- چگونه می توان در متلب، اعداد تصادفی را به گونه ای ایجاد کرد که دارای میانگین و واریانس مشخصی باشند؟
- برای تولید عدد تصادفی با توزیع یکنواخت از تابع rand استفاده کنید.
- برای تولید عدد تصادفی با توزیع نرمال از تابع randn استفاده کنید.
- >> Number = randn * sqrt(V) + M;
- >> Number = (rand-0.5) * sqrt(12*V) + M;
برای تست نتیجه، دستور زیر را در متلب اجرا می کنیم.
>> a = randn(1000000,1) * 2 + 10;
>> mean(a)
ans =
10.0022
>> var(a)
ans =
3.9990
>> mean(a)
ans =
10.0022
>> var(a)
ans =
3.9990
>> a = (rand(1000000,1)-.5) * sqrt(48) + 10;
>> var(a)
ans =
3.9981
>> mean(a)
ans =
10.0004
پایان
سوال و نظر خاصی در مورد الگوریتم رقابت استعماری دارید؟ آن را از بخش تماس با ما مطرح کنید.
نظرات شما در مورد این پست برای سایر خوانندگان نیز مفید خواهد بود.
برچسبها: الگوریتم رقابت استعماری - ICA, پرسش و پاسخ, ICA
2 نظر:
سلام میشه لطف کنید الگوریتم کلی رو قرار بدبد؟من رو کدها کمی مشکل دارم
ممنون
اطلاعات بیشتر را می توانید در پست های زیر ببینید.
یک نگاه کلی به کد های نوشته شده در متلب که کاملاً ساده و قابل فهم است، بسیار مفید خواهد بود. این کد ها در پست های زیر موجود می باشند. به همراه این کدها یک فیلم آموزشی کوتاه نحوه استفاده از کدها نیز وجود دارد.
http://www.icasite.info/2010/05/blog-post_01.html
http://www.icasite.info/2010/05/blog-post_06.html
اگر سوالتان دقیقاً نحوه برنامه نویسی خود الگوریتم باشد (نه استفاده کاربردی)، پست زیر نیز برای شما مفید خواهد بود.
http://www.icasite.info/2010/11/blog-post_09.html
http://www.icasite.info/2010/11/blog-post_7766.html
این پست را نیز ببینید (استراتژی حل مسائل بهینه سازی).
http://www.icasite.info/2010/05/blog-post_16.html
همچنین توصیه می شود که فصل 3 فایل آموزشی موجود در این پست (کلیک کنید) را مطالعه نمایید.
http://www.icasite.info/2010/05/imperialist-competitive-algorithm.html
موفق باشید
ارسال یک نظر
نکته مهم در ارسال نظر:
متاسفانه ارسال نظرات به این وبسایت، به دلیل انسداد سرویس نظر دهی آن، از داخل ایران به سادگی قابل دسترسی نمی باشد. لطفاً اگر از داخل ایران کامنت می گذارید، یک کپی از آن را از بخش تماس با ما در بخش بالای وبسایت نیز ارسال نمایید، تا اگر کامنتتان به درستی دریافت نشد، نظرتان از طرف مسئولین سایت، در پست مربوطه، منتشر شود.
اشتراک در نظرات پیام [Atom]
<< صفحهٔ اصلی