بخشی از مقاله
چکیده
هرچه قدر پیچیدگی مسائل بهینه سازی دنیای واقعی افزایش می یابد، نیاز بشر به روش ها و تکنیک های بهینه سازی قوی تر بمنظور حل این مسائل نیز بیشتر می شود. در این راستا علاوه بر ارائه ی روش های نوین بهینه سازی، بخش عمده ای از پژوهش ها بر بهبود روش های جاری تمرکز دارند.
الگوریتم های تکاملی و هوش جمعی دسته ای از روش های بهینه سازی هستند که به دلیل مزایای چشم گیرشان نسبت به روش های کلاسیک، مورد توجه بسیاری از محققان و مراکز تحقیقاتی قرار گرفته اند. در این مقاله مروری به طبقه بندی روش های بهبود الگوریتم های تکاملی و هوش جمعی پرداخته می شود تا از این طریق علاوه بر تسهیل مطالعه ی روش های موجود، دریچه ای نیز پیش روی خواننده گان در جهت بهبود الگوریتم های نوین گشوده شود.
مقدمه
بهینه سازی در بسیاری از شاخه های علوم و مهندسی کاربردهای گسترده ای دارد. از نمونه های کاربردی بهینه سازی در دنیای واقعی می توان به بهینه سازی توابع ریاضی، طراحی و بهینه سازی مدارات چاپی، طراحی مدل های محاسباتی مخازن نفتی، مهندسی کنترل اشاره کرد. طیف وسیعی از مسائل بهینه سازی با تکنیک های ریاضی دقیق قابل حل نیستند، از این رو روش های دیگری برای حل این دسته از مسائل لازم است.
در این میان، پژوهش ها حاکی از آن هستند الگوریتم های تکاملی و هوش جمعی قادرند تا با موفقیت به بهینه سازی این دسته از مسائل بپردازند. از آنجا که پیچیدگی مسائل دنیای واقعی به شکل فزاینده ای در حال افزایش است، بهبود روش های بهینه سازی نیز امری اجتناب ناپذیر است. از این رو، در این مقاله به مرور روش های بهبود الگوریتم های تکاملی و هوش جمعی می پردازیم.
تغییر الگوی مقداردهی اولیه افراد الگوریتم های تکاملی و هوش جمعی
مطالعات مختلفی نشان داده اند که جمعیت اولیه الگوریتم های تکاملی و هوش جمعی تاثیر بسزایی بر کارایی این الگوریتم ها دارد .[1] در اغلب الگوریتم های تکاملی و هوش جمعی که برای کاربردهای مختلف معرفی شده اند، جمعیت اولیه بصورت تصادفی و بر اساس یک توزیع نرمال مشخص می شود. برخی از پژوهشگاران تلاش کرده اند تا با تغییر الگوی مقداردهی اولیه روش های تکاملی و هوش جمعی سرعت همگرایی آنها را افزایش دهند. از جمله این محققان می توان به رهنمائیان و همکارانش اشاره کرد [2] که یک روش جدید برای مقداردهی اولیه افراد الگوریتم بر اساس یادگیری مبتنی بر تضاد1 معرفی کرده اند.
افزودن عملگرها و پارامترهای جدید به الگوریتم ها یا تغییر عملگرها و پارامترهای موجود
یکی از پرکاربردترین پیشرفتها برای بهبود نرخ همگرایی در الگوریتم PSO معرفی پارامتر وزن اینرسی توسط شی و ابرهارت میباشد .[3] این پارامتر نشان می دهد که چه میزان از سرعت ذرات از گام زمانی پیشین در مرحله ی جدید حفظ میشود. معادلهی بهنگامسازی سرعت با توجه به وزن اینرسی بصورت زیر میباشد:
که با قرار دادن به معادلهی پایهی PSO میرسیم. مطالعات آنها نشان می دهد که افزودن این پارامتر به الگوریتم PSO قادر است تا حد زیادی کارایی آن را بهبود بخشد.
مثال دیگری از این استراتژی تغییر عملگر جایگزینی در الگوریتم DE توسط ثامسن2 است .[4] او با افزودن روند ازدحام به الگوریتم تکامل تفاضلی، الگوریتم جدیدی به نام الگوریتم تکامل تفاضلی ازدحامی3 معرفی کرده است.
تفاوت این الگوریتم با الگوریتم تکامل تفاضلی پایه در مرحله ی جایگزینی می باشد. در تکامل تفاضلی ازدحامی بردار جدید تولید شده در صورتی که از شایستگی بیشتری نسبت به والدش برخوردار باشد جایگزین مشابه ترین ذره در جمعیت والدین خواهد شد، برخلاف تکامل تفاضلی پایه که در آن فرزند تولید شده در صورتی که از والد خود شایسته تر باشد جایگزین آن می شود. این الگوریتم در محیطهای ایستای چندوجهی از کارایی بسیار خوبی در مقایسه با روشهای دیگر برخوردار است
بهبود الگوریتم های تکاملی و هوش جمعی با استفاده از تکنیک تنظیم پارامتر
یکی از روش های رایج بمنظور بهبود کارایی الگوریتم های تکاملی و هوش جمعی، برقراری تعادل میان قابلیت اکتشاف4 و استخراج5 این روش ها از طریق تنظیم پارامترهای کنترلی آنها می باشد. بطور کلی می توان روش های تنظیم پارامتر در الگوریتم های مختلف را به 3 دسته تقسیم کرد که در ادامه هر یک از آنها بطور جداگانه بررسی می شوند.
در نظر گرفتن مقادیر ثابت یا تصادفی برای پارامترها
ابتدایی ترین روش بمنظور یافتن مقدار - یا دامنه مقادیر - مناسب برای پارامترهای یک الگوریتم، استفاده از روش آزمون و خطا بر مبنای انجام آزمایشات مختلف است. این کلاس از روش ها شامل استراتژی هایی هستند که در آنها مقادیر پارامترها در حین فرآیند جستجو یا ثابت است و یا بصورت تصادفی از یک دامنه ی از پیش تعریف شده انتخاب می شود.
گروهی از پژوهشگران با تکیه بر این روش تلاش کرده اند تا مقادیر مناسبی را برای پارامترهای مختلف الگوریتم های تکاملی و هوش جمعی مشخص کنند. بعنوان مثال استورن و پرایس [5] یک بازه ی ثابت برای پارامترهای NP، F و CR در الگوریتم تکامل تفاضلی پیشنهاد داده اند. نتایج آزمایشات آنها حاکی از آن است که انتخاب مقدار پارامتر NP در بازه ی 5D و D - 10D تعداد ابعاد مسئله می باشد - در اغلب موارد نتایج قابل قبولی تولید می کند. علاوه بر این، مقدار پارامتر F باید در بازه ی [0.5,1] انتخاب شود و پارامتر CR باید برابر با 0.9 یا 1 باشد.
نمونه ی دیگری از در نظر گرفتن مقادیر ثابت برای پارامترهای الگوریتم ها را می توان در پارامتر وزن اینرسی الگوریتم PSO که توسط شی6 و ابرهارت[3] 7 معرفی شده است مشاهده کرد. این دو پژوهشگر با انجام آزمایشات مختلفی بر روی تابع f6 شفر8 دامنه ثابتی از مقادیر را برای پارامتر در الگوریتم بهینه سازی گروه ذرات مشخص کرده اند. نتایج شبیه سازی های آنها نشان می دهد که از یک سو مقادیر بزرگ پارامتر وزن اینرسی - - تاثیر مخربی بر روی قابلیت اکتشاف الگوریتم PSO دارد