1. 程式人生 > >優化問題及KKT條件

優化問題及KKT條件

進行 lam bsp 目標 bubuko height 整理 pos 分析

整理自其他優秀博文及自己理解。

目錄

  • 無約束優化
  • 等式約束
  • 不等式約束(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條件