非线性规划中的增广拉格朗日乘子法基础题
题目描述
考虑非线性约束优化问题:
minimize \(f(x) = x_1^2 + x_2^2\)
subject to \(h(x) = x_1 + x_2 - 2 = 0\)
其中 \(x = (x_1, x_2) \in \mathbb{R}^2\)。要求使用增广拉朗日乘子法(Augmented Lagrangian Method)求解该问题,并分析其收敛过程。
解题过程
-
问题分析
目标函数 \(f(x) = x_1^2 + x_2^2\) 是凸二次函数,约束 \(h(x) = x_1 + x_2 - 2 = 0\) 是线性等式。该问题的最优解可通过解析法验证:由约束得 \(x_2 = 2 - x_1\),代入目标函数后求导可得最优解 \(x^* = (1, 1)\),最优值 \(f(x^*) = 2\)。增广拉格朗日乘子法通过结合罚函数和拉格朗日乘子,改善收敛稳定性。 -
增广拉格朗日函数构造
标准拉格朗日函数为 \(L(x, \lambda) = f(x) + \lambda h(x)\)。增广拉格朗日函数引入罚项:
\[ \mathcal{L}_A(x, \lambda, \rho) = f(x) + \lambda h(x) + \frac{\rho}{2} [h(x)]^2 \]
其中 \(\lambda\) 是拉格朗日乘子估计值,\(\rho > 0\) 是罚参数。本例中:
\[ \mathcal{L}_A(x, \lambda, \rho) = x_1^2 + x_2^2 + \lambda (x_1 + x_2 - 2) + \frac{\rho}{2} (x_1 + x_2 - 2)^2 \]
- 算法迭代步骤
增广拉格朗日乘子法按以下步骤循环更新:- 步骤1: 给定当前乘子 \(\lambda^k\) 和罚参数 \(\rho^k\),求解子问题:
\[ x^{k+1} = \arg\min_x \mathcal{L}_A(x, \lambda^k, \rho^k) \]
- 步骤2: 更新乘子:
\[ \lambda^{k+1} = \lambda^k + \rho^k h(x^{k+1}) \]
- 步骤3: 可自适应调整 \(\rho^{k+1}\)(本例固定 \(\rho\) 以简化)。
- 具体求解子问题
对 \(\mathcal{L}_A\) 求梯度并令其为0:
\[ \frac{\partial \mathcal{L}_A}{\partial x_1} = 2x_1 + \lambda + \rho (x_1 + x_2 - 2) = 0 \]
\[ \frac{\partial \mathcal{L}_A}{\partial x_2} = 2x_2 + \lambda + \rho (x_1 + x_2 - 2) = 0 \]
两式相减得 \(x_1 = x_2\)。代入约束方向 \(x_1 + x_2 - 2 = 0\) 得 \(x_1 = x_2 = 1\)。
关键点: 子问题的解实际与 \(\lambda, \rho\) 无关,因为本例约束为线性且目标函数对称,直接得出 \(x^{k+1} = (1, 1)\)。
- 乘子更新与收敛
将 \(x^{k+1} = (1, 1)\) 代入乘子更新公式:
\[ \lambda^{k+1} = \lambda^k + \rho \cdot (1 + 1 - 2) = \lambda^k \]
乘子保持不变。由于子问题一步解得最优解 \(x^*\),算法立即收敛。
- 一般情况讨论
若问题更复杂(如非线性约束),子问题需数值求解(如梯度下降)。增广拉格朗日法通过罚项 \(\frac{\rho}{2} h(x)^2\) 增强子问题的凸性,比纯罚函数法允许更小的 \(\rho\),比标准拉格朗日法更稳定。
总结
本例展示了增广拉格朗日乘子法的基本流程:构造增广函数、迭代求解子问题、更新乘子。其优势在于平衡收敛速度与数值稳定性,适用于中等规模非线性规划。