非线性规划中的增广拉格朗日法基础题
题目描述
考虑非线性规划问题:
最小化 \(f(x) = x_1^2 + x_2^2\)
约束条件为 \(h(x) = x_1 + x_2 - 1 = 0\)。
使用增广拉格朗日法求解该问题,要求详细说明算法的迭代步骤、参数更新规则,并分析收敛性。
解题过程
-
问题分析
- 目标函数 \(f(x) = x_1^2 + x_2^2\) 是凸二次函数,约束 \(h(x) = x_1 + x_2 - 1 = 0\) 是线性约束。
- 该问题的最优解可通过拉格朗日法直接验证:由一阶最优性条件,解为 \(x_1 = x_2 = 0.5\),最优值 \(f(x^*) = 0.5\)。
- 增广拉格朗日法通过结合拉格朗日函数和罚函数,改善收敛稳定性。
-
增广拉格朗日函数构造
- 定义增广拉格朗日函数:
\[ L_A(x, \lambda, \rho) = f(x) + \lambda h(x) + \frac{\rho}{2} [h(x)]^2 \]
其中:
- $ \lambda $ 是拉格朗日乘子估计值;
- $ \rho > 0 $ 是罚参数,用于加强约束满足。
- 代入本题具体形式:
\[ L_A(x, \lambda, \rho) = x_1^2 + x_2^2 + \lambda (x_1 + x_2 - 1) + \frac{\rho}{2} (x_1 + x_2 - 1)^2 \]
- 算法迭代步骤
- 步骤0:初始化
设定初始乘子 \(\lambda^{(0)}\)(例如 \(\lambda^{(0)} = 0\))、罚参数 \(\rho^{(0)} > 0\)(例如 \(\rho^{(0)} = 1\))、放大系数 \(\beta > 1\)(例如 \(\beta = 10\)),并设定容忍误差 \(\epsilon\)。 - 步骤1:求解无约束子问题
在第 \(k\) 次迭代中,固定 \(\lambda^{(k)}\) 和 \(\rho^{(k)}\),求解:
- 步骤0:初始化
\[ x^{(k)} = \arg\min_x L_A(x, \lambda^{(k)}, \rho^{(k)}) \]
- 对 $ L_A $ 求梯度并令其为0:
\[ \frac{\partial L_A}{\partial x_1} = 2x_1 + \lambda^{(k)} + \rho^{(k)}(x_1 + x_2 - 1) = 0 \]
\[ \frac{\partial L_A}{\partial x_2} = 2x_2 + \lambda^{(k)} + \rho^{(k)}(x_1 + x_2 - 1) = 0 \]
- 由对称性得 $ x_1 = x_2 $,代入方程解得闭式解:
\[ x_1^{(k)} = x_2^{(k)} = \frac{\rho^{(k)} - \lambda^{(k)}}{2(1 + \rho^{(k)})} \]
- 步骤2:更新乘子
根据约束违反程度调整乘子:
\[ \lambda^{(k+1)} = \lambda^{(k)} + \rho^{(k)} h(x^{(k)}) \]
其中 $ h(x^{(k)}) = x_1^{(k)} + x_2^{(k)} - 1 $。
- 步骤3:检查收敛性
若 \(|h(x^{(k)})| \leq \epsilon\)(例如 \(\epsilon = 10^{-6}\)),则停止;否则进入步骤4。 - 步骤4:更新罚参数(可选)
若约束违反程度下降不足,可增大罚参数:
\[ \rho^{(k+1)} = \beta \rho^{(k)} \]
但本题中线性约束下通常无需频繁调整 $ \rho $。
-
数值演示(以 \(\lambda^{(0)} = 0, \rho^{(0)} = 1\) 为例)
- 迭代1:
- 求解 \(x^{(1)} = \left( \frac{1 - 0}{2(1+1)}, \frac{1 - 0}{2(1+1)} \right) = (0.25, 0.25)\)
- 约束违反度 \(h(x^{(1)}) = 0.25 + 0.25 - 1 = -0.5\)
- 更新乘子 \(\lambda^{(1)} = 0 + 1 \times (-0.5) = -0.5\)
- 迭代2:
- 求解 \(x^{(2)} = \left( \frac{1 - (-0.5)}{2(1+1)}, \frac{1 - (-0.5)}{2(1+1)} \right) = (0.375, 0.375)\)
- 约束违反度 \(h(x^{(2)}) = 0.375 + 0.375 - 1 = -0.25\)
- 更新乘子 \(\lambda^{(2)} = -0.5 + 1 \times (-0.25) = -0.75\)
- 继续迭代,\(x^{(k)}\) 趋近于 \((0.5, 0.5)\),\(h(x^{(k)}) \to 0\)。
- 迭代1:
-
收敛性分析
- 在凸问题中,增广拉格朗日法对固定的 \(\rho\) 可收敛到全局最优,且无需 \(\rho \to \infty\)(区别于纯罚函数法)。
- 乘子更新相当于对偶上升,结合二次罚项改善数值稳定性。
总结
增广拉格朗日法通过交替优化原变量和更新乘子,逐步逼近约束问题的最优解,兼具拉格朗日法的精确性和罚函数的鲁棒性。