考虑优化问题:
minxs.t.f(x)c1(x)=0c2(x)≥0
构造拉格朗日函数:
L(x,λ)=f(x)−λ1c1(x)−λ2c2(x)
等式约束的对偶变量
λ1 在拉格朗日函数中取正取负都行,但不等式约束的对偶变量
λ2 在这里取正。
因此在可行域
D={x∣c1(x)=0,c2(x)≥0} 内,原目标函数
f(x) 是拉格朗日函数的一个上界,即
λmaxL(x,λ)={f(x),+∞,x∈D,otherwise.
所以原优化问题等价于:
xminf(x)=xminλmaxL(x,λ)
原来的约束优化问题转成了一个
minmax 问题。
对偶问题
要引出对偶问题,就需要用到一个非常重要的不等式:
xminλmaxL(x,λ)≥λmaxxminL(x,λ)(1)
证明起来非常容易,因为:
λmaxL(x,λ)≥L(x,λ)≥xminL(x,λ)
那么上式左端的最小值也会大于右端的最大值,如(1)所示。
maxmin 问题称为原问题的对偶问题,对偶问题的最优值小于等于原问题的最优值,两者之差(绝对值)称为对偶间隙。当对偶间隙为零时,对偶问题的最优解就是原问题的最优解。所以有时候对偶问题比原问题更容易求解时,可以选择求解对偶问题。
对偶上升法
当凸优化问题满足强对偶条件,对偶间隙为零,即
xminλmaxL(x,λ)=λmaxxminL(x,λ)
这就意味着先找最优的
x 还是先找最优的
λ 没有区别,那么我们自然想到交替优化的方法:
- 随机初始化
x0,λ0
- 更新
x,使得
xt+1=argminxL(x,λt−1)
- 更新
λ,使得
λt+1=argmaxλL(xt+1,λ),甚至为了方便可以直接用梯度上升法:
λt+1=λt+ηt∇λL(xt+1,λ)
是不是非常简单!!!最重要的是,拉格朗日函数对对偶变量的梯度实在是太简单了!!!!
∇λ1L(x∗,λ)∇λ2L(x∗,λ)==−c1(x∗)−c2(x∗)
对偶上升法中迭代的停止条件:
- 对偶间隙足够小
- 原问题的约束条件满足