第一部分:等式约束下的拉格朗日乘数法(Lagrange Multiplier Method)
1. 问题设定
考虑如下的约束优化问题:
最小化/最大化f(x)受限于gi(x)=0,i=1,…,m\begin{array}{ll} \text{最小化/最大化} & f(\mathbf{x}) \\ \text{受限于} & g_i(\mathbf{x}) = 0, \quad i=1, \dots, m \end{array}最小化/最大化受限于f(x)gi(x)=0,i=1,…,m
其中,x=(x1,x2,…,xn)∈Rn\mathbf{x} = (x_1, x_2, \dots, x_n) \in \mathbb{R}^nx=(x1,x2,…,xn)∈Rn,目标函数 f:Rn→Rf: \mathbb{R}^n \to \mathbb{R}f:Rn→R,约束函数 gi:Rn→Rg_i: \mathbb{R}^n \to \mathbb{R}gi:Rn→R 均为连续可微的。
2. 几何直观(以二维为例)
想象在 R2\mathbb{R}^2R2 平面上,我们要最小化 f(x,y)f(x, y)f(x,y),同时满足约束 g(x,y)=cg(x, y) = cg(x,y)=c(或 g(x,y)−c=0g(x, y) - c = 0g(x,y)−c=0)。
- f(x,y)f(x, y)f(x,y) 的等高线(Level Sets)是 f(x,y)=kf(x, y) = kf(x,y)=k 的曲线。
- g(x,y)=0g(x, y) = 0g(x,y)=0 是一条可行集曲线。
当可行点 x∗\mathbf{x}^*x∗ 达到最优时,目标函数 fff 的等高线必须与约束函数 ggg 的可行集曲线在 x∗\mathbf{x}^*x∗ 处相切。
为什么是相切?
- 如果不相切,目标函数的等高线会穿过可行集。这意味着我们总可以在可行集上沿着一个方向移动,走到一个更高(或更低)的等高线上,从而找到一个更好的解。
- 只有当相切时,在 x∗\mathbf{x}^*x∗ 附近的任何微小移动,都会导致目标函数值 fff 增加(或减少),而同时仍然满足约束 g=0g=0g=0。
3. 梯度与数学表达
在切点 x∗\mathbf{x}^*x∗ 处:
- 梯度 ∇f(x∗)\nabla f(\mathbf{x}^*)∇f(x∗) 垂直于 fff 的等高线。
- 梯度 ∇g(x∗)\nabla g(\mathbf{x}^*)∇g(x∗) 垂直于 g=0g=0g=0 的可行集曲线。
由于在相切时,两者具有相同的切线方向,因此它们的法线方向(即它们的梯度)必须平行。
这种平行关系可以表示为:
∇f(x∗)=λ∇g(x∗)\nabla f(\mathbf{x}^*) = \lambda \nabla g(\mathbf{x}^*)∇f(x∗)=λ∇g(x∗)
其中 λ∈R\lambda \in \mathbb{R}λ∈R 是一个标量,被称为拉格朗日乘数。
4. 拉格朗日函数(Lagrangian Function)
我们将约束条件合并到目标函数中,构造拉格朗日函数 L(x,λ)\mathcal{L}(\mathbf{x}, \lambda)L(x,λ):
L(x,λ)=f(x)−∑i=1mλigi(x)\mathcal{L}(\mathbf{x}, \lambda) = f(\mathbf{x}) - \sum_{i=1}^m \lambda_i g_i(\mathbf{x})L(x,λ)=f(x)−i=1∑mλigi(x)
注意: 这里的 λi\lambda_iλi 是对应于第 iii 个约束 gi(x)=0g_i(\mathbf{x})=0gi(x)=0 的拉格朗日乘数。
5. 一阶最优性条件 (First-Order Necessary Conditions)
根据微积分的知识,函数在极值点处的梯度必须为零。我们对 L\mathcal{L}L 的所有变量(x\mathbf{x}x 和 λ\mathbf{\lambda}λ)求偏导,并令其为零,得到一个方程组:
-
关于 x\mathbf{x}x 的偏导 (Stationarity):
∇xL(x∗,λ∗)=∇f(x∗)−∑i=1mλi∗∇gi(x∗)=0\nabla_{\mathbf{x}} \mathcal{L}(\mathbf{x}^*, \mathbf{\lambda}^*) = \nabla f(\mathbf{x}^*) - \sum_{i=1}^m \lambda_i^* \nabla g_i(\mathbf{x}^*) = \mathbf{0}∇xL(x∗,λ∗)=∇f(x∗)−i=1∑mλi∗∇gi(x∗)=0
这正是梯度的平行条件(推广到多个约束的情况)。 -
关于 λ\mathbf{\lambda}λ 的偏导 (Primal Feasibility):
∇λL(x∗,λ∗)=−g(x∗)=0⇒gi(x∗)=0,i=1,…,m\nabla_{\mathbf{\lambda}} \mathcal{L}(\mathbf{x}^*, \mathbf{\lambda}^*) = -\mathbf{g}(\mathbf{x}^*) = \mathbf{0} \quad \Rightarrow \quad g_i(\mathbf{x}^*) = 0, \quad i=1, \dots, m∇λL(x∗,λ∗)=−g(x∗)=0⇒gi(x∗)=0,i=1,…,m
这确保了最优解 x∗\mathbf{x}^*x∗ 满足原始的等式约束。
第二部分:不等式约束与 KKT 条件
当约束中包含不等式时,情况变得更加复杂,我们需要引入更强大的工具:Karush-Kuhn-Tucker (KKT) 条件。KKT 条件是拉格朗日乘数法的推广,适用于非线性规划问题。
1. 问题设定
考虑一般的非线性规划问题:
最小化f(x)受限于gi(x)≤0,i=1,…,m(不等式约束)hj(x)=0,j=1,…,l(等式约束)\begin{array}{ll} \text{最小化} & f(\mathbf{x}) \\ \text{受限于} & g_i(\mathbf{x}) \le 0, \quad i=1, \dots, m \quad (\text{不等式约束}) \\ & h_j(\mathbf{x}) = 0, \quad j=1, \dots, l \quad (\text{等式约束}) \end{array}最小化受限于f(x)gi(x)≤0,i=1,…,m(不等式约束)hj(x)=0,j=1,…,l(等式约束)
2. 拉格朗日函数
同样地,构造拉格朗日函数 L(x,λ,μ)\mathcal{L}(\mathbf{x}, \mathbf{\lambda}, \mathbf{\mu})L(x,λ,μ):
L(x,λ,μ)=f(x)+∑i=1mλigi(x)+∑j=1lμjhj(x)\mathcal{L}(\mathbf{x}, \mathbf{\lambda}, \mathbf{\mu}) = f(\mathbf{x}) + \sum_{i=1}^m \lambda_i g_i(\mathbf{x}) + \sum_{j=1}^l \mu_j h_j(\mathbf{x})L(x,λ,μ)=f(x)+i=1∑mλigi(x)+j=1∑lμjhj(x)
- λi\lambda_iλi 对应不等式约束 gi(x)≤0g_i(\mathbf{x}) \le 0gi(x)≤0。
- μj\mu_jμj 对应等式约束 hj(x)=0h_j(\mathbf{x}) = 0hj(x)=0。
3. KKT 条件 (Necessary Conditions)
如果 x∗\mathbf{x}^*x∗ 是上述问题的一个局部最优解,并且满足约束规范 (Constraint Qualification, CQ)(例如,LICQ - 线性独立约束规范),那么存在乘数 λ∗≥0\mathbf{\lambda}^* \ge \mathbf{0}λ∗≥0 和 μ∗\mathbf{\mu}^*μ∗,使得以下 KKT 条件成立:
KKT-1: 梯度驻点条件 (Stationarity)
目标函数梯度与所有约束梯度的线性组合为零:
∇xL(x∗,λ∗,μ∗)=∇f(x∗)+∑i=1mλi∗∇gi(x∗)+∑j=1lμj∗∇hj(x∗)=0\nabla_{\mathbf{x}} \mathcal{L}(\mathbf{x}^*, \mathbf{\lambda}^*, \mathbf{\mu}^*) = \nabla f(\mathbf{x}^*) + \sum_{i=1}^m \lambda_i^* \nabla g_i(\mathbf{x}^*) + \sum_{j=1}^l \mu_j^* \nabla h_j(\mathbf{x}^*) = \mathbf{0}∇xL(x∗,λ∗,μ∗)=∇f(x∗)+i=1∑mλi∗∇gi(x∗)+j=1∑lμj∗∇hj(x∗)=0
KKT-2: 原始可行性 (Primal Feasibility)
解必须满足所有的约束:
gi(x∗)≤0,i=1,…,mg_i(\mathbf{x}^*) \le 0, \quad i=1, \dots, mgi(x∗)≤0,i=1,…,m
hj(x∗)=0,j=1,…,lh_j(\mathbf{x}^*) = 0, \quad j=1, \dots, lhj(x∗)=0,j=1,…,l
KKT-3: 对偶可行性 (Dual Feasibility)
对应于不等式约束的拉格朗日乘数必须是非负的:
λi∗≥0,i=1,…,m\lambda_i^* \ge 0, \quad i=1, \dots, mλi∗≥0,i=1,…,m
(注意:等式约束乘数 μj∗\mu_j^*μj∗ 没有符号限制)
KKT-4: 互补松弛性 (Complementary Slackness)
这是 KKT 条件的核心,它定义了不等式约束的性质:
λi∗gi(x∗)=0,i=1,…,m\lambda_i^* g_i(\mathbf{x}^*) = 0, \quad i=1, \dots, mλi∗gi(x∗)=0,i=1,…,m
互补松弛性的深入理解:
对于每个不等式约束 gi(x)≤0g_i(\mathbf{x}) \le 0gi(x)≤0,只有两种情况:
- 约束是非激活的 (Inactive): gi(x∗)<0g_i(\mathbf{x}^*) < 0gi(x∗)<0。最优解在可行域的内部。此时,为了使 λi∗gi(x∗)=0\lambda_i^* g_i(\mathbf{x}^*) = 0λi∗gi(x∗)=0 成立,必须有 λi∗=0\lambda_i^* = 0λi∗=0。这意味着非激活的约束对最优解没有影响,其梯度不参与梯度平衡。
- 约束是激活的 (Active): gi(x∗)=0g_i(\mathbf{x}^*) = 0gi(x∗)=0。最优解落在可行域的边界上。此时 λi∗\lambda_i^*λi∗ 可以大于零 (λi∗>0\lambda_i^* > 0λi∗>0),意味着这个激活的约束是必要的,它参与了梯度平衡。
4. 充分条件 (Sufficient Conditions)
KKT 条件只是局部最优的必要条件。若要保证它也是充分条件,我们需要引入凸性 (Convexity) 的概念:
- 如果目标函数 f(x)f(\mathbf{x})f(x) 是凸函数。
- 如果所有的不等式约束函数 gi(x)g_i(\mathbf{x})gi(x) 是凸函数。
- 如果所有的等式约束函数 hj(x)h_j(\mathbf{x})hj(x) 是仿射函数(即 hj(x)=ajTx−bjh_j(\mathbf{x}) = \mathbf{a}_j^T \mathbf{x} - b_jhj(x)=ajTx−bj)。
在一个凸规划问题中,任何满足 KKT 条件的点 x∗\mathbf{x}^*x∗ 都是全局最优解。 这是 KKT 条件在实际应用中最重要的价值。
第三部分:拉格朗日乘数的经济学解释(影子价格)
拉格朗日乘数 λi∗\lambda_i^*λi∗ 或 μj∗\mu_j^*μj∗ 在经济学中被称为影子价格 (Shadow Price) 或边际价值 (Marginal Value)。
- 定义: 拉格朗日乘数 λi∗\lambda_i^*λi∗ 的值表示,如果将第 iii 个约束条件放宽(或收紧)一个单位,最优目标函数值 f(x∗)f(\mathbf{x}^*)f(x∗) 将会发生的近似变化率。
具体来说,如果我们将不等式约束 gi(x)≤0g_i(\mathbf{x}) \le 0gi(x)≤0 略微改变为 gi(x)≤ϵg_i(\mathbf{x}) \le \epsilongi(x)≤ϵ,则新的最优目标函数值 f(x∗(ϵ))f(\mathbf{x}^*(\epsilon))f(x∗(ϵ)) 近似满足:
∂f(x∗(ϵ))∂ϵ≈λi∗\frac{\partial f(\mathbf{x}^*(\epsilon))}{\partial \epsilon} \approx \lambda_i^*∂ϵ∂f(x∗(ϵ))≈λi∗
因此,λi∗\lambda_i^*λi∗ 量化了约束资源的稀缺性:
- 如果 λi∗>0\lambda_i^* > 0λi∗>0,表示该约束是激活的(资源稀缺),放宽约束会使最优目标函数值降低(对最小化问题而言,是一个更好的解)。
- 如果 λi∗=0\lambda_i^* = 0λi∗=0,表示该约束是非激活的(资源充足),放宽或收紧该约束对最优目标函数值没有影响。
1652

被折叠的 条评论
为什么被折叠?



