非线性规划中的内点障碍-增广拉格朗日混合算法(Interior-Point Barrier-Augmented Lagrangian Hybrid Algorithm, IPM-ALM)基础题
题目描述
我们考虑以下带不等式约束的非线性规划问题:
\[\begin{aligned} \min_{x \in \mathbb{R}^n} \quad & f(x) \\ \text{s.t.} \quad & c_i(x) \le 0, \quad i = 1, 2, \dots, m \end{aligned} \]
其中,目标函数 \(f: \mathbb{R}^n \to \mathbb{R}\) 和约束函数 \(c_i: \mathbb{R}^n \to \mathbb{R}\) 都是二阶连续可微的。这个算法结合了内点障碍法(Interior Point Barrier Method) 和增广拉格朗日法(Augmented Lagrangian Method) 的优点,旨在高效处理不等式约束,并具有较好的数值稳定性和收敛速度。请你逐步解释这个混合算法的基本思想、关键步骤和迭代流程。
解题过程循序渐进讲解
-
核心思想
内点障碍法通过在目标函数中添加一个对数障碍项,将约束问题转化为一系列无约束子问题,但需要谨慎选择障碍参数以减少数值困难。增广拉格朗日法则通过将约束惩罚合并到拉格朗日函数中,可处理更广泛的约束类型,但对初始惩罚参数敏感。本混合算法的思想是:- 使用内点障碍法确保迭代点始终在可行域内部(即严格满足 \(c_i(x) < 0\)),避免过早触碰约束边界导致的数值不稳定。
- 同时,引入增广拉格朗日项来增强对约束违反的惩罚,使得算法在接近最优解时能更快地收敛,并减轻障碍参数需要趋近于0所带来的数值困难。
-
构造混合函数
对于每个约束 \(c_i(x) \le 0\),定义对应的对数障碍函数为 \(-\log(-c_i(x))\)。同时,为每个约束引入一个拉格朗日乘子估计 \(\lambda_i \ge 0\) 和一个惩罚参数 \(\rho > 0\)。则混合函数为:
\[ B(x; \mu, \lambda, \rho) = f(x) - \mu \sum_{i=1}^m \log(-c_i(x)) + \frac{\rho}{2} \sum_{i=1}^m \left[ \max\left(0, \lambda_i + \frac{c_i(x)}{\rho} \right)^2 - \lambda_i^2 \right] \]
其中:
- \(\mu > 0\) 是障碍参数,控制障碍项的影响。
- 第三项是增广拉格朗日项的标准形式(对不等式约束的变换形式),它结合了拉格朗日乘子估计 \(\lambda\) 和惩罚参数 \(\rho\)。
-
算法步骤
步骤0:初始化
选择初始点 \(x^0\) 满足 \(c_i(x^0) < 0\)(严格内点),初始乘子估计 \(\lambda^0 \ge 0\)(例如全零),初始惩罚参数 \(\rho^0 > 0\),初始障碍参数 \(\mu^0 > 0\),以及衰减因子 \(\tau_\mu \in (0,1)\)、增长因子 \(\gamma_\rho > 1\)、容差 \(\epsilon > 0\)。设迭代计数器 \(k = 0\)。步骤1:求解无约束子问题
在当前参数 \((\mu^k, \lambda^k, \rho^k)\) 下,求解近似子问题:
\[ x^{k+1} = \arg\min_{x} \, B(x; \mu^k, \lambda^k, \rho^k) \]
由于 \(B\) 是光滑函数,可使用牛顿法、拟牛顿法等无约束优化方法求解。注意,在求解过程中需保持迭代点始终满足 \(c_i(x) < 0\)(通过线搜索确保)。
步骤2:更新拉格朗日乘子估计
根据当前解 \(x^{k+1}\) 和惩罚参数 \(\rho^k\),更新乘子:
\[ \lambda_i^{k+1} = \max\left(0, \lambda_i^k + \frac{c_i(x^{k+1})}{\rho^k} \right), \quad i=1,\dots,m \]
这是增广拉格朗日法中对不等式约束的标准乘子更新公式,它基于约束违反程度调整乘子。
步骤3:调整障碍参数和惩罚参数
- 障碍参数更新:\(\mu^{k+1} = \tau_\mu \cdot \mu^k\),逐渐减小障碍影响,使迭代点趋近边界。
- 惩罚参数更新:如果约束违反度(例如 \(\| \max(c(x^{k+1}), 0) \|_\infty\))没有显著下降,则增大惩罚参数:\(\rho^{k+1} = \gamma_\rho \cdot \rho^k\),以加强对违反约束的惩罚。
步骤4:检查收敛
计算原始可行性误差 \(\eta_P = \| \max(c(x^{k+1}), 0) \|_\infty\) 和对偶可行性误差(例如梯度范数)。如果 \(\eta_P < \epsilon\) 且梯度足够小,则停止并输出 \(x^{k+1}\) 作为近似解;否则,令 \(k := k+1\) 并返回步骤1。
-
关键点说明
- 内点性保持:由于障碍项 \(-\mu \log(-c_i)\) 在约束边界处趋于无穷,算法自然迫使迭代点保持在严格可行域内部,直到 \(\mu \to 0\) 才允许接近边界。
- 增广拉格朗日项的作用:该项提供了额外的惩罚力,使得在 \(\mu\) 较小时,算法仍能有效处理约束,并借助乘子更新加速收敛。
- 参数选择:通常 \(\mu^0\) 不宜过小,以免初始障碍项主导;\(\rho^0\) 适中,避免 ill-condition;\(\tau_\mu\) 常取 0.1~0.5,\(\gamma_\rho\) 常取 2~10。
-
示例与意义
考虑简单问题:
\[ \min x_1^2 + x_2^2 \quad \text{s.t.} \quad x_1 + x_2 - 2 \le 0 \]
初始点选为 \((0,0)\)(严格可行),初始 \(\mu=1, \lambda=0, \rho=1\)。第一次迭代求解 \(B\) 会得到一个受障碍项影响的内点,更新乘子后,随着 \(\mu\) 减小和 \(\rho\) 调整,解会逐渐移向约束边界上的最优点 \((1,1)\)。该混合算法尤其适用于中等规模、约束非线性的问题,在工程优化和机器学习中均有应用。