**:
拉格朗日乘子法(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≥0g
k(x)
≤0}
=>μg
(x)≤
0
∴
maxμl
(x,μ
)=f(
x)(2)
∴
minxf(
x)=min
xmaxμ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∗)
梯度的線性組合。
拉格朗日乘子法和KKT條件
深入理解拉格朗日乘子法 lagrange multiplier 和kkt條件 在求取有約束條件的優化問題時,拉格朗日乘子法 lagrange multiplier 和kkt 條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值 如果含有不等式約束,可以應用 kkt...
拉格朗日乘子法和KKT條件
拉格朗日乘子法 lagrange multiplier 和kkt karush kuhn tucker 條件是求解約束優化問題的重要方法,在有等式約束時使用拉格朗日乘子法,在有不等約束時使用kkt條件。前提是 只有當目標函式為凸函式時,使用這兩種方法才保證求得的是最優解。對於無約束最優化問題,有很多...
KKT條件和拉格朗日乘子法
在求取有約束條件的優化問題時,拉格朗日乘子法 lagrange multiplier 和kkt條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值 如果含有不等式約束,可以應用kkt條件去求取。當然,這兩個方法求得的結果只是必要條件,只有當是凸函式的情況下,才能保...