拉格朗日乘子法

最优化基本知识这里就不赘述了,详情可以参考个种最优化书籍,这篇博客主要是帮助回忆优化应用中较常用的方法。

一般情况下,最优化问题会碰到一下三种情况:1. 无约束, 2. 等式约束  3. 不等式约束。对于无约束情况,只要将优化目标对于变量求导,并令其等于0即可,我们主要讨论第二种情况。

设目标函数为f(x),约束条件为h_k(x) :

                                                               拉格朗日乘子法

一种方法是消元法,这个方法有局限性,因为要做到消元有时很麻烦,甚至是不可行的。举个例子,拉格朗日乘子法拉格朗日乘子法,那么该处要做消元法的话需要很用x和y表示z,这里的变换就比较繁琐,如果是多个等式约束会更加麻烦。下面介绍拉格朗日法,定义拉格朗日函数:

                                                               拉格朗日乘子法

此处,拉格朗日乘子法是我们引入的和等式约束数目相等的参数。原问题的求解可以转化为求解方程组:

                                                                  拉格朗日乘子法

拉格朗日法的直观解释

举一个二维的例子,

                                                                      拉格朗日乘子法

 这里画出z=f(x,y)的登高线图像

                                              拉格朗日乘子法

绿色的线即为约束方程,我们要求取的点一定是在绿线上的,由图像可见,在该点g(x,y) = c 和 f(x,y)等一条登高线是相切的。所以,我们可以得出:∇(f(x,y) - d)=λ(∇g(x,y) - C) 。变换一下形式我们发现这就是拉格朗日解法。值得注意的是,该方法得到解只是原问题的必要而非充分条件。