الگوریتم کرم شب‌تاب

در بهینه‌سازی ریاضی، الگوریتم کرم شب تاب یک الگوریتم فراابتکاری می‌باشد که توسط شین-یانگ و با الهام از رفتار چشمک زن کرم شب تاب ارائه شده‌است.

الگوریتم 
شبه کد الگوریتم کرم شب تاب به صورت زیر می‌باشد:
 Begin
  1) Objective function: 
  2) Generate an initial population of fireflies 
  3) Formulate light intensity  so that it is associated with 
  (for example, for maximization problems, 
  4) Define absorption coefficient 

  While (t < MaxGeneration)
  for i = 1: n (all n fireflies)
  for j = 1: i (n fireflies)
  
  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 استاندارد می‌شود.

نقد 
به‌طور کلی الگوریتمهای فراابتکاری الهام گرفته شده از طبیعت در جامعه پژوهشگران همواره با انتقاداتی همراه بوده‌اند، و در مورد الگوریتم کرم شب تاب نیز انتقاد شده‌است که از بهینه‌سازی ذرات الهام گرفته شده و تفاوت ناچیزی با توده ذرت دارد.

منابع

پیوند به بیرون 
  پرونده‌های برنامه‌های Matlab موجود در کتاب: Xin-She Yang، الگوریتم‌های Metaheuristic- الهام گرفته از طبیعت، چاپ دوم، Luniver Press، (۲۰۱۰).

الگوریتم‌های ابتکاری
الگوریتم‌های فراابتکاری مبتنی بر طبیعت
الگوریتم‌های فرگشتی