در ریاضیات، علوم کامپیوتر و اقتصاد، **بهینه‌سازی** یا **برنامه‌ریزی ریاضی**، به انتخاب عناصر بهینه از یک مجموعه از آلترناتیوهای قابل‌دستیابی می‌پردازد. به عبارت بهتر، به دنبال **یافتن بهترین مقدار قابل دستیابی** از یک تابع هدف تعریف شده بر یک دامنه معین از مقادیر است. در ساده‌ترین حالت، هدف، حداقل یا حداکثرسازی یک تابع حقیقی، با انتخاب نظام‌مند مقادیر حقیقی یا اعداد صحیح از یک مجموعه از مقادیر ممکن است. ساده‌ترین مثال، استفاده از یک تابع هدف حقیقی مقدار است.

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

تاریخچه
-------

اولین تکنیک بهینه‌سازی را کارل فردریش گاوس ابداع کرد. اما عمده اصطلاحات مورد استفاده در این حوزه به دوره معاصر برمی‌گردد. اصطلاح برنامه‌ریزی خطی را نخستین بار جرج دانتزیگ در ۱۹۴۰ میلادی به‌کاربرد. اصطلاح برنامه‌ریزی در حوزه بهینه‌سازی به معنای برنامه‌نویسی برای کامپیوتر نیست، با این همه، رایانه‌ها، امروزه به شکل گسترده‌ای در حل مسائل ریاضی مورد استفاده قرار می‌گیرند. ریشه این اصطلاح به کاربرد واژه «برنامه» در ارتش ایالات متحده برمی‌گردد که در اشاره به طرح‌های لجستیک و آموزشی به کار می‌رفت که دانتزیگ آن را مورد مطالعه قرار می‌داد. دیگر ریاضی‌دانان مهم در زمینه بهینه‌سازی عبارتند از:

|  |  |
| --- | --- |
| * ریچارد بلمن
* ویلیام کاروش
* ژوزف لویی لاگرانژ
* رونالد هوارد
* لئونید کانترویچ
* لو پونتریاگین
* برنارد کوپمن
* آرکادی نمیروفسکی
 | * جان فون نویمان
* هارولد کان
* آلبرت تاکر
* هوانگ توی
* نارندرا کارمارکار
* لئونید خاچیان
* نائوم شر
* یوری نستروف
 |

شاخه‌های اصلی
-------------

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

در برخی زیرشاخه‌ها، تکنیک‌ها اصولا برای بهینه‌سازی پویا، یعنی بهینه‌سازی در طول زمان به کار می‌رود:

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

انواع مسائل بهینه‌سازی و تقسیم بندی آن‌ها
-----------------------------------------

در ریاضیات، مسئله بهینه‌سازی، مسئله یافتن بهترین جواب از تمام جواب‌های ممکن است. مسئله بهینه‌سازی A چهارتایی {\displaystyle (I,f,m,g)} است که در آن

