拉格朗⽇乘数法(等式约束和不等式约束)及KKT条件
拉格朗⽇乘⼦法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要⽅法,在有等式约束时使⽤拉格朗⽇乘⼦法,在有不等约束时使⽤KKT条件。前提是:只有当⽬标函数为时,使⽤这两种⽅法才保证求得的是最优解。
对于⽆约束最优化问题,有很多经典的求解⽅法,参见。
拉格朗⽇乘⼦法
先来看拉格朗⽇乘⼦法是什么,再讲为什么。
minf(hi(x)=0i=1,2…,n” style=”position: relative;” tabindex=”0” id=”MathJax-Element-1-Frame”
class=”MathJax”>minf(hi(x)=0i=1,2…,nminf(hi(x)=0i=,n
这个问题转换为
(1)min[f(x)+∑i=1nλihi(x)]” style=”width: 100%; position: relative;” tabindex=”0” id=”MathJax-Element-2-Frame” class=”MathJax”>min[f(x)+∑i=1nλihi(x)](1)(1)min[f(x)+∑i=1nλihi(x)]
其中λi≠0” style=”position: relative;” tabindex=”0” id=”MathJax-Element-3-Frame”
class=”MathJax”>λi≠0λi≠0,称为拉格朗⽇乘⼦。
卢字怎么读下⾯看⼀下wikipedia上是如何解释拉格朗⽇乘⼦法的合理性的。
现有⼀个⼆维的优化问题:
(2)minf(x,(x,y)=c” style=”width: 100%; position: relative;” tabindex=”0” id=”MathJax-Element-4-Frame”
class=”MathJax”>minf(x,(x,y)=c(2)(2)minf(x,(x,y)=c
我们可以画图来辅助思考。
绿线标出的是约束g(x,y)=c” style=”position: relative;” tabindex=”0” id=”MathJax-Element-5-Frame”
class=”MathJax”>g(x,y)=cg(x,y)=c的等⾼线。箭头表⽰斜率,和等⾼线的法线平⾏。
从图上可以直观地看到在最优解处,f和g的法线⽅向刚好相反(或者说叫梯度共线),即
(3)▽[f(x,y)+λ(g(x,y)−c)]=0λ≠0” style=”width: 100%; position: relative;”tabindex=”0” id=”MathJax-Element-7-Frame”
class=”MathJax”>▽[f(x,y)+λ(g(x,y)−c)]=0λ≠0(3)(3)▽[f(x,y)+λ(g(x,y)−c)]=0λ≠0
⽽满⾜3” style=”position: relative;” tabindex=”0” id=”MathJax-Element-8-Frame” class=”MathJax”>3的解。
(4)min F(x,y)=f(x,y)+λ(g(x,y)−c)” style=”width: 100%; position: relative;” tabindex=”0”
数的集合
id=”MathJax-Element-10-Frame” class=”MathJax”>min F(x,y)=f(x,y)+λ(g(x,y)−c)(4)(4)min F(x,y)=f(x,y)+λ(g(x,y)−c)
所以2” style=”position: relative;” tabindex=”0” id=”MathJax-Element-11-Frame” class=”MathJax”>2等价。
新⽅程F(x,y)” style=”position: relative;” tabindex=”0” id=”MathJax-Element-13-Frame”
class=”MathJax”>F(x,y)F(x,y)总等于零。
KKT条件
先看KKT条件是什么,再讲为什么。
(5)letL(x,μ)=f(x)+∑k=1qμkgk(x)” style=”width: 100%; position: relative;” tabindex=”0”
id=”MathJax-Element-17-Frame” class=”MathJax”>letL(x,μ)=f(x)+∑k=1qμkgk(x)(5)(5)letL(x,μ)=f(x)+∑k=1qμkgk(x)
形容杭州的诗句
其中μk≥0,gk(x)≤0” style=”position: relative;” tabindex=”0” id=”MathJax-Element-18-Frame” class=”MathJax”>μk≥0,gk(x)≤0μk≥0,gk(x)≤0
∵μk≥0gk(x)≤0}” style=”position: relative;” tabindex=”0” id=”MathJax-Element-19-Frame” class=”MathJax”>∵μk≥0gk(x)≤0}∵μk≥0gk(x)≤0}
∴” style=”position: relative;” tabindex=”0” id=”MathJax-Element-21-Frame” class=”MathJax”>∴∴
∴” style=”position: relative;” tabindex=”0” id=”MathJax-Element-23-Frame” class=”MathJax”>∴∴
上⾯的推导到此中断⼀下,我们看另外⼀个式⼦。
maxμminxL(x,μ)=maxμ
[minxf(x)+minxμg(x)]=maxμminxf(x)+maxμminxμg(x)=minxf(x)+maxμminx&# x03BC;g(x)” style=”position: relative;” tabindex=”0” id=”MathJax-Element-25-Frame”
戒指戴class=”MathJax”>maxμminxL(x,μ)=maxμ[minxf(x)+minxμg(x)]=maxμminxf(x)+maxμminxμg(x)=minxf(x)+maxμminx μg(x)maxμminxL(x,μ)=maxμ[minxf(x)+minxμg(x)]=maxμminxf(x)+maxμminxμg(x)=minxf(x)+maxμminxμg(x)
这⾥的u” style=”position: relative;” tabindex=”0” id=”MathJax-Element-26-Frame” class=”MathJax”>uu⽆关,所以这个等式就是成⽴的。
⼜∵μk≥0gk(x)≤0}” style=”position: relative;” tabindex=”0” id=”MathJax-Element-32-Frame” class=”MathJax”>∵μk≥0gk(x)≤0}∵μk≥0gk(x)≤0}
∴maxμminxμg(x)=0” style=”position: relative;” tabindex=”0” id=”MathJax-Element-34-Frame” class=”MathJax”>∴maxμminxμg(x)=0∴maxμminxμg(x)=0周春秀
(8)∴maxμminxL(x,μ)=minxf(x)+maxμminxμg(x)=minxf(x)” style=”width: 100%; position: relative;” tabindex=”0” id=”MathJax-Element-36-Frame”
class=”MathJax”>∴maxμminxL(x,μ)=minxf(x)+maxμminxμg(x)=minxf(x)(8)(8)∴maxμminxL(x,μ)=minxf(x)+maxμmin xμg(x)=minxf(x)
联合(7)” style=”position: relative;” tabindex=”0” id=”MathJax-Element-38-Frame” class=”MathJax”>(7)
亦即L(x,μ)=f(x)+∑k=1qμkgk(x)μk≥0gk(x)≤0}” style=”position: relative;” tabindex=”0” id=”MathJax-Element-41-Frame”
class=”MathJax”>L(x,μ)=f(x)+∑qk=1μkgk(x)μk≥0gk(x)≤0⎫⎭⎬⎪⎪L(x,μ)=f(x)+∑k=1qμkgk(x)μk≥0gk(x)≤0}
我们把maxμminxL(x,μ)” style=”position: relative;” tabindex=”0” id=”MathJax-Element-43-Frame”class=”MathJax”>maxμminxL(x,μ)maxμminxL(x,μ)。
最后总结⼀下:
L(x,μ)=f(x)+∑k=1qμkgk(x)μk≥0gk(x)≤0}” style=”position: relative;”tabindex=”0” id=”MathJax-Element-57-Frame”
class=”MathJax”>L(x,μ)=f(x)+∑qk=1μkgk(x)μk≥0gk(x)≤0⎫⎭⎬⎪⎪L(x,μ)=f(x)+∑k=1qμkgk(x)μk≥0gk(x)≤0}
KKT条件是拉格朗⽇乘⼦法的泛化,如果我们把等式约束和不等式约束⼀并纳⼊进来则表现为:
L(x,λ,μ)=f(x)+∑i=1nλihi(x)+∑k=1qμkgk(x)λi≠0hi(x)= 0μk≥0gk(x)≤0}” style=”position: relative;” tabindex=”0” id=”MathJax-Element-59-Frame”class=”MathJax”>L(x,λ,μ)=f(x)+∑ni=1λihi(x)+∑qk=1μkgk(x)λi≠0hi(x)=0μk≥0gk(x)≤0⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪L(x,λ,μ)=f(x)+∑i=1nλihi(x)+∑k=1qμkgk(x)λi≠0hi(x)=0μk≥0gk(x)≤0}
我的白日梦注:x,λ,μ” style=”position: relative;” tabindex=”0” id=”MathJax-Element-61-Frame”
class=”MathJax”>x,λ,μx,λ,μ都是向量。
∂L(x,λ,μ)∂x|x=x∗=0” style=”position: relative;” tabindex=”0”
熊胆的功效与作用
id=”MathJax-Element-62-Frame” class=”MathJax”>∂L(x,λ,μ)∂x|x=x∗=0∂L(x,λ,μ)∂x|x=x∗=0梯度的线性组合。
>自制火腿