برنامه ریزی غیرخطی (Nonlinear Programming - NLP)، در ریاضیات (Mathematics)
انواع روش های بهینه سازی (Optimization Methods) را در آموزش زیر شرح دادیم :
برنامه ریزی غیرخطی (Nonlinear Programming - NLP) :
📌 تعریف و گستره
برنامه ریزی غیرخطی (Nonlinear Programming - NLP) به دسته ای از مسائل بهینه سازی اطلاق می شود که در آنها یا تابع هدف غیرخطی است، یا حداقل یکی از قیود غیرخطی است، یا هر دو. این مسائل بسیار عمومی تر از برنامه ریزی خطی هستند و حل آنها معمولا دشوارتر است.
\[ \text{Minimize (or Maximize)} \quad f(x) \] \[ \text{Subject to:} \quad g_i(x) \leq 0, \quad i = 1, \ldots, m \] \[ \quad h_j(x) = 0, \quad j = 1, \ldots, p \] \[ \quad x \in \mathbb{R}^n \]که در آن
\[ f \],
\[ g_i \], و
\[ h_j \]توابعی غیرخطی هستند.
📐 دسته بندی مسائل NLP
محدب (Convex): اگر تابع هدف محدب و قیود ناحیه محدب تعریف کنند. این مسائل یک بهینه سراسری دارند.
غیرمحدب (Nonconvex): ممکن است چندین بهینه محلی داشته باشند.
مشتق پذیر (Differentiable): توابع مشتق پذیر هستند (روش های مبتنی بر گرادیان).
غیرمشتق پذیر (Nondifferentiable): توابع صاف نیستند (روش های بدون مشتق).
مقیاس بزرگ (Large-Scale): تعداد متغیرها بسیار زیاد است.
🔬 روش های حل NLP
روش های مختلفی برای حل NLP وجود دارد که برخی از آنها عبارتند از:
روش های مبتنی بر گرادیان: مانند روش تندترین کاهش، روش نیوتن، روش های شبه-نیوتن (BFGS)، روش گرادیان مزدوج.
روش های بدون قید: برای مسائل بدون قید، روش های جستجوی خطی و ناحیه اطمینان.
روش های با قید: مانند روش ضرایب لاگرانژ، روش های جریمه و مانع، روش SQP (Sequential Quadratic Programming).
روش های سراسری: مانند الگوریتم های تکاملی، شبیه سازی تبرید، شاخه و کران.
📦 مثال های کاربردی
طراحی بهینه سازه ها: کمینه سازی وزن یک سازه با قیود تنش و تغییر شکل.
بهینه سازی پرتفوی (Portfolio Optimization): مدل مارکویتز که واریانس را کمینه می کند (تابع هدف درجه دوم).
برآورد پارامتر در مدل های آماری: کمینه سازی مجموع مربعات خطا (رگرسیون غیرخطی).
کنترل بهینه: یافتن مسیر کنترلی برای بهینه سازی یک معیار عملکرد.
یادگیری ماشین: آموزش شبکه های عصبی (کمینه سازی تابع هزینه).
🧩 شرایط بهینگی KKT
برای مسائل NLP با قیود، شرایط Karush-Kuhn-Tucker (KKT) شرایط لازم برای بهینگی موضعی هستند (اگر شرایط regularity برقرار باشد). این شرایط شامل مشتق گیری از لاگرانژین، شدنی بودن، و شرایط مکمل هستند.
\[ \nabla f(x^*) + \sum_{i=1}^m \lambda_i \nabla g_i(x^*) + \sum_{j=1}^p \mu_j \nabla h_j(x^*) = 0 \] \[ g_i(x^*) \leq 0, \quad h_j(x^*) = 0 \] \[ \lambda_i \geq 0, \quad \lambda_i g_i(x^*) = 0 \quad \text{(Complementary Slackness)} \]📌 خلاصه: برنامه ریزی غیرخطی حوزه بسیار وسیعی است و روش های متنوعی برای حل آن وجود دارد که انتخاب روش مناسب به ویژگی های مسئله (ابعاد، محدب بودن، مشتق پذیری، دقت مورد نیاز) بستگی دارد.