هدف از الگوریتم های بهینه سازی یافتن یک جواب قابل قبول، با توجه به محدودیت و نیاز مسئله است. در تعیین جواب یک مسئله، ممکن است جوابهای مختلفی برای آن وجود داشته باشد. برای مقایسه جواب های یک مسئله و انتخاب جواب بهینه، تابعی به نام تابع هدف یا تابع هزینه که Cost Function نیز نامیده میشود، تعریف میشود. انتخاب این تابع به ماهیت مسئله وابسته است. بهعنوان مثال، زمان یا هزینه از جمله اهداف رایج بهینهسازی شبکههای حمل و نقل است. در این مقاله بهطور مفصل در مورد الگوریتم های بهینه سازی و مخصوصاً الگوریتم های بهینه سازی هوشمند صحبت خواهیم کرد و به معرفی بسیاری از این الگوریتم ها خواهیم پرداخت.
انتخاب تابع هدف مناسب یکی از مهمترین مراحل در الگوریتم های بهینه سازی است. گاهی در بهینهسازی چند هدف به طور همزمان مد نظر قرار میگیرد؛ این گونه مسائل بهینهسازی را که دربرگیرنده چند تابع هدف هستند، مسائل چند هدفه مینامند. سادهترین راه در برخورد با این گونه مسائل، تشکیل یک تابع هدف جدید به صورت ترکیب خطی توابع هدف اصلی است که در این ترکیب میزان اثرگذاری هر تابع با وزن اختصاص یافته به آن مشخص میشود. هر مسأله بهینهسازی دارای تعدادی متغیر مستقل است که آنها را متغیرهای طراحی مینامند. هدف از بهینهسازی تعیین متغیرهای طراحی است، به گونهای که تابع هدف کمینه یا بیشینه شود.
انواع مسئله بهینه سازی
مسائل مختلف بهینهسازی به دو دسته زیر تقسیم میشود:
۱- مسائل بهینهسازی بیمحدودیت
در این مسائل هدف، بیشینه یا کمینه کردن تابع هدف بدون هر گونه محدودیتی بر روی متغیرهای طراحی میباشد.
۲- مسائل بهینهسازی با محدودیت
الگوریتم های بهینه سازی در اغلب مسائل کاربردی، با توجه به محدودیتهایی صورت میگیرد؛ محدودیتهایی که در زمینه رفتار و عملکرد یک سیستم میباشد و محدودیتهای رفتاری و محدودیتهایی که در فیزیک و هندسه مسأله وجود دارد، محدودیتهای هندسی یا جانبی نامیده میشوند. معادلات معرف محدودیتها ممکن است به صورت مساوی یا نامساوی باشند که در هر مورد، روش بهینهسازی متفاوت میباشد. به هر حال محدودیتها، ناحیه قابل قبول در طراحی را معین میکنند.
فرآیند بهینه سازی در الگوریتم های بهینه سازی
فرآیند بهینه سازی بهطور کلی در چهار مرحله فرموله کردن، مدل سازی، بهینه سازی و استقرار مسئله انجام میشود که در ادامه به توضیح هر یک از این مراحل پرداخته میشود.
-
فرموله کردن مسئله
در این مرحله، یک مسئلهی تصمیم گیری، همراه با یک ساختار کلی از آن تعریف میشود. این ساختار کلی ممکن است خیلی دقیق نباشد اما وضعیت کلی مسئله را، که شامل فاکتورهای ورودی و خروجی و اهداف مسئله است، بیان میکند. شفاف سازی و ساختاردهی به مسئله، ممکن است برای بسیاری از مسایل بهینه سازی، کاری پیچیده باشد.
-
مدل سازی مسئله
در این مرحله یک مدل ریاضی کلی برای مسئله، ساخته میشود. مدلسازی ممکن است از مدلهای مشابه در پیشینهی موضوع کمک بگیرد. این گام موجب تجزیه مسئله به یک یا چند مدل بهینهسازی میگردد.
-
بهینه سازی مسئله
پس از مدل سازی مسئله، روال حل، یک راه حل خوب برای مسئله تولید میکند. این راهحل ممکن است بهینه یا تقریباً بهینه باشد. نکته ای که باید به آن توجه داشت این است که راه حل به دست آمده، راه حلی برای مدل طراحی شده است، نه برای مسئلهی واقعی. در هنگام فرموله کردن و مدلسازی ممکن است تغییراتی در مسئله واقعی به وجود آمده و مسئلهی جدید، نسبت به مسئلهی واقعی تفاوت زیادی داشته باشد.
-
استقرار مسئله
راه حل به دست آمده توسط تصمیم گیرنده بررسی میشود و در صورتی که قابل قبول باشد، مورد استفاده قرار میگیرد و در صورتی که راه حل قابل قبول نباشد، مدل یا الگوریتم بهینه سازی باید توسعه داده شده و فرآیند بهینه سازی تکرار گردد.
الگوریتم های بهینه سازی
هدف الگوریتم های بهینه سازی یا الگوریتمهای اکتشافی، ارائه راه حل در چارچوب یک زمان قابل قبول است که برای حل مسئله مناسب باشد، ممکن است الگوریتم اکتشافی، بهترین راه حل واقعی برای حل مسئله نبوده ولی میتواند راه حل نزدیک به بهترین باشد. الگوریتمهای اکتشافی با الگوریتم های بهینه سازی برای اصلاح کارایی الگوریتم میتوانند ترکیب شوند.
الگوریتم فرا اکتشافی ترکیبی است از الگوریتمهای اکتشافی که برای پیدا کردن، تولید یا انتخاب هر اکتشاف در هر مرحله طراحی میشود و راه حل خوبی برای مسائلی که مشکل بهینهسازی دارند ارائه میدهد. الگوریتمهای فرا اکتشافی برخی از فرضیات مسائل بهینه سازی که باید حل شود را در نظر میگیرد.
روشهای فرا ابتکاری برگرفته از طبیعت
الگوریتم های فراابتکاری الگوریتمهایی هستند که با الهام از طبیعت، فیزیک و انسان طراحی شدهاند و در حل بسیاری از مسایل بهینه سازی استفاده میشوند. معمولاً از الگوریتمهای فراابتکاری در ترکیب با سایر الگوریتمها، جهت رسیدن به جواب بهینه یا خروج از وضعیت جواب بهینه محلی استفاده میگردد.
در سالهای اخیر یکی از مهمترین و امیدبخشترین تحقیقات، «روشهای ابتکاری برگرفته از طبیعت» بوده است؛ این روشها شباهتهایی با سیستمهای اجتماعی و یا طبیعی دارند. کاربرد آنها برگرفته از روشهای ابتکاری پیوسته میباشد که در حل مسائل مشکل ترکیبی (NP-Hard) نتایج بسیار خوبی داشته است.
در ابتدا با تعریفی از طبیعت و طبیعی بودن روشها شروع میکنیم؛ روشها برگرفته از فیزیک، زیستشناسی و جامعهشناسی هستند و بهصورت زیر تشکیل شدهاند:
- استفاده از تعداد مشخصی از سعیها و کوششهای تکراری
- استفاده از یک یا چند عامل (نرون، خردهریز، کروموزوم، مورچه و غیره)
- عملیات (در حالت چند عاملی) با یک سازوکار همکاری ـ رقابت
- ایجاد روشهای خود تغییری و خود تبدیلی
طبیعت دارای دو تدبیر بزرگ میباشد:
- انتخاب پاداش برای خصوصیات فردی قوی و جزا برای فرد ضعیفتر؛
- جهش که معرفی اعضای تصادفی و امکان تولد فرد جدید را میسر میسازد.
بهطور کلی دو وضعیت وجود دارد که در روشهای ابتکاری برگرفته از طبیعت دیده میشود، یکی انتخاب و دیگری جهش. انتخاب ایدهای مبنا برای بهینهسازی و جهش ایدهای مبنا برای جستجوی پیوسته میباشد. از خصوصیات روشهای ابتکاری برگرفته از طبیعت، میتوان به موارد زیر اشاره کرد:
- پدیدهای حقیقی در طبیعت را مدلسازی میکنند.
- بدون قطع میباشند.
- اغلب بدون شرط ترکیبی همانند (عاملهای متعدد) را معرفی مینمایند.
- تطبیقپذیر هستند.
خصوصیات بالا باعث رفتاری معقول در جهت تأمین هوشمندی میشود. تعریف هوشمندی نیز عبارت است از قدرت حل مسائل مشکل؛ بنابراین هوشمندی به حل مناسب مسائل بهینهسازی ترکیبی منجر میشود.
الگوریتم های بهینه سازی معروف
در طی سال های اخیر الگوریتم های زیادی برای بهینه سازی مطرح شده است که بر پایه رفتارهای طبیعت و رفتارهای اجتماعی عمل میکنند. این الگوریتمها در مراحل ابتدایی بهصورت تصادفی اقدام به تولید جواب میکنند و در مراحل بعدی با تکیه بر فرآیندهای طبیعی در رسیدن به جوابهای بهتری را تولید میکنند. در ادامه برخی از انواع این الگوریتمها معرفی شده است.
۱- الگوریتم ژنتیک
از محبوبترین الگوریتم های بهینه سازی، الگوریتم ژنتیک است این الگوریتم روشی برای بهینه سازی با جستجوی وسیع است و کارکرد آن بر اصول انتخاب طبیعی حاکم بر ژنتیک طبیعی استوار است. ایده این الگوریتم از نظریه تکامل داروین الهام گرفته شده است. اگرچه این الگوریتم روشی برای جستجوی تصادفی است، ویژگیهای خاص آن موجب میشود که نتوان آن را یک جستجوی تصادفی ساده قلمداد کرد. این الگوریتم جزو الگوریتم های تکاملی است.
در آغاز الگوریتم، تعدادی از افراد بهعنوان جمعیت اولیه و معمولاً بهصورت تصادفی ساختهشده و معیاری از کیفیت به نام تابع هدف یا برازندگی برای تک تک آنها ارزیابی میشود. اگر شرط رسیدن به جواب برقرار نباشد (به جواب بهینه نرسیده باشیم)، نسل بعدی با انتخاب والدین بر اساس میزان برازندگی آنها تولید میشود.
در هر نسل، بهترینهای آن نسل انتخاب میشوند و پس از زاد و ولد، مجموعه جدیدی از فرزندان را تولید میکنند. کروموزومهای موجود در جمعیت بر اساس مقدار برازندگی بهعنوان والد انتخاب میشوند. سپس تولیدمثل، بین جفت کروموزوم ها انجام میگیرد تا فرزندان ایجاد شوند و فرزندان با احتمالی ثابت دچار جهش میشوند. سپس میزان برازندگی فرزندان جدید محاسبهشده و جمعیت جدید، از جایگزینی فرزندان با والدین ایجاد میشود و جمعیت ایجادشده جدید بهعنوان نسل بعدی شناخته میشود و فرآیند تکرار میشود.
در این فرآیند، افراد مناسبتر با احتمال بیشتری در نسلهای بعد باقی خواهند ماند و این فرآیند تا برقرار شدن شرط خاتمه تکرار میشود. الگوریتم زمانی پایان خواهد یافت که بهبودی بر روی جوابها صورت نگیرد و یا اینکه تعداد مشخصی نسل تولید شود.
۲- الگوریتم بهینه سازی ازدحام ذرات یا PSO
الگوریتم بهینه سازی PSO رفتارهای ازدحام پرنده را شبیه سازی میکند. تصور کنید سناریوی زیر: گروهی از پرندگان بهطور تصادفی در یک منطقه در معرض غذا قرار میگیرند. در منطقه مورد جستجو تنها یک قطعه غذا وجود دارد. همه پرندگان نمیدانند کجا غذا است. اما آنها میدانند که چقدر مواد غذایی در هر تکرار است. بنابراین بهترین استراتژی برای یافتن غذا چیست؟ راه حل این است که دنبال پرندای که نزدیکتر به غذا است را دنبال کنید.
طراحان PSO از این سناریو اقتباس کردند و از آن برای حل مشکلات بهینه سازی استفاده کردند. در PSO، هر یک از راه حل یک “پرنده” در فضای جستجو است. ما آن را “ذره” مینامیم. تمام ذرات دارای مقادیر تناسب هستند که توسط تابع تناسب برای بهینه سازی ارزیابی میشوند و دارای سرعتهایی هستند که پرواز ذرات را هدایت میکنند. ذرات از طریق فضای مشکل با ذرات بهینه مطلوب جریان مییابند.
در راستای شرح و بسط بیشتر الگوریتم PSO و بررسی موارد مهم زیرشاخه آن مجموعه آموزش ها و کدهای این الگوریتم در دسترس شما عزیزان قرار داده شده است:
۳- الگوریتم کرم شب تاب Firefly Algorithm
الگوریتم های بهینه سازی FA با مدلسازی رفتار مجموعهای از کرمهای شب تاب و تخصیص مقداری مرتبط با برازندگی مکان هر کرم شب تاب بهعنوان مدلی برای میزان رنگدانههای شب تاب و به روز کردن مکان کرمها در تکرارهای متوالی الگوریتم به جستجوی جواب بهینه مسئله میپردازد. در واقع دو مرحله اصلی الگوریتم در هر تکرار فاز به روز کردن رنگدانه و فاز حرکت هستند. کرمهای شب تاب به سمت کرمهای شب تاب دیگر با رنگدانه بیشتر که در همسایگی آنها باشند حرکت میکنند. به این ترتیب طی تکرارهای متوالی مجموعه به سمت جواب بهتر متمایل میگردد.
توضیح کامل این الگوریتم را میتوانید در همین سایت از مقالهای کامل تحت عنوان الگوریتم کرم شب تاب Firefly Algorithm مطالعه فرمایید. جهت ارائه درباره الگوریتم کرم شب تاب؛ پاورپوینت آماده در این زمینه را مطالعه نمایید.
۴- الگوریتم کلونی مورچگان
الگوریتم کلونی مورچگان یا الگوریتم بهینه سازی کلونی مورچه Ant Colony Optimization الهام گرفته شده از مطالعات و مشاهدات روی کلونی مورچه هاست. این مطالعات نشان داده که مورچهها حشراتی اجتماعی هستند که در کلونیها زندگی میکنند و رفتار آنها بیشتر در جهت بقاء کلونی است تا درجهت بقاء یک جزء از آن. یکی از مهمترین و جالبترین رفتار مورچهها، رفتار آنها برای یافتن غذا است و به ویژه چگونگی پیدا کردن کوتاهترین مسیر میان منابع غذایی و آشیانه. توضیح کامل این الگوریتم را میتوانید در همین سایت از مقالهای کامل تحت عنوان الگوریتم کلونی مورچگان مطالعه فرمایید.
۵- الگوریتم زنبور عسل از جمله الگوریتم های بهینه سازی
الگوریتم کلونی زنبور عسل مصنوعی (Artificial bee colony algorithm) یک الگوریتم بهینه سازی بر اساس هوش جمعی و رفتار هوشمندانه جمعیت زنبور عسل است. الگوریتم کلونی زنبور عسل مصنوعی یا به اختصار ABC، یک راهکار بهینهسازی است که رفتار یک کلونی زنبور عسل را شبیهسازی میکند و برای اولین بار در سال ۲۰۰۵ توسط Dervis Karaboga، برای بهینهسازی ارائه شد. توضیح بیشتر این الگوریتم را میتوانید در همین سایت از فایل آماده استفاده نمایید.
۶- الگوریتم رقابت استعماری
الگوریتم رقابت استعماری (Imperialist Competitive Algorithm ) یا ICA روشی در حوزه محاسبات تکاملی است که به یافتن پاسخ بهینه مسائل مختلف بهینهسازی میپردازد. این الگوریتم با مدلسازی ریاضی فرآیند تکامل اجتماعی – سیاسی، الگوریتمی برای حل مسائل ریاضی بهینهسازی ارائه میدهد. پایههای اصلی این الگوریتم را سیاست همسان سازی (Assimilation)، رقابت استعماری (Imperialistic Competition) و انقلاب (Revolution) تشکیل میدهند.
این الگوریتم با تقلید از روند تکامل اجتماعی، اقتصادی و سیاسی کشورها و با مدلسازی ریاضی بخشهایی از این فرآیند، عملگرهایی را در قالب منظم بهصورت الگوریتم ارائه میدهد که میتوانند به حل مسائل پیچیده بهینهسازی کمک کنند. توضیح این الگوریتم را میتوانید در همین سایت از مقالهای کامل تحت عنوان الگوریتم رقابت استعماری مطالعه فرمایید.
۷- الگوریتم تکاملی تفاضلی نمونهای از الگوریتم های بهینه سازی
الگوریتم تکاملی تفاضلی یا الگوریتم DE یک الگوریتم تکاملی است که اولین بار در سال ۱۹۹۵ توسط Rainer Storn و Kenneth Price معرفی شد. این محققان در مقاله ای تحت عنوان Differential Evolution a Practical Approach to Global Optimization نشان دادند که این الگوریتم توانایی خوبی در بهینه سازی توابع غیرخطی مشتق ناپذیر دارد که به عنوان روشی قدرتمند و سریع برای مسائل بهینه سازی در فضاهای پیوسته معرفی شده است. الگوریتم DE جهت غلبه بر عیب اصلی الگوریتم ژنتیک، یعنی نبود جستجوی محلی دراین الگوریتم ارائه شده است، تفاوت اصلی بین الگوریتمهای ژنتیک و الگوریتم DE در عملگر انتخاب Selection Operators است.
۸- الگوریتم بهینه سازی وال ها یا نهنگ WOA
الگوریتم بهینه سازی وال ها یا نهنگ WOA یکی الگوریتم های بهینه سازی الهام گرفته شده از طبیعت و مبتنی بر جمعیت است که از رفتار شکار نوع خاصی از والها یا نهنگها که به نهنگ های گوژپشت معروف هستند الهام گرفته شده است. این الگوریتم توسط سید علی میرجلیلی (Seyedali Mirjalili) در سال ۲۰۱۶ در مقاله The Whale Optimization Algorithm در ژورنال Advances in Engineering Software پایگاه علمی Elsevier ارائه شده است.
۹- الگوریتم شعله پروانه MFO
الگوریتم شعله پروانه یا الگوریتم Moth-flame optimization algorithm که به اختصار الگوریتم MFO نیز نامیده میشود یکی از الگوریتم های بهینه سازی و فراابتکاری است که از رفتار پروانهها در کنار شعله یا آتش روشی برای حل مسئله پیدا میکند. این الگوریتم در سال ۲۰۱۵ توسط سید علی میر جلیلی در مقالهای تحت عنوان Moth-flame optimization algorithm: A novel nature-inspired heuristic paradigm در ژورنال Knowledge-Based Systems مطرح شد.
الگوریتم شعله پروانه با نامهای دیگری همچون الگوریتم پروانه آتش، الگوریتم MFO، الگوریتم پروانه شعله نیز شناخته میشود. این الگوریتم یک الگوی اکتشافی نوین الهام گرفته از طبیعت و رفتار پروانهها و علاقه مندی آنها به شعله یا آتش است.
۱۰- الگوریتم بهینه سازی مبتنی بر آموزش و یادگیری TLBO
الگوریتم بهینه سازی TLBO یا بهینه سازی مبتنی بر یادگیری و آموزش یک روش بهینه سازی و از جمله الگوریتم های بهینه سازی مهم میباشد. که برای اولین بار توسط آقای Rao و همکاران در ژورنال معروف Computer-Aided Design از انتشارات ELSEVIER در مقالهای با عنوان Teaching–learning-based optimization: A novel method for constrained mechanical design optimization problems معرفی شد.
الگوریتم بهینه سازی TLBO نیز مشابه سایر روشهای بهینه سازی موجود یک الگوریتم برگرفته از طبیعت و مبتنی بر جمعیت است و بر اساس تاثیر یک معلم بر روی یادگیری در کلاس درس کار میکند. این الگوریتم از یک جمعیتی از جوابها برای دستیابی به جواب کلی استفاده مینماید. جمعیت بهعنوان گروهی از یادگیران یا دانش آموزان یک کلاس در نظر گرفته میشوند. یک معلم تلاش میکند تا با آموزش به دانش آموزان، سطح دانش کلاس را افزایش دهد و دانش آموز به نمره یا رتبه خوبی مطابق با توانایی خودش دست یابد. در حقیقت یک معلم خوب کسی است که دانش آموز خود را به سطح دانش خود یا نزدیک به خود برساند.
معلم یک شخص با دانش بالا در جامعه بوده که علم خود را با دانش آموزان خود تقسیم میکنند، به طوری که بهترین جواب ( بهترین عضو جمعیت ) در همان تکرار بهعنوان معلم عمل میکند. اما لازم است به این نکته اشاره شود که دانش آموزان مطابق با کیفیت آموزش ارائه شده توسط معلم و وضعیت شاگردان حاضر در کلاس دانش کسب میکنند. علاوه بر این دانش آموزان از تعامل متقابل بین خودشان که به وضعیتشان کمک میکند آموزش میبینند.
۱۱- الگوریتم بهینه سازی گرگ خاکستری GWO
الگوریتم گرگ خاکستری Grey Wolf Optimizer یا به اختصار GWO توسط سید علی میرجلیلی (Seyedali Mirjalili) در سال ۲۰۱۴ در مقاله Grey Wolf Optimizer در ژورنال Advances in Engineering Software پایگاه علمی Elsevier ارائه شده است. در پکیج آموزشی منتشر شده، شما میتوانید تئوری و مفاهیم مرتبط با الگوریتم گرگ خاکستری را بهصورت فیلم آموزشی بطور کامل یاد بگیرید. در این فیلم آموزشی پس از بیان مفاهیم و مدل سازی حل مسئله، الگوریتم در زبان پایتون پیاده سازی شده است. برای تهیه این مجموعه میتوانید روی لینک زیر کلیک کرده و پس از خریداری آن را دانلود کنید.
الگوریتم گرگ خاکستری GWO یک الگوریتم متاهیورستیک است که از ساختار سلسله مراتبی hieratical و رفتار اجتماعی گرگهای خاکستری در هنگام شکار کردن الهام گرفته است. بهینه سازی با استفاده از گرگهای alpha, beta و delta انجام میشود. یک گرگ بهعنوان alpha هدایت کننده اصلی الگوریتم فرض میشود و یک گرگ beta و delta نیز مشارکت دارند و بقیه گرگها بهعنوان دنبال کننده آنها محسوب میشوند.
۱۲- الگوریتم شاهین هریس HHO
الگوریتم شاهین هریس یا Harris Hawks Optimizer که به اختصار HHO نامیده میشود در سال ۲۰۱۹ توسط علی اصغر حیدری در ژورنال Future Generation Computer Systems از الزویر ابداع و چاپ شده است. الگوریتم HHO یک الگوریتم بهینهسازی مبتنی بر جمعیت و الهامگرفته از طبیعت است که از رفتار مشارکتی و سبک تعقیب و گریز شاهینهای هریس در غافلگیری طعمه نشأت می گیرد.
در این رفتار و استراتژی هوشمند، چندین شاهین با همکاری یکدیگر یک طعمه را از جهات مختلف مورد حمله قرار می دهند تا آن را غافلگیر کنند. از این رفتار شاهین های هریس برای به دام انداختن طعمه برای حل مسائل بهینه سازی استفاده شده است. برای درک بیشتر این الگوریتم بهینه سازی می توانید مقاله الگوریتم شاهین هریس — آموزش رایگان ۰ تا ۱۰۰ الگوریتم HHO ما را مطالعه کنید.
۱۳- الگوریتم کلونی پنگوئن های امپراتور از الگوریتم های بهینه سازی
الگوریتم پنگوئن های امپراتور یا Emperor Penguins Colony از جمله کاربردی ترین الگوریتم های فراابتکاری بوده و با نام اختصاری الگوریتم EPC بهعنوان یک الگوریتم بهینه سازی محبوب شناخته شده است. این الگوریتم در سال ۲۰۱۸ توسط Sasan Harifi ابداع و در ژورنال Evolutionary Intelligence پایگاه علمی Springer به چاپ رسیده است.
الگوریتم متاهیوریستیک پنگوئن های امپراتور، با الهام از طبیعت و با استفاده از دو فاکتور گرمای بدن پنگوئن ها و نحوه حرکت شان در کلونی مربوط به هر کدام، یک یا چند راهحل مناسب برای مسئله بهینهسازی، ارائه میدهد. برای درک بیشتر این الگوریتم بهینه سازی میتوانید مقاله الگوریتم پنگوئن های امپراتور — آموزش رایگان ۰ تا ۱۰۰ الگوریتم EPC ما را مطالعه کنید.
۱۴- الگوریتم بهینه سازی شیر LOA
یکی دیگر از الگوریتم های بهینه سازی الگوریتم شیر است. الگوریتم بهینه سازی شیر یا Lion Optimization Algorithm با نام اختصاری LOA از جمله الگوریتم های فراابتکاری مبتنی بر طبیعت است که از سبک زندگی ویژه شیرها و نحوه عملکرد آن ها در قلمرو خود، الهام گرفته شده است. در الگوریتم شیر، یک جمعیت اولیه توسط مجموعهای از راه حلهای تولید شده تصادفی، به نام شیرها تشکیل می شود.
برخی از شیرهای جمعیت اولیه به عنوان شیرهای عشایری انتخاب شده و جمعیت بقیه شیرهای ساکن به طور تصادفی به زیر مجموعههای P یا Pride تقسیم بندی میشوند. برای هر شیر، بهترین راه حل به دست آمده در تکرارهای بعدی، بهترین موقعیت بازدید نامیده شده و در طی فرآیند بهینه سازی، بهصورت تدریجی بهروزرسانی میگردند. برای آشنایی بیشتر با این الگوریتم فایل آماده مرتبط و موجود در سایت پی استور را مطالعه نمایید.
۱۵- الگوریتم جستجوی فراکتال تصادفی SFS
الگوریتم جستجوی فرکتال در سال ۲۰۱۴ توسط آقای Hamid Salimi در ژورنال معتبر Knowledge-Based Systems از انتشارات الزویر Elsevier معرفی شد. عنوان مقاله ارائه شده Stochastic Fractal Search: A powerful metaheuristic algorithm می باشد. در این مقاله با الهام از پدیده طبیعی رشد (growth)، الگوریتم فراابتکاری جدیدی ارائه شده است که از مفهومی ریاضی به نام فراکتال استفاده می کند.
با استفاده از ویژگی انتشار (Diffusion) که به طور منظم در فراکتالهای تصادفی دیده میشود، ذرات در الگوریتم ارائه شده، فضای جستجو را کارآمدتر جستجو میکنند. برای اطلاعات بیشتر می توانید مقاله کامل الگوریتم جستجوی فراکتال تصادفی — Stochastic Fractal Search را از همین مجله مطالعه کنید. اگر این مطلب برای شما مفید بوده است، مباحث زیر نیز به شما پیشنهاد میشوند:
۱۶- الگوریتم بهینه سازی شیر مورچه ALO
الگوریتم بهینه سازی شیر مورچه یا The Ant Lion Optimizer از سری الگوریتم های فرا ابتکاری یا فرااکتشافی، برگرفته از طبیعت یا بر پایه الگوریتم های NI بوده و در طی فرآیند بهینه سازی (Optimization)، مکانیسم شکار مورچه ها را در طبیعت تقلید میکند. این الگوریتم متاهیوریستیک (Metaheuristic algorithm)، در طی ۶ مرحله اصلی شکار طعمه، مانند راه رفتن تصادفی مورچهها، ساخت تلهها، به دام افتادن مورچهها در تلهها، شکار طعمهها، ساخت مجدد تلهها و نخبه گرایی، پیاده سازی میشود. برای درک کامل این الگوریتم می توانید پاورپوینت آماده موجود در سایت پی استور را مطالعه کنید.
۱۷- الگوریتم ساخت اهرام جیزه GPC
الگوریتم ساخت اهرام جیزه یا Giza Pyramids Construction یکی از کاربردی ترین الگوریتم های فراابتکاری (Meta Heuristic Algorithms) بوده به عنوان یک الگوریتم بهینه سازی (Optimization Algorithms) محبوب واقع شده است. الگوریتم GPC با الهام از باستان، دارای ویژگی های یک الگوریتم فراابتکاری خوب برای مقابله با بسیاری از مسائل است. این الگوریتم در سال ۲۰۲۰ توسط Sasan Harifi ابداع و در ژورنال Evolutionary Intelligence پایگاه علمی Springer به چاپ رسیده است.
۱۸- الگوریتم سنجاب پرنده SSA
الگوریتم سنجاب پرنده Squirrel search algorithm به اختصار SSA بهعنوان یکی از الگوریتم های بهینه سازی رفتار جستجوی پویای سنجاب های پرنده و روش حرکت کارآمد آنها یعنی سر خوردن را تقلید می کند. سر خوردن یک مکانیسم موثر برای پیمودن مسافت های طولانی است که این پستانداران کوچک از آن برای جستجوی غذا و بقای خود از آن استفاده میکنند. در این الگوریتم بهصورت ریاضی این رفتار برای تحقق فرآیند بهینه سازی مدل میشود. مقاله کامل این الگوریتم در الگوریتم سنجاب پرنده — Squirrel Search Algorithm قابل مطالعه است.
مقایسه الگوریتم های بهینه سازی
شاید مهم ترین سوال و دغدغه اکثر محققان در استفاده از الگوریتم های بهینه سازی و مخصوصاً الگوریتم های فرا ابتکاری یا Metaheuristic، انتخاب یک الگوریتم مناسب برای حل مسئله است. بهطور قاطع نمیتوان گفت برای حل یک مسئله کدام الگوریتم بهینه سازی یا متاهیورستیک مناسب است و فقط با مقایسه نتایج میتوان ادعا کرد کدام الگوریتم روش بهتری را ارائه میکند.
توابع زیادی برای تست عملکرد الگوریتم های بهینه سازی وجود دارد و برای اجرای الگوریتم بهینه سازی روی مسئله مورد نظر تابع هزینه یا Cost Function آن تغییر خواهد کرد پس با آزمودن هر کدام از این الگوریتمها بر روی مسئله میتوان در مورد عملکرد یک الگوریتم اظهار نظر کرد.
نتیجه گیری
امروزه استفاده از الگوریتم های بهینه سازی هوشمند برای حل بسیاری از مسائل علوم مهندسی و سایر رشته ها مورد استفاده مکرر قرار میگیرد. خاصیت این نوع الگوریتمهای در رسیدن به جوابهای بهینه سبب شده تا تحقیقات زیادی در این حوزه انجام پذیرد. از اواخر قرن بیستم تا الان الگوریتمهای متنوعی در این حوزه ابداع و معرفی شدهاند و هر کدام در نوبه خود منجر به حل بسیاری از مسائل و مشکلات پیش رو شده است.
بایستی در نظر داشت الگوریتم بهینه سازی هوشمند، بهترین راه حل واقعی برای حل مسئله نبوده ولی میتواند راه حل نزدیک به بهترین باشد بنابراین برای انتخاب یک روش مناسب برای حل مسئله بایستی تمامی مقایسهها و جوانب بررسی شود و سپس اقدام به بهینه سازی کرد.