محمدرضا مسعودمقام
محمدرضا مسعودمقام
خواندن ۸ دقیقه·۴ سال پیش

مروری بر الگوریتم های فراابتکاری توسعه داده شده توسط پژوهشگران ایرانی

بهینه سازی
بهینه سازی

دوستان سلام
این پُستُ بیشتر از سر کنجکاوی گذاشتم گفتم شاید نوشتنش جالب بنظر بیاد…
اول اجازه بدین یه کم در مورد بهینه سازی صحبت کنیم

وقتی صحبت از بهینه سازی میشه یعنی هنر یافتن بهترین جواب مساله در بین n تا جواب ممکن
وقتی صحبت از الگوریتم های تکاملی میشه یعنی از طبیعت الهام گرفته شدن (البته چند نوع تکامل داریم: تکامل زیستی، تکامل فرهنگی و …)
وقتی صحبت از الگوریتم های فراابتکاری میشه یعنی بدون نیاز به دانستن مساله و کمترین دانشی در این زمینه قادر هستند مساله رو حل کنند.

حالا الگوریتم های تکاملی (یا به عبارتی همون فراابتکاری) دارن فرآیند بهینه سازی رو انجام میدن (چطوری؟)

چالشی که در مسائل بهینه سازی وجود داره اینه که بی نهایت پاسخ وجود داره و باید بین این همه پاسخ، بهترین این پاسخ ها انتخاب بشه و الگوریتمی میتونه این پاسخ رو پیدا کنه که از دو ویژگی exploration (اکتشاف – توانایی تولید پاسخ های جدید) که عملکردی شبیه Global Search داره و exploitation (بهره برداری – توانایی پروراندن پاسخ های فعلی) که عملکردی شبیه Local Search داره، برخوردار باشه

برای توضیحات بیشتر میتونید این مجموعه درس از آقای مهندس کاویانی رو از اینجا مطالعه بفرمایین

بگذریم…



  • الگوریتم بهینه سازی علف هرز مهاجم (Invasive Weed Optimization: IWO)
الگوریتم بهینه سازی علف هرز مهاجم
الگوریتم بهینه سازی علف هرز مهاجم


توسعه دهنده: احمدرضا محرابیان (2006)
میزان ارجاع در گوگل اسکالر تا کنون: 1237
لینک مقاله: اینجا

ردپای اولین الگوریتمی که توسط ایرانیا توسعه داده شده در سال 2006 توسط آقای احمدرضا محرابیان، پیدا میشه
  • الگوریتم بهینه یابی جفت گیری زنبورهای عسل (Honey-bees mating optimization (HBMO))
جفت گیری زنبورهای عسل
جفت گیری زنبورهای عسل


توسعه دهنده: امید بزرگ حداد (2006)

میزان ارجاع در گوگل اسکالر تا کنون: 385

لینک مقاله: اینجا

  • الگوریتم رقابت استعماری (Imperialist Competitive Algorithm: ICA)
الگوریتم رقابت استعماری
الگوریتم رقابت استعماری


توسعه دهنده: اسماعیل آتش پز گرگری (2007)

میزان ارجاع در گوگل اسکالر تاکنون: 2395

لینک مقاله: اینجا

تو حوزه محاسبات تکاملی و بهینه سازی هوشمند، اگه نگیم الگوریتم رقابت استعماری بی نظیره، قطعا کم نظیره. دلیل منحصربه فردبودنش هم اینه که علیرغم سایر الگوریتم های تکاملی که فرایند بهینه سازی را انجام میدن و از طبیعت الهام گرفته شده اند، الگوریت رقابت استعماری از پدیده سیاسی اجتماعی "استعمار" الهام گرفته شده و به نوعی تکامل اجتماعی یا Social Darwinism حساب میاد چرا که تکامل، لزوما تکامل زیستی به حساب نمیاد.
ضمنا الگوریتم رقابت استعماری، از پارادایم Swarm Intelligence یا خِرَد جمعی بهره می برده کاری که از عهده هر الگوریتم تکاملی برنمیاد یعنی هیچ نوع رقابت و همکاری میان برخی از این الگوریتم های تکاملی وجود نداره
سوای از این دو مورد، الگوریتم رقابت استعماری مدعیه که همواره بهترین ها و قدرتمندترین جمعیت رو نگه داری میکنه
  • الگوریتم بهینه سازی جستجوی گرانشی (Gravitational Search Algorithm: GSA)
