الگوریتم تپهنوردی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
FreshmanBot (بحث | مشارکتها) جز اصلاح فاصله مجازی + اصلاح نویسه با استفاده از AWB |
بدون خلاصۀ ویرایش |
||
خط ۸۸:
در این روش علاوه بر دو تابع Objective و Neighbor ، تابعی با نام Mutate نیز خواهیم داشت که وظیفه این تابع جهش در فضای حالت مسئله خواهد بود. همچنین باید بتوان نقطه بهینگی سراسری را تشخیص داد. به عنوان مثال بهینهترین جواب برای مسئله 8 وزیر ، نقطهای است که در آن تعداد گاردهای جفت وزیرها صفر عدد باشد. اما مسائلی نیز وجود دارند که از ابتدا نمی توان مقدار بهینگی سراسری مسئله را در آنها تشخیص داد. لازم به ذکر است که برای مسائل مختلف میتوانیم شرط پایان حلقه و نحوه اجرای الگوریتم را تغییر دهیم. لازم به ذکر است که تابع Mutate را بهطور کلی میتوان با دو استراتژی مختلف پیادهسازی کرد :
1. جهش در فضای حالت کوتاه باشد
2. جهشهای بزرگ در فضای حالت انجام دهد
جهش کوتاه جهشی است که تعداد حالتهای میان حالت فعلی و حالت [[جهش یافته]] کم باشد. نقطه مقابل جهش کوتاه نیز جهش بلند میباشد. استفاده از هرکدام از این روشها بستگی به مسئله دارد و نمی توان در مورد ارجحیت یکی به دیگری اظهار نظر کرد. ما در این برنامه از جهشهای کوتاه برای گریز از بهینگیهای محلی استفاده کرده ایم.
|