پرسش و پاسخ – تنظیم میزان مناسب زاویه جذب در الگوریتم رقابت استعماری

http://www.icasite.info/icasite/post_i/ques_ans.png
 
پرسشی در مورد نحوه تنظیم میزان مناسب زاویه جذب در الگوریتم رقابت استعماری، مطرح شده است. شما را به مشاهده صورت این پرسش مهم و عمومی و نیز در صورت علاقه، به خواندن ادامه مطلب جهت یافتن پاسخ این پرسش دعوت می کنیم.
 
پرسش:
 

با سلام

سوالی در رابطه با زاویه جذب دارم، ممنون میشوم راهنمایی کنید.

زاویه جذب اگر مقدار کمی داشته باشه چه تاثیری می تواند روی روند کار بگذارد (برعکسش چطور؟ اگر زیاد باشد چی؟) منظور من از لحاظ الگوریتم جستجو هست و اینکه تاثیرش رو به شکل جستجو چطور میشود بیان کرد؟

اگه بخواهیم زاویه جذب رو در ابتدا زیاد بعد کم یا بر عکس تعریف کنیم، نتیجه چطور می شود؟ یا بخواهیم به صورت یک تابع خطی یا غیر خطی افزایش یا کاهش بدیم، چطور؟

ممنون میشوم به سوالات بالا از دیدگاه الگوریتم جستجو پاسخ بدهید.

 
 
 پاسخ: در ادامه پاسخ مشروح مطرح شده را می بینیم.

ابتدا توصیه می شود که در مورد زاویه جذب و کلاً نحوه پیاده سازی عملگر جذب (Assimilation) در الگوریتم رقابت استعماری (Imperialist Competitive Algorithm)، لینک زیر را مطالعه نمایید.
نحوه پیاده سازی عملی عملگر جذب (Assimilation) در الگوریتم رقابت استعماری – پرسش و پاسخ
حال به پاسخ سوال مطرح شده می پردازیم.

کلاً این نکته را باید در نظر گرفت که هر الگوریتم بهینه سازی، از دو بعد تشکیل شده است. بعد اول، exploration و هست و بعد دوم، exploitation.

  • exploration، به معنی گشت و گذارهای تصادفی، بخشی از الگوریتم هست که روندهای تصادفی را مدل می کند. وظیفه اصلی این بخش، فراری دادن الگوریتم از بهینه های محلی می باشد.
  • exploitation، به معنی استفاده از دانش موجود می باشد. این بخش وظیفه استفاده بهینه از اطلاعاتی را دارد که الگوریتم تا لحظه حاضر با جسجو های فراوان کسب کرده است. استفاده از اطلاعات به این معنی است که با مثلاً دانستن موقعیت یک بهینگی، چگونه در اطراف آن به سرعت به بهترین نقطه ممکن برسیم.
برای هر مسئله، ترکیب متفاوتی از exploration و exploitation، نیاز هست. نسبت exploration بالا، الگوریتم را غیر هدفمند می کند و برعکس exploitation بالا هم، اگر میزان مناسب exploration وجود نداشته باشد، ممکن است به سرعت در یک بهینه محلی گیر کند (همگرایی زودهنگام در یک نقطه نامناسب). این دو کفه باید برای مسائل مختلف درست تنظیم شوند.برای تنظیم کفه ها، باید عملگر های یک الگوریتم را به خوبی بشناسیم. مثلاً عملگر انقلاب (Revolution) در الگوریتم رقابت استعماری، وزنه سنگینی به سمت، exploration می باشد. هر چقدر نیزان درصد مرتبط با این عملگر را افزایش دهیم، به همان میزان، میزان حرکت های تصادفی در الگوریتم را بالا برده ایم. در مقابل عملگر جذب، بیشترین سنگینی را بر بخش exploitation وارد می کند. به خصوص اگر زاویه مرتبط با آن را کم کنیم، این سنگینی به مراتب بیشتر می شود. در مقابل افزایش زاویه جذب به تصادفی بودن بیشتر در روند پاسخ های تولید شده منجر می شود و کفه exploration را سنگین می کند.

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

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

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

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

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

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