الگوریتم کرم شبتاب یکی از الگوریتمهای بهینهسازی فراابتکاری است که از رفتار طبیعی کرمهای شبتاب الهام گرفته شده است. این الگوریتم توسط دکتر Xin-She Yang در سال 2008 معرفی شد و برای حل مسائل بهینهسازی پیچیده و غیرخطی بکار میرود. الگوریتم کرم شبتاب از جذابیت نوری کرمهای شبتاب برای حرکت و جستجو در فضای جستجو استفاده میکند.
ویژگیهای الگوریتم کرم شبتاب
- جذابیت نوری : هر کرم شبتاب دارای یک منبع نور است که میزان روشنایی آن با کیفیت راهحل موجود در موقعیت آن کرم مرتبط است.
- جذب و جنبش : کرمهای شبتاب به سمت کرمهای دیگری که نور قویتری دارند حرکت میکنند.
- تابع جذابیت : جذابیت بین کرمها با فاصله بین آنها کاهش مییابد.
- تصادفیسازی : حرکت کرمهای شبتاب شامل یک عنصر تصادفی است که به جستجوی فضا کمک میکند.
مراحل الگوریتم کرم شبتاب
1. پارامترهای اولیه
- تعداد کرمهای شبتاب (n)
- بعد فضای جستجو (d)
- تابع هدف (f(x)) که باید بهینه شود
- ضرایب الگوریتم:
β0: جذابیت اولیه
γ: وضریب کاهش جذابیت
α: پارامتر تصادفیسازی
2. سازی جمعیت
هر کرم شبتاب به صورت تصادفی در فضای جستجو قرار داده میشود. موقعیت اولیه هر کرم شبتاب به صورت زیر تعریف میشود:
xi=(xi1,xi2,…,xid)
3. محاسبه جذابیت
جذابیت بین دو کرم شبتاب i و j به صورت زیر محاسبه میشود:
βij=β0e−γrij2
که در آن:
rij: فاصله بین دو کرم شبتاب
β0: جذابیت اولیه
γ: ضریب کاهش جذابیت
4. حرکت کرمهای شبتاب
هر کرم شبتاب به سمت کرمهای دیگری که نور قویتری دارند حرکت میکند. حرکت کرم i به سمت کرم j به صورت زیر تعریف میشود:
xit+1=xit+βij(xjt−xit)+αϵ
که در آن:
α پارامتر تصادفیسازی
ϵ عدد تصادفی از توزیع یکنواخت
5. بررسی شرط توقف
الگوریتم تا زمانی ادامه مییابد که یکی از شرایط زیر برقرار باشد:
- تعداد تکرارها به حداقل مقدار مشخص شده برسد.
- تغییرات در مقادیر بهینه کمتر از یک مقدار خاص باشد.
ابردرس | ارائه کننده دوره های آموزشی یادگیری ماشین و مدلسازی