非线性规划中的外推内点法(Extrapolated Interior-Point Method)进阶题
题目描述:
考虑如下非线性规划问题:
\[\min_{x \in \mathbb{R}^n} f(x) \]
\[ \text{s.t.} \quad c_i(x) \ge 0, \quad i = 1, \dots, m, \]
其中 \(f : \mathbb{R}^n \to \mathbb{R}\) 和 \(c_i : \mathbb{R}^n \to \mathbb{R}\) 是二阶连续可微函数,且至少有一个可行内点(即存在 \(x\) 使 \(c_i(x) > 0\) 对所有 \(i\) 成立)。假设问题满足约束规范(如LICQ)。现有标准内点法基于对数障碍函数:
\[B(x, \mu) = f(x) - \mu \sum_{i=1}^m \log c_i(x), \]
其中 \(\mu > 0\) 是障碍参数。外推内点法旨在通过预测-校正机制,加速 \(\mu \to 0\) 的收敛过程。给定当前迭代点 \((x_k, \lambda_k)\)(\(\lambda \in \mathbb{R}^m\) 为拉格朗日乘子估计)和障碍参数 \(\mu_k\),任务如下:
- 推导外推步:利用当前和先前迭代信息,预测下一个障碍参数 \(\mu_{k+1}\) 及对应的近似解。
- 设计校正步:求解一个扰动KKT系统,使迭代点回到中心路径邻域。
- 分析外推步的局部超线性收敛条件。
解题过程:
步骤1:回顾标准内点法框架
内点法求解扰动KKT条件:
\[\nabla f(x) - \sum_{i=1}^m \lambda_i \nabla c_i(x) = 0, \]
\[ \lambda_i c_i(x) = \mu, \quad i=1,\dots,m, \]
\[ c_i(x) \ge 0, \ \lambda_i \ge 0. \]
定义 \(z = (x, \lambda)\),扰动KKT系统为 \(F_\mu(z) = 0\),其中
\[F_\mu(z) = \begin{bmatrix} \nabla f(x) - J_c(x)^\top \lambda \\ \Lambda c(x) - \mu e \end{bmatrix}, \]
这里 \(J_c(x)\) 是约束函数 \(c(x) = (c_1(x), \dots, c_m(x))^\top\) 的雅可比矩阵,\(\Lambda = \operatorname{diag}(\lambda)\),\(e = (1,\dots,1)^\top\)。
步骤2:外推步设计
假设已有连续两个迭代点 \(z_{k-1}\) 和 \(z_k\),对应参数 \(\mu_{k-1}\) 和 \(\mu_k\)。我们构建关于 \(\mu\) 的线性外推模型:
- 近似中心路径 \(z(\mu)\) 满足 \(F_\mu(z(\mu)) = 0\)。
- 利用一阶泰勒展开:
\[ z(\mu) \approx z_k + \frac{\mu - \mu_k}{\mu_k - \mu_{k-1}} (z_k - z_{k-1}). \]
为控制外推幅度,引入外推因子 \(\theta \in (0,1)\),并设置预测参数:
\[\mu_{k+1}^p = \max\left( \mu_k \cdot \sigma, \ \mu_k \cdot \left( \frac{\mu_k}{\mu_{k-1}} \right)^\theta \right), \]
其中 \(\sigma \in (0,1)\) 是标准衰减因子(如 \(\sigma = 0.1\))。预测点计算为:
\[z_{k+1}^p = z_k + \frac{\mu_{k+1}^p - \mu_k}{\mu_k - \mu_{k-1}} (z_k - z_{k-1}). \]
此步骤需要 \(\mu_k \neq \mu_{k-1}\) 且外推后保持 \(c_i(x_{k+1}^p) > 0, \lambda_{k+1}^p > 0\),否则回退到标准内点步。
步骤3:校正步设计
校正步求解扰动KKT系统在预测点处的线性化方程。定义当前点 \(z = (x, \lambda)\),我们求解牛顿方向 \(\Delta z = (\Delta x, \Delta \lambda)\):
\[\nabla_{xx}^2 L(x, \lambda) \Delta x - J_c(x)^\top \Delta \lambda = -\left[ \nabla f(x) - J_c(x)^\top \lambda \right], \]
\[ \Lambda J_c(x) \Delta x + C(x) \Delta \lambda = -\left[ \Lambda c(x) - \mu_{k+1} e \right], \]
其中 \(L(x,\lambda) = f(x) - \lambda^\top c(x)\) 是拉格朗日函数,\(C(x) = \operatorname{diag}(c(x))\)。
使用预测点 \(z_{k+1}^p\) 作为线性化起点,解得方向 \(\Delta z\),并更新:
\[z_{k+1} = z_{k+1}^p + \alpha \Delta z, \]
其中步长 \(\alpha \in (0,1]\) 通过回溯线搜索选取,确保 \(c_i(x) > 0, \lambda_i > 0\) 且满足某种中心性条件(如 \(\| \Lambda c(x) - \mu e \| \le \beta \mu\) 对某个 \(\beta > 0\))。
步骤4:局部超线性收敛条件分析
在接近解 \(z^*\)(对应 \(\mu=0\))时,分析外推步的加速效果。假设:
- 严格互补性成立(即 \(\lambda_i^* > 0\) 当 \(c_i(x^*) = 0\),否则 \(\lambda_i^* = 0\))。
- 二阶充分条件与LICQ成立。
- 障碍参数更新策略满足 \(\mu_{k+1} = O(\mu_k^{1+\gamma})\) 对某个 \(\gamma > 0\)。
则外推内点法产生的序列 \(\{z_k\}\) 满足:
\[\| z_{k+1} - z^* \| = O(\| z_k - z^* \|^{1+\min(\gamma,1)}), \]
即当 \(\gamma \ge 1\) 时可实现局部二次收敛。这要求外推因子 \(\theta\) 和衰减因子 \(\sigma\) 的选取使 \(\mu_{k+1}^p\) 足够小,且校正步的牛顿迭代具有高阶精度。
步骤5:算法流程总结
- 初始化:选择初始内点 \(z_0 = (x_0, \lambda_0)\) 满足 \(c(x_0) > 0, \lambda_0 > 0\),初始障碍参数 \(\mu_0 > 0\),衰减因子 \(\sigma \in (0,1)\),外推因子 \(\theta \in (0,1)\),容差 \(\epsilon > 0\)。
- 循环直到 \(\mu_k < \epsilon\):
- 外推预测:若 \(k \ge 1\),计算 \(\mu_{k+1}^p\) 和 \(z_{k+1}^p\);否则置 \(\mu_{k+1}^p = \sigma \mu_k, \ z_{k+1}^p = z_k\)。
- 牛顿校正:以 \(z_{k+1}^p\) 为起点,求解扰动KKT系统的线性化方程得方向 \(\Delta z\)。
- 线搜索:选择步长 \(\alpha\) 保持严格可行性与中心性。
- 更新:\(z_{k+1} = z_{k+1}^p + \alpha \Delta z\),更新 \(\mu_{k+1} = \mu_{k+1}^p\) 或适当调整。
- 输出近似最优解 \(x_{k+1}\)。
关键点:外推步通过利用历史信息预测下一个中心路径点,减少校正步的迭代次数,特别在 \(\mu\) 较小时加速明显。校正步确保迭代点保持在中心路径邻域内,维持算法的全局收敛性。