الگوریتم بهینه سازی جستجوی گرانشی
الگوریتم بهینه سازی جستجوی گرانشی


توسعه دهنده: عصمت راشدی (2009)

میزان ارجاع در گوگل اسکالر:4375

لینک مقاله: اینجا

  • الگوریتم بهینه سازی جستجوی شکار (hunting search: HS)
الگوریتم بهینه سازی جستجوی شکار
الگوریتم بهینه سازی جستجوی شکار


توسعه دهنده: رضا افتاده (2010)

میزان ارجاع در گوگل اسکالر تاکنون: 227

لینک مقاله: اینجا

  • الگوریتم جستجوی ذرات باردار (charged system search: CSS)
الگوریتم جستجوی ذرات باردار
الگوریتم جستجوی ذرات باردار


توسعه دهنده: علی کاوه (2010)

میزان ارجاع در گوگل اسکالر تاکنون: 970

لینک مقاله: اینجا




  • الگوریتم بهینه سازی فاخته (Cuckoo Optimization Algorithm: COA)
الگوریتم بهینه سازی فاخته
الگوریتم بهینه سازی فاخته


اگه دوس داشتین در مورد فاخته (مادری بدون مهر مادری) بدونید این پُست رو مطالعه کنید

توسعه دهنده: رامین رجبیون (2011)

میزان ارجاع در گوگل اسکالر تاکنون: 911

لینک مقاله: اینجا

  • الگوریتم جستجوی فاخته (CS)

توسعه دهنده: امیرحسین گندمی (2013)

میزان ارجاع در گوگل اسکالر تاکنون: 1347

لینک مقاله: اینجا

کوکو سرچ (CS)، یه کپی ناقص از بهینه سازی فاخته (COA) است که قدرت زیادی نداره و بیشتر بهینه محلی رو پیدا میکنه تا بهینه گلوبال

تفاوت این دو الگوریتم هم اینه که (به نقل از آقای رامین رجبیون): کوکو سرچ (CS)، اپراتورهاشو از الگوریتم کرم شبتاب (Firefly) گرفته و مشابهت کمی با روش زندگی واقعی فاخته ها داره. در مقالاتی که جستجوی گلوبال نیاز هست همگرایی ضعیفی از خودشون نشون داده. به همین دلیل هم در مقالات مختلف سعی شده از ترکیب CS با الگوریتم های دیگه ای که توانایی گلوبال سرچ بهتری دارن استفاده بشه تا نتایج، کمی بهتر بشه (به عنوان مثال تو این مقاله (لینک مقاله) از الگوریتم تکاملی تفاضلی یا DE به عنوان گلوبال سرچ و از CS به عنوان لوکال سرچ استفاده کرده).

به همین دلیل ما (رامین رجبیون) از COA استفاده کردیم که به تنهایی هم قابلیت های گلوبال سرچ خوبی داره

البته آقای امیر حسین گندمی هم به عنوان نویسنده دوم در مقاله اصلی الگوریتم بهینه سازی خفاش (BA) هم مشارکت دارند.
جالب تر اینکه اسم الگوریتم جستجوی فاخته سال 2009، برای اولین بار توسط آقای XS Yang به دنیای بهینه سازی معرفی میشه که در اونجا اسم الگوریتم اینه:
Cuckoo Search via Lévy flights

میزان ارجاع در گوگل اسکالر تاکنون: 5468

لینک مقاله: اینجا

یعنی اینطور بگم ردپای این الگوریتم برای اولین بار، سال 2009 توسط XS Yang پیدا شده، بعد از اون آقای رجبیون سال 2011 یه همچین الگوریتمی با همین نام داده بیرون و نهایتا سال 2013، این الگوریتم باز توسط آقای گندمی و XS Yang معرفی میشه

