预备知识
什么是凸优化?
凸优化需要满足:
- 1、在最小化(最大化)的要求下;
- 2、目标函数是一个凸函数(凹函数);
- 3、同时约束条件所形成的可行域集合是一个凸集。
凸集
若集合C为凸集,则C中任意两点间的线段仍然在C中,也就是说,对于任意x1,x2∈C,都有:
θx1+(1−θ)x2∈C
其中,0≤θ≤1。
凸优化问题

仿射函数
仿射函数,即最高次数为1的多项式函数。常数项为零的仿射函数称为线性函数。
对偶理论
一、原问题转化
对于一般优化问题,如:
minimize fo(x)s.t. fi(x)≤0 for i=1,2,……m hi(x)=0 for i=1,2,……p
则可以将其转化为拉格朗日函数:
L(x,λ,v)=fo(x)+i=1∑mλifi(x)+i=1∑pvihi(x)
其中包含主变量x和对偶变量λi≥0,vi。
如果想固定x,只通过改变λ和v来获得上面函数的最大值,即:
λ,vmaxL(x,λ,v)=fo(x)+λ,vmax(i=1∑mλifi(x)+i=1∑pvihi(x))
因为fi(x)≤0,λi≥0,且hi(x)=0,则:
λ,vmaxL(x,λ,v)=fo(x)
所以原本在约束条件下要求的xminfo(x)可以被转化为求:
p∗=xmin(λ,vmaxL(x,λ,v))
而当强对偶条件成立时,这个问题又可以被转化为求:
d∗=λ,vmax(xminL(x,λ,v))
将xminL(x,λ,v)称为拉格朗日对偶函数,即拉格朗日函数关于x取得的最小值,设:
g(λ,v)=xminL(x,λ,v)=xmin(fo(x)+i=1∑mλifi(x)+i=1∑pvihi(x))
那么,g(λ,v)是(λ,v)的仿射函数L(x,λ,v)的逐点下确界,这一定是个凹函数。凸优化学习(一)为什么lagrangr的下确界必然是一个凹函数
设x~是原问题的一个可行点,即fi(x)≤0且hi(x)=0,根据假设λ≥0,有:
i=1∑mλifi(x~)+i=1∑pvihi(x~)≤0
所以:
L(x~,λ,v)=fo(x~)+i=1∑mλifi(x~)+i=1∑pvihi(x~)≤fo(x~)
因此
g(λ,v)=xinfL(x,λ,v)≤L(x~,λ,v)≤fo(x~)
其中,xinfL(x,λ,v)是指L(x,λ,v)的逐点下确界。
也就是说,d∗≤p∗是一定的。
至此,我们已经证明了原问题xminfo(x)可以被转化为求xmin(λ,vmaxL(x,λ,v)),且由对偶条件进而被转化为求λ,vmax(xminL(x,λ,v))=λ,vmaxg(λ,v),并且λ,vmaxg(λ,v)是一定小于xminfo(x)的。
ps:对偶条件
弱对偶:d∗≤p∗,无论原问题是不是凸优化问题,这个式子总是成立的。
强对偶:d∗=p∗
- 该条件通常不成立。
- 对于凸优化问题通常成立。
- 对于满足Slater条件的凸优化问题一定成立。
【注】Slater条件是指,对于在预备知识模块给出的凸优化问题的定义中的fi(x),总存在一点x,使得fi(x)<0在i=1,2,……m上均成立。
二、互补松弛性
设原问题和对偶问题的最优解都可以达到且相等(强对偶性成立),令x∗为原问题的最优解,(λ∗,v∗)为对偶问题的最优解,则:
fo(x∗)=g(λ∗,v∗) =xinf(fo(x)+i=1∑mλi∗fi(x)+i=1∑pvi∗hi(x)) ≤fo(x∗)+i=1∑mλi∗fi(x∗)+i=1∑pvi∗hi(x∗) ≤fo(x∗)
取等号时,有:
λi∗fi(x∗)=0i=1,2,……m
此条件称为互补松弛性,也就是KKT条件。
三、凸问题的KKT条件
当原问题是凸问题时,满足KKT条件的点也是原问题和对偶问题的最优解。也就是说,如果函数fi(x)为凸函数,hi(x)为仿射函数,x~,λ~,v~是任意满足KKT条件的点。即满足:
- 问题约束:
fi(x~)≤0i=1,2,……m
hi(x~)=0i=1,2,……m
λi~≥0i=1,2,……m
- 互补松弛性:
λi~fi(x~)=0i=1,2,……m
- 极值条件:
▽xL(x~,λ~,v~)=▽xfo(x~)+i=1∑mλ~i▽xfi(x~)+i=1∑pv~i▽xhi(x~)=0
那么,x~和(λ~,v~)就分别是原问题和对偶问题的最优解,且结果相同。