拉格朗日乘子法和KKT條件

2021-07-04 18:56:50 字數 4219 閱讀 8529

***:   

拉格朗日乘子法(lagrange multiplier)和kkt(karush-kuhn-tucker)條件是求解約束優化問題的重要方法,在有等式約束時使用拉格朗日乘子法,在有不等約束時使用kkt條件。前提是:只有當目標函式為凸函式時,使用這兩種方法才保證求得的是最優解。

對於無約束最優化問題,有很多經典的求解方法,參見無約束最優化方法。

先來看拉格朗日乘子法是什麼,再講為什麼。

minf(x

)s.t

.hi(

x)=0

i=1,

2...,n

這個問題轉換為 m

in[f

(x)+

∑i=1

nλih

i(x)

](1)

其中λi≠

0 ,稱為拉格朗日乘子。

下面看一下wikipedia上是如何解釋拉格朗日乘子法的合理性的。

現有乙個二維的優化問題:

minf(x

,y)s

.t.g

(x,y

)=c

我們可以畫圖來輔助思考。

綠線標出的是約束g(

x,y)

=c的點的軌跡。藍線是f(

x,y)

的等高線。箭頭表示斜率,和等高線的法線平行。

從圖上可以直觀地看到在最優解處,f和g的斜率平行。▽[

f(x,

y)+λ

(g(x

,y)−

1)]=

0λ≠0

一旦求出

λ 的值,將其套入下式,易求在無約束極值和極值所對應的點。

f(x,

y)=f

(x,y

)+λ(

g(x,

y)−c

)

新方程f(

x,y)

在達到極值時與f(

x,y)

相等,因為f(

x,y)

達到極值時g(

x,y)

−c總等於零。

(1) 取得極小值時其導數為0,即▽f

(x)+

▽∑ni

=1λi

hi(x

)=0 ,也就是說f(

x)和h(

x)的梯度共線。

先看kkt條件是什麼,再講為什麼。

letl

(x,μ

)=f(

x)+∑

qk=1

μkgk

(x) 其中μ

k≥0,

gk(x

)≤0

∵μk≥

0gk(

x)≤0

} =>μg

(x)≤

0

maxμl

(x,μ

)=f(

x)(2)

minxf

(x)=

minx

maxμl(

x,μ)

(3)

maxμ

minxl(

x,μ)

=maxμ[

minxf(

x)+minxμ

g(x)

]=maxμ

minxf(

x)+max

μminxμ

g(x)

=minxf

(x)+

maxμ

minxμg

(x) 又∵

μk≥0

gk(x

)≤0}

=>

minxμg

(x)=

{0−∞

ifμ=

0org

(x)=

0ifμ

>0a

ndg(

x)<

0

∴max

μminxμ

g(x)

=0此時μ=

0org

(x)=

0

∴maxμ

minxl(

x,μ)

=minxf

(x)+

maxμ

minxμg

(x)=

minxf(

x)(4)

此時 μ=

0org

(x)=

0 聯合(3)

,(4) 我們得到

minx

maxμl(

x,μ)

=max

μminxl

(x,μ

)

亦即l(

x,μ)

=f(x

)+∑q

k=1μ

kgk(

x)μk

≥0gk

(x)≤

0⎫⎭⎬

⎪⎪=>

minx

maxμl(

x,μ)

=max

μminxl

(x,μ

)=minxf(

x)我們把

maxμ

minxl(

x,μ)

稱為原問題

minx

maxμl(

x,μ)

的對偶問題,上式表明當滿足一定條件時原問題、對偶的解、以及

minxf(

x)是相同的,且在最優解x∗

處μ=0org

(x∗)

=0。把x∗

代入(2) 得

maxμl(

x∗,μ

)=f(

x∗) ,由

(4) 得

maxμ

minxl(

x,μ)

=f(x

∗),所以l(

x∗,μ

)=minxl(

x,μ)

,這說明x∗

也是l(

x,μ)

的極值點,即∂l

(x,μ

)∂x|

x=x∗=0。

最後總結一下:l(

x,μ)

=f(x

)+∑q

k=1μ

kgk(

x)μk

≥0gk

(x)≤

0⎫⎭⎬

⎪⎪=>⎧⎩

⎨⎪⎪⎪

⎪min

xmaxμl

(x,μ

)=maxμ

minxl(

x,μ)

=minxf

(x)=

f(x∗

)μkg

k(x∗

)=0∂

l(x,

μ)∂x

|x=x

∗=0

kkt條件是拉格朗日乘子法的泛化,如果我們把等式約束和不等式約束一併納入進來則表現為:l(

x,λ,

μ)=f

(x)+

∑ni=

1λih

i(x)

+∑qk

=1μk

gk(x

)λi≠

0hi(

x)=0

μk≥0

gk(x

)≤0⎫

⎭⎬⎪⎪

⎪⎪⎪⎪

⎪⎪⎪⎪

⎪⎪⎪⎪

=>⎧⎩

⎨⎪⎪⎪

⎪min

xmaxμl

(x,λ

,μ)=

maxμ

minxl(

x,λ,

μ)=minxf

(x)=

f(x∗

)μkg

k(x∗

)=0∂

l(x,

λ,μ)

∂x|x

=x∗=

0

注:x,

λ,μ 都是向量。∂l

(x,λ

,μ)∂

x|x=

x∗=0

表明f(

x)在極值點x∗

處的梯度是各個hi

(x∗)

和gk(x∗)

梯度的線性組合。

另外附上ppt參考:

拉格朗日乘子法和KKT條件

深入理解拉格朗日乘子法 lagrange multiplier 和kkt條件 在求取有約束條件的優化問題時,拉格朗日乘子法 lagrange multiplier 和kkt 條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值 如果含有不等式約束,可以應用 kkt...

拉格朗日乘子法和KKT條件

拉格朗日乘子法 lagrange multiplier 和kkt karush kuhn tucker 條件是求解約束優化問題的重要方法,在有等式約束時使用拉格朗日乘子法,在有不等約束時使用kkt條件。前提是 只有當目標函式為凸函式時,使用這兩種方法才保證求得的是最優解。對於無約束最優化問題,有很多...

KKT條件和拉格朗日乘子法

在求取有約束條件的優化問題時,拉格朗日乘子法 lagrange multiplier 和kkt條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值 如果含有不等式約束,可以應用kkt條件去求取。當然,這兩個方法求得的結果只是必要條件,只有當是凸函式的情況下,才能保...