凸优化:对偶
Lagrange对偶函数
考虑标准优化问题:
minimize s.t. f0(x)fi(x)≤0 i=1,2,⋯,n(1)hi(x)=0 i=1,2,⋯,n
其中各个约束函数的定义域存在非空交集。且此问题并非定义为凸优化问题。
定义问题(1)的lagrange函数为:
L(x,λ,v)=f0(x)+∑i=1mλifi(x)+∑i=1pvihi(x)(2)
其中,
λi,vi
成为对应约束方程的lagrange乘子,
v,λ
称为对偶变量或者lagrange乘子向量。
定义lagrange对偶函数为lagrange函数关于
x
取得的最小值,即为:
g(λ,v)=ixnfL(x,λ,v)=ixnf(f0(x)+∑i=1mλifi(x)+∑i=1pvihi(x))(3)
即使原问题(1)不是凸的,其对偶函数也是凹函数。假设原问题的最优解为
p∗
,那么总有:
g(λ,v)≤p∗
也即是说,lagrange对偶函数为原问题提供了一个下界。(原问题问题可以有很多个下界,只要比最优值小就可以是一个下界)
lagrange对偶问题
lagrange对偶函数给出了原问题的一个下界,如果这个下界很普通那根本没有任何意义。考虑原问题是最小化目标函数,是一个向下搜索的过程。因此,可以考虑最大化lagrange函数,向上搜索为原问题提供一个最好的下界。
maximizes.t.g(λ,v)(4)λ≥0(1)(2)
此问题称为问题(1)的lagrange对偶问题。假设该问题的最优值为
d∗
,那么:
d∗≤p∗(5)
即使原问题不是凸的,此不等式仍旧成立,称之为
弱对偶性。两个最优值的差值称之为
最优对偶间隙(这是一个非负数)。如果最优对偶间隙为零,那么两个最优值相等,称之为
强对偶性。
如果原问题是凸问题,强对偶性通常(并不绝对)成立。因此,有许多研究给出了除凸性条件外的强对偶性成立的条件,如Slater条件。
最优性条件
互补松驰性
假设强对偶性成立。令
x∗
为原问题的最优解,
(λ∗,v∗)
为对偶问题的最优解。那么有:
f0(x∗)=g(λ∗,v∗)=ixnf(f0(x)+∑i=1mλ∗ifi(x)+∑i=1pv∗ihi(x))(6)≤f0(x∗)+∑i=1mλ∗ifi(x∗)+∑i=1pv∗ihi(x∗)≤f0(x∗)(3)(4)(5)(6)
第一个等式成立是因为最优对偶间隙为0,第二个等式成立是因为lagrange对偶函数的定义;第三个不等式成立是因为lagrange函数的最小值小于在
x=x∗
处的值;第四个不等式成立是因为对偶函数取得最优值时
λ∗i≥0
, 原问题取得最优值时
fi(x∗)≤0
且
hi(x∗)=0
。因此,上述两个不等式取等号。
因此有:
∑i=1mλ∗ifi(x∗)=0(7)
又因为其中每一项非正,因此每一项都为0。
λ∗ifi(x∗)=0,i=1,2,⋯,m(8)
式(8)称之为松弛互补条件。
KKT最优性条件
假设函数(并不一定为凸函数)
fi,hi
可微。令
x∗
,
(λ∗,v∗)
为原问题和对偶问题的某对最优解。因为,丢偶函数为凸函数,因此在其取得最小值处导数必定为0。
∇f0(x∗)+∑i=1mλ∗i∇fi(x∗)+∑i=1pv∗i∇hi(x∗)=0(9)
因此,我们有:
fi(x∗)≤0hi(x∗)=0λ∗i≥0λ∗ifi(x∗)=0∇f0(x∗)+∑i=1mλ∗i∇fi(x∗)+∑i=1pv∗i∇hi(x∗)=0(7)(8)(9)(10)(11)
以上几个条件称为KKT条件。当原问题是凸问题时,满足KKT条件的点也是原问题和对偶问题的最优解。当原问题非凸时,原问题和对偶问题的最优解满足KKT条件。
总结
当优化问题为非凸问题时,可以通过将问题转化为对偶问题来进行求解。如果强对偶成立且存在一个对偶最优解,那么任意原问题的最优点也是
L(x,λ∗,v∗)
的最优解。