拉格朗日乘子法和KKT條件

2021-08-10 15:38:58 字數 2913 閱讀 8565

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

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

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

minf(x

)s.t

.hi(

x)=0

i=1,

2...,n

這個問題轉換為mi

n[f(

x)+n

∑i=1

λihi

(x)]

其中λ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)−

c)]=

0λ≠0

而滿足3

的點同時又是4

的解。 mi

nf(x

,y)=

f(x,

y)+λ

(g(x

,y)−

c)

所以2和4

等價。新方程f(x

,y)在達到極值時與f(x

,y)相等,因為f(x

,y)達到極值時g(x

,y)−

c總等於零。

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

tl(x

,μ)=

f(x)

+q∑k

=1μk

gk(x

) 其中μk≥0

,gk(

x)≤0

∵μk≥0gk

(x)≤

0}=>μg(

x)≤0

∴maxμl(

x,μ)

=f(x

) ∴

minxf(

x)=min

xmaxμl

(x,μ

) 上面的推導到此中斷一下,我們看另外乙個式子。

maxμ

minxl(

x,μ)

=maxμ[

minxf(

x)+minxμ

g(x)

]=maxμ

minxf(

x)+max

μminxμ

g(x)

=minxf

(x)+

maxμ

minxμg

(x)這裡的u

和g都就向量,所以去掉了下標k

。另外一些博友不明白上式中max

μminxf

(x)=

minxf(

x)是怎麼推出來的,其實很簡單,因為f(x

)與變數u

無關,所以這個等式就是成立的。 又∵

μk≥0

gk(x

)≤0}

=>minxμ

g(x)

==>min

xmaxμl

(x,μ

)=maxμ

minxl(

x,μ)

=minxf

(x)

我們把max

μminxl

(x,μ

)稱為原問題min

xmaxμl

(x,μ

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

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

=0or

g(x∗

)=0。把x

∗代入(6)

得maxμl

(x∗,

μ)=f

(x∗)

,由(8)

得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}=>

=>{

minx

maxμl(

x,λ,

μ)=max

μminxl

(x,λ

,μ)=

minxf(

x)=f

(x∗)

μkgk

(x∗)

=0∂l

(x,λ

,μ)∂

x|x=

x∗=0

注:x,λ

,μ都是向量。∂l

(x,λ

,μ)∂

x|x=

x∗=0

表明f(x)

在極值點x

∗處的梯度是各個hi(

x∗)和g

k(x∗

)梯度的線性組合。

拉格朗日乘子法和KKT條件

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

拉格朗日乘子法和KKT條件

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

拉格朗日乘子法和KKT條件

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