约束规划——拉格朗日乘数法

拉格朗日乘数法

拉格朗日乘数法的基本思想

拉格朗日乘数法(Lagrange Multiplier Method)是一种优化算法,拉格朗日乘子法主要用于解决约束优化问题,它的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题。拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数。

如何将一个含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题?拉格朗日乘数法从数学意义入手,通过引入拉格朗日乘子建立极值条件,对n个变量分别求偏导对应了n个方程,然后加上k个约束条件(对应k个拉格朗日乘子)一起构成包含了(n+k)变量的(n+k)个方程的方程组问题,这样就能根据求方程组的方法对其进行求解。

解决的问题模型为约束优化问题:

m i n / m a x f ( x , y , z ) min/max f(x,y,z) min/maxf(x,y,z)
s . t . s.t. s.t. g ( x , y , z ) = 0 g(x,y,z)=0 g(x,y,z)=0

数学实例

首先,我们先以麻省理工学院数学课程的一个实例来作为介绍拉格朗日乘数法的引子。求双曲线xy=3上离远点最近的点。

解:首先,我们根据问题的描述来提炼出问题对应的数学模型,即:

m i n f ( x , y ) = x 2 + y 2 min f(x,y)=x^2+y^2 minf(x,y)=x2+y2
s . t . s.t. s.t. x y = 3 xy=3 xy=3

(两点之间的欧氏距离应该还要进行开方,但是这并不影响最终的结果,所以进行了简化,去掉了平方)

根据上式我们可以知道这是一个典型的约束优化问题,其实我们在解这个问题时最简单的解法就是通过约束条件将其中的一个变量用另外一个变量进行替换,然后代入优化的函数就可以求出极值。我们在这里为了引出拉格朗日乘数法,所以我们采用拉格朗日乘数法的思想进行求解。

我们将 x 2 + y 2 = c x^2+y^2=c x2+y2=c的曲线族画出来,如下图所示,当曲线族中的圆与 x y = 3 xy=3 xy=3曲线进行相切时,切点到原点的距离最短。也就是说,当 f ( x , y ) = c f(x,y)=c f(x,y)=c的等高线和双曲线 g ( x , y ) g(x,y) g(x,y)相切时,我们可以得到上述优化问题的一个极值(注意:如果不进一步计算,在这里我们并不知道是极大值还是极小值)。

在这里插入图片描述
现在原问题可以转化为求当f(x,y)和g(x,y)相切时,x,y的值是多少?

如果两个曲线相切,那么它们的切线相同,即法向量是相互平行的: ▽ f / / ▽ g ▽f//▽g f//g
▽ f / / ▽ g ▽f//▽g f//g可以得到, ▽ f = λ ▽ g ▽f=λ▽g f=λg

这时,我们将原有的约束优化问题转化为了一种无约束的优化问题,如下所示:

原问题(约束优化问题)
m i n f ( x , y ) = x 2 + y 2 min f(x,y)=x^2+y^2 minf(x,y)=x2+y2
s . t . s.t. s.t. x y = 3 xy=3 xy=3

无约束方程组问题:
▽ f / / ▽ g ▽f//▽g f//g可以得到

∂ f ∂ x = λ ∂ g ∂ x \frac{\partial f}{\partial x} =λ \frac{\partial g}{\partial x} xf=λxg
∂ f ∂ y = λ ∂ g ∂ y \frac{\partial f}{\partial y} =λ \frac{\partial g}{\partial y} yf=λyg
x y = 3 xy=3 xy=3

通过求解上面的无约束方程组我们可以获取原问题的解:

2 x = λ y 2x=\lambda y 2x=λy
2 y = λ x 2y = \lambda x 2y=λx
x y = 3 xy=3 xy=3

通过求解上式可得, λ = 2 λ=2 λ=2或者是 − 2 -2 2
λ = 2 λ=2 λ=2时, ( x , y ) = ( 3 , 3 ) (x,y)=(\sqrt3, \sqrt3) (x,y)=(3 ,3 )或者 ( − 3 , − 3 ) (-\sqrt3, -\sqrt3) (3 ,3 )
λ = − 2 λ=-2 λ=2时,无解。

所以原问题的解为 ( x , y ) = ( 3 , 3 ) (x,y)=(\sqrt3, \sqrt3) (x,y)=(3 ,3 )或者 ( − 3 , − 3 ) (-\sqrt3, -\sqrt3) (3 ,3 )

通过举上述这个简单的例子就是为了体会拉格朗日乘数法的思想,即通过引入拉格朗日乘子 λ \lambda λ将原来的约束优化问题转化为无约束的方程组问题。

拉格朗日乘数法的基本形态

求函数 f ( x , y ) f(x,y) f(x,y)在满足 g ( x , y ) = c g(x,y)=c g(x,y)=c下的条件极值,可以转化为函数 L ( x , y , λ ) = f ( x , y ) + λ ( g ( x , y ) − c ) L(x,y,\lambda)=f(x,y)+\lambda (g(x,y)-c) L(x,y,λ)=f(x,y)+λ(g(x,y)c)的无条件极值问题。

我们可以画图来辅助思考。
在这里插入图片描述
绿线标出的是约束g(x,y)=c的点的轨迹。蓝线是f(x,y)的等高线。箭头表示斜率,和等高线的法线平行。

从图上可以直观地看到在最优解处,f和g的斜率平行。

▽ [ f ( x , y ) + λ ( g ( x , y ) − c ) ] = 0 , λ ≠ 0 ▽[f(x,y)+λ(g(x,y)−c)]=0, λ≠0 [f(x,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值