拉格朗日乘子法与对偶问题
1、原始问题
假设 f(x),gi(x),hj(x) 是定义在 Rn 上的连续可微函数,考虑约束最优化问题:
minf(x)
s.t.gi(x)≤0,i=1,2,……,n
s.t.hj(x)=0,i=1,2,……,m
称为约束最优化问题的原始问题。
引入广义拉格朗日函数:
L(x,λ,β)=f(x)+∑ni=1λigi(x)+∑mj=1βjhj(x)
要求 λi≥0 , λi,βj 是拉格朗日乘子。
原问题就变成了:
minxL(x,λ,β)
2、原问题分析
在上面的问题中,求解最优值对应的 x , 还需要知道 λi,βj 。
现在,把 L(x,λ,β) 看作是关于 λ,β 的函数,要求其最大值,即
maxλ≥0,βL(x,λ,β)
在此优化过程中将 x 看作常量,确定了 λi,βj 后,就得到 L 函数的最大值,最后只需要求关于x的有关函数最优解就行。为什么拉格朗日函数能这样求解后等价于原问题呢?令 θp(x)=maxλ≥0,βL(x,λ,β) , 因为对于 maxλ≥0,βL(x,λ,β) 这个问题,当 x 违反了原始问题的约束,那么 gi(x)≥0或者hj(x)≠0 ,那么 λi,βj 很容易取值使 maxλ≥0,βL(x,λ,β) 这个问题就趋于无穷大,所以考虑 x 满足原始的约束,要使得 L(x,λ,β) 取最大则 λigi(x)=0 且 hi(x)=0 , 那么 θp(x)=maxλ≥0,βL(x,λ,β)=f(x) .
在 x 满足约束下, minxθp(x)=minxf(x) , minxθp(x) 可以代表原始问题,定义 x∗ ,P分别为 minxθp(x) 问题的最优解、最优值。
3、对偶问题
如果这个拉格朗日函数能很容易求解?直接求导就能得到最优解,但是这个问题不容易求解时,就需要找到拉格朗日函数的对偶问题就行求解。为什么这样可行?接下来进行解释:
对偶问题形式:
令 θd(λ,β)=minxL(x,λ,β) , 注意这里的角标变化(和上面的进行对比),然后
maxλ,βθd(λ,β)=maxλ,βminxL(x,λ,β)
这就是原始问题的对偶问题,再和原问题 minxθp(x)=minxmaxλ≥0,βL(x,λ,β) 进行对比。
这里就可以发现原始问题和对偶问题只不过是先优化 x , 还是 λ,β 的问题。
定义 (λ∗,β∗) ,D分别为对偶问题 maxλ,βθd(λ,β) 的最优解、最优值。
4、原始问题和对偶问题的关系:
θd(λ,β)=minxL(x,λ,β)≤L(x,λ,β)≤maxλ≥0,βL(x,λ,β)=θp(x)
那么D≤P。也就是说原始问题的最优值不小于对偶问题的最优值。
5、强对偶性
强对偶性,就是说D=P,也就是说原始问题的最优值等于对偶问题的最优值。利用强对偶性,可以通过求解对偶问题的最优解从而知道原始问题的最优解,一般认为凸规划(不是所有)具有强对偶性。
6、强对偶性存在的KKT条件
那么对应第1点当中的原始问题,具有强对偶性,即 D=P=L(x∗,λ∗,β∗) 。
那么 x∗,(λ∗,β∗) 分别是原始问题和对偶问题的最优解的充要条件是 x∗,λ∗,β∗ 满足KKT条件:
∇Lx(x∗,λ∗,β∗)=0 (1)
∇Lλ(x∗,λ∗,β∗)=0 (2)
∇Lβ(x∗,λ∗,β∗)=0 (3)
λ∗igi(x∗)=0 (4)
λ∗i≥0 (5)
gi(x∗)≤0 (6)
hj(x∗)=0 (7)
以上7个条件一起合为KKT条件,其中第4个条件是KKT对偶互补的条件。前3个条件可以总写为 ∇f(x)+∑ni=0λi∇gi(x)+∑mj=0βj∇hj(x)=0
这样一看KKT条件不就是KT条件嘛(所以先看懂了KT条件的推导,这里理解起来就很简单了),注意只有凸规划才能说KKT是充要条件,其他的只能是必要条件,因为其他规划的极值点也满足KT条件。