ر این بخش به بررسی بهینه سازی با الگوریتم بهینه سازی SPEA2 می پردازیم.
این الگوریتم شامل یک مجموعهی جمعیت و ی مجموعهی خارجی است. برنامه با جمعیت اولیه و مجموعه خارجی خالی آغاز و عملیات زیر در هر تکرار انجام میشود. جوابهای مسلط در مجموعه خالی کپی میگردد و تابع ارزیابی برای تمام جوابهای موجود به شرح زیر محاسبه میشود. شایان ذکر است هدف مینیمم کردن تابع ارزیابی است.
جوابهای داخل مجموعه خارجی:
برای هر جواب موجود در مجموعه i یک عدد S(i) €[۰,۱) تخصیص داده میشود که نماینده تابع ارزیابی آن جواب نیز هست. S(i) تعداد جوابهایی ازداخل جمعیت که توسط جواب i مغلوب میگردند (یا برابر آن هستند) بخش بر سایز جمعیت به علاوه یک است.
جوابهای داخل جمعیت:
برای جوابهای موجود در جمعیت (j) تابع ارزیابی از مجموع S(i)های موجود در مجموعهی خارجی که بر جواب j مسلط هستند به علاوه یک به دست میآید. در نهایت با توجه به مقدار تابع ارزیابی عملگرهای جفت گیری، ترکیب و جهش انجام میشود و مجموعهی جدید جایگزین قبلی میگردد.
الگوریتم بهینه سازی SPEA2
روش SPEA2 بر اساس اصلاح همین روش ابداع شده است. در این الگوریتم S(i) برای جوابهای موجود در جمعیت Pt و مجموعهی خارجی (Pt) ̅به شکل زیر محاسبه و در نهایت مقدار R(i) تعیین میشود. در رابطهی زیر علامت ≻ نشان دهندهی آن است که جواب i بر j غلبه کند.
S(i)=|{ j| j ϵ Pt + (P_t ) ̅^i ≻j}|
R(i) = ∑_(j∈P_t+(P_t ) ̅,j ≻i)▒〖S(j)〗
برای محاسبه مقدار تابع ارزیابی هر جواب، به R(i) پارامتری به نام D(i) نیز که دربرگیرندهی اطلاعات فاصله از kامین نقطه همسایه است نیز اضافه میگردد. برای این منظور فاصلهی جواب i از تمامی جوابها موجود در جمعیت و مجموعهی خارجی j محاسبه و در یک لیست به صورت افزایشی مرتب میشود. عنصر kام را با σ_i^k نشان داده میشود که k از جذر مجموع تعداد عضو جمعیت و مجموعه خارجی حاصل میشود. در نهایت D(i) به صورت زیر محاسبه میگردد.
D(i) = 1/(σ_i^k+2) (5)
در نهایت تابع ارزیابی به صورت زیر محاسبه میشود.
F(i) = R(i) + D(i) (6)
در شکل زیر فلوچارت مربوط به الگوریتم بهینه سازی spea2 نشان داده شده است.
جهت دانلود کد متلب الگوریتم بهینه سازی SPEA2 کلیک کنید.