آموزش بهینه‌سازی در متلب؛ تابع هدف و انتخاب حل‌گر

تعریف تابع هدف، متغیر تصمیم و محدودیت‌ها در متلب؛ مثال fminbnd و آشنایی با معیارهای انتخاب و ارزیابی حل‌گر بهینه‌سازی.

راهنمای آموزشی دیجی‌استاد · حدود 3 دقیقه مطالعه · بررسی منابع:

یک مسئله کوچک، سه تصمیم مهم

فرض کن می‌خواهی عددی بین صفر و پنج انتخاب کنی تا مقدار تابع (x−۳)² کمینه شود. متغیر تصمیم x است، تابع هدف فاصله مربعی از سه، و بازه مجاز صفر تا پنج است. در مسائل واقعی، همین سه جزء می‌توانند تعداد زیادی پارامتر و قید داشته باشند.

مثال ساده با fminbnd

objective = @(x) (x - 3).^2;
[xBest, fBest] = fminbnd(objective, 0, 5);
disp([xBest fBest]);

برای این مثال می‌دانیم نقطه کمینه در x=۳ است و مقدار تابع صفر می‌شود. همین پاسخ دستی، یک کنترل ساده برای کد است. fminbnd برای کمینه‌سازی تک‌متغیره در یک بازه محدود به کار می‌رود؛ نتیجه آن را نباید به معنی یافتن کمینه سراسری هر تابع دلخواه دانست.

الگوریتم ژنتیک چه زمانی مطرح می‌شود؟

GA یک روش جست‌وجوی جمعیتی و تصادفی است. برای برخی مسائل پیچیده یا نامشتق‌پذیر گزینه قابل بررسی است، اما انتخاب خودکار برای هر مسئله نیست. اگر تابع ساده و هموار باشد، ممکن است حل‌گر دیگری با هزینه کمتر نتیجه مناسب بدهد. برای استفاده از ga معمولاً به Global Optimization Toolbox نیاز داری.

پیش از اعلام بهترین جواب

  1. بررسی کن جواب همه قیود و حدود را رعایت می‌کند.
  2. مقدار تابع هدف را مستقلاً در نقطه به‌دست‌آمده حساب کن.
  3. برای روش تصادفی، چند اجرای مستقل را مقایسه کن.
  4. هزینه محاسباتی و حساسیت نتیجه به تنظیمات را ثبت کن.

بهینه‌سازی را به مسئله خودت وصل کن

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

دوره مرتبط: آموزش متلب از مقدماتی تا پیشرفته

همه راهنماها ←