考虑约束最优化问题:
拉格朗日化后为:
该拉格朗日函数为:
因为(forall i in {1,2,cdots,l}),(c_i(x) leq 0,lambda_i geq 0;forall i in {l+1,l+2,cdots,n}),(h_i(x) = 0),所以:
就是说:对任意的(x),
那么,
则有:
于是,我们把拉格朗日的对偶函数定义为:
$$ g(vec{lambda}) = min(L(x,vec{lambda})) = min(f(x)+sum_{i=1}^{l}lambda_i c_i(x)+sum_{i=l+1}^{n}lambda_i h_i(x)) $$ 函数$g$的意义为:
现在,让我们看看拉格朗日对偶函数的凹性质:
函数$g(vec{lambda})$可以写成如下形式: $$ begin{aligned} g(vec{lambda}) &= min(f(x)+sum_{i=1}^{l}lambda_i c_i(x)+sum_{i=l+1}^{n}lambda_i h_i(x))\ &=min(f(x)+left[begin{matrix} c_1(x)&c_2(x)&cdots&c_l(x)&h_{l+1}(x)&h_{l+2}(x)&cdots&h_n(x) end{matrix} right] · left[begin{matrix} lambda_1&lambda_2&cdots&lambda_n end{matrix} right]) end{aligned} $$ 其中, $$ begin{aligned} &f(x) in R,\ &forall i in {1,2,cdots,l},c_i(x) leq R,\ &forall i in {l+1,l+2,cdots,n},h_i(x) = 0 end{aligned} $$ 就是说,$k(vec{lambda})= left[begin{matrix} vec{c(x)};vec{h(x)}end{matrix} right] · vec{lambda}$是一个超平面(类似于$2 · x$,前面的‘;’表示拼接两个向量),$ left[begin{matrix} vec{c(x)};vec{h(x)}end{matrix} right]$就是一个超平面的系数。那么说明:
三维空间中的几个‘超平面’
|
左图在点(-5-5)处往上掰看的视图
|
从图中可以看到,不同的超平面相交后,如果我们对于一个(vec{lambda}),取,使函数(k(vec{lambda})),最小的值,那么可以看到:
x = linspace(-5,5,100); y = linspace(-5,5,100); [x,y]=meshgrid(x,y); z1 = x.*2+y.*3; z2 = x.*4+y.*2; z3 = x.*(-2)+y.*6; z4 = x.*(-3)+y.*(-3); surf(x,y,z1);hold on;surf(x,y,z2);hold on;surf(x,y,z3);surf(x,y,z4); hold on; legend('z=2x+3y','z=4x+2y','z=-2x+6y','z=-3x-3y');
参考文献:
如何理解拉格朗日对偶函数_PandaRELEASE的博客(上图的工作源自此文章的对对偶函数的解释)
凸优化中的对偶问题与共轭函数(对对偶函数的定义来自此文)