پرسش ها:
درطی فرآیند بهینه سازی در الگوریتم رقابت استعماری، از تعداد کشورها کاسته شود، بهتر است یا تا پایان بهینه سازی تعداد کشورها ثابت باشد؟
آیا شرایط دیگری را هم می شود برای سقوط امپراطوری و همچنین شرایط همگرائی در نظر گرفت؟
برای مسئله ای که تعداد کشورهای اولیه آن در حدود 300 تا 500 می باشد؛ چه تعداد امپراطوری اولیه برای الگوریتم مناسب می باشد؟
پاسخ ها:
درطی فرآیند بهینه سازی در الگوریتم رقابت استعماری، از تعداد کشورها کاسته شود، بهتر است یا تا پایان بهینه سازی تعداد کشورها ثابت باشد؟
خیلی مهم نیست. اما در کل بهتر است ثابت باشد، نه به خاطر کارایی الگوریتم. نه! فقط به خاطر اینکه تعداد فراخوانی تابع هزینه دستمان باشد و راحت بتوانیم تعداد فراخوانی تابع هزینه را برابر با تعداد کشور ها ضرب در تعداد دهه ها (تکرار الگوریتم) قرار دهیم. این برای این است که راحت تر بتوانیم نتایج به دست آمده را با سایر الگوریتم ها مقایسه کنیم. در مورد نحوه مقایسه دو الگوریتم بهینه سازی، پستی جداگانه بر روی وبسایت محاسبات تکاملی ارائه شده است. این پست (
نحوه مقایسه کارکرد دو الگوریتم بهینه سازی) را حتماً ببینید.
آیا شرایط دیگری را هم می شود برای سقوط امپراطوری و همچنین شرایط همگرائی در نظر گرفت؟
بله. همانند هر الگوریتم دیگری استفاده از هر شرط منطقی برای الگوریتم که وابسته به کاربرد معین است، موجه خواهد بود. شرط توقف به مسئله بهینه سازی بستگی دارد نه الگوریتم. مثلاً در کاربردی ممکن است رسیدن به هزینه 0.0001 کافی باشد. بنابراین شرط توقف را رسیدن به این جواب قرار می دهیم.
برای مسئله ای که تعداد کشورهای اولیه آن در حدود 300 تا 500 می باشد؛ چه تعداد امپراطوری اولیه برای الگوریتم مناسب می باشد؟
شاید استفاده از 30 تا 50 امپراطوری کافی باشد. تعیین تعداد امپراطوری ها، به صورت یک دهم تعداد کشور ها، معمولاً مناسب خواهد بود. اما ذکر این نکته ضروری است که تعداد امپراطوری های اولیه با اینکه، یکی از پارامترهای آزاد الگوریتم می باشد، اما جزو پارامترهای اساسی آن به حساب نمی آید. سعی و خطا انتخاب یک دهم تعداد کشورهای اولیه را به عنوان تعداد مناسب امپراطوری ها پیشنهاد داده است.
منبع:انتخاب تعداد مناسب کشورهای اولیه و شرط توقف در الگوریتم رقابت استعماری - پرسش و پاسخ