kkt條件詳解
主要參考這篇文章和這個知乎回答。
kkt最優化條件是karush[1939],以及kuhn和tucker[1951]先後獨立發表出來的。這組最優化條件在kuhn和tucker發表之後才逐漸受到重視,因此許多情況下只記載成庫恩塔克條件(kuhn-tucker conditions)
它是非線性規劃領域的重要成果,是判斷某點是極值點的必要條件。對於凸規劃,kkt條件就是充要條件了,只要滿足則一定是極值點,且一定得到的是全域性最優解(凸問題)。
kkt條件的引入推廣了拉格朗日乘子法,拉格朗日乘數法原本只是解決等式約束下的優化問題,本科的高數里就講了(我竟讀研了才學懂,慚愧),而引入kkt條件的拉格朗日乘子法可用於更普遍的有不等式約束的情況。(一)問題模型
「等式約束+不等式約束」 優化問題是最複雜也最常見的一種模型。問題建模為:
min f ( x ) s . t . h k ( x ) = 0 , g j ( x ) ≤ 0 j = 1 , 2 … , n ; k = 1 , 2 … , l \min f(x) \quad s.t.h_k(x)=0\quad,\quad g_j(x)\leq0\quad j=1,2\ldots,n;k=1,2\ldots,lminf(x)s.t.hk(x)=0,gj(x)≤0j=1,2…,n;k=1,2…,l
思路是要把問題轉化為無約束的簡單優化問題,分為兩步:
先把不等式約束條件轉化為等式約束條件。 how?→ \to→ 引入 鬆弛變數,即kkt乘子
再把等式約束轉化為無約束優化問題。 how? → \to→ 引入拉格朗日乘子
(二)一點鋪墊
後面要用這個結論:
實質上,kkt條件描述的是:這個點已經是可行域(滿足所有約束條件的n維空間)的邊界了,再走一點就不滿足約束條件了。顯然,最優解一定在可行域的邊界上的,以初中學的線性規劃作為簡單的例子,
這張圖的紫色區域就是四個不等式約束限定的可行域,如果求z=x+2y的最大值,結果當然是紅星點取得最大值,總之極值點應該在可行域的邊界,這在自變數多的高維可行域空間也是如此,只是不好畫圖直觀去看了。
(三)kkt到底是什麼
kkt條件就是說:
如果乙個點x ∗ x^*x∗是滿足所有約束的極值點,那麼
{ ∇ f ( x ∗ ) + ∑ k λ k ∇ h k ( x ∗ ) + ∑ j μ j ∇ g j ( x ∗ ) = 0 ( 1 ) μ j ≥ 0 ( 2 ) μ j g j ( x ∗ ) = 0 ( 3 ) g j ( x ∗ ) ≤ 0 ( 4 ) \left\{∇f
(x∗)
+∑kλ
k∇hk
(x∗)
+∑jμ
j∇gj
(x∗)
=0(1
)μj≥
0(2)
μjgj
(x∗)
=0(3
)gj(
x∗)≤
0(4)
'>∇f(x∗)+∑kλk∇hk(x∗)+∑jμj∇gj(x∗)μjμjgj(x∗)gj(x∗)=≥=≤0(1)0(2)0(3)0(4)
∇f(x∗)+∑kλk∇hk(x∗)+∑jμj∇gj(x∗)=0(1)μj≥0(2)μjgj(x∗)=0(3)gj(x∗)≤0(4)
\right.⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧∇f(x∗)+k∑λk∇hk(x∗)+j∑μj∇gj(x∗)μjμ
判斷kkt條件的例題 KKT條件原理
問題引入 max f x,y s.t.g x,y 0 幾何解釋 a.g x y 0為上圖中z 0平面中的圓,圓的邊表示g x,y 0,圓的內部表示g x,y 0。b.z f x,y 為上圖中的曲面。上述極值問題就是要求當點 x,y 落在圓內時 包括圓的邊 f x,y 的最大值。1 如果極值點在圓內,...
KKT條件總結
問題 fh end right.fh x 為最優解,則存在 f x h x xv 0 nabla f left x right frac left x right v 0 f x x h x v 0h x 0 h left x right 0 h x 0注 1.f在該點上的梯度 h在該點上梯度的線性...
判斷kkt條件的例題 kkt條件例題求解
karush kuhn tucker條件,kkt條件 kkt點 稱 為對.計算結果 1 0 2 4 3 3 4 1 w1 2 w2 2 b 3 疑問 1.為什麼要規定 i 0 2.kkt 條件在求解過程中體現在什麼地方。x sin x y 在 x0 y0 0.5,0.5 附近的乙個 近似 解。y c...