图解拉格朗日乘子法和KKT条件

图解拉格朗日乘子法和KKT条件

文档的图片基本上都来自下面两个链接的内容:

如何理解拉格朗日乘子法?https://www.matongxue.com/madocs/939.html

如何理解拉格朗日乘子法和KKT条件?https://www.matongxue.com/madocs/987/

因为人家画的图实在太好了,我都懒得自己造轮子了。

引入例子

求曲线到坐标原点的最短距离。

假如有方程:
x 2 y = 3 (1) x^2 y = 3 \tag{1} x2y=3(1)
它的曲线如下图:

在这里插入图片描述

现在我们想求曲线上的点到坐标原点的最短距离:

在这里插入图片描述
比较容易想到的一个方法是,画个半径为 a a a的圆,然后逐渐扩大圆的半径:

在这里插入图片描述

直到第一次与曲线 x 2 y = 3 x^2 y = 3 x2y=3相交,那么这个相交的点(下图紫点)就是曲线 x 2 y = 3 x^2 y = 3 x2y=3上距离原点最近的点:

在这里插入图片描述
把问题用数学表示就是:
min ⁡ f ( x , y ) = x 2 + y 2 s . t .   h ( x , y ) = x 2 y − 3 = 0 (2) \begin{aligned} &\min f(x,y) = x^2 + y^2 \\ s.&t. \space h(x,y) = x^2 y - 3 =0 \end{aligned} \tag{2} s.minf(x,y)=x2+y2t. h(x,y)=x2y3=0(2)
s.t.是subject to的缩写,表示“服从于、约束于”。

在相交点处,圆和曲线是相切的,即在该点处圆和曲线的切线(下面的绿线)相同:

在这里插入图片描述

至此,我们得出结论:在极值点处,圆与曲线相切

接下来,需要引入等高线的概念,等高线就是函数值相等的输入点连成的曲线。

在这里插入图片描述

上面的同心圆(颜色深浅表示函数值的大小,颜色越深函数值越大),就是函数 f ( x , y ) = x 2 + y 2 f(x,y) = x^2+y^2 f(x,y)=x2+y2的等高线:

在这里插入图片描述
根据梯度的性质(梯度是函数在某一点处变化最大的方向),梯度向量:

∇ f = [ ∂ f ∂ x ∂ f ∂ y ] = [ 2 x 2 y ] (3) \nabla f = \left[ \begin{aligned} \frac{\partial f}{\partial x} \\ \frac{\partial f}{\partial y} \end{aligned} \right] =\left[ \begin{aligned} 2x \\ 2y \end{aligned} \right] \tag{3} f=xfyf=[2x2y](3)
是等高线的法线,它与等高线的切线方向垂直:

在这里插入图片描述
函数 h ( x , y ) = x 2 y − 3 h(x,y) = x^2 y-3 h(x,y)=x2y3的等高线为:

在这里插入图片描述
它的梯度向量是:

∇ h = [ ∂ h ∂ x ∂ h ∂ y ] = [ 2 x y x 2 ] (4) \nabla h = \left[ \begin{aligned} \frac{\partial h}{\partial x} \\ \frac{\partial h}{\partial y} \end{aligned} \right] =\left[ \begin{aligned} 2xy \\ x^2 \end{aligned} \right] \tag{4} h=xhyh=[2xyx2](4)
也垂直于等高线 x 2 y = 3 x^2 y = 3 x2y=3的切线:

在这里插入图片描述
由上可知:梯度与等高线的切线垂直

