An Introduction to Lagrange Multipliers(翻译)

原文地址An Introduction to Lagrange Multipliers

1. 为什么拉格朗日乘子很有用?

    我们在计算中遇到的最普遍的问题就是寻找一个函数的最大值或是最小值(极值),但是通常很难找到目标函数极值闭式表达式。上述问题的产生通常是因为我们需要求得在一定约束条件下函数的最大值或是最小值。拉格朗日乘数法是求解这类经典问题的的有力工具,而且我们并不需要求解约束条件并把约束条件来消除目标函数中的额外变量。

    简单来说,通常来说这些问题通常并不能满足我们的需求,例如“我怎么样才能最小化制作这个壶所需要的铝?”(这个问题的答案是制作一个非常非常小的壶)。相反,你应该这么问,“在保证这个壶能装10盎司汤的前提下,我们怎么能最小化所需要的铝?”

    (译者注:这小节作者所举的例子就是为了说明我们在科研生活中遇到的大多数是给定约束条件下的优化问题,其他例子这里忽略)

2. 一个经典的例子:“送奶女工问题”

    我们考虑一个很经典的问题“送奶女工问题”来说明这类问题。描述如下:

    现在是农场的挤奶时间,送奶女工被派往农场来拿今天的牛奶。她赶时间因为她要和一个很帅气的牧羊人约会,所以她希望在工作上花的时间越少越好。但是,她必须在附近的河边冲洗一下水桶才能去挤奶。

    我们的女主角在M点,牛在C点。因为她很着急,所以她想要走最短的路从她所在的地方到河边然后再到牛群所在地。那么问题来了,最优点P在河岸的哪一点?(我们假设这个地方是平坦和均匀的。)


An Introduction to Lagrange Multipliers(翻译)_第1张图片

    现在引进更多的数学符号,送奶工想要寻找一个点P使得总距离f(P)最小,这里f(P)是从M到P和P到C的距离和。但是呢,问题没有这么简单:如果这就是全部问题,那么我们直接选择F点在M和C之间的任意位置,并且挤奶工就会直接走向牛群。在这里我们必须加以约束,P点在河岸上。

    为了在方程中表达约束,我们可以把河岸描述为一条满足某个函数g(x,y)=o的曲线。(例如,如果河岸是抛物线我们可以选择g(x,y)=y-x^2。)所以正式表达为,我们希望最小化函数 f(P) = d(M,P) + d(P, C),约束条件为g(P) = o。

3. 该方法图像化理解

    我们第一种思路可以直接从图片本身得到。如果我们仅仅考虑从P点到M点的距离,我们可以画一族同心圆来表示这一距离(d(M,P)距离相同的曲线:5米,10米,15米等)。当这些曲线中的一条接触到了河岸,我们就认为其接触到的这一点是河岸距离M最近的点。(该圆的半径就是最小距离)

    当然,对于大多数问题而言f(P)的等高线比一族同心圆更加复杂!但是我们的例子进行了简化:对于每一个位于椭圆上的点P,从椭圆的一个焦点到P然后到另一个焦点的总距离是相同的。

    在我们的问题中,意味着挤奶工可以按照给定椭圆上的点的路线用相同的时间到达牛群:该椭圆就是f(P)相同的椭圆。因此,为了找到河岸上最优的点P,我们必须找到最小的椭圆,该椭圆的焦点为M和C,并且该椭圆和河岸相交。这里需要说明的一点是,只有“恒定f(P)”特性是相当重要的;这些曲线是椭圆只不过是一个巧合,而且该巧合对于我们来说是方便的,因为椭圆很好描绘。不论描绘恒定f(P)的曲线是什么形状我们都可以用类似上面的方法做。


An Introduction to Lagrange Multipliers(翻译)_第2张图片

    上面的图片显示了一系列以M和C为焦点,逐渐变大的椭圆,最大的椭圆和河岸相切。从图上很明显就可以看出最优的椭圆,并且河岸和最优点P确实相切。我们用更数学的表达方式来说,这意味着椭圆的法向量和河岸的法向量方向相同。简单想想你就能知道,刚才表达的那个事实(二者法向量方向相同)并不是只针对这个特定的问题,这是一个很普遍的特性当你的优化问题含有约束的时候。并且那是把我们带向拉格朗日乘子的本质原因。

4. 拉格朗日乘子的数学表达

    在多变量微积分中,一个函数h的梯度(写作∇h)是一条曲线的法向量(两维),或是一个平面(更高维),该平面上n= ∇h(P)为一常数。法向量的长度无关紧要。在我们的问题中,我们由两个函数,其法向量是平行的,所以有:

                                                            ∇f(P) = λ ∇g(P)

未知恒定乘子λ是不可或缺的,因为二者梯度可能不同。(要记住的是,我们目前所有知道的东西就是他们的方向相同)

    在D维问题中,我们目前由D+1个方程D+1个未知数。D是P的坐标(例如 x, y, 和z ,D = 3),另一个未知数的常数λ。上面我们推导的梯度方程是一个向量方程,因此其提供了D个方程约束。原有约束g(P) = 0是系统中的最后一个方程,因此,一般来说,我们就可以得到一个唯一解。

    在很多最小/最大问题中,有时候确实会存在多个解。如果约束条件是退化的可能存在无穷多个解:例如,试想一下,如果挤奶工和牛群都站在一条笔直的河流旁边。许多情况下,我们对拉格朗日乘子的真实值可能并不感兴趣,但是有时候确实会给予我们游泳的信息。

    就是这样:这就是拉格朗日乘数法的全部内容。令目标函数的的梯度等于约束函数的梯度,你会获得一个向量方程,该方程加上原有约束,我们就会获得问题的解。

5. 一个正式的数学表达

    在某些情况下可能会存在另一种思考拉格朗日乘子的方法,并且这种方法可以提供更好的方法来理解该方法的细节(尤其是下面描述的多约束问题)。和原来一样,我们用一个要求极值的目标函数f(P) 开始,该目标函数的约束为g(P) = 0。现在,在多变量优化中通常方法是将∇f(P) = 0。我们怎么把约束条件和∇f(P) = 0放在一起?

    一个解决办法就是把一个新的变量λ加入到这一问题中,并且定义一个新的目标函数:

                                                        F(P, λ) = f(P) - λ g(P)

(一些参考文献中把F叫做“拉格朗日函数”。)

    然后我们令∇F(P, λ) = 0,但是需要牢记的是梯度是D+1维的:其中的一维是针对λ的偏导。如果将这一新的部分(F针对λ的偏导)的梯度设置为零,就可以得到约束条件g(P) = 0。同时,原来的部分(F针对x,y等的偏导)的梯度把λ看作一个常数。

6. 同时含有多个约束

    如果要求解的问题中含有多个约束条件,那么我们需要做的就是将方程右边替换为每个约束函数梯度的和,并且每个约束函数都有一个自己的拉格朗日乘子(注意,这些拉格朗日乘子都不相同)。

                                                ∇f(P) = λ ∇g(P) + μ ∇h(P)

(本文英文一般,有的地方可能翻译的不准确,希望大家指出。原文中还还有很多内容,我在这里只翻译了一部分,有兴趣的同学可以查阅原文)

你可能感兴趣的:(An Introduction to Lagrange Multipliers(翻译))