拉格朗日乘子法的分析基础篇

来源:互联网 发布:echart java maven 编辑:程序博客网 时间:2024/06/11 00:49

拉格朗日乘子法(Lagrange Multiplier)在在求取有约束条件的优化问题时使用的算法。约束条件又分为等式和不等式方法。这里只用等式方法作为例子分析算法的含义原理(自己理解的)。

首先看拉格朗日的计算式子:L(a, x) = f(x) + a*g(x)。 f(x)是我们的目标函数,就是需要解决的问题的数学公式表示, a*g(x)=0 就是我们添加的等式约束条件了。组合在一起就是拉格朗日乘子法的解题公式。

网络上对上述公式的含义大概都是这样的:目标函数z = f(x), x是向量, z取不同的值,相当于可以投影在x构成的平面(曲面)上,即成为等高线,如下图,目标函数是f(x, y),这里x是标量,虚线是等高线。目标函数就是z = f(x, y) 这样的一个曲面图。这个时候的约束条件函数可以写为c=g(x,y)。这个曲面与平面z = c的交线在xoy面上的投影曲线g(x,y)=c称为函数z=f(x,y)的一条登高线。如下图所示:最终的拉格朗日乘子方程为L(a, x, y) = f(x,y) + a*g(x,y)。


曲面等高线和约束条件的曲线的交点就是同时满足等式约束条件和目标函数的值,但不是最优值,因为相交意味着肯定还存在其它的等高线在该条等高线的内部或者外部,使得新的等高线与目标函数的交点的值更大或者更小,只有到等高线与目标函数的曲线相切的时候,可能取得最优值。这里内容比较抽象,用网上找到一张图看的话就比较直观,如下图:


如上所示,我们可以很清楚看到角点和切点的区别。将拉格朗日乘子方程进行求偏导求解,可以看成是曲面等高线和约束曲线的求导即切线相同,也就是所说的等高线和约束曲线的这一切点的梯度是在同一条直线上的。

以上是个人的粗浅理解。




原创粉丝点击