KKT條件詳解

2022-05-15 13:21:08 字數 1872 閱讀 4715

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...