و اینکه طبق گفته آقای رامین رجبیون، الگوریتم جستجوی فاخته یک کپی ناقص از الگوریتم بهینه سازی فاخته است. (الگوریتم امیرحسین گندمی منظورش بوده نه آقای XS Yang که در سال 2009 ارائه داده)



  • الگوریتم بهینه سازی گروه میگوها (Krill Herd Optimization: KHO)
الگوریتم بهینه سازی گروه میگوها
الگوریتم بهینه سازی گروه میگوها


توسعه دهنده: امیرحسین گندمی (2012)

میزان ارجاع در گوگل اسکالر تاکنون: 1332

لینک مقاله: اینجا

  • الگوریتم بهینه سازی اشعه (Ray Optimization: RO)

توسعه دهنده: علی کاوه (2012)

میزان ارجاع در گوگل اسکالر تاکنون: 450

لینک مقاله: اینجا

  • الگوریتم بهینه سازی چرخه آب (Water Cycle Algorithm: WCA)
الگوریتم بهینه سازی چرخه آب
الگوریتم بهینه سازی چرخه آب


توسعه دهنده: هادی اسکندر (2012)

میزان ارجاع در گوگل اسکالر تاکنون: 735

لینک مقاله: اینجا

  • الگوریتم بهینه سازی پژواک یابی دلفین (Dolphin echolocation: DE)
الگوریتم بهینه سازی پژواک یابی دلفین
الگوریتم بهینه سازی پژواک یابی دلفین


توسعه دهنده: علی کاوه (2013)

میزان ارجاع در گوگل اسکالر تاکنون: 325

لینک مقاله: اینجا

  • الگوریتم بهینه سازی برخورد اجسام (یا اجسام در حال برخورد) (Colliding bodies optimization: CBO)
الگوریتم بهینه سازی برخورد اجسام
الگوریتم بهینه سازی برخورد اجسام


توسعه دهنده: علی کاوه (2014)

میزان ارجاع در گوگل اسکالر تاکنون: 440

لینک مقاله: اینجا

  • الگوریتم جستجوی داخلی (Interior search algorithm: ISA)
الگوریتم بهینه سازی برخورد اجسام
الگوریتم بهینه سازی برخورد اجسام


توسعه دهنده: امیرحسین گندمی (2014)

میزان ارجاع در گوگل اسکالر تاکنون: 270

لینک مقاله: اینجا




  • الگوریتم بهینه سازی گرگ خاکستری (Grey Wolf Optimizer: GWO)
الگوریتم بهینه سازی گرگ خاکستری
الگوریتم بهینه سازی گرگ خاکستری


توسعه دهنده: سید علی میرجلیلی (2014)

میزان ارجاع در گوگل اسکالر تاکنون: 4961

لینک مقاله: اینجا

  • الگوریتم بهینه سازی شعله - پروانه (Moth-flame optimization algorithm: MFO)
الگوریتم بهینه سازی گرگ خاکستری
الگوریتم بهینه سازی گرگ خاکستری


توسعه دهنده: سید علی میرجلیلی (2015)

میزان ارجاع در گوگل اسکالر تاکنون: 1371

لینک مقاله: اینجا

  • الگوریتم بهینه سازی شیر مورچه (Antlion Optimizer: ALO)
الگوریتم بهینه سازی شیر مورچه
الگوریتم بهینه سازی شیر مورچه


توسعه دهنده: سید علی میرجلیلی (2015)

میزان ارجاع در گوگل اسکالر تاکنون: 1340

لینک مقاله: اینجا

  • الگوریتم بهینه سازی سینوس کسینوس (Sine Cosine Algorithm: SCA)
الگوریتم بهینه سازی سینوس کسینوس
الگوریتم بهینه سازی سینوس کسینوس


توسعه دهنده: سید علی میرجلیلی (2015)

میزان ارجاع در گوگل اسکالر تاکنون: 1228

