拉格朗日量
父级:math
把约束优化问题转化为平稳性条件的装置。目标是最小化目标函数 f(x),同时满足等式约束 hᵢ(x)=0 和不等式约束 gⱼ(x)≤0,其中 x ∈ ℝⁿ。
为什么会出现乘子——几何直觉(等式情形)
先只看等式约束:可行集是曲面 M = {x : hᵢ(x)=0}。在一个正则点(∇hᵢ 线性无关)处,既能移动又保持可行的方向构成切空间
设 x* 是 f 在 M 上的一个局部极小点。沿着任意经过 x* 的可行曲线,f 都是平稳的,因此
这说明 ∇f(x*) 正交于切空间,也就是说它落在约束梯度所张成的空间里:
系数 λᵢ 正是拉格朗日乘子——由线性无关性可知它们是唯一的。直觉:在最优点处,你不可能再把 f 往下推而不被某个约束顶回来;∇f 是那些把你固定在曲面上的"力" ∇hᵢ 的一个线性组合。
拉格朗日函数把这一切打包成一个平稳性条件
拉格朗日函数把每一个约束都折进目标函数,各自乘以专属的乘子——每个等式
hᵢ对应符号自由的λᵢ,每个不等式gⱼ对应μⱼ≥0:
现在最优点就只是 L 的一个平稳点:
- 复现了上面的条件();
- 复现了约束
hᵢ=0。
于是约束问题就变成了:求解 ∇L=0——n+m 个方程,n+m 个未知数 (x, λ)。约束并没有消失,而是被转化成了额外变量 λ 上的平稳性条件。
乘子的含义:影子价格(敏感度)
把约束 i 放松为 hᵢ(x)=bᵢ,并设 p*(b) 为相应的最优值。求导:利用 ∇hⱼ·(∂x*/∂bᵢ)=δᵢⱼ 和 ∇f=-Σλₖ∇hₖ,
所以λᵢ 就是约束 i 每放松一个单位,最优值随之产生的边际变化——它的影子价格。乘子很大的紧约束是"昂贵"的;乘子为 0 则说明该约束根本没有起作用(不是紧约束)。
一个简单的算例
最小化 x²+y²,约束为 x+y=1。于是 L=x²+y²+λ(x+y−1),∇ₓL=0 给出 2x+λ=0、2y+λ=0 ⟹ x=y,再代入约束得 x=y=½、λ=−1。最优值为 ½。验证敏感度:当 x+y=b 时最优值为 p*(b)=b²/2,于是 dp*/db=b=1=−λ。✓
完整的代表性计算(极小与极大,几何验证 + 影子价格验证):lagrangian-worked-example。
不等式约束 → μ≥0 与互补松弛性
不等式 gⱼ≤0 只在一个方向上阻挡运动,所以它的乘子带有符号约束,μⱼ≥0(它只能把你推回可行域)。而如果某约束在最优点处是松的(gⱼ<0,未被触及),它就不施加任何力,于是 μⱼ=0——这就是互补松弛性 μⱼgⱼ=0。等式约束(自由的 λ)加上不等式约束(μ≥0 加松弛性)合在一起,就是 kkt 条件。
极小-极大(鞍点)视角 → 对偶性
L 把原问题变量 x 和对偶变量 (λ,μ) 耦合在一起。对乘子取最大化,正好复现出约束问题:
因为一旦某个约束被违反,内层的最大化就能把 L 推向 →∞。交换取值顺序则得到对偶问题 ,其值恒小于等于原问题(弱对偶性),在凸性 + Slater 条件下取等。完整的对偶性内容见 kkt 和 classical-optimization。