در بهینهسازی ریاضی، الگوریتم کرم شب تاب یک الگوریتم فراابتکاری میباشد که توسط شین-یانگ و با الهام از رفتار چشمک زن کرم شب تاب ارائه شدهاست.[۱]
شبه کد الگوریتم کرم شب تاب به صورت زیر میباشد:
Begin 1) Objective function: ; 2) Generate an initial population of fireflies ;. 3) Formulate light intensity I so that it is associated with (for example, for maximization problems, or simply ;) 4) Define absorption coefficient γ
While (t < MaxGeneration) for i = 1: n (all n fireflies) for j = 1: i (n fireflies) if (), Vary attractiveness with distance r via ; move firefly i towards j; Evaluate new solutions and update light intensity; end if end for j end for i Rank fireflies and find the current best; end while
Post-processing the results and visualization;
end
توجه داشته باشید که تعداد ارزیابی تابع هدف در هر تکرار، یک ارزیابی برای هر کرم شب تاب است، و همانطور که شبه کد بالا نشان میدهد n × n نیست. (بر اساس کد متلب یانگ) بنابراین تعداد کل ارزیابی تابع هدف (تعداد نسل) × (تعداد کرم شب تاب) است.
فرمول اصلی بروزرسانی برای هر جفت کرم شب تاب و به صورت زیر است
جایی که پارامتر کنترل اندازه مرحله میباشد، در حالی که برداری تصادفی تولید شده بر ساس توزیع گاوسی یا توزیع دیگر میباشد.
میتوان نشان داد که مورد محدود کننده است مطابق با استاندارد بهینهسازی ذرات ذره (PSO) است. در حقیقت، اگر حلقه داخلی (برای j) برداشته شود و روشنایی با بهترین جواب عمومی جایگزین شود، آنگاه FA اساساً تبدیل به PSO استاندارد میشود.
بهطور کلی الگوریتمهای فراابتکاری الهام گرفته شده از طبیعت در جامعه پژوهشگران همواره با انتقاداتی همراه بودهاند، و در مورد الگوریتم کرم شب تاب نیز انتقاد شدهاست که از بهینهسازی ذرات الهام گرفته شده و تفاوت ناچیزی با توده ذرت دارد.[۲][۳][۴]
Practical application of FA on UCI datasets.
FA, on the other hand, has little to distinguish it from PSO, with the inverse-square law having a similar effect to crowding and fitness sharing in EAs, and the use of multi-swarms in PSO.
For example, the differences between the particle swarm optimization metaheuristic and "novel" metaheuristics like the firefly algorithm, the fruit fly optimization algorithm, the fish swarm optimization algorithm or the cat swarm optimization algorithm seem negligible.