優化問題及KKT條件
整理自其他優秀博文及自己理解。
目錄
- 無約束優化
- 等式約束
- 不等式約束(KKT條件)
1、無約束優化
無約束優化問題即高數下冊中的 “多元函數的極值" 部分。
駐點:所有偏導數皆為0的點;
極值點:在鄰域內最大或最小的點;
最值點:在定義域內最大或最小的點;
關系:
駐點不一定是極值點,極值點一定是駐點;
極值點不一定是最值點,最值點一定是極值點;
求解最值:
求出所有的極值點,將所有的極值點帶入函數中,最大或最小的那個就是最值點。
2、等式約束
等式約束問題即高數下冊中的 “條件極值 拉格朗日乘數法” 部分。
對於$z=f(x,y)$在$\varphi(x,y)=0$的條件下的最值問題:
構造拉格朗日函數:$L(x,y,\lambda)=f(x,y)+\lambda\varphi(x,y)$;
對拉格朗日函數求解,得到的即為在條件$\varphi(x,y)=0$下,$z=f(x,y)$所有可能的極值點。再利用問題本身的其他約束條件(如果有的話)篩選極值點,比較之後求得最值點。
直觀的解釋:目標函數和約束函數在最優解處的法線共線,即$\bigtriangledown f(x,y)=\lambda\bigtriangledown g(x,y)$
具體證明請查閱高數課本。
3、不等式約束
當約束是不等式的時候,可以在不等式約束中加入松弛變量,使其變為等式約束問題,再進行一些分析。
最後$x^*$是極值點的必要條件(KKT條件)為:
$f(x)=\left\{
\begin{aligned}
\bigtriangledown f(x) & = & \lambda \bigtriangledown c_i(x) \\
\lambda_ic_i(x) & = & 0\\
\lambda_i & \geq & 0
\end{aligned}
\right.$
不等式約束可以直接利用KKT條件求出可能的極值點。
具體推導和證明可參見:https://zhuanlan.zhihu.com/p/26514613
他們之間的關系:(此圖來自知乎上鏈接,入侵可刪)
至此,梳理完畢。
優化問題及KKT條件