【优化】拉格朗日(Lagrange)乘子法超简说明

本文不做数学推导,从物理意义上讲解拉格朗日乘子法。

原问题

我们要解决带有等式约束的最优化问题。为方便书写,以二维函数为例:
m a x   f ( x , y ) ,    s . t . g ( x , y ) = 0 max\ f(x,y), \ \ s.t. g(x,y)=0 max f(x,y),  s.t.g(x,y)=0

用下图表示这个问题。 f ( x ) f(x) f(x)参数在二维平面内,其本身是一个曲面,用等高线(蓝色)表示。 g ( x ) = 0 g(x)=0 g(x)=0是二维平面内的一条曲线(红色)。
这里写图片描述

我们要找 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0上的一个点,其位于 f ( x , y ) f(x,y) f(x,y)最大的等高线上。

问题转换

Step 1

求解上述问题等价于:

找到 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0上的一点,这一点处 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0和该点 f ( x , y ) f(x,y) f(x,y)的等高线相切。

可以用反例直观地理解。如果 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0和该点 f ( x , y ) f(x,y) f(x,y)等高线相交(黑点),如下图:
这里写图片描述

g ( x , y ) = 0 g(x,y)=0 g(x,y)=0能够延伸到等高线 f ( x , y ) = d f(x,y)=d f(x,y)=d更大的一侧。这个区域内的解(灰点),同样满足 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0,但 f ( x , y ) f(x,y) f(x,y)更大。

Step 2

更进一步,这一条件等价于:

找到 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0上的一点,这一点 g ( x , y ) = 0 g(x,y)=0 g(x,y)=0 f ( x , y ) = d f(x,y)=d f(x,y)=d的梯度共线。

我们可以把这句话拆分成三个条件:

g ( x , y ) = 0 g(x,y)=0 g(x,y)=0

∂ f ( x , y ) ∂ x = λ ∂ g ( x , y ) ∂ x \frac{\partial f(x,y)}{\partial x}=\lambda \frac{\partial g(x,y)}{\partial x} xf(x,y)=λxg(x,y)

∂ f ( x , y ) ∂ y = λ ∂ g ( x , y ) ∂ y \frac{\partial f(x,y)}{\partial y}=\lambda \frac{\partial g(x,y)}{\partial y} yf(x,y)=λyg(x,y)

三个方程,三个未知数,这样实际就可以求解了。

不过,为了记忆简洁,同时方便计算机运算,我们还可以把三式合为一式:

L ( x , y , λ ) = f ( x , y ) − λ g ( x , y ) L(x,y,\lambda)=f(x,y)-\lambda g(x,y) L(x,y,λ)=f(x,y)λg(x,y)

∇ L ( x , y , λ ) = 0 \nabla L(x,y,\lambda)=0 L(x,y,λ)=0

其中 ∇ \nabla 表示对三个参数求导。其中 λ \lambda λ称为拉格朗日乘子 L L L称为拉格朗日函数

求解

通过 ∇ L = 0 \nabla L=0 L=0可以求解出若干组参数,分别代入 f ( x , y ) f(x,y) f(x,y),找出值最大的一组,即为所求。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值