内点反射梯度-信赖域混合算法进阶题
问题描述
考虑一个有等式约束和不等式约束的非线性规划问题:
\[\begin{aligned} \min_{x \in \mathbb{R}^n} \quad & f(x) \\ \text{s.t.} \quad & c_i(x) = 0, \quad i \in \mathcal{E}, \\ & c_i(x) \ge 0, \quad i \in \mathcal{I}, \end{aligned} \]
其中 \(f: \mathbb{R}^n \to \mathbb{R}\) 和 \(c_i: \mathbb{R}^n \to \mathbb{R}\) 均为二阶连续可微函数,\(\mathcal{E}\) 为等式约束下标集,\(\mathcal{I}\) 为不等式约束下标集。假设问题具有局部最优解 \(x^*\),且满足适当的约束规格(如LICQ)。要求结合内点法的障碍函数思想、反射梯度法的可行性维持机制以及信赖域框架,设计一种混合算法,并分析其收敛性质。
解题过程
1. 算法核心思想
内点反射梯度-信赖域混合算法融合了三个关键技术:
- 内点法:通过障碍函数将不等式约束转化为目标函数的一部分,保证迭代点始终在可行域内部。
- 反射梯度法:当迭代点靠近可行域边界时,利用梯度反射技巧调整搜索方向,避免过早触及边界。
- 信赖域:在每次迭代中求解一个子问题,该子问题在局部近似模型和信赖域约束下产生试探步,并通过实际下降与预测下降的比值控制信赖域半径的更新。
混合算法的优势在于:内点法处理不等式约束自然,反射梯度增强边界附近的探索能力,信赖域保证全局收敛性。
2. 构建障碍函数与近似子问题
引入对数障碍函数处理不等式约束 \(c_i(x) \ge 0\),定义障碍问题为:
\[\min_{x} \quad \Phi_\mu(x) = f(x) - \mu \sum_{i \in \mathcal{I}} \ln c_i(x), \]
其中 \(\mu > 0\) 为障碍参数。等式约束仍保留。在迭代点 \(x_k\) 处,构造二阶近似模型:
\[m_k(p) = \nabla \Phi_\mu(x_k)^\top p + \frac{1}{2} p^\top B_k p, \]
其中 \(B_k\) 是拉格朗日函数的Hessian近似或拟牛顿近似。同时,将等式约束线性化:
\[\nabla c_i(x_k)^\top p + c_i(x_k) = 0, \quad i \in \mathcal{E}. \]
3. 反射梯度调整
当 \(c_i(x_k)\) 接近零(即靠近不等式边界)时,直接使用 \(\nabla \Phi_\mu(x_k)\) 可能导致步长过小。反射梯度法修改搜索方向:若梯度方向指向边界外部,将其反射回可行域内部。具体地,对每个接近边界的约束 \(i\),定义反射算子:
\[r_i = \max(0, -\nabla c_i(x_k)^\top d) \cdot \frac{\nabla c_i(x_k)}{\|\nabla c_i(x_k)\|^2}, \]
并将修正方向设为 \(d_{\text{refl}} = d + \sum_{i \in \mathcal{I}_a} r_i\),其中 \(\mathcal{I}_a\) 为近似活跃的约束集合。然后将 \(d_{\text{refl}}\) 投影到等式约束的零空间,得到可行方向。
4. 信赖域子问题
在第 \(k\) 步,求解如下信赖域子问题:
\[\begin{aligned} \min_{p} \quad & m_k(p) \\ \text{s.t.} \quad & \nabla c_i(x_k)^\top p + c_i(x_k) = 0, \quad i \in \mathcal{E}, \\ & \|p\| \le \Delta_k, \end{aligned} \]
其中 \(\Delta_k > 0\) 是信赖域半径。由于等式约束存在,可先将其投影到零空间,然后求解带球约束的二次规划。得到试探步 \(p_k\) 后,计算实际下降与预测下降的比值:
\[\rho_k = \frac{\Phi_\mu(x_k) - \Phi_\mu(x_k + p_k)}{m_k(0) - m_k(p_k)}. \]
5. 迭代更新与参数调整
- 若 \(\rho_k\) 接近1,说明模型近似良好,接受步长 \(x_{k+1} = x_k + p_k\),并扩大信赖域半径 \(\Delta_{k+1} = \min(2\Delta_k, \Delta_{\max})\)。
- 若 \(\rho_k\) 很小(如 \(<0.1\)),拒绝步长(\(x_{k+1} = x_k\)),缩小信赖域半径 \(\Delta_{k+1} = 0.5 \Delta_k\)。
- 障碍参数 \(\mu\) 的更新:当满足一定最优性条件时,减小 \(\mu \gets \tau \mu\),其中 \(0 < \tau < 1\),以逐步逼近原问题。
6. 收敛性分析
混合算法的收敛性基于以下关键点:
- 障碍函数确保迭代点严格可行,且当 \(\mu \to 0\) 时,障碍问题的解收敛于原问题的解。
- 反射梯度调整保证了在边界附近的搜索方向可行性,避免Maratos效应。
- 信赖域机制通过比值 \(\rho_k\) 控制步长,在非凸区域也能保证全局收敛。在标准假设下(如目标和约束函数 Lipschitz 连续,Hessian 近似一致有界),算法产生的序列至少有一个极限点满足一阶必要最优性条件(KKT条件)。
7. 算法步骤总结
- 初始化:给定初始点 \(x_0\)(严格可行),初始信赖域半径 \(\Delta_0 > 0\),障碍参数 \(\mu_0 > 0\),常数 \(0 < \eta_1 < \eta_2 < 1\),\(0 < \gamma_1 < 1 < \gamma_2\)。
- 对于 \(k = 0, 1, 2, \dots\) 直到收敛:
a. 计算障碍函数 \(\Phi_\mu(x_k)\) 及其梯度 \(\nabla \Phi_\mu(x_k)\)。
b. 识别近似活跃不等式约束集 \(\mathcal{I}_a = \{ i \in \mathcal{I} \mid c_i(x_k) \le \epsilon \}\),其中 \(\epsilon > 0\) 为小阈值。
c. 计算反射梯度方向 \(d_{\text{refl}}\) 并投影到等式约束零空间,得到修正的搜索方向。
d. 构造二阶模型 \(m_k(p)\),求解信赖域子问题得试探步 \(p_k\)。
e. 计算比值 \(\rho_k\),按规则更新 \(x_{k+1}\) 和 \(\Delta_{k+1}\)。
f. 如果当前障碍问题已近似求解(如 \(\|\nabla \Phi_\mu(x_k)\| < \mu\)),则更新 \(\mu \gets \tau \mu\)。 - 输出满足容差的近似最优解。
关键点
- 反射梯度处理边界附近的方向修正,避免无效小步长。
- 信赖域控制步长大小,保证全局收敛性。
- 障碍参数逐渐减小,使得序列趋近原问题的最优解。
- 该混合算法适用于中等规模、带有非凸约束的非线性规划问题。