الگوریتم‌های فراابتکاری چیست

image

الگوریتم‌های فراابتکاری چیست

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

1) الگوریتم فراابتکاری چیست؟

 روش‌ها و الگوریتم‌های بهینه‌سازی به دو دسته الگوریتمهای دقیق (exact) و الگوریتم‌های تقریبی (approximate algorithms) تقسیم‌بندی می‌شوند.

الگوریتم‌های دقیق قادر به یافتن جواب بهینه به صورت دقیق هستند اما در مورد مسائل بهینه‌سازی سخت، کارایی کافی ندارند و زمان اجرای آن‌ها متناسب با ابعاد مسائل به صورت نمایی افزایش می‌یابد.

الگوریتم‌های تقریبی قادر به یافتن جواب‌های خوب (نزدیک به بهینه) در زمان حل کوتاه برای مسائل بهینه‌سازی سخت هستند.

الگوریتم‌های تقریبی نیز به سه دسته الگوریتم‌های ابتکاری (heuristic) و فراابتکاری (meta-heuristic) و فوق ابتکاری (hyper heuristic) بخش‌بندی می‌شوند.

دو مشکل اصلی الگوریتم‌های ابتکاری، گیر افتادن آن‌ها در نقاط بهینه محلی، همگرایی زودرس به این نقاط است. الگوریتم‌های فراابتکاری برای حل این مشکلات الگوریتم‌های ابتکاری ارائه شده‌اند.

در واقع الگوریتم‌های فراابتکاری، یکی از انواع الگوریتم‌های بهینه‌سازی تقریبی هستند که دارای راهکارهای برونرفت از نقاط بهینه محلی هستند و قابلیت کاربرد در طیف گسترده‌ای از مسائل را دارند. رده‌های گوناگونی از این نوع الگوریتم در دهه‌های اخیر توسعه یافته‌است که همه این‌ها زیر مجموعه الگوریتم فراابتکاری می‌باشند.

 2) انواع الگوریتم های فراابتکاری چیست؟

  1. آموزش الگوریتم بهینه سازی زنبور عسل Bee Algorithm
  2. الگوریتم کلونی زنبور عسل Artificial bee colony algorithm ABC
  3.  SS scatter search algorithm الگوریتم جستجوی پراکنده
  4.  الگوریتم جستجوی ممنوعه TS Tabu Search algorithm
  5.  الگوریتم جهش قورباغه SFLA Shuffled Frog Leaping Algorithm
  6.  الگوریتم تبرید شبیه‌سازی شده SA Simulated Annealing
  7. دانلود فایل آموزش الگوریتم بهینه سازی کلونی مورچگان Ant Colony Optimization ACO
  8.  الگوریتم سیستم ایمنی مصنوعی AIS Artificial Immune Systems
  9.  الگوریتم جغرافیای زیستی Biogeography-Based Optimization BBO
  10.  مقید سازی محدودیت ها Constraint handling
  11.  جستجوی فاخته cuckoo search CS
  12.  الگوریتم تکاملی گرامری GEA Grammatical Evolution algorithms
  13.  الگوریتم بازی Evolutionary Game Algorithm
  14.  الگوریتم کرم شب تاب Firefly Algorithm FA
  15. الگوریتم تکاملی تفاضلی Differential Evolution DE
  16. الگوریتم کلونی زنبور عسل Artificial bee colony algorithm ABC
  17. الگوریتم برنامه ریزی ژنتیک
  18. الگوریتم ژنتیک Genetic Algorithm GA
  19. الگوریتم استراتژی تکاملی Evolution Strategy ES
  20. الگوریتم ژنتیک چند هدفه NRGA Non dominating sorting algorithtm NSGA-II
  21. الگوریتم بهینه سازی ازدحام ذرات Particle Swarm Optimization PSO

 3) دسته بندی الگوریتم های فراابتکاری

معیارهای مختلفی می‌تواند برای طبقه‌بندی الگوریتم‌های فراابتکاری استفاده شود:

مبتنی بر یک جواب و مبتنی بر جمعیت:

الگوریتم‌های مبتنی بر یک جواب در حین فرایند جستجو یک جواب را تغییر می‌دهند، در حالی که در الگوریتم‌های مبتنی بر جمعیت در حین جستجو، یک جمعیت از جواب‌ها در نظر گرفته می‌شوند.

از الگوریتم‌های شناخته شده فراابتکاری بر پایه جمعیت می‌توان الگوریتم‌های تکاملی  (الگوریتم ژنتیک، برنامه‌ریزی ژنتیک، ...)، بهینه‌سازی کلونی مورچگان،  کلونی زنبورها،  روش بهینه‌سازی ازدحام ذرات، الگوریتم بهینه‌سازی جنگل ، الگوریتم بهینه سازی Battle Royal ، الگوریتم قهرمانی در لیگهای ورزشی، بهینه‌سازی ملهم از فیزیک نور، الگوریتم ریشه-پاجوش و الگوریتم چکه آبهای هوشمند را نام برد.

الهام گرفته شده از طبیعت و بدون الهام از طبیعت:

بسیاری از الگوریتم‌های فراابتکاری از طبیعت الهام گرفته شده‌اند، در این میان برخی از الگوریتم‌های فراابتکاری نیز از طبیعت الهام گرفته نشده‌اند.

در سال‌های اخیر الگوریتم‌های فرابتکاری جدیدی با توجه به موجودات زنده موجود در طبیعت (الهام گرفته از طبیعت) توسعه داده شده‌اند که از معروف‌ترین آن‌ها می‌توان به الگوریتم بهینه سازی گرگ خاکستری ، الگوریتم بهینه سازی سنجاقک ، الگوریتم بهینه سازی گرده افشانی گل ها، الگوریتم بهینه سازی نهنگ یا وال ، الگوریتم بهینه سازی ملخ، و الگوریتم بهینه سازی کلونی پنگوئن های امپراتور  نام برد.

 

با حافظه و بدون حافظه:

برخی از الگوریتم‌های فراابتکاری فاقد حافظه می‌باشند، به این معنا که، این نوع الگوریتم‌ها از اطلاعات بدست آمده در حین جستجو استفاده نمی‌کنند (به‌طور مثال تبرید شبیه‌سازی شده). این در حالی است که در برخی از الگوریتم‌های فراابتکاری نظیر جستجوی ممنوعه از حافظه استفاده می‌کنند. این حافظه اطلاعات بدست آمده در حین جستجو را در خود ذخیره می‌کند.

قطعی و احتمالی:

یک الگوریتم فراابتکاری قطعی نظیر جستجوی ممنوعه، مسئله را با استفاده از تصمیمات قطعی حل می‌کند. اما در الگوریتم‌های فراابتکاری احتمالی نظیر تبرید شبیه‌سازی شده، یک سری قوانین احتمالی در حین جستجو مورد استفاده قرار می‌گیرد.