拉格朗日乘数法
拉格朗日乘数法(Lagrange multiplier method)用于寻找等式约束下的函数极值。在满足适当光滑性和正则性条件的极值点,目标函数的梯度可以写成约束函数梯度的线性组合;组合系数称为拉格朗日乘数。
它给出的首先是候选点。要确定候选点是最大值还是最小值,还要检查约束范围、边界以及目标函数在整个可行集上的行为。下面从一个能直接消元的面积问题开始,再解释为什么梯度方程能够替代消元。
一笔围栏预算怎样换成最大面积
设要围一个长方形试验区,两边长度为 米。两条长度为 的边使用每米1元的材料,两条长度为 的边使用每米2元的材料。预算为240元,暂时忽略转角接头、固定施工费与离散规格。数据是为讲解建立的合成模型。
总费用的数值为 ,面积的数值为 ,单位分别是元和平方米。若有正面积且预算尚未用完,略微增加任一边都会增加面积,因此最大面积必定在预算用尽处。于是求解 先用熟悉的一元法:由预算得 ,非负条件给出 。沿预算线,面积成为 平方项非负,所以最大面积为1800平方米,在 时唯一达到。两个端点对应一条边为零,面积为零。
这张图说明待解释的几何关系:最大面积处,预算线与目标的等值线方向相同。为什么这种相切关系会产生一个新未知数?
沿允许的方向移动,变化率必须为零
预算保持不变时,微小变化满足 ,即 。面积的一阶变化是 在预算线内部,既允许 ,也允许 。如果括号不是零,总能选一个方向使面积增加;因此局部最大点必须满足 。
用梯度表达同一件事。、,沿预算线的一个方向为 。有 极值要求第二式也为零;两梯度都垂直同一条切线,所以互相平行。在本例最优点,
图中右侧点为 。此处 ,所以沿 的小步能增加面积。这种计算比“图上看起来没有相切”更精确。
一般的乘数方程及其条件
设 在候选点附近的开集中连续可微,要在 上求极值。如果 ,则该处约束可以局部表示成一张光滑曲面;满足约束的切向量 恰好满足 。
沿任意通过 的光滑可行曲线 ,约束恒定。链式法则给出 若 是局部极值,复合函数 在零处的一阶导数也必须为零,所以 由于所有切向量都能由这种局部可行曲线实现,目标梯度垂直整个切空间,必定是其法向量 的倍数: 正则性保证了“约束看起来像光滑曲面”这一步,OpenStax的乘数定理也明确列出非零约束梯度条件。
为了把这些方程一起记住,可以定义拉格朗日函数 令它对各个状态变量和 的偏导为零,就分别得到梯度方程和原约束。这里采用减号;若改用加号,乘数的符号也相应改变。并不是要把 当成所有变量上的普通无约束最大化问题,因为它对 是线性的。
回到面积模型,方程为 代入约束得到 ,即 ,进而得到 。这是与消元完全一致的候选点;前面的配方已给出全局最大性的证明。
乘数能解释预算的边际作用
把240替换为一般正预算 ,同样的方程给出 这里 是预算固定后的最大面积。对预算求导: 在240元附近,增加一元预算,最优面积一阶约增加15平方米。准确的增量为 15是局部变化率,不是任意预算增量下都精确成立的比例。乘数的单位为“目标单位/约束右端单位”,这里是平方米/元。
这个关系还有一般推导。若最优解 随预算光滑变化,则 将 求导,最后的点积为一,故 。若最优解突然换到另一分支、价值函数有折点,就要改用适当的单侧变化率,不能直接使用这一光滑推导。它与线性规划中的影子价格有相似含义。
候选点为什么还需要分类
在单位圆 上求 的极值。乘数方程为 第一式说明 ,所以第二式推出 ,最后得 或 。两个点都满足同一种乘数条件,一个是最大值,一个是最小值。全局判断来自圆上 ,并不是来自方程有解。
更进一步,在正则约束 上求 ,原点满足 ,却既不是最大也不是最小:可行线上任意小的正负 给出一正一负的函数值。乘数方程只是必要条件。
对于二次可微函数,还可检查拉格朗日函数的二阶变化。若约束正则且乘数方程成立,在约束切空间的每个非零方向 上都有 则得到严格局部最大值的充分条件;大于零对应严格局部最小值。本例 的状态Hessian为 ,切方向 给出 。这是局部判断;配方的不等式才把结论扩展到了全部可行线段。
约束梯度为零时,方法会遗漏答案
仍取目标 ,把可行集写成 。可行集只有原点,所以原点同时取得受约束最大值与最小值。然而 不存在 能使第一向量等于第二向量的倍数。失败的是乘数定理的正则性前提,不是极值本身。
图中用同一可行直线作另一种比较:写作 时梯度为 ,写作 时梯度在整条线上为零。以目标 为例,所有可行点都取得同一个值零;第一种写法允许 ,第二种写法却没有乘数解。把方程平方虽然没有改变可行点,却丢失了一阶法向信息。
多个约束与不等式边界
若有 个等式 ,而它们在候选点的梯度线性无关,则必要条件变为 每个独立约束有一个乘数。线性无关保证约束没有在一阶层面重复;这也是多约束的正则性条件。
例如在 、 上最小化 。两个约束梯度分别为 和 ,彼此独立。乘数方程给出 由第二个约束得 ,由第一个约束得 ,所以 。为证明全局最小,把全部可行点写成 代入平方和,线性项相互抵消,得到 ,故唯一最小值为 。
不等式约束还要考虑未用尽的资源、活跃边界和乘数的符号,通常使用KKT条件,见优化。不能把所有不等式一律改成等式:最小化 、约束 时,最优点在圆心,把约束改成单位圆便会丢失真正答案。
来源与相关知识
- OpenStax,Calculus Volume 3,§4.8:正则约束下的一阶乘数定理及切向证明。
- MIT 18.022,Constrained Optimization: Lagrange’s Multipliers:梯度、切空间与多个约束。
- Boyd与Vandenberghe,Convex Optimization,第5章:拉格朗日函数、对偶、最优性与敏感性。
- 先修:偏导数、多元函数的极值、向量空间;相关:优化、线性规划、经济订货量模型。