码迷,mamicode.com
首页 > 其他好文 > 详细

拉格朗日乘子法

时间:2018-11-24 17:55:48      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:info   多个   display   现在   整合   有一个   com   ima   扩展   

拉格朗日乘子法 (Lagrange multipliers)是→种寻找多元函数在一组约束下的极值的方法.通过引入拉格朗日乘子,可将有 d 个变量与 k 个约束条件的最优化问题转化为具有 d + k 个变量的无约束优化问题求解。
我们先以包含一个变量的简单优化问题为例,

求在满足$x \le -1$ 或者 $x \ge -1$的约束条件$g(x)$下,求${x^2} + 4x - 1$目标函数$f(x) $的最小值,如图所示,

\[\begin{array}{*{20}{l}}
{\mathop {\min }\limits_x f(x) = {x^2} + 4x - 1}\\
\begin{array}{l}
s.t.{\rm{ }}x + 1 \le 0\\
(s.t.{\rm{ - }}x - 1 \le 0)
\end{array}
\end{array}\]

技术分享图片

 

当没有约束的时候,我们可以直接令目标函数的导数为0,求最小值。

可现在有约束,那怎么在求目标函数最小值的时候,考虑约束呢。最直观的办法我们把约束放进目标函数里面,由于本例中只有一个约束,所以引入一个朗格朗日乘子$\lambda$,构造一个新的函数$h(x)$,

\[h(x) = f(x) + \lambda g(x) \]

求解最优的过程可以根据约束分为两种情况,

当$g(x) <0$时,也就是不等式约束满足的时候,约束对求目标函数最小值不起作用,这等价于$\lambda = 0$,直接通过条件$\nabla f(x*) = 0$, 也就是约束为$g(x)=x +1 \le 0$的情况。

当$g(x) =0$时,不等式约束转换为等式约束$g(x)=0$,也就是在$\lambda>0$的情况下,使得$\nabla f(x*) + \lambda \nabla g(x*)=0$,也就是约束为$g(x)=-x -1 \ge 0$的情况。

整合这两种情况,必须满足$\lambda g(x)=0$

因此在约束$g(x)$,最小化$f(x)$,可转化为在如下约束下,最小化拉格朗日函数

\[\left\{ {\begin{array}{*{20}{c}}
{g(x) \le 0}\\
{\lambda \ge 0}\\
{\lambda g(x) \ge 0}
\end{array}} \right.\]

上述约束条件成为KKT条件。

该KKT条件可扩展到多个等式约束和不等式约束的优化问题。

 

拉格朗日乘子法

标签:info   多个   display   现在   整合   有一个   com   ima   扩展   

原文地址:https://www.cnblogs.com/yijuncheng/p/10012679.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!