چکیده آموزش
در ریاضیات و علوم کامپیوتر مسائل بهینه سازی بخش مهمی از مسائل را تشکیل می دهند که در آن ها هدف یافتن بهترین و دقیق ترین پاسخ از میان پاسخ های متفاوت است. در واقع در یک مساله بهینه سازی هدف محاسبه مقادیر یک سری متغیر است به نحوی که پاسخ نهایی، بهترین مقدار باشد.
الگوریتم های مورد استفاده برای مسائل بهینه سازی به طور عمده به دو دسته الگوریتم های دقیق و تقریبی تقسیم می شوند، الگوریتم های دقیق، بهترین و دقیق ترین پاسخ را برای مساله پیدا می کنند، اما در مورد مسائل NP-hardness از لحاظ پیچیدگی، کارایی زیادی ندارند و با بزرگ شدن ابعاد مساله، زمان اجرا به صورت نمایی افزایش می یابد. از جمله این روش ها می توان روش شاخه و حد را نام برد.
الگوریتم های تقریبی قادر به پیدا نمودن پاسخی نزدیک به بهینه هستند که به نوعی یک توازن بین پیچیدگی اجرایی و مرغوبیت پاسخ به وجود می آورند، البته در بعضی حوزه ها استفاده از روش های کلاسیک و دقیق بسیار سخت است و یا اصلا میسر نیست. با این تفاسیر استفاده از الگوریتم های تقریبی مناسب خواهد بود.
الگوریتم بهینه سازی فاخته (Cuckoo) یکی از الگوریتم های فراابتکاری مبتنی بر جمعیت و بر مبنای رفتار موجودات است. این الگوریتم بر اساس نحوه تخم گذاری و تولد پرنده فاخته عمل می کند و در مسائل بهینه سازی مختلفی در حوزه: پردازش تصویر، یادگیری ماشین، مهندسی کنترل و… به کار می رود و دارای توانایی بالایی در فرار از بهینه های محلی دارد.
در این فرادرس، جنبه های مختلف الگوریتم فاخته را از نظر تئوری بررسی می کنیم و بعد از کدنویسی الگوریتم در MATLAB، کارایی آن را بر روی چندین تابع محک مهم بررسی می کنیم. دانشجویان در حوزه های مختلف مهندسی و انسانی به خصوص مدیریت و اقتصاد می توانند از این الگوریتم در تحقیقات خود به بهترین نحو استفاده کنند.
فهرست سرفصل ها و رئوس مطالب مطرح شده در این مجموعه آموزشی، در ادامه آمده است:
- درس یکم: مقدمه ای بر بهینه سازی
- تعریف مساله بهینه سازی
- دسته بندی مسائل بهینه سازی
- دسته بندی الگوریتم های بهینه سازی
- ساز و کار و ساختار الگوریتم های فراابتکاری
- درس دوم: الگوریتم فاخته
- مبانی تئوری الگوریتم بهینه سازی فاخته
- پیاده سازی الگوریتم در MATLAB
- اجرای الگوریتم بر روی چندین تابع محک مهم
نظر شما در مورد این فرادرس چیست؟