今天要扫盲的知识点是原始问题和对偶问题,这个知识点主要牵涉拉格朗日乘数法。整理这个知识点,主要是为理解下一个知识点(支持向量机)做准备的!
引言
原问题,又称原线性规划问题,是指每一个线性规划的原始问题,每个原问题均可以转化为与其对称的对偶问题。原问题与对偶问题是相对的,二者为同类型的规划,构成对偶规划的一般规则如下:
- 若原问题是极大化问题,那么对偶问题就是极小化问题;若原问题是极小化问题,那么对偶问题就是极大化问题。
- 在原问题与对偶问题中,约束右端向量与目标函数中系数恰好对换。
- 对于极小化问题的“≥ ”型约束(极大化问题的“≤ ”型约束),相应的对偶变量有非负限制;对于极小化问的“≤ ”型约束(极大化问题的“≥
”型约束),相应的对偶变量有非正限制;对于原问题的“=”型约束,相应的对偶变量无正负限制。 - 对于极小化问题的具有非负限制的变量(极大化问题的具有非正限制的变量),在其对偶中相应的约束为“≤ ”型不等式;对于极小化问题的具有非正限制的变量(极大化问题的具有非负限制的变量),在其对偶问题中相应的约束为“≥ ”型不等式;
- 对于原问题中无正负限制的变量,在其对偶问题中相应的约束为等式。
原始问题
定义: 设 f ( x ) , g i ( x ) , h j ( x ) f(x), g_i(x), h_j(x) f(x),gi(x),hj(x)是定义在 R n R^n Rn上的连续可微函数,考虑约束最优化问题:
min w f ( x ) s . t . g i ( x ) ≤ 0 ( i = 1 , . . . , k ) h j ( x ) = 0 ( j = 1 , . . . , n ) \begin{array}{rcl}&&\min_w\;f(x)\\s.t.\;g_i(x)&\leq&0\;(i=1,...,k)\\h_j(x)&=&0\;(j=1,...,n)\\&& \end{array} s.t.gi(x)hj(x)≤=minwf(x)0(i=1,...,k)0(j=1,...,n)
上述称为约束最优化问题的原始问题。[想了解具体的最优化问题见(五]
如果不考虑约束条件的情况下,要求解连续可微函数f(x)的最小值非常简单,直接令其导数等于零,解出x的值即可得到最优解。但是问题总是没有这么简单的!,约束最优化问题是有约束条件的,我们不能无视约束条件呀,那在约束条件下应该怎么求解呢??此时,拉格朗日来了,他整了个 拉格朗日乘数法出来专门把这令人头大的约束条件去掉,将约束最优化问题变成无约束最优化问题!
最优化问题
在介绍拉格朗日之前需要普及一下我们常见的最优化问题可分为三种类型:
-
无约束条件:
min x f ( x ) \min_x f(x) xminf(x) -
有等式约束条件的:
min x f ( x ) s . t . g i ( x ) = 0 ; ( i = 1 , . . . , n ) \min_x f(x)\\ s.t.g_i(x)=0; (i=1,...,n) xminf(x)s.t.gi(x)=0;(i=1,...,n) -
在第2类基础上再加入不等式约束条件的:
min x f ( x ) s . t . g i ( x ) ≤ 0 ; ( i = 1 , . . . , n ) h j ( x ) = 0 ; ( j = 1 , . . . , k ) \min_x f(x)\\ s.t.g_i(x)\le0; (i=1,...,n)\\ h_j(x)=0;(j=1,...,k) xminf(x)s.t.gi(x)≤0;(i=1,...,n)hj(x)=0;(j=1,...,k)
显然,上面描述的原始问题是属于”等式约束+不等式约束“的第3类最优化问题了。(这也是最复杂的情况)
拉格朗日乘数法
插入拉格朗日乘数法的一点介绍,为了更好地理解下面的内容。
Lagrange Multiplier Method:是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。这种方法将一个有n个变量与k个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束。这种方法引入了一个拉格朗日乘子:约束方程的梯度(gradient)的线性组合里每个向量的系数。
注意啦!!!拉格朗日乘数法主要是解决第2类优化问题,通过引入拉格朗日乘子将等式约束问题变成无约束问题。
-
表达式: L = f ( x , y , z ) + λ φ ( x , y , z ) = 0 L=f(x,y,z)+\lambda \varphi(x,y,z)=0 L=f(x,y,z)+λφ(x,y,z)=0
-
适用领域范围: 多元函数求极值
举个栗子
给定二元函数 z = f ( x , y ) z=f(x,y) z=f(x,y)和 附加条件 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0 ,为寻找 z = f ( x , y ) z=f(x,y) z=f(x,y)在附加条件下的极值点,首先,做拉格朗日函数 (公式1):
F ( x , y , λ ) = f ( x , y ) + λ g ( x , y ) F(x,y,\lambda)=f(x,y)+\lambda g(x,y) F(x,y,λ)=f(x,y)+λg(x,y)
其中 λ \lambda λ为参数。令F分别对 x , y , λ x,y,\lambda x,y,λ的一阶偏导数等于0,得到下面 (式子2):
F ′ x = f x ′ ( x , y ) + λ g x ′ ( x , y ) = 0 F ′ y = f y ′ ( x , y ) + λ g y ′ ( x , y ) = 0 F ′ λ = g ( x , y ) = 0 \begin{array}{l}{F^\prime}_x=f^\prime_x(x,y)+\lambda g^\prime_x(x,y)=0\\{F^\prime}_y=f^\prime_y(x,y)+\lambda g^\prime_y(x,y)=0\\{F^\prime}_\lambda=g(x,y)=0\end{array} F′x=fx′(x,y)+λgx′(x,y