条件约束下的最优化问题--拉格朗日乘数法与KKT条件
等式约束优化问题 (拉格朗日乘数定理)
xminf(x)s.t.g(x)=0
为方便分析,假设 f 与 g 是连续可导函数;构造Lagrange函数
L(x,λ)=f(x)+λg(x)
计算 L 对 x与 λ 的偏导数并设为零,可得最优解的必要条件:
dxdL=f′(x)+λg′(x)=0dλdL=g(x)=0
简单的例子
求此方程的最小值:
f(x,y)=x2y
同时未知数满足约束
x2+y2=1g(x,y)=x2+y2−1=0
构造拉格朗日函数
L=f(x,y)+λg(x,y)=x2y+λ(x2+y2−1)⎩⎨⎧∂x∂L=2xy+2λx=0∂y∂L=x2+2λy=0∂λ∂L=x2+y2−1=0⇒⎩⎨⎧x=−32,x=32y=−31,y=−31λ=31,λ=31
不等式约束优化问题 (KKT条件)
xminf(x)s.t.g(x)≤0
约束不等式g(x)≤0称为原始可行性(primal feasibility),据此我们定义可行域(feasible region) K={x∈Rn∣g(x)≤0} 。假设 x∗为满足约束条件的最佳解,分开两种情况讨论:
- g(x)<0最佳解位于K的内部,称为内部解(interior solution),这时约束条件是无效的(inactive);
- g(x)=0最佳解落在K的边界,称为边界解(boundary solution),此时约束条件是有效的(active)。
这两种情况的最佳解具有不同的必要条件。
- 内部解:在约束条件无效的情形下,g(x)不起作用,约束优化问题退化为无约束优化问题,因此驻点x∗满足f′=0且λ=0(因为g(x)<0且λ=0,那么L的最优就不是f的最优)
- 边界解:在约束条件有效的情形下,约束不等式变成等式g(x)=0,这与前述Lagrange乘数法的情况相同。我们可以证明驻点x∗发生于▽f∈span{▽g}(▽g张成的空间);换句话说,存在 λ 使得▽f=−λ▽g ,但这里 的正负号是有其意义的。因为我们希望最小化f,梯度▽f (函数f 在点x 的最陡上升方向)应该指向可行域 K 的内部(因为你的最优解最小值是在边界取得的),但▽g 指向 K的外部(即 g(x)>0的区域,因为你的约束是小于等于0),因此 ,称为对偶可行性(dual feasibility)。
因此,不论是内部解或边界解,λ▽g=0 恒成立,称为互补松弛性(complementary slackness)。整合上述两种情况,最佳解的必要条件包括Lagrangian函数L(x,λ) 的定常方程式、原始可行性、对偶可行性,以及互补松弛性:
xminf(x)s.t.g(x)≤0L=f(x)+λg(x)⎩⎨⎧∂x∂L=▽f+λ▽g=0g(x)≤0λ≥0λg(x)=0
这些条件合称为Karush-Kuhn-Tucker (KKT)条件。如果我们要最大化 f(x) 且受限于g(x)≤0 ,那么对偶可行性要改成 λ≤0 。
上面结果可推广至多个约束等式与约束不等式的情况。
考虑标准约束优化问题(或称非线性规划):
xminf(x)s.t.gj(x)=0,j=1,…,mhk(x)≤0,k=1,…,p
构造Lagrangian函数
L(x,{λj},{μk})=f(x)+j=1∑mλjgj(x)+k=1∑pμkhk(x)
KKT条件为:
⎩⎨⎧▽xL=0gj(x)=0,j=1,…,mhk(x)≤0μk≥0μkhk(x)=0,k=1,…,p
简单的例子
minx12+x22s.t.x1+x2=1x2≤a
构造拉格朗日函数
L=x12+x22+λ(1−x1−x2)+μ(x2−a)
利用KKT条件
⎩⎨⎧∂xi∂L=0,i=1,2x1+x2=1x2−a≤0μ≥0μ(x2−a)=0⇒⎩⎨⎧x1=4μ+21x2=−4μ+21−4μ+21≤a
对a分类讨论
- 当a≥21时,μ=0⇒x2−a<0不等式无效,x1∗=x2∗=21,fmin(x)=21
- 当a<21时, 约束不等式有效,x2∗=a,x1∗=1−a,fmin(x)=(1−a)2+a2
本文参考-- 不等式约束的优化问题 https://zhuanlan.zhihu.com/p/146837325