* I نشان‌دهنده یک مجموعه است.
* f تابعی است که به هر عضو معلوم {\displaystyle x\in I} مجموعه‌ای از جواب‌های ممکن نظیر می‌کند
* عبارت ({\displaystyle m(x,y} برای هر {\displaystyle x\in I}، و هر جواب ممکن y برای x نشان‌دهنده اندازه y است، که معمولاً یک عدد حقیقی مثبت است.
* g تابع هدف است که حاوی کمینه‌سازی یا بیشینه‌سازی است.

هدف یافتن جواب بهینه برای x است، یعنی یک جواب ممکن چون y که

{\displaystyle m(x,y)=g\{m(x,y')\mid y'\in f(x)\}.}
برای هر مسئله بهینه‌سازی، یک مسئله تصمیم متناظر وجود دارد که در پی یافتن جوابی ممکن برای یک اندازه خاص {\displaystyle m\_{0}} است.
در الگوریتم‌های تخمین، الگوریتم‌ها برای یافتن جواب‌های نزدیک-بهینه برای مسائل پیچیده طراحی می‌شود. گرچه در این مسائل هم می‌توان مسائل تصمیم متناظر تعریف کرد، ولی عموماً آن را با مسائل بهینه‌سازی مشخص می‌کنند که طبیعی‌تر هم هست.

یک تقسیم‌بندی از بهینه‌سازی را در زیر ببنید.

### بهینه‌سازی تک بعدی و بهینه‌سازی چند بعدی

اگر تنها یک متغیر در مسئله بهینه‌سازی وجود داشته باشد، مسئله بهینه‌سازی تک بعدی و در غیر این صورت چند بعدی خوانده می‌شود.

### بهینه‌سازی پویا و بهینه‌سازی ایستا

اگر تابع هزینه مسئله بهینه‌سازی تابعی از زمان نباشد، با یک مسئله بهینه‌سازی ایستا سر و کار داریم؛ ولی اگر زمان نیز وارد تابع هزینه شود مسئله بهینه‌سازی پویا می‌شود.

### بهینه‌سازی مقید و نا مقید

اگر متغیرهای مسئله بهینه‌سازی به مجموعه یا قید خاصی محدود شده باشند، با یک مسئله بهینه‌سازی مقید Constrained Optimization سروکار داریم و در غیر این صورت مسئله بهینه‌سازی نامقید است.

### بهینه‌سازی پیوسته و بهینه‌سازی گسسته

یک مسئله بهینه‌سازی گسسته مسئله‌ای است که در آن مقادیر متغیرهای مسئله از یک مجموعه معین گسسته هستند. در حالی که، در یک مسئله پیوسته، مقادیر متغیرها از یک مجموعه پیوسته هستند.

### بهینه‌سازی تک معیاره و چند معیاره

یک مسئله بهینه‌سازی تک معیاره (Single Objective)، دارای تنها یک تابع هدف می‌باشد. اما در یک مسئله چند معیاره (Multi Objective)، تعداد تابع هدف‌هایی که به‌طور هم‌زمان بهینه می‌شوند بیش از یکی است. معمولاً در یک مسئله بهینه‌سازی چند معیاره، با دادن اهمیتی (وزنی) به هر یک از توابع هدف و جمع بستن آنها، مسئله را تبدیل به یک مسئله تک معیاره می‌کنند. حل مسائل بهینه‌سازی چند هدفه، به تنهایی مبحث مستقل و مهمی از حوزه بهینه‌سازی است.

مسئله بهینه‌سازی
----------------

مدخل اصلی: مسئله بهینه‌سازی

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

با مفروض گرفتن تابع *f*: *A* {\displaystyle \to } **R**، که در آن *R* مجموعه اعداد حقیقی است. به دنبال یافتن عنصری از *x*opt در *A* هستیم به شکلی که برای هر *x* متعلق به *A* داشته باشیم (*f*(*x*opt) ≤ *f*(*x* یا آنکه برای هر *x* متعلق به *A* داشته باشیم (*f*(*x*opt) ≥ *f*(*x*.

چنین فرمول‌بندی مسئله بهینه‌سازی یا مسئله برنامه‌ریزی ریاضی خوانده می‌شود. بسیاری از مسائل جهان واقع می‌تواند در این چهارچوب عمومی مدل شود. نوعاً، *A* زیرمجموعه‌ای از فضای اقلیدسی **R***n* است که اغلب با مجموعه‌ای از قیود، یعنی معادلات و نامعادلاتی که اعضای *A* باید آن‌ها را ارضا کند، مشخص می‌شود. دامنه *f* مجموعه انتخاب یا فضای جستجو خوانده می‌شود، درحالیکه عناصر *A*، جواب‌های ممکن یا قابل دست‌یابی خوانده می‌شوند.

تابع *f*، عموماً تابع هدف خوانده می‌شود. جواب ممکنی که تابع هدف را بیشینه کند یا اگر هدف کمینه‌سازی باشد، آن را کمینه کند، جواب بهینه خوانده می‌شود.

### بیشینه و کمینه نسبی

عموماً، وقتی ناحیه جواب‌های ممکن مسئله محدب نباشد، چندین کمینه و بیشینه نسبی وجود خواهد داشت. بیشینه نسبی \*x نقطه‌ای است که برای آن یک δ > ۰ وجود داشته باشد به‌طوری‌که برای هر x که در رابطه زیر صدق کند

{\displaystyle \|\mathbf {x} -\mathbf {x} ^{\*}\|\leq \delta ;\,}
داشته باشیم

{\displaystyle f(\mathbf {x} ^{\*})\geq f(\mathbf {x} )}
یعنی در ناحیه جواب، مقدار تابعی همه نقاط حول (لااقل) یک همسایگی از \*x، کوچکتر یا مساوی مقدار تابع در آن نقطه باشد. کمینه نسبی نیز به شکل مشابهی تعریف می‌شود.

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

### نمادگذاری

مسائل بهینه‌سازی غالباً با نمادهای ویژه‌ای نمایش داده می‌شوند. در اینجا چند مثال آورده می‌شود.

{\displaystyle \min \_{x\in \mathbb {R} }\;(x^{2}+1)}
که به معنی یافتن مقدار کمینه تابع هدف x2{\displaystyle +1} است، که x متعلق به مجموعه اعداد حقیقی است. به وضوح، حداقل مقدار این تابع، 1 است که در x=0اتفاق می‌افتد.

{\displaystyle \max \_{x\in \mathbb {R} }\;2x}
که به معنی یافتن مقدار بیشینه تابع هدف {\displaystyle 2x} است، که x متعلق به مجموعه اعداد حقیقی است. در این حالت حداکثری وجود ندارد؛ چرا که مجموعه مقادیر تابع هدف بی‌کران است. پس پاسخ بی‌نهایت یا تعریف نشده‌است.

{\displaystyle \operatorname {argmin} \_{x\in [-\infty ,-1]}\;x^{2}+1\,}
که به دنبال مقدار یا مقادیری از *x* در بازه {\displaystyle [-\infty ,-1]} است که تابع هدف *x*2 + ۱ را کمینه می‌کند (مقدار کمینه تابع اهمیتی ندارد). در این حالت جواب {\displaystyle x=-1} است.

{\displaystyle \operatorname {argmax} \_{x\in [-5,5],\;y\in \mathbb {R} }\;x\cdot \cos(y)\,}
که به دنبال زوج مرتب (هایی) همچون (x,y) است که مقدار تابع هدف {\displaystyle x\cdot \cos(y)} را بیشینه می‌کند با این قید که x در بازه [۵٬۵-] باشد (مقدار بیشینه تابع اهمیتی ندارد). در این حالت، جواب‌ها، زوج مرتب‌هایی به شکل (5,2kπ) و (2kπ+πو۵-) است، به‌طوری‌که k تمام اعداد صحیح را در برمی‌گیرد.

### قضایا

قضایای اصلی مسئله بهینه‌سازی را «قضایایی برای اثبات وجود نقاط بهینه»، «قضایایی برای یافتن این نقاط» و «قضایایی برای تحلیل حساسیت این نقاط نسبت به تغییر پارامترهای مسئله» تشکیل می‌دهند. در زیر به برخی از مهم‌ترین آن‌ها اشاره می‌شود.

#### وجود نقطه بهینه

قضیه مقدار بحرانی منتسب به کارل وایرشتراس شرایط وجود نقطه بهینه را بیان می‌کند.

اگر فضای جواب‌های ممکن، فشرده (ویا به‌طور هم ارز، در فضای اقلیدسی، بسته و کراندار باشد) و ناتهی باشد و از طرفی تابع هدف، پیوسته باشد، آنگاه برای تابع هدف، مقادیر بیشینه و کمینه (بهینه)، در این مجموعه یافت خواهد شد.

#### طریقه یافتن نقطه بهینه

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

نقاط بهینه مسائل «بهینه‌سازی با وجود قیود نامساوی»، با استفاده از ضرایب لاگرانژ به دست می‌آید. این روش نیازمند محاسبه یک سیستم از نامعادلات است که شرایط کاروش-کان-تاکر خوانده می‌شود.

آزمون مشتق اول، نقاطی را که ممکن است بهینه باشد مشخص می‌کند، اما نمی‌تواند تمایزی بین نقاط بیشینه، کمینه و دیگر نقاط بحرانی ایجاد کند. زمانی‌که تابع هدف دو بار مشتق‌پذیر است، این تمایز در مسائل غیرمقید، با توجه به مشتق دوم یا ماتریس مشتق‌های دوم (ماتریس هشین) حاصل می‌شود و در مسائل مقید، این تمایز، با ماتریس مشتق‌های مرتبه دوم تابع هدف و قیود (ماتریس هشین مرزدار) یه دست می‌آید. شرایطی که تمایز بین این نقاط بیشینه و کمینه را نشان می‌دهد، اغلب «شرایط مرتبه دوم» خوانده می‌شود.

#### اگر مسئله تغییر کند، نقطه بهینه چه تغییری می‌کند؟

قضیه پوش چگونگی تغییر مقادیر جواب بهینه را در اثر تغییر پارامترها تشریح می‌کند.

کلاود برگ (۱۹۶۳) در قضیه‌ای موسوم به قضیه بیشینه به تشریح پیوستگی جواب بهینه به عنوان تابعی از پارامترها می‌پردازد.

کاربرد بهینه‌سازی در اقتصاد
---------------------------

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

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

روش ضرایب لاگرانژ
-----------------

هنگامیکه با قیود به شکل معادله (تساوی) سر و کار داریم، این روش بهینه‌سازی بسیار کارا خواهد بود. به‌علاوه، هنگامیکه مقادیر ثابت قیود تغییر می‌کند، اطلاعات با ارزشی از مقدار بهینه تابع هدف در اختیار می‌گذارد.

ابتدا، تابع هدف F را در نظر بگیرید که بر زیرمجموعه‌ای چون X از فضای اقلیدسی تعریف شده‌است (پس عناصر X می‌توانند بردار باشند)؛ که این زیرمجموعه، توسط قیود به شکل g(x)=b تعریف می‌شود. تابع لاگرانژ در این حالت عبارت خواهد بود از

((L(x,y)=F(x)+y.(b-g(x

شرایط لازم را می‌توان، از طریق یافتن نقاط بحرانی تابع لاگرانژ (بیشینه‌سازی بدون قید)، به دست آورد. به علاوه ضرایب y که به ضرایب لاگرانژ موسومند، تفسیر مهمی دارند که در زیر، همراه با مثالی توضیح داده خواهد شد.

### قیمت سایه

تغییر در مقدار تابع هدف جواب بهینه در مسئله بهینه‌سازی با استفاده از یک واحد بیشتر از منبع (قید) است که خود مطلوبیت نهایی قید یا هزینه نهایی افزودن به قید است. قیمت سایه، مقدار ضریب لاگرانژ در جواب بهینه است.
مصرف‌کننده‌ای را در نظر بگیرید که دارای ثروت m است و با قیمت‌های ثابت {\displaystyle p\_{1},p\_{2}} روبروست. مسئله مصرف‌کننده در این حالت عبارت خواهد بود از

{\displaystyle \max\{\,\!u(x\_{1},x\_{2}){\mbox{ }}:{\mbox{ }}p\_{1}x\_{1}+p\_{2}x\_{2}=m\}}
لاگرانژین این مسئله به شکل زیر خواهد بود:

{\displaystyle \,\!L(x\_{1},x\_{2},\lambda ):=u(x\_{1},x\_{2})+\lambda (m-p\_{1}x\_{1}-p\_{2}x\_{2})}
با استفاده از شرایط مرتبه اول، مقادیر بهینه‌ساز {\displaystyle \,\!x\_{1}^{\*}{\mbox{, }}x\_{2}^{\*}{\mbox{, }}\lambda ^{\*}} به دست خواهد آمد که تساوی زیر را برقرار خواهد کرد:

{\displaystyle \lambda ^{\*}={\frac {\frac {\partial u(x\_{1}^{\*},x\_{2}^{\*})}{\partial x\_{1}}}{p\_{1}}}={\frac {\frac {\partial u(x\_{1}^{\*},x\_{2}^{\*})}{\partial x\_{2}}}{p\_{2}}}}
اگر به مصرف‌کننده یک واحد اضافه تر از ثروت داده شود، در جاییکه مطلوبیت نهایی برحسب هر واحد پولی برابر \*\lambda است، تغییر مطلوبیت نهایی بر حسب واحد پولی یک واحد اضافه تر از ثروت برابر خواهد بود با \*\lambda که به قیمت سایه مشهور است.

شرایط کاروش-کان-تاکر(K.K.T)
---------------------------

در ریاضیات، شرایط کاروش-کان-تاکر(K.K.T) یا کان-تاکر (Kuhn-Tucker)، شرایط لازم برای جواب بهینه در برنامه‌ریزی غیرخطی می‌باشد، مشروط بر آنکه برخی شرایط Regularity ارضا شود.
کان-تاکر در واقع تعمیمی است بر روش ضرایب لاگرانژ که در آن قیود نامساوی هم در نظر گرفته شده‌است. مسئله بهینه‌سازی غیرخطی زیر را در نظر بگیرید:

{\displaystyle {\mbox{Minimize }}\;f(x)}
{\displaystyle {\mbox{subject to: }}\ }
{\displaystyle g\_{i}(x)\leq 0,h\_{j}(x)=0}
تابع هدف {\displaystyle f(\cdot )} تابعی است که قصد حداقل سازی آن را داریم؛ {\displaystyle g\_{i}(\cdot )\ (i=1,\ldots ,m)} توابعی هستند که قیود نامساوی را تشکیل می‌دهند و {\displaystyle h\_{j}(\cdot )\ (j=1,\ldots ,l)} توابعی‌اند که قیود تساوی را شکل می‌دهند، m و l به ترتیب تعداد قیود نامساوی و تساوی هستند.
شرایط کان-تاکر، به افتخار هارولد و. کان (Harold W. Kuhn) و نیز آلبرت و. تاکر (Albert W. Tucker) نام‌گذاری شده‌است که اول بار، این شرایط را منتشر کرده‌اند. پژوهشگران بعدی، شرایط لازم این مسئله را یافتند. ویلیام کاروش (William Karush) در پایان‌نامه کارشناسی ارشد خود، این شرایط را تشریح کرده‌است.

### شرایط لازم

فرض که تابع هدف {\displaystyle f:\mathbb {R} ^{n}\rightarrow \mathbb {R} } باشد و توابع قیود نامساوی به شکل {\displaystyle g\_{i}:\,\!\mathbb {R} ^{n}\rightarrow \mathbb {R} } و توابع قیود مساوی به شکل {\displaystyle h\_{j}:\,\!\mathbb {R} ^{n}\rightarrow \mathbb {R} } باشند. اگر \*x، کمینه موضعی باشد که برخی شرایط Regularity را ارضا کند، آنگاه ثابتی چون {\displaystyle \mu \_{i}\ (i=1,\ldots ,m)} و {\displaystyle \lambda \_{j}\ (j=1,\ldots ,l)} وجود خواهد داشت به‌طوری‌که

{\displaystyle \nabla f(x^{\*})+\sum \_{i=1}^{m}\mu \_{i}\nabla g\_{i}(x^{\*})+\sum \_{j=1}^{l}\lambda \_{j}\nabla h\_{j}(x^{\*})=0,}
{\displaystyle g\_{i}(x^{\*})\leq 0,{\mbox{ for all }}i=1,\ldots ,m}
{\displaystyle h\_{j}(x^{\*})=0,{\mbox{ for all }}j=1,\ldots ,l\,\!}
{\displaystyle \mu \_{i}\geq 0,{\mbox{ for all }}i=1,\ldots ,m}
{\displaystyle \mu \_{i}g\_{i}(x^{\*})=0,{\mbox{for all}}\;i=1,\ldots ,m.}
### شرایط کافی

اگر مجموعه جواب‌های ممکن، مجموعه‌ای ناتهی و فشرده و ضمناً محدب باشد، و تابع هدف بر این مجموعه، پیوسته و مقعر باشد؛ در این صورت، بیشینه موضعی، بیشینه مطلق است. بعلاوه، اگر تابع هدف اکیدا مقعر باشد، در این صورت جواب یکتاست، یعنی یک بیشینه مطلق یکتا وجود دارد. پس یک راه اطمینان حاصل کردن از اینکه، جواب‌های حاصل از شرایط مرتبه اول کان-تاکر، بیشینه هستند، بررسی شرایط یادشده‌است.

هرگاه تابع هدف f و قیود نامساوی {\displaystyle g\_{i}} به‌طور پیوسته مشتق‌پذیر و محدب باشند و قیود تساوی {\displaystyle h\_{j}} توابع آفین باشند؛ شرایط لازم، کافی نیز خواهند بود.

مارتین ۱۹۸۵ (Martin 1985)، دسته‌ای از توابع را مشخص کرد که در آن‌ها شرایط کان-تاکر، وجود بهینه سرتاسری را تضمین می‌کند، که توابع invex خوانده می‌شوند. اگر قیود تساوی، توابع آفین باشند، قیود نامساوی و تابع هدف به‌طور پیوسته مشتق‌پذیر و invex باشند، شرایط کان-تاکر برای بهینه سرتاسری، کافی نیز خواهد بود.

### توابع مقداری

تابع مقداری (value function) برای مسئله بیشینه‌سازی زیر

{\displaystyle {\mbox{Maximize }}\;f(x)}
{\displaystyle {\mbox{subject to: }}\ }
{\displaystyle g\_{i}(x)\leq a\_{i},h\_{j}(x)=0.}
به شکل زیر تعریف خواهد شد

{\displaystyle V(a\_{1},\ldots a\_{n})=\sup \limits \_{x}\;\;f(x)}
{\displaystyle {\mbox{subject to: }}\ }
{\displaystyle g\_{i}(x)\leq a\_{i},h\_{j}(x)=0}
{\displaystyle j\in \{1,\ldots l\},i\in \{1,\ldots ,m\}.}
(دامنه v، عبارت خواهد بود از {\displaystyle \{a\in \mathbb {R} ^{m}|{\mbox{for some }}x\in X,g\_{i}(x)\leq a\_{i},i\in \{1,\ldots ,m\}.})
با این تعریف، ضرایب {\displaystyle \lambda \_{i}} نشان‌دهنده نرخ افزایش تابع مقداری، درصورت افزایش a\_{i} خواهد بود.

چنانچه هر a\_{i} به‌عنوان قید منابع تفسیر شود، ضرایب نشان خواهد داد که افزایش در منبع، مقدار بهینه تابع f را تا چه اندازه افزایش خواهد داد. این تعبیر، به‌ویژه در اقتصاد مهم است و در مسائلی همچون حداکثرسازی مطلوبیت مورد استفاده نیز می‌باشد.

### مسئله حداکثرسازی مطلوبیت

مسئله حداکثرسازی مطلوبیت، مسئله‌ای است که مصرف‌کننده در اقتصاد خرد، با آن روبروست. این سؤال که "چگونه می‌بایستی ثروت خود را برای به دست اوردن حداکثر مطلوبیت خرج کنم؟" خود یک نوع از مسئله تصمیم‌گیری بهینه است.

فرض کنید مجموعه مصرفی، (یا به عبارت ساده‌تر مجموعه همه سبدهای مصرفی که اگر قید بودجه‌ای نبود، ممکن بود انتخاب شوند)، حاوی L کالا است و فرض کنید که به مقادیر مثبت محدود شده‌است.

{\displaystyle x\in {\textbf {R}}\_{+}^{L}\ .}
و همچنین فرض کنید که قیمت کالاها مثبت باشند.

{\displaystyle p\in {\textbf {R}}\_{+}^{L}\ ,}
و فرض کنید که ثروت مصرف‌کننده برابر w باشد، آنگاه مجموعه سبدهای قابل خرید، مجموعه بودجه، برابر خواهد بود با

{\displaystyle B(p,w)=\{x\in {\textbf {R}}\_{+}^{L}:\langle p,x\rangle \leq w\}\ ,}
که {\displaystyle \langle p,x\rangle } ضرب داخلی بردار قیمت و مقادیر مصرفی است، یا هزینه مصرفی کالای x با قیمت‌های p است. مصرف‌کننده می‌خواهد که بهترین سبد مصرفی را که می‌تواند ابتیاع کند. تابع مطلوبیتی به صورت یک تابع حقیقی مقدار با دامنه سبدهای کالایی در نظر بگیرید مثل

{\displaystyle u:{\textbf {R}}\_{+}^{L}\rightarrow {\textbf {R}}\ .}
انتخاب‌های مصرفی بهینه مصرف‌کننده (x(p, w، سبدهای حداکثرکننده مطلوبیت مصرف‌کننده در مجموعه بودجه است یعنی

{\displaystyle x(p,w)=\operatorname {argmax} \_{x^{\*}\in B(p,w)}u(x^{\*})}
یافتن (x(p, w به مسئله حداکثرسازی مطلوبیت مشهور است. اگر u پیوسته باشد و هیچ کالایی مجانی نباشد، (x(p, w وجود خواهد داشت. اگر حداکثرساز همواره منحصر به فرد باشد، آنگاه آن را تابع تقاضای مارشالی گویند. رابطه بین تابع مطلوبیت و تقاضای مارشالی در مسئله حداکثرسازی مطلوبیت رابطه بین تابع مخارج و تقاضای هیکسی را در مسئله حداقل‌سازی مخارج را بازمی‌تاباند.

لزوما جواب (x(p, w منحصر به فرد نیست. اگر مصرف‌کننده‌ای همواره یک سبد بهینه را آنچنانکه در بالا تعریف شد انتخاب کند، آنگاه (x(p, w تناظر تقاضای مارشالی خوانده می‌شود.

اما باید توجه داشت که بهینه‌سازی صرفاً یک ابزار ریاضی است و ممکن است رفتار افراد در عمل به گونه‌ای دیگر هم باشد. تئوری عقلانیت محدود، بیانگر آنست که در عمل، مصرف‌کننده ممکن است همواره سبد بهینه را انتخاب نکند. برای مثال، یک مشکل، نیاز به تفکر زیاد است.

#### مثال

تابع کاب-داگلاس U را برای مطلوبیت مصرف‌کننده که از مصرف دو کالای x و y حاصل می‌کند، در نظر بگیرید. مصرف‌کننده در پی حداکثرسازی مطلوبیت خود است که با حداکثرسازی عبارت زیر هم ارز است:

ln U = a ln x + (۱-a) ln y

که در آن a<۱ ثابت معین می‌باشد. اما مصرف‌کننده با قید محدودیت منابع خود هم روبروست. یعنی چنانچه ثروت وی برابر w و قیمت کالاها در بازار به تر تیب برابر p و q، همگی داده شده و معین باشند؛ قیدی را که مصرف‌کننده با آن مواجه است می‌توان به شکل زیر نوشت:

px+qy≤w

با تشکیل تابع (L = a ln x + (۱-a) ln y + M(w-px-qy و نوشتن شرایط کان-تاکر داریم:

a=pMx , (۱-a)=qMy , M>۰ , px+qy≤w , M(w-px-qy)=۰

پس اولاً از ترکیب شرط میانی و شرط آخر داریم: w-px-qy=۰

(البته چون تابع هدف در هرد متغیر افزایشی است، قید همواره به صورت تساوی برقرار می‌شود)

و ثانیاً از ترکیب سه شرط اول داریم: aqy = (۱-a)px

از حل دستگاه دو معادله و دو مجهولی که توسط این دو معادله آخر ساخته می‌شود، مقادیر حداکثرساز x و y برحسب پارامترهای a,p,q,w به دست خواهد آمد که همان تقاضای مصرف‌کننده از این دو کالا را نشان می‌دهد.

### مسئله حداقل‌سازی هزینه

در اقتصاد خرد، مسئله حداقل‌سازی هزینه، صورت دیگری برای مسئله حداکثرسازی مطلوبیت است. سؤال "چه ثروتی برای دستیابی به سطح خاصی از خوشی (مطلوبیت) لازم است ؟" به دو بخش تقسیم می‌شود. با تابع مطلوبیت معین برای مصرف‌کننده، قیمت‌های معین، و مطلوبیت هدف‌گذاری شده،

* چه ثروتی برای مصرف‌کننده لازم است؟ پاسخ این پرسش با تابع مخارج به دست می‌آید.
* مصرف‌کننده برای رسیدن به این مطلوبیت هدف‌گذاری شده چه چیزی بخرد تا مخارج خود را حداقل کند؟ پاسخ این پرسش با تابع تقاضای هیکسی‌داده می‌شود.

#### تابع مخارج

به صورت ریاضی، تابع مخارج به شکل زیر تعریف می‌شود.

تابع مطلوبیت u را که بر سبدهای کالایی مشتمل بر L کالا تعریف شده برای مصرف‌کننده در نظر بگیرید. در این صورت، تابع مخارج مصرف‌کننده، مقدار ثروتی را نشان می‌دهد که در قیمت‌های داده شده p، برای خرید آن سبدی از کالاها لازم است که مطلوبیتی لااقل به اندازه \*u می‌دهد

{\displaystyle e(p,u^{\*})=\min \_{x\in \geq {u^{\*}}}p\cdot x}
که

{\displaystyle \geq {u^{\*}}=\{x\in \mathbb {R} \_{+}^{L}:u(x)\geq u^{\*}\}}
مجموعه‌ای از سبدهای کالایی است که مطلوبیتی حداقل به اندازه \*u می‌دهد.

#### تناظر تقاضای هیکسی

تناظر تقاضای هیکسی (\*{\displaystyle h(p,u}، به وسیله ارزانترین سبد کالایی که مطلوبیت هدف‌گذاری‌شده را بدهد، تعریف می‌شود و می‌تواند برحسب تابع مخارج با تابع تقاضای مارشالی تعریف شود.

{\displaystyle h(p,u^{\*})=x(p,e(p,u^{\*})).\,}
ممکن است که تقاضای هیکسی و مارشالی منحصر به فرد نباشند، یعنی بیش از یک سبد کالا وجود داشته باشد که مسئله حداقل‌سازی هزینه را حل کند. در این صورت می‌توان تقاضا را به جای تابع، به‌عنوان یک تناظر تعریف کرد. چنانچه فرض کنیم اشباع‌ناپذیری محلی برقرار باشد، جواب یکتا است و تقاضا را می‌توان به‌عنوان تابع تعریف کرد.

کنترل بهینه
-----------

نظریه کنترل بهینه، یک روش بهینه‌سازی ریاضی است برای به دست آوردن سیاست‌گذاری‌های کنترلی و تعمیمی است بر حساب تغییرات. این روش به وسیلهٔ لو پنتریاگین و همقطارانش در شوروی و نیز ریچارد بلمن در آمریکا ابداع شد.

### روش عمومی

نظریه کنترل بهینه در پی یافتن قانون کنترل برای یک سیستم معین است به شکلی که ضابطه بهینگی خاصی به دست آید. مسئله کنترل، تابعی از متغیرهای کنترل و متغیرهای وضعیت است. کنترل بهینه، در واقع مجموعه‌ای از معادلات دیفرانسیل است که «مسیری» از متغیرهای کنترل که تابع هزینه را کمینه می‌کند، نشان می‌دهند. کنترل بهینه می‌تواند با استفاده از اصل حداکثرسازی پنتریاگین (شرط لازم)، یا حل معادله همیلتن-ژاکوبی-بلمن (شرط کافی) به دست آید.

### مفاهیم کنترل بهینه به همراه مثالی ساده

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

### چهارچوب مجرد

چهارچوبی مجردتر از مثال بالا را به شکل زیر می‌توان بیان کرد. تابع هزینه (نسبت به متغیر زمان پیوسته) زیر حداقل شود

{\displaystyle J=\Phi ({\textbf {x}}(t\_{0}),t\_{0},{\textbf {x}}(t\_{f}),t\_{f})+\int \_{t\_{0}}^{t\_{f}}{\mathcal {L}}({\textbf {x}}(t),{\textbf {u}}(t),t)\,\operatorname {d} t}
با توجه به قیود دینامیک مرتبه اول

{\displaystyle {\dot {\textbf {x}}}(t)={\textbf {a}}({\textbf {x}}(t),{\textbf {u}}(t),t),}
و قیود مسیر

{\displaystyle {\textbf {b}}({\textbf {x}}(t),{\textbf {u}}(t),t)\leq {\textbf {0}},}
و شرایط مرزی

{\displaystyle {\boldsymbol {\phi }}({\textbf {x}}(t\_{0}),t\_{0},{\textbf {x}}(t\_{f}),t\_{f})}
که (x(t وضعیت و (u(t کنترل خوانده می‌شود. t متغیر مستقلی است که عموماً زمان است. t\_{0} زمان اولیه و {\displaystyle t\_{f}} زمان انتهایی است. {\mathcal {L}} لاگرانژین خوانده می‌شود.
چنین مسائل کنترل بهینه ممکن است چندین جواب داشته باشند. اغلب هر جواب مسئله کنترل بهینه به شکل {\displaystyle ({\textbf {x}}^{\*}(t^{\*}),{\textbf {u}}^{\*}(t^{\*}),t^{\*})} یک حداقل ساز نسبی است.

### روش‌های عددی برای کنترل بهینه

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

{\displaystyle {\begin{array}{lcl}{\dot {\textbf {x}}}&=&\partial H/\partial {\boldsymbol {\lambda }}\\{\dot {\boldsymbol {\lambda }}}&=&-\partial H/\partial {\textbf {x}}\end{array}}}
که

{\displaystyle H={\mathcal {L}}+{\boldsymbol {\lambda }}^{\text{T}}{\textbf {a}}-{\boldsymbol {\mu }}^{\text{T}}{\textbf {b}}}
با استفاده از شرایط مرزی مناسب مسئله حل خواهد شد.

در روش مستقیم، متغیر کنترل و/یا متغیر وضعیت با استفاده از تخمین چندجمله‌ای، تخمین زده می‌شود.

### هامیلتونین

هامیلتونین در تئوری کنترل بهینه به وسیلهٔ پنتریاگین ابداع شد. وی اثبات کرد که یک شرط لازم برای حل مسئله کنترل بهینه این است که کنترل باید به گونه‌ای انتخاب شود که همیلتونین را کمینه کند. همیلتونین را می‌توان به شکل زیر تعریف کرد:

{\displaystyle H(x,\lambda ,u,t)=\lambda ^{T}(t)f(x,u,t)+L(x,u,t)\,}
که در آن ({\displaystyle \lambda (t} برداری از متغیرهای costate است با بعدی برابر با بعد متغیر وضعیت ({\displaystyle x(t}.
نمادها و تعریف مسئله
متغیر کنترل ({\displaystyle u(t} باید به گونه‌ای انتخاب شود که تابع زیر را کمینه کند:

{\displaystyle J(u)=\Psi (x(T))+\int \_{0}^{T}L(x,u,t)dt}
متغیر حالت سیستم ({\displaystyle x(t} به صورت زیر تغییر می‌یابد:

{\displaystyle {\dot {x}}=f(x,u,t)\qquad x(0)=x\_{0}\quad t\in [0,T]}
متغیر کنترل باید شرایط زیر را داشته باشد:

{\displaystyle a\leq u(t)\leq b\quad t\in [0,T]}
همیلتونین پنتریاگین را می‌توان با یک تابع ۴ متغیره نظر گرفت:

{\displaystyle H(q,u,p,t)=\langle p,u\rangle -L(q,u,t)}
دراین حالت، شرایط بیشینه را می‌توان به شکل زیر نوشت:

{\displaystyle {\frac {dp}{dt}}=-{\frac {\partial H}{\partial q}}}
{\displaystyle {\frac {dq}{dt}}=~~{\frac {\partial H}{\partial p}}}
{\displaystyle {\frac {\partial H}{\partial u}}=0}
### مثالی از حل یک مسئله کنترل بهینه

استراتژی حل مسائل کنترل بهینه عموماً یافتن costate یا قیمت سایه ({\displaystyle \lambda (t} است که در برخی موارد و به ویژه در مسائل زمان پیوسته، می‌تواند به‌صورت صریح به دست آورده شود.

مسئله کشیدن چاه از نفت را، برای حداکثر T دوره زمانی، در نظر بگیرید. فرض کنید که در زمان ۰، موجودی نفت در چاه به میزان x\_{0} است و هزینه بیرون کشیدن نفت ({\displaystyle u(t)^{2}/x(t} است که (u(t نرخ کشیدن نفت از چاه است. قیمت نفت در بازار ثابت و برابر P است. مسئله یافتن نرخ (u(t برای حداکثرسازی سود (بدون تنزیل زمانی) است با این فرض که در زمان T، نفت برای صاحب چاه ارزشی ندارد.

پاسخ: صاحب چاه نفت سود خود را، {\displaystyle \Pi }، حداکثر می‌کند که به شکل زیر نوشته می‌شود

{\displaystyle \Pi =\int \_{0}^{T}\left[pu(t)-{\frac {u(t)^{2}}{x(t)}}\right]dt}
و برای این کار با قید زیر مواجه است.

{\displaystyle {\dot {x}}(t)=-u(t)}
با استفاده از همیلتونین داریم:

{\displaystyle H=pu(t)-{\frac {u(t)^{2}}{x(t)}}-\lambda (t)u(t)}
{\displaystyle {\frac {\partial H}{\partial u}}=p-\lambda (t)-2{\frac {u(t)}{x(t)}}=0}
{\displaystyle {\dot {\lambda }}(t)=-{\frac {\partial H}{\partial x}}=-\left({\frac {u(t)}{x(t)}}\right)^{2}}
از طرفی در زمان T، نفت چاه ارزشی ندارد یعنی

{\displaystyle \lambda (T)=0}
با استفاده از معادلات بالا به دست آوردن معادلات دیفرانسیل (u(t و ({\displaystyle \lambda (t} ساده خواهد شد:

{\displaystyle {\dot {\lambda }}(t)=-{\frac {(p-\lambda (t))^{2}}{4}}}
{\displaystyle u(t)=x(t){\frac {p-\lambda (t)}{2}}}
با استفاده از شرایط اولیه و شرایط زمان T، می‌توان این توابع را به صورت عددی به‌دست‌آورد.

روش‌های بهینه‌سازی تکاملی
-------------------------

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

* الگوریتم‌های ژنتیک
* الگوریتم اجتماع ذرات
* الگوریتم کلونی مورچه‌ها
* جستجوی تابو
* تبرید شبیه‌سازی شده
* تکامل تفاضلی
* الگوریتم کلونی زنبورها
* الگوریتم رقابت استعماری
* ...

نرم‌افزارها
-----------

* فهرست جامعی از نرم‌افزارهای بهینه‌سازی را می‌توانید در اینجا بینید.
* LINDO - Linear Interactive and Discrete Optimizer برای حل مدل‌های ساده خطی به روش سیمپلکس و تحلیل حساسیت، حل مسائل مقدار صحیح و برنامه‌ریزی درجه دوم. محدودیت نسخه رایگان فوق، در پذیرش تعداد متغیرها (حداکثر ۳۰۰ متغیر) و قیدها (حداکثر ۱۵۰ قید) است.
* IMSL Numerical Libraries مجموعه‌ای از الگوریتم‌های ریاضی و آماری در C/C++، Fortran، Java و C#/.NET است. زیرروال‌های موجود در آن شامل الگوریتم‌های کمینه‌سازی مقید غیرخطی و خطی، کمینه‌سازی غیرمقید و برنامه‌ریزی غیرخطی است.
* KNITRO برای حل مسائل غیرخطی به‌کار می‌رود.
* متمتیکا محیطی برای مسائل ریاضی که می‌تواند برای حل بهینه‌سازی غیرخطی مقید، برنامه‌ریزی خطی و برنامه‌ریزی عدد صحیح به کار رود.
* Opt++ یک بسته شی‌گرا برای برنامه‌ریزی غیرخطی
* مرلین بسته نرم‌افزاری Fortran-۷۷ برای بهینه‌سازی غیرخطی که open source است.
* OpenOpt برای بهینه‌سازی در زبان نام‌پای
* FortSP حل مسائل برنامه‌ریزی تصادفی
* Comet زبان برنامه‌نویسی پرکاربرد در بهینه‌سازی
* NAG Libraries زیرروال‌هایی برای بهینه‌سازی برای زبان‌های برنامه‌نویسی C، C++، Fortran، Python، Java و .NET و نیز بسته‌های MATLAB، Maple و Excel
* Moocho برای حل برنامه‌های غیرخطی؛ به صورت open-source در دسترس است.
* OOL - Open Optimization library یک مجموعه از روال‌های بهینه‌سازی در C.
* IOptLib - Investigative Optimization Library یک کتابخانه برای الگوریتم‌های بهینه‌سازی (ANSI C).
* ALGLIB روال‌هایی برای بهینه‌سازی در C++، C#، Delphi و Visual Basic
* OAT - Optimization Algorithm Toolkit یک مجموعه از الگوریتم‌های بهینه‌سازی در Java
* JPOP - Java Parallel Optimization Package یک بسته open-source برای Java که برای محاسبه توابع، گرادیان و هشین‌ها به کار می‌رود.
* Free Optimization Software by Systems Optimization Laboratory, Stanford University
* BNDSCO نرم‌افزاری مناسب حل مسائل کنترل بهینه به روش غیرمستقیم
* متلب برای حل مسائل کنترل بهینه با ابزارهایی نظیر RIOTS، DIDO، GPOPS و PROPT و البته محیط بهینه‌سازی TOMLAB
* ACADO Toolkit - Open Source Toolkit for Automatic Control and Dynamic Optimization C++, MATLAB interface available
* Flood: An open source neural networks C++ library
* GPOPS - Open Source Pseudospectral Optimal Control Solver in MATLAB
* PSOPT - Open Source Pseudospectral Optimal Control Solver in C++ بایگانی‌شده در ۱۲ آوریل ۲۰۱۶ توسط Wayback Machine

برای مطالعه بیشتر
-----------------

* [ فهرست مهم‌ترین آثار در زمینه بهینه‌سازی]
* لوئنبرگر دیوید، برنامه‌ریزی خطی و غیر خطی، ترجمه مهدوی امیری نظام الدین و پورکاظمی محمدحسین، انتشارات دانشگاه صنعتی شریف، ۱۳۷۹، تهران.
* دانلود رایگان کتاب بهینه‌سازی چند هدفه
* فایلهای آموزشی هوش مصنوعی متلبسایت
* Convex Optimization – Boyd and Vandenberghe Book on Convex Optimization
* Convex Optimization I EE364a: Course from Stanford University
* Panos Y. Papalambros and Douglass J. Wilde (۲۰۰۰). Principles of Optimal Design : Modeling and Computation, Cambridge University Press. ISBN 0-521-62727-3
* Stephen Boyd and Lieven Vandenberghe (۲۰۰۴). Convex Optimization, Cambridge University Press. ISBN 0-521-83378-7
* Becerra, V.M. , ۲۰۰۸, *Optimal control*. Scholarpedia, ۳(۱):۵۳۵۴
* Evans, L.C. , *An Introduction to Optimal Control Theory* available free online
* Stengel, R. F. , ۱۹۹۴. *Optimal Control and Estimation.* Dover.
* Sethi, S. P. , and Thompson, G. L. , ۲۰۰۰. *Optimal Control Theory: Applications to Management Science and Economics*, ۲nd edition, Springer (ISBN 0-387-28092-8 and ISBN 0-7923-8608-6). Slides are available at
* P. Varaiya: *Lecture Notes on Optimization*, ۲d. ed. ,۱۹۹۸
* Sussmann, Willems: ۳۰۰ Year of Optimal Control, IEEE Control Systems, June ۱۹۹۷
* Sontag, Eduardo D. *Mathematical Control Theory: Deterministic Finite Dimensional Systems. Second Edition*. Springer. (ISBN 0-387-98489-5) available free online

### مجلات

* *Optimal Control Applications and Methods.[*پیوند مرده*]* John Wiley & Sons, Inc.
* SIAM Journal of Control and Optimization

پیوند به بیرون
--------------

* بهینه‌سازی چیست؟ (تئوری بهینه‌سازی)
* کتاب الگوریتم بهینه‌سازی کلونی مورچه‌ها
* شبکه عصبی چیست؟
* برنامه‌ریزی ژنتیک چیست؟
* Optimization Related Links
* Mathematical Programming Glossary
* Global optimization
* COIN-OR — Computational Infrastructure for Operations Research
* Decision Tree for Optimization Software Links to optimization source codes
* NEOS Wiki[*پیوند مرده*]
* Optimization Online
* Simplemax Online Optimization Services Web applications to access nonlinear optimization services
* Mathematical Programming Society
* Dr. Benoît CHACHUAT: Automatic Control Laboratory - Nonlinear Programming, Calculus of Variations and Optimal Control
* Elmer G. Wiens: Optimal Control - Applications of Optimal Control Theory Using the Pontryagin Maximum Principle with interactive models
* GESOP - Graphical Environment for Simulation and OPtimization
* Anatomy of Cobb-Douglas Type Utility Functions in 3D

منابع
-----

1. ↑  «محاسبات تکاملی: انواع مسائل بهینه‌سازی و تقسیم بندی آنها». بایگانی‌شده از اصلی در ۵ سپتامبر ۲۰۱۰. دریافت‌شده در ۲۵ نوامبر ۲۰۱۰.
2. ↑  «Acts.nersc.gov». بایگانی‌شده از اصلی در ۱۰ ژانویه ۲۰۱۱. دریافت‌شده در ۲۲ ژوئیه ۲۰۱۰.
3. ↑  «Merlin.cs.uoi.gr». بایگانی‌شده از اصلی در ۲۲ مارس ۲۰۱۹. دریافت‌شده در ۹ آوریل ۲۰۲۰.

* Mas-Colell، Andreu; Whinston، Michael; & Green، Jerry (۱۹۹۵)، *Microeconomic Theory*، Oxford: Oxford University Press.
* اینتریلیگیتور میشل، بهینه‌سازی ریاضی، ترجمه پورکاظمی حسین علی، مرکز چاپ و انتشارات دانشگاه شهید بهشتی، ۱۳۶۸، تهران.
* برادلی، هکس و مگننی، برنامه ریاضی کاربردی، ترجمه ذکایی آشتیانی، مؤسسه عالی پژوهش در برنامه‌ریزی و توسعه، ۱۳۷۲، تهران.
* لوئنبرگر دیوید، برنامه‌ریزی خطی و غیر خطی، ترجمه مهدوی امیری نظام الدین و پورکاظمی محمدحسین، انتشارات دانشگاه صنعتی شریف، ۱۳۷۹، تهران.