لینک مقاله: اینجا

  • الگوریتم بهینه سازی جستجوی کلاغ (Crow search algorithm: CSA)
الگوریتم بهینه سازی جستجوی کلاغ
الگوریتم بهینه سازی جستجوی کلاغ


توسعه دهنده: علیرضا عسکرزاده (2016)

میزان ارجاع در گوگل اسکالر تاکنون: 826

لینک مقاله: اینجا




  • الگوریتم بهینه سازی تبخیر آب (Water Evaporation Optimization: WEO)
الگوریتم بهینه سازی تبخیر آب
الگوریتم بهینه سازی تبخیر آب


توسعه دهنده: علی کاوه (2016)

میزان ارجاع در گوگل اسکالر تاکنون: 139

لینک مقاله: اینجا

  • الگوریتم بهینه سازی چند نظمی (چند وجهی) (Multi-Verse Optimizer: MVO)
الگوریتم بهینه سازی چند نظمی (چند وجهی)
الگوریتم بهینه سازی چند نظمی (چند وجهی)


توسعه دهنده: سید علی میرجلیلی (2016)

میزان ارجاع در گوگل اسکالر تاکنون: 748

لینک مقاله: اینجا

  • الگوریتم بهینه سازی وال (نهنگ) (Whale Optimization Algorithm: WOA)
الگوریتم بهینه سازی وال (نهنگ)
الگوریتم بهینه سازی وال (نهنگ)


توسعه دهنده: سید علی میرجلیلی (2016)

میزان ارجاع در گوگل اسکالر تاکنون: 2850

لینک مقاله: اینجا

  • الگوریتم بهینه سازی سنجاقک (Dragonfly Algorithm: DA)
الگوریتم بهینه سازی سنجاقک
الگوریتم بهینه سازی سنجاقک


توسعه دهنده: سید علی میرجلیلی (2016)

میزان ارجاع در گوگل اسکالر تاکنون: 1035

لینک مقاله: اینجا

  • الگوریتم بهینه سازی مسابقه طناب کشی (Tug of War Optimization: TWO)
الگوریتم بهینه سازی مسابقه طناب کشی
الگوریتم بهینه سازی مسابقه طناب کشی


توسعه دهنده: علی کاوه (2016)

میزان ارجاع در گوگل اسکالر تاکنون: 47

لینک مقاله: اینجا




  • الگوریتم بهینه سازی تبادل حرارتی (Thermal Exchange Optimization: TCO)
الگوریتم بهینه سازی تبادل حرارتی
الگوریتم بهینه سازی تبادل حرارتی


توسعه دهنده: علی کاوه (2017)

میزان ارجاع در گوگل اسکالر تاکنون: 151

لینک مقاله: اینجا

  • الگوریتم بهینه سازی ذرات مرتعش یا ذرات ارتعاشی (یا ذرات نوسان کننده) (vibrating particles system: VPS)
الگوریتم بهینه سازی ذرات مرتعش یا ذرات ارتعاشی
الگوریتم بهینه سازی ذرات مرتعش یا ذرات ارتعاشی


توسعه دهنده: علی کاوه (2017)

میزان ارجاع در گوگل اسکالر تاکنون: 71

لینک مقاله: اینجا

  • الگوریتم مرغ آلاچیق ساز (Satin bowerbird optimizer: SBO)
الگوریتم مرغ آلاچیق ساز
الگوریتم مرغ آلاچیق ساز


توسعه دهنده: سید حمید ثمره موسوی (2017)

میزان ارجاع در گوگل اسکالر تاکنون: 77

لینک مقاله: اینجا

  • الگوریتم ملخ (Grasshopper Optimization Algorithm: GOA)
الگوریتم ملخ
الگوریتم ملخ


توسعه دهنده: شهرزاد صارمی (2017)

میزان ارجاع در گوگل اسکالر تاکنون: 860

لینک مقاله: اینجا

  • الگوریتم بهینه سازی slap swarm (SSA)
slap swarm
slap swarm


چون ترجمه فارسی خوبی ازش پیدا نکردم، مجبور شدم عبارت لاتینش رو بنویسم.

