【数学基础与最优化1.4】带约束的优化问题

条件极值 拉格朗日乘数法

  现实问题中,有时会遇到对函数的自变量还有附加条件的极值问题。例如,求表面积为 a 2 a^2 a2而体积为最大的长方体的体积问题。设长方体的三棱长为 x , y , z x,y,z x,y,z,则体积 V = x y z V=xyz V=xyz,又因表面积为 a 2 a^2 a2,所以自变量 x , y , z x,y,z x,y,z还必须满足附加条件 2 ( x y + y z + x z ) = a 2 2(xy+yz+xz)=a^2 2(xy+yz+xz)=a2,像这种对自变量有附加条件的极值称为条件极值。对于有些实际问题,可以把条件极值化为无条件极值。例如上述问题,可由条件 2 ( x y + y z + x z ) = a 2 2(xy+yz+xz)=a^2 2(xy+yz+xz)=a2,将 z z z表示成 x , y x,y x,y的函数 z = a 2 − 2 x y 2 ( x + y ) . z=\dfrac{a^2-2xy}{2(x+y)}. z=2(x+y)a22xy.
再把它代入 V = x y z V=xyz V=xyz中,于是问题就化为求 V = x y 2 ( a 2 − 2 x y x + y ) V=\dfrac{xy}{2} \left(\dfrac{a^2-2xy}{x+y} \right) V=2xy(x+ya22xy)
的无条件极值。
  但是在很多情况下,将条件极值化为无条件极值并不这样简单。另有一种直接寻求条件极值的方法,可以不必先把问题化到无条件极值的问题,这就是下面要介绍的朗格朗日乘数法。(这里只给出拉格朗日乘数法的结论,其具体引入思路可参考文献[2] P113,这里不再赘述。)