结合两个分析结论:
{ 在 极 值 点 处 圆 与 曲 线 相 切 梯 度 与 等 高 线 的 切 线 垂 直 \left\{ \begin{aligned} 在极值点处圆与曲线相切 \\ 梯度与等高线的切线垂直 \end{aligned} \right. { 线线线
可知,在相切点处,圆的梯度向量和曲线的梯度向量平行:

在这里插入图片描述

用数学符号表示为:
∇ f = μ ∇ h (5) \nabla f = \mu \nabla h \tag{5} f=μh(5)

其中, μ \mu μ是非零常数。

从图反应出来,圆的梯度向量 ∇ f \nabla f f和曲线的梯度向量 ∇ h \nabla h h应该是同向的,那么 μ \mu μ不应该是正数吗?

这是因为 h = 0 h=0 h=0 − h = 0 -h=0 h=0是等效的,所以 ∇ h \nabla h h的方向可正可负,这样的话只要保证 ∇ f \nabla f f ∇ h \nabla h h是平行就可以了,也就是 μ \mu μ为非零常数。

求极值点,还必须引入 x 2 y = 3 x^2 y = 3 x2y=3这个条件,否则这么多等高线,不知道具体指的是哪一根:

在这里插入图片描述
因此,联立方程:

{ ∇ f = μ ∇ h x 2 y = 3 ⇒ { ∂ f ∂ x = μ ∂ h ∂ x ∂ f ∂ y = μ ∂ h ∂ y x 2 y = 3 ⇒ { 2 x = μ ⋅ 2 x y 2 y = μ ⋅ x 2 x 2 y = 3 (6) \begin{aligned} \left\{ \begin{aligned} & \nabla f = \mu \nabla h \\ & x^2 y = 3 \end{aligned} \right. \Rightarrow \left\{ \begin{aligned} & \frac{\partial f}{\partial x} = \mu \frac{\partial h}{\partial x} \\ & \frac{\partial f}{\partial y} = \mu \frac{\partial h}{\partial y} \\ & x^2 y = 3 \end{aligned} \right. \\ \end{aligned} \Rightarrow \left\{ \begin{aligned} 2x &= \mu \cdot 2xy \\ 2y &= \mu \cdot x^2 \\ x^2 y &= 3 \end{aligned} \right. \tag{6} { f=μhx2y=3xf=μxhyf=μyhx2y=32x2yx2y=μ2xy=μx2=3(6)

上面的方程组有一种更常见的形式:


F ( x , y , μ ) = f ( x , y ) + μ h ( x , y ) (7) F(x,y,\mu) = f(x,y) + \mu h(x,y) \tag{7} F(x,y,μ)=f(x,y)+μh(x,y)(7)
对函数 F F F求极值,也就是求偏导并等于0:
∇ F = [ ∂ F ∂ x ∂ F ∂ y ∂ F ∂ μ ] = [ ∂ f ∂ x + μ ∂ h ∂ x ∂ f ∂ y + μ ∂ h ∂ y h ( x , y ) ] = [ 2 x + μ ⋅ 2 x y 2 y + μ ⋅ x 2 x 2 y − 3 ] = 0 ⇒ { 2 x = − μ ⋅ 2 x y 2 y = − μ ⋅ x 2 x 2 y = 3 (8) \nabla F = \left[ \begin{array}{c} \frac{\partial F}{\partial x} \\ \frac{\partial F}{\partial y} \\ \frac{\partial F}{\partial \mu} \end{array} \right] =\left[ \begin{array}{c} \frac{\partial f}{\partial x} + \mu \frac{\partial h}{\partial x} \\ \frac{\partial f}{\partial y} + \mu \frac{\partial h}{\partial y} \\ h(x,y) \end{array} \right] =\left[ \begin{array}{c} 2x + \mu \cdot 2xy \\ 2y + \mu \cdot x^2 \\ x^2 y - 3 \end{array} \right] = \mathbf{0} \\ \Rightarrow \left\{ \begin{aligned} 2x &= -\mu \cdot 2xy \\ 2y &= -\mu \cdot x^2 \\ x^2 y &= 3 \end{aligned} \right. \tag{8} F=xFyFμF=xf+μxhyf+μyhh(x,y)=2x+μ2xy2y+μx2x2y3=02x2yx2y=μ2xy=μx2=3(8)
虽然上式系数是 − μ -\mu μ,但由于 μ \mu μ的正负对结果没有影响,所以 ∇ F = 0 \nabla F = \mathbf{0} F=0和式(6)是等效的。

求解上面方程组可以得到极小值点 ( x ∗ , y ∗ ) (x^*,y^*) (x,y)
{ x ∗ ≈ ± 1.61 y ∗ ≈ 1.1 μ ∗ ≈ 0.87 (9) \left\{ \begin{aligned} x^* &\approx \pm 1.61 \\ y^* &\approx 1.1 \\ \mu^* &\approx 0.87 \end{aligned} \right. \tag{9} xyμ±1.611.10.87(9)
这个例子的求解过程体现了拉格朗日乘子法的思想:将有约束的优化问题转化为求解无约束的函数 F F F的极值。这个函数 F F F称为拉格朗日乘子式。

如果 ( x ∗ , y ∗ ) (x^*, y^*) (x,y)是优化问题极值点,那么它必须满足:

存在 μ ∗ \mu^* μ,使得
{ ∇ f ( x ∗ , y ∗ ) + μ ∗ ∇ h ( x ∗ , y ∗ ) = 0

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值