روش برنامه ریزی غیرخطی (Nonlinear Programming Methods)، در ریاضیات (Mathematics)
انواع روش های عددی (Numerical Methods) را در آموزش زیر شرح دادیم :
روش برنامه ریزی غیرخطی (Nonlinear Programming Methods) :
بهینه سازی توابع غیرخطی با قیود خطی یا غیرخطی
توضیح ساده: برنامه ریزی غیرخطی (NLP) به مسائل بهینه سازی گفته می شود که در آنها تابع هدف یا قیود (یا هر دو) غیرخطی هستند. این مسائل بسیار عمومی تر از LP هستند و در علوم و مهندسی فراوان یافت می شوند. روش های حل NLP شامل روش های گرادیان مبنا (مانند SQP)، روش های تابع جریمه (Penalty Methods)، روش های مانع (Barrier Methods)، و روش های فراابتکاری (مانند GA, PSO) می شوند. حل مسائل NLP به دلیل وجود چندین بهینه محلی، چالش برانگیز است.
شرح گام به گام: یک روش مهم برای NLP با قیود، برنامه ریزی درجه دوم متوالی (Sequential Quadratic Programming - SQP) است:
۱. در هر تکرار، یک تقریب درجه دوم از تابع هدف و یک تقریب خطی از قیود بسازید.
۲. یک مسئله برنامه ریزی درجه دوم (QP) را حل کنید تا جهت جستجو بدست آید.
۳. با جستجوی خطی، اندازه گام مناسب را پیدا کنید.
۴. نقطه جدید را به روز کنید و ماتریس هسین لاگرانژین را تقریب بزنید (با روش شبه-نیوتن).
۵. تا همگرایی تکرار کنید.
روش تابع جریمه: مسئله مقید را با اضافه کردن یک جمله جریمه به تابع هدف به یک مسئله نامقید تبدیل می کند. با افزایش پارامتر جریمه، جواب به سمت جواب مقید میل می کند.
مثال عددی: طراحی بهینه یک مخزن تحت فشار با هدف کمینه کردن وزن و با قیود تنش. این یک مسئله NLP با توابع هدف و قیود غیرخطی است. روش SQP می تواند آن را به خوبی حل کند.
مزایا: قابلیت مدل سازی طیف وسیعی از مسائل واقعی.
معایب: وجود چندین بهینه محلی، حساسیت به حدس اولیه، هزینه محاسباتی بالا.
کاربردها: در طراحی مهندسی، در اقتصاد، در کنترل بهینه، در یادگیری ماشین، در شیمی.
نکته: نرم افزارهایی مانند KNITRO، IPOPT، و fmincon در MATLAB برای حل NLP استفاده می شوند.