导言
拉格朗日对偶性常常用于带约束的最优化问题。这个原理的简化版本在高中数学中就出现过,当时称作拉格朗日乘数法。先回顾一下拉格朗日乘数法的基本形式:
xmins.t.f(x)g(x)=0
找到 x 使得 f(x) 最小,且满足 g(x)=0。我们引入拉格朗日乘子构造新的函数:
L(x,λ)=f(x)+λg(x)
接着令两个偏导数为 0:
⎩⎨⎧∂x∂L=0∂λ∂L=0
求解出 x 和 λ 即可。
事实上,最后这一步求导然后令其等于 0 叫做 KKT(Karush-Kuhn-Tucker)条件,当然完整的版本更加复杂一些。在本文中依然不会证明 KKT 条件,所以想要了解这样做的依据是什么的小伙伴们可能要失望了。不过接下来,我将展开说明更为普适的拉格朗日对偶性。
拉格朗日对偶性
原始问题
x∈Rnmins.t.f(x)ci(x)≤0,i=1,2,…,khj(x)=0,j=1,2,…,l
广义拉格朗日函数
L(x,α,β)=f(x)+i=1∑kαici(x)+j=1∑lβjhj(x)
αi 和 βj 是拉格朗日乘子,规定 αi≥0(为什么会这样规定,下面会解释)。
构造一个函数:
θP(x)=α,β:αi≥0maxL(x,α,β)
下标 P 表示原始问题。
可以看出,如果 x 违反原始问题的某个约束条件,即存在某个 i 使得 ci(x)>0 或者存在某个 j 使得 hj(x)=0,那么就有:
θP(x)=+∞
因为存在 ci(x)>0 的话,可令对应的 αi→+∞(这里就说明了为什么规定 αi≥0,因为不作此规定的话,即使满足 ci(x)<0 的条件,也可以取 αi→−∞ 从而让整个 θP=+∞);存在 hj(x)=0 的话,可令对应的 βjhj(x)→+∞,最后让其余所有 αi,βj 取 0。
如果满足所有约束,则 θP(x)=f(x),所以有:
θP(x)={f(x),+∞,x 满足原始问题约束其他
与最初的原始问题等价的形式就是:
xminθP(x)=xminα,β:αi≥0maxL(x,α,β)
记:
p∗=xminθP(x)
称为原始问题的值。
对偶问题
定义:
θD(α,β)=xminL(x,α,β)
定义对偶问题的最优值:
d∗=α,β:αi≥0maxθD(α,β)
原始问题与对偶问题的关系
d∗≤p∗
KKT 条件
∇xL(x,α,β)∇αL(x,α,β)∇βL(x,α,β)αici(x)ci(x)αihj(x)=0=0=0=0,i=1,2,…,k≤0,i=1,2,…,k≥0,i=1,2,…,k=0,j=1,2,…,l
KKT 条件给出了求解的方法。其中,上面第 4 条式子称为 KKT 的对偶互补条件。由此条件可知:若 αi>0,则 ci(x)=0。