非线性规划中的增广拉格朗日乘子法进阶题
题目描述
考虑约束非线性规划问题:
\[\min f(x) = x_1^2 + x_2^2 + x_3^2 \]
满足约束:
\[h(x) = x_1 + x_2 + x_3 - 1 = 0, \quad g(x) = x_1 - x_2 - 2 \leq 0. \]
要求使用增广拉格朗日乘子法(Augmented Lagrangian Method)求解该问题,重点分析乘子更新与罚参数调整策略。
解题过程
1. 增广拉格朗日函数构造
对于问题中的等式约束 \(h(x)=0\) 和不等式约束 \(g(x) \leq 0\),引入松弛变量 \(s \geq 0\) 将不等式转化为等式:
\[g(x) + s = 0, \quad s \geq 0. \]
增广拉格朗日函数定义为:
\[L_A(x, s, \lambda, \mu; \rho) = f(x) + \lambda h(x) + \frac{\rho}{2} h(x)^2 + \mu (g(x) + s) + \frac{\rho}{2} (g(x) + s)^2, \]
其中 \(\lambda\) 是等式约束的拉格朗日乘子,\(\mu\) 是不等式约束的乘子,\(\rho\) 是罚参数。
2. 交替优化流程
增广拉格朗日法通过交替更新变量和乘子进行迭代:
- 子问题1:固定乘子,优化原始变量与松弛变量
对 \(x\) 和 \(s\) 最小化 \(L_A\)。由于 \(s\) 仅出现在项 \(\mu s + \frac{\rho}{2}(g(x)+s)^2\) 中,可显式求解:
对 \(s \geq 0\) 最小化二次函数 \(\mu s + \frac{\rho}{2}(g(x)+s)^2\),得到闭式解:
\[ s^* = \max\left(0, -\frac{\mu}{\rho} - g(x)\right). \]
代入后,子问题转化为无约束优化(仅关于 \(x\)):
\[ \min_x \left\{ f(x) + \lambda h(x) + \frac{\rho}{2} h(x)^2 + \frac{1}{2\rho} \left[ \max(0, \mu + \rho g(x))^2 - \mu^2 \right] \right\}. \]
本例中,使用牛顿法求解该子问题:计算梯度 \(\nabla_x L_A\) 和 Hessian \(\nabla_{xx} L_A\),迭代更新 \(x\)。
- 子问题2:更新乘子
固定 \(x\) 和 \(s\),根据约束违反程度更新乘子:
\[ \lambda^{k+1} = \lambda^k + \rho h(x^k), \quad \mu^{k+1} = \max\left(0, \mu^k + \rho (g(x^k) + s^k)\right). \]
此更新基于梯度上升思想,使乘子向约束满足方向调整。
3. 罚参数自适应调整
初始罚参数 \(\rho_0 = 10\),若当前迭代的约束违反量 \(\|h(x^k)\| + \|\min(0, -g(x^k))\|\) 未下降,则增大罚参数:
\[\rho_{k+1} = \min(1000, 2\rho_k). \]
此举通过加强惩罚迫使迭代点更快靠近可行域。
4. 迭代求解与收敛判定
从初始点 \(x^0 = (0, 0, 0)\)、乘子 \(\lambda^0 = 0, \mu^0 = 0\) 开始:
- 迭代1:求解子问题得 \(x^1 \approx (0.33, 0.33, 0.33)\),约束违反量约为 \(0.01\),更新乘子 \(\lambda^1 \approx 0.033, \mu^1 = 0\)。
- 迭代2:罚参数保持不变,子问题解 \(x^2 \approx (0.5, 0.25, 0.25)\),违反量减小,乘子更新为 \(\lambda^2 \approx 0.05, \mu^2 \approx 0.1\)。
- 收敛判定:当约束违反量小于 \(10^{-6}\) 且目标函数变化量小于 \(10^{-6}\) 时停止。最终解为 \(x^* \approx (0.5, 0.25, 0.25)\),满足 \(g(x^*) = -2 \leq 0\),目标函数值 \(f(x^*) = 0.375\)。
5. 算法特性分析
增广拉格朗日法通过结合罚函数和乘子更新,避免了纯罚函数法中罚参数趋于无穷的数值困难。其优势在于:
- 乘子迭代提供约束违反的反馈,加速收敛;
- 自适应罚参数平衡收敛速度与数值稳定性;
- 对非凸问题具有一定鲁棒性。