要找函数 (1) z = f ( x , y ) z=f(x,y) \tag{1} z=f(x,y)(1) 在附加条件 (2) φ ( x , y ) = 0 \varphi(x,y)=0 \tag{2} φ(x,y)=0(2) 下的可能极值点,可以先作拉格朗日函数 L ( x , y ) = f ( x , y ) + λ φ ( x , y ) , L(x,y)=f(x,y)+\lambda\varphi(x,y), L(x,y)=f(x,y)+λφ(x,y),其中参数 λ \lambda λ 称为拉格朗日乘子。求其对 x x x y y y的一阶偏导数,并使之为零,然后与方程(2)联立起来:
(3) { f x ( x , y ) + λ φ x ( x , y ) = 0 , f y ( x , y ) + λ φ y ( x , y ) = 0 , φ ( x , y ) = 0. \begin{cases} f_x(x, y) + \lambda \varphi_x(x, y) = 0, \\ f_y(x, y) + \lambda \varphi_y(x, y) = 0, \\ \varphi(x, y) = 0. \end{cases} \tag{3} fx(x,y)+λφx(x,y)=0,fy(x,y)+λφy(x,y)=0,φ(x,y)=0.(3)
由这个方程组解出 x , y x,y x,y λ \lambda λ,这样得到的 ( x , y ) (x,y) (x,y) 就是函数 f ( x , y ) f(x,y) f(x,y) 在附加条件 φ ( x , y ) = 0 \varphi(x,y)=0 φ(x,y)=0 下的可能极值点。
  方程组(3)是函数(1)在条件(2)下在 ( x 0 , y 0 ) (x_0, y_0) (x0,y0)取得极值的必要条件。至于如何确定所求得的点是否极值点,在实际问题中往往可根据问题本身的性质来判定。

  该方法可以推广到自变量多于两个而条件多于一个的情形[2],这在下面的等式约束优化问题中也会提到。

等式约束优化

所谓的等式约束优化是指 [3]
KaTeX parse error: Expected group after '\begin{array}' at position 16: \begin{array} \̲ ̲min \ f(x_1, x_…
我们用拉格朗日乘数法求解,令 L ( x , λ ) = f ( x ) + ∑ k = 1 l λ k h k ( x ) L(\boldsymbol x, \boldsymbol \lambda) = f(\boldsymbol x) + \sum \limits_{k=1}^l{\lambda_k h_k(\boldsymbol x)} L(x,λ)=f(x)+k=1lλkhk(x),再联立方程组: { ∂ L ∂ x i = 0 ( i = 1 , 2 , . . . , n ) ∂ L ∂ λ k = 0 ( k = 1 , 2 , . . . , l ) \begin{cases} \dfrac{\partial L}{\partial x_i} = 0 \quad (i=1,2,...,n) \\ \dfrac{\partial L}{\partial \lambda_k} = 0 \quad (k=1,2,...,l) \end{cases} xiL=0(i=1,2,...,n)λkL=0(k=1,2,...,l)
得到的解为可能极值点,由于我们用的是必要条件,具体是否为极值点需根据问题本身的具体情况检验。这个方程组称为等式约束的极值必要条件. (me:上述方程组中的第二个方程实际上就是约束条件 h k ( x 1 , x 2 , . . . , x n ) = 0 h_k(x_1, x_2, ..., x_n) = 0 hk(x1,x2,...,xn)=0

  等式约束下的Lagrange乘数法引入了 l l l个Lagrange乘子,或许我们可以把 λ k \lambda_k λk也看作优化变量,这相当于将优化变量个数增加到 ( n + l ) (n+l) (n+l)个, x i x_i xi λ k \lambda_k λk一视同仁,均为优化变量,均对他们求偏导。

不等式约束优化

  不等式约束优化主要是使用转化的思想——将不等式约束条件转化成等式约束条件,具体做法:引入松弛变量。松弛变量也是优化变量,也需要一视同仁求偏导[3]。
enter image description here

  具体而言,我们先看一个一元函数的例子:
KaTeX parse error: Expected group after '\begin{array}' at position 16: \begin{array} \̲ ̲min \ f(x) \\ s…

注:优化问题中,我们必须求得一个确定的值,因此不妨令所有的不等式均取到等号,即 ≤ \leq 的情况[3].

  对于约束 g 1 g_{1} g1 g 2 g_{2} g2,我们分别引入两个松弛变量 a 1 2 a_{1}^{2} a12 b 1 2 b_{1}^{2} b12,得到 h 1 ( x , a 1 ) = g 1 + a 1 2 = 0 h_{1} (x,a_{1} )=g_{1} +a_{1}^{2} =0 h1(x,a1)=g1+a12=0 h 2 ( x , b 1 ) = g 2 + b 1 2 = 0 h_{2} (x,b_{1} )=g_{2} +b_{1}^{2} =0 h2(x,b1)=g2+b12=0. 注意,这里直接加上平方项 a 1 2 a_{1}^{2} a12 b 1 2 b_{1}^{2} b12 而非 a 1 a_{1} a1 b 1 b_{1} b1,是因为 g 1 g_{1} g1 g 2 g_{2} g2这两个不等式的左边必须加上一个正数才能使不等式变为等式。若只加上 a 1 a_{1} a1 b 1 b_{1} b1,又会引入新的约束 a 1 ≥ 0 a_{1} \geq 0 a10 b 1 ≥ 0 b_{1} \geq 0 b10,这不符合我们的意愿。
enter image description here

  由此我们将不等式约束转化成了等式约束,此时引入Lagrange函数
(2) L ( x , a 1 , b 1 , μ 1 , μ 2 ) = f ( x ) + μ 1 ( a − x + a 1 2 ) + μ 2 ( x − b + b 1 2 ) L(x, a_1, b_1, \mu_1, \mu_2) = f(x) + \mu_1(a-x+a_1^2) + \mu_2(x-b+b_1^2) \tag{2} L(x,a1,b1,μ1,μ2)=f(x)+μ1(ax+a12)+μ2(xb+b12)(2)
我们再按照等式约束优化问题(极值必要条件)对其求解,联立方程:
(3) { ∂ L ∂ x = ∂ f ∂ x + μ 1 d g 1 d x + μ 2 d g 2 d x = ∂ f ∂ x − μ 1 + μ 2 = 0 , ∂ L ∂ μ 1 = g 1 + a 1 2 = 0 , ∂ L ∂ μ 2 = g 2 + b 1 2 = 0 , ∂ L ∂ a 1 = 2 μ 1 a 1 = 0 , ∂ L ∂ b 1 = 2 μ 2 b 1 = 0 , μ 1 ≥ 0 , μ 2 ≥ 0. \left\{ \begin{array}{} \dfrac{\partial L}{\partial x} = \dfrac{\partial f}{\partial x} + \mu_1 \dfrac{{\rm d}g_1}{{\rm d}x} + \mu_2 \dfrac{{\rm d}g_2}{{\rm d}x} = \dfrac{\partial f}{\partial x} - \mu_1 + \mu_2 = 0, \\ \dfrac{\partial L}{\partial \mu_1} = g_1 + a_1^2 = 0, \quad \dfrac{\partial L}{\partial \mu_2} = g_2 + b_1^2 = 0, \\ \dfrac{\partial L}{\partial a_1} = 2 \mu_1 a_1 = 0, \quad \quad \dfrac{\partial L}{\partial b_1} = 2 \mu_2 b_1 = 0, \\ \mu_1 \geq 0, \quad \mu_2 \geq 0. \end{array} \right. \tag{3} xL=xf+μ1dxdg1+μ2dxdg2=xfμ1+μ2=0,μ1L=g1+a12=0,μ2L=g2+b12=0,a1L=2μ1a1=0,b1L=2μ2b1=0,μ10,μ20.(3)

注:这里的 μ 1 ≥ 0 , μ 2 ≥ 0 \mu_1 \geq 0, \mu_2 \geq 0 μ10,μ20我们先记住!实际上对于不等式约束前的乘子,我们要求其大于等于0 [3].

对于方程组(3)中的
(4) { ∂ L ∂ μ 1 = g 1 + a 1 2 = 0 , ∂ L ∂ a 1 = 2 μ 1 a 1 = 0 , μ 1 ≥ 0. \left\{ \begin{array}{} \dfrac{\partial L}{\partial \mu_1} = g_1 + a_1^2 = 0, \\ \dfrac{\partial L}{\partial a_1} = 2 \mu_1 a_1 = 0, \\ \mu_1 \geq 0. \end{array} \right. \tag{4} μ1L=g1+a12=0,a1L=2μ1a1=0,μ10.(4)我们可以做如下讨论:

  1. μ 1 = 0 \mu_1 = 0 μ1=0时, a 1 ̸ = 0 \color{#F00}{a_1 \not = 0} a1̸=0 m e : 此 时 a 1 等 于 0 不 可 以 吗 ? \color{#F00}{me:此时a_1等于0不可以吗?} me:a10),在Lagrange函数 L L L中,约束 g 1 g_1 g1不起作用;而由 g 1 + a 1 2 = 0 g_1 + a_1^2 = 0 g1+a12=0可知此时 g 1 &lt; 0 g_1 &lt; 0 g1<0.
  2. μ 1 &gt; 0 \mu_1 &gt; 0 μ1>0时, a 1 = 0 a_1 = 0 a1=0,由 g 1 + a 1 2 = 0 g_1 + a_1^2 = 0 g1+a12=0可知此时 g 1 = 0 g_1 = 0 g1=0.
    综上有 μ 1 g 1 = 0 \mu_1 g_1 = 0 μ1g1=0.
    同理也有 μ 2 g 2 = 0 \mu_2 g_2 = 0 μ2g2=0.

由此,方程组(3)转化为
(5) { ∂ f ∂ x + μ 1 d g 1 d x + μ 2 d g 2 d x = 0 , μ 1 g 1 ( x ) = 0 , μ 2 g 2 ( x ) = 0 , μ 1 ≥ 0 , μ 2 ≥ 0. \left\{ \begin{array}{} \dfrac{\partial f}{\partial x} + \mu_1 \dfrac{{\rm d}g_1}{{\rm d}x} + \mu_2 \dfrac{{\rm d}g_2}{{\rm d}x}= 0, \\ \mu_1 g_1(x) = 0, \quad \mu_2 g_2(x) = 0, \\ \mu_1 \geq 0, \quad \mu_2 \geq 0. \end{array} \right. \tag{5} xf+μ1dxdg1+μ2dxdg2=0,μ1g1(x)=0,μ2g2(x)=0,μ10,μ20.(5)这是一元一次的情形。类似地,对于多元多次不等式约束问题:
KaTeX parse error: Expected group after '\begin{array}' at position 16: \begin{array} \̲ ̲min \ f(\boldsy…
我们有
(7) { ∂ f ∂ x i + ∑ j = 1 m μ j ∂ g j ∂ x i = 0 , ( i = 1 , 2 , . . . , n ) , μ j g j ( x ) = 0 , ( j = 1 , 2 , . . . , m ) , μ j ≥ 0 , ( j = 1 , 2 , . . . , m ) . \left\{ \begin{array}{} \dfrac{\partial f}{\partial x_i} + \sum \limits_{j=1}^m \mu_j \dfrac{\partial g_j}{\partial x_i} = 0, \quad (i=1,2,...,n),\\ \mu_j g_j(\boldsymbol x) = 0, \quad (j=1,2,...,m), \\ \mu_j \geq 0, \quad (j=1,2,...,m). \end{array} \right. \tag{7} xif+j=1mμjxigj=0,(i=1,2,...,n),μjgj(x)=0,(j=1,2,...,m),μj0,(j=1,2,...,m).(7)上式便称为不等式约束优化问题(6)的KKT(Karush-Kuhn-Tucker)条件. μ j \mu_j μj称为KKT乘子,且约束起作用时 μ j ≥ 0 , g j ( x ) = 0 \mu_j \geq 0, g_j(\boldsymbol x) = 0 μj0,gj(x)=0;约束不起作用时 μ j = 0 , g j ( x ) &lt; 0 \mu_j = 0, g_j(\boldsymbol x) &lt; 0 μj=0,gj(x)<0 [3].

注意这里的约束起作用时, “ μ j ≥ 0 , g j ( x ) = 0 \mu_j \geq 0, g_j(\boldsymbol x) = 0 μj0,gj(x)=0” 和上面讨论的 “ μ j &gt; 0 , g j ( x ) = 0 \mu_j &gt; 0, g_j(\boldsymbol x) = 0 μj>0,gj(x)=0” 的区别,但这里是正确的,也就是说上面的证明还不够严谨,那么具体要怎样更严谨的证明呢?

总结:同时包含等式和不等式约束的一般优化问题[3]
enter image description here

参考文献

[1] 可导与可微等价吗?有什么区别?
[2] 高等数学.第六版.下册
[3] 浅谈最优化问题的KKT条件

凸优化有关书目:
Numerical Optimization和Convex optimization 两本书的选择?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值