توسعه دهنده: سید علی میرجلیلی (2017)

میزان ارجاع در گوگل اسکالر تاکنون: 1147

لینک مقاله: اینجا




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

الگوریتم های توسعه داده شده توسط آقای دکتر سیدعلی میرجلیلی

الگوریتم های توسعه داده شده توسط سیدعلی میرجلیلی (1)
الگوریتم های توسعه داده شده توسط سیدعلی میرجلیلی (1)
الگوریتم های توسعه داده شده توسط سیدعلی میرجلیلی (2)
الگوریتم های توسعه داده شده توسط سیدعلی میرجلیلی (2)
الگوریتم های توسعه داده شده توسط سیدعلی میرجلیلی (3)
الگوریتم های توسعه داده شده توسط سیدعلی میرجلیلی (3)


  • الگوریتم بهینه سازی رشد درخت (Tree Growth Algorithm: TGA)
الگوریتم بهینه سازی رشد درخت
الگوریتم بهینه سازی رشد درخت


توسعه دهنده: آرمین چراغعلی پور (2018)

میزان ارجاع در گوگل اسکالر تاکنون: 53

لینک مقاله: اینجا

  • الگوریتم بهینه سازی شاهین هریس (Harris hawks optimization: HHO)
الگوریتم بهینه سازی شاهین هریس
الگوریتم بهینه سازی شاهین هریس


توسعه دهنده: علی اصغر حیدری (2019)

میزان ارجاع در گوگل اسکالر تاکنون: 534

لینک مقاله: اینجا

  • الگوریتم بهینه سازی اره ماهی یا نیزه ماهی (The Sailfish Optimizer: SOA)
الگوریتم بهینه سازی اره ماهی
الگوریتم بهینه سازی اره ماهی


توسعه دهنده: شادروان (2019)

میزان ارجاع در گوگل اسکالر تا کنون: 80

لینک مقاله: اینجا

  • الگوریتم بهینه سازی حاصلخیزی زمینهای کشاورزی (Farmland Fertility: FF)
الگوریتم بهینه سازی حاصلخیزی زمینهای کشاورزی
الگوریتم بهینه سازی حاصلخیزی زمینهای کشاورزی


توسعه دهنده: هومان شایان فر (2018)

میزان ارجاع در گوگل اسکالر تاکنون: 89

لینک مقاله: اینجا

  • الگوریتم بهینه سازی تعادل (موازنه) (Equilibrium optimizer: EO)
الگوریتم بهینه سازی تعادل
الگوریتم بهینه سازی تعادل


توسعه دهنده: افشین فرامرزی (2020)

میزان ارجاع در گوگل اسکالر تاکنون: 125

لینک مقاله: اینجا

  • الگوریتم بهینه سازی شکارچیان دریایی (Marine Predator Algorithm: MPA)
الگوریتم بهینه سازی شکارچیان دریایی
الگوریتم بهینه سازی شکارچیان دریایی


توسعه دهنده: افشین فرامرزی (2020)

میزان ارجاع در گوگل اسکالر تاکنون: 71

لینک مقاله: اینجا

  • الگوریتم بهینه سازی حشره آب سوار (یا حشره آبگیر برکه) (Water strider Optimization: WSO)
الگوریتم بهینه سازی حشره آب سوار
الگوریتم بهینه سازی حشره آب سوار


توسعه دهنده: علی کاوه (2020)

میزان ارجاع در گوگل اسکالر تاکنون: 16

لینک مقاله: اینجا




ولی خوب الگوریتمی که بیشترین میزان ارجاع رو در بین الگوریتم های بهینه سازی داشته، الگوریتم ازدحام ذرات (PSO) بوده که کار آقای Kennedy هست (65156 بار ارجاع)

نتیجه گیری:

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

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

راستی منتظر کامنتاتون هستم

دمتون گرم

بهینه سازیالگوریتم های تکاملیالگوریتم های فراابتکاریoptimizationmetaheuristic algorithm
شاید از این پست‌ها خوشتان بیاید