بازدید: 226 بازدید

الگوریتم بهینه‌سازی سنجاقک (Dragonfly Algorithm – DA)
الگوریتم بهینه‌سازی سنجاقک یک الگوریتم فراابتکاری (Metaheuristic) است که از رفتار جمعی سنجاقک‌ها در طبیعت الهام گرفته شده است. این الگوریتم در سال ۲۰۱۶ توسط میرجلیلی (Mirjalili) ارائه شد و برای حل مسائل بهینه‌سازی پیوسته و گسسته استفاده می‌شود. رفتار سنجاقک‌ها در طبیعت شامل مراحل جست‌وجوی غذا، فرار از شکارچیان و تشکیل گروه‌های اجتماعی است که این رفتارها در الگوریتم مدل‌سازی شده‌اند.


مراحل الگوریتم سنجاقک

الگوریتم سنجاقک از پنج عامل اصلی برای شبیه‌سازی رفتار سنجاقک‌ها استفاده می‌کند:

  1. جاذبه به سمت غذا (Attraction towards Food):
    سنجاقک‌ها به سمت منابع غذایی جذب می‌شوند. در الگوریتم، این رفتار با محاسبه موقعیت بهترین جواب (غذا) و حرکت عامل‌ها به سمت آن شبیه‌سازی می‌شود.
  2. دافعه از شکارچی (Distraction from Enemy):
    سنجاقک‌ها از شکارچیان فرار می‌کنند. در الگوریتم، این رفتار با دور شدن عامل‌ها از بدترین موقعیت‌ها (شکارچی) مدل می‌شود.
  3. همسایگی (Neighbourhood):
    سنجاقک‌ها در گروه‌های کوچک حرکت می‌کنند. در الگوریتم، هر عامل موقعیت خود را نسبت به همسایگانش تنظیم می‌کند.
  4. هم‌جهتی (Alignment):
    سنجاقک‌ها سعی می‌کنند با همسایگان خود هم‌جهت شوند. این رفتار در الگوریتم با هم‌راستا کردن سرعت عامل‌ها با سرعت متوسط همسایگانشان شبیه‌سازی می‌شود.
  5. تجمع (Cohesion):
    سنجاقک‌ها تمایل دارند به سمت مرکز گروه حرکت کنند. در الگوریتم، این رفتار با حرکت عامل‌ها به سمت میانگین موقعیت همسایگانشان مدل می‌شود.

معادلات الگوریتم سنجاقک

  1. موقعیت سنجاقک‌ها:
    موقعیت هر سنجاقک با معادله زیر به‌روز می‌شود:Xt+1=Xt+ΔXt+1Xt+1​=Xt​+ΔXt+1​که در آن:
    • XtXt​ موقعیت فعلی سنجاقک است.
    • ΔXt+1ΔXt+1​ تغییرات موقعیت سنجاقک است.
  2. تغییرات موقعیت:
    تغییرات موقعیت با معادله زیر محاسبه می‌شود:ΔXt+1=(s⋅Si)+(a⋅Ai)+(c⋅Ci)+(f⋅Fi)+(e⋅Ei)+w⋅ΔXtΔXt+1​=(s⋅Si​)+(a⋅Ai​)+(c⋅Ci​)+(f⋅Fi​)+(e⋅Ei​)+w⋅ΔXt​که در آن:
    • s,a,c,f,es,a,c,f,e وزن‌های مربوط به عوامل هم‌جهتی، تجمع، جاذبه به غذا، دافعه از شکارچی و وزن اینرسی هستند.
    • Si,Ai,Ci,Fi,EiSi​,Ai​,Ci​,Fi​,Ei​ به‌ترتیب نشان‌دهنده‌ی هم‌جهتی، تجمع، جاذبه به غذا، دافعه از شکارچی و وزن اینرسی هستند.
    • ww وزن اینرسی است.

مراحل اجرای الگوریتم

  1. مقداردهی اولیه:
    جمعیت اولیه سنجاقک‌ها به‌صورت تصادفی در فضای جست‌وجو ایجاد می‌شود.
  2. محاسبه برازندگی:
    مقدار تابع هدف برای هر سنجاقک محاسبه می‌شود.
  3. به‌روزرسانی موقعیت:
    موقعیت هر سنجاقک با استفاده از معادلات الگوریتم به‌روز می‌شود.
  4. به‌روزرسانی غذا و شکارچی:
    بهترین و بدترین موقعیت‌ها (غذا و شکارچی) به‌روزرسانی می‌شوند.
  5. تکرار:
    مراحل ۲ تا ۴ تا رسیدن به معیار توقف تکرار می‌شوند.

مزایای الگوریتم سنجاقک

  • سادگی در پیاده‌سازی.
  • توانایی جست‌وجوی موثر در فضای جست‌وجو.
  • قابلیت تعادل بین اکتشاف (Exploration) و بهره‌برداری (Exploitation).

کاربردهای الگوریتم سنجاقک

  • بهینه‌سازی توابع پیچیده.
  • یادگیری ماشین و شبکه‌های عصبی.
  • مسائل مهندسی مانند بهینه‌سازی طراحی سازه‌ها.
  • مسائل زمان‌بندی و برنامه‌ریزی.

این الگوریتم به‌عنوان یک روش کارآمد برای حل مسائل بهینه‌سازی غیرخطی و چندوجهی شناخته می‌شود و در مقایسه با سایر الگوریتم‌های فراابتکاری مانند الگوریتم ژنتیک و بهینه‌سازی ازدحام ذرات

ادامه مطلب