非线性规划中的原始-对偶内点路径跟踪法(Primal-Dual Interior-Point Path-Following Method)基础题
字数 6441 2025-12-14 03:32:34

好的,根据你提供的已讲题目列表,我随机选择一个尚未出现过的算法进行讲解。

非线性规划中的原始-对偶内点路径跟踪法(Primal-Dual Interior-Point Path-Following Method)基础题

1. 问题描述
假设我们有一个标准的非线性规划问题,形式如下:
最小化目标函数:\(f(\mathbf{x})\)
满足约束条件:

\[\begin{aligned} & g_i(\mathbf{x}) = 0, \quad i = 1, \dots, m, \\ & h_j(\mathbf{x}) \ge 0, \quad j = 1, \dots, p. \end{aligned} \]

其中,\(\mathbf{x} \in \mathbb{R}^n\)\(f, g_i, h_j\) 都是二阶连续可微的函数。我们要求解这个优化问题,并重点关注其 不等式约束 \(h_j(\mathbf{x}) \ge 0\)

直接处理不等式约束是困难的,因为它在最优点可能处于边界(等式成立,\(h_j = 0\))或内部(严格不等式,\(h_j > 0\))。外点罚函数法通过惩罚违反的约束来处理,但迭代点可能不可行。内点法 的核心思想是构造一条从可行域内部通向最优点的“路径”,并始终保持在可行域内部(\(h_j(\mathbf{x}) > 0\)),从而规避了处理边界激活的复杂性。原始-对偶路径跟踪法是其中最主流、高效的一类。

2. 核心思想与转化
为了将不等式约束转化为易于处理的等式形式,我们引入 松弛变量 \(s_j\)对数障碍函数

  • 引入松弛变量:将不等式约束 \(h_j(\mathbf{x}) \ge 0\) 改写为 \(h_j(\mathbf{x}) - s_j = 0\),并强制要求 \(s_j \ge 0\)。这个新的 \(s_j\) 被称为松弛变量,它代表了约束 \(h_j\) 的“松弛度”。只要 \(s_j > 0\),原不等式 \(h_j(\mathbf{x}) > 0\) 就成立,我们就在可行域内部。
  • 使用对数障碍函数:为了在优化过程中自然地强制 \(s_j > 0\),我们在目标函数中加入一个惩罚项 \(-\mu \sum_{j=1}^{p} \ln(s_j)\),其中 \(\mu > 0\) 称为障碍参数。当 \(s_j\) 接近 0(即接近边界)时,\(-\ln(s_j) \to +\infty\),这会“阻止”迭代点触碰边界,从而保证内点性。当 \(\mu \to 0^+\) 时,这个惩罚的影响越来越小,障碍问题的解就逼近原问题的解。

于是,我们得到 障碍问题(Barrier Problem)
最小化:

\[B_\mu(\mathbf{x}, \mathbf{s}) = f(\mathbf{x}) - \mu \sum_{j=1}^{p} \ln(s_j) \]

满足:

\[\begin{aligned} & g_i(\mathbf{x}) = 0, \quad i = 1, \dots, m, \\ & h_j(\mathbf{x}) - s_j = 0, \quad j = 1, \dots, p, \\ & s_j > 0. \end{aligned} \]

这是一个仅含等式约束和简单正定界的问题,我们可以使用拉格朗日乘子法来求解它的一阶最优性条件。

3. 构建拉格朗日函数与KKT条件
为障碍问题构造增广拉格朗日函数:

\[\mathcal{L}_\mu(\mathbf{x}, \mathbf{s}, \mathbf{y}, \mathbf{z}) = f(\mathbf{x}) - \mu \sum_{j=1}^{p} \ln(s_j) + \sum_{i=1}^{m} y_i g_i(\mathbf{x}) + \sum_{j=1}^{p} z_j (h_j(\mathbf{x}) - s_j). \]

其中,\(\mathbf{y} \in \mathbb{R}^m\) 是对应等式约束 \(g_i = 0\) 的拉格朗日乘子(或称对偶变量),\(\mathbf{z} \in \mathbb{R}^p\) 是对应等式化后不等式约束 \(h_j - s_j = 0\) 的拉格朗日乘子,并且 \(z_j \ge 0\)(对于最小化问题,不等式约束为 \(\ge 0\) 时,其乘子非负)。

根据一阶最优性条件(KKT条件),在最优解 \((\mathbf{x}^*, \mathbf{s}^*, \mathbf{y}^*, \mathbf{z}^*)\) 处,梯度应为零,且 \(s_j, z_j > 0\)(互补松弛条件在 \(\mu > 0\) 时表现为 \(z_j s_j = \mu\))。具体写出:

\[\begin{aligned} \text{(1) 对 } \mathbf{x} &: \nabla f(\mathbf{x}) + \sum_{i=1}^{m} y_i \nabla g_i(\mathbf{x}) + \sum_{j=1}^{p} z_j \nabla h_j(\mathbf{x}) = 0, \\ \text{(2) 对 } \mathbf{s} &: -\mu S^{-1} \mathbf{e} - \mathbf{z} = 0, \quad \text{即 } \mathbf{z} = -\mu S^{-1} \mathbf{e}, \\ \text{(3) 对 } \mathbf{y} &: g_i(\mathbf{x}) = 0, \quad i = 1, \dots, m, \\ \text{(4) 对 } \mathbf{z} &: h_j(\mathbf{x}) - s_j = 0, \quad j = 1, \dots, p. \end{aligned} \]

其中,\(S = \text{diag}(s_1, \dots, s_p)\)\(\mathbf{e} = [1, \dots, 1]^T\)\(Z = \text{diag}(z_1, \dots, z_p)\)。由条件(2)可得 \(Z S \mathbf{e} = \mu \mathbf{e}\),这被称为中心路径条件(Central Path Condition)

4. 中心路径与路径跟踪策略
对于每一个 \(\mu > 0\),障碍问题都有一个最优解,记为 \((\mathbf{x}(\mu), \mathbf{s}(\mu), \mathbf{y}(\mu), \mathbf{z}(\mu))\)。所有这些解的集合形成了一条光滑的曲线,称为 中心路径(Central Path)。当 \(\mu \to 0\) 时,中心路径的端点 \((\mathbf{x}^*, \mathbf{s}^*, \mathbf{y}^*, \mathbf{z}^*)\) 就是原问题的最优解,并且满足严格的互补性 \(s_j^* z_j^* = 0\)

路径跟踪法 的策略是:不直接求解 \(\mu = 0\) 时的原问题KKT系统(那可能病态),而是从一个较大的 \(\mu\) 开始,求解对应障碍问题的近似KKT系统(上述(1)-(4)式),得到一个在中心路径附近的点。然后 逐渐减小 \(\mu\)(例如,令 \(\mu_{k+1} = \sigma \mu_k\)\(\sigma \in (0, 1)\)),并跟踪中心路径向原问题的最优点逼近。这样,整个过程都是在可行域内部稳定进行的。

5. 牛顿迭代求解近似KKT系统
对于给定的当前迭代点 \((\mathbf{x}_k, \mathbf{s}_k, \mathbf{y}_k, \mathbf{z}_k)\) 和当前的障碍参数 \(\mu_k\),我们需要求解上述非线性方程组(1)-(4)来获得下一个中心路径点。我们使用 牛顿法 来近似求解这个系统。

令当前点的扰动为 \((\Delta \mathbf{x}, \Delta \mathbf{s}, \Delta \mathbf{y}, \Delta \mathbf{z})\)。我们在当前点对KKT条件进行一阶泰勒展开(线性化)。线性化后的系统(牛顿方程)为:

\[\begin{bmatrix} H & 0 & J_g^T & J_h^T \\ 0 & \Sigma & 0 & -I \\ J_g & 0 & 0 & 0 \\ J_h & -I & 0 & 0 \end{bmatrix} \begin{bmatrix} \Delta \mathbf{x} \\ \Delta \mathbf{s} \\ \Delta \mathbf{y} \\ \Delta \mathbf{z} \end{bmatrix} = - \begin{bmatrix} \nabla f + J_g^T \mathbf{y} + J_h^T \mathbf{z} \\ \mathbf{z} - \mu S^{-1} \mathbf{e} \\ \mathbf{g}(\mathbf{x}) \\ \mathbf{h}(\mathbf{x}) - \mathbf{s} \end{bmatrix}. \]

其中:

  • \(H = \nabla_{xx}^2 \mathcal{L}_0(\mathbf{x}, \mathbf{y}, \mathbf{z}) = \nabla^2 f(\mathbf{x}) + \sum y_i \nabla^2 g_i(\mathbf{x}) + \sum z_j \nabla^2 h_j(\mathbf{x})\) 是拉格朗日函数的Hessian矩阵(相对于 \(\mathbf{x}\))。
  • \(\Sigma = \text{diag}(\frac{z_1}{s_1}, \dots, \frac{z_p}{s_p})\) 是由条件(2)线性化 \(\Delta z_j + (z_j / s_j) \Delta s_j\) 得到的对角矩阵。
  • \(J_g, J_h\) 分别是 \(\mathbf{g}, \mathbf{h}\) 的雅可比矩阵(约束的梯度矩阵)。
  • 等式右边的向量就是当前点不满足KKT条件的残差。

6. 算法步骤
原始-对偶路径跟踪法的一个基本框架如下:

步骤0:初始化

  • 给定初始点 \(\mathbf{x}_0\) 满足 \(h_j(\mathbf{x}_0) > 0\)
  • 设置初始松弛变量 \(\mathbf{s}_0 = \mathbf{h}(\mathbf{x}_0) > 0\)
  • 初始化对偶变量 \(\mathbf{y}_0, \mathbf{z}_0 > 0\)
  • 选择初始障碍参数 \(\mu_0 > 0\),衰减因子 \(\sigma \in (0, 1)\)(如0.2),容差 \(\epsilon > 0\),初始步长缩放因子。
  • 令迭代计数器 \(k = 0\)

步骤1:检查收敛

  • 计算原问题可行性误差 \(\| \mathbf{g}(\mathbf{x}_k) \|_\infty + \| \min(\mathbf{h}(\mathbf{x}_k), 0) \|_\infty\) 和对偶可行性误差 \(\| \nabla_{\mathbf{x}} \mathcal{L}_0 \|_\infty\)
  • 计算互补间隙 \(\eta_k = \mathbf{s}_k^T \mathbf{z}_k / p\)
  • 如果这些误差和互补间隙都小于 \(\epsilon\),则停止迭代,输出当前点作为近似最优解。

步骤2:设置障碍参数

  • \(\mu_k = \sigma \cdot \eta_k\)。(一种常见策略是让障碍参数与当前互补间隙成比例,这能实现自适应调整)

步骤3:求解牛顿方程

  • 构建并求解第5部分中的线性方程组,得到搜索方向 \((\Delta \mathbf{x}_k, \Delta \mathbf{s}_k, \Delta \mathbf{y}_k, \Delta \mathbf{z}_k)\)

步骤4:计算步长

  • 为了保持 \(\mathbf{s} > 0\)\(\mathbf{z} > 0\),我们需要进行阻尼牛顿步
  • 计算最大允许步长:

\[ \alpha_s^{\max} = \min(1, 0.99 \times \min_{j: \Delta s_j < 0} (-s_j / \Delta s_j)), \]

\[ \alpha_z^{\max} = \min(1, 0.99 \times \min_{j: \Delta z_j < 0} (-z_j / \Delta z_j)). \]

(系数0.99是为了避免直接触及边界,保留一个安全裕度)
  • 选择实际步长 \(\alpha_k = \min(\alpha_s^{\max}, \alpha_z^{\max})\)。有时也会对原变量 \(\mathbf{x}, \mathbf{y}\) 取稍小的步长以保证下降。

步骤5:更新迭代点

  • \(\mathbf{x}_{k+1} = \mathbf{x}_k + \alpha_k \Delta \mathbf{x}_k\)
  • \(\mathbf{s}_{k+1} = \mathbf{s}_k + \alpha_k \Delta \mathbf{s}_k\)
  • \(\mathbf{y}_{k+1} = \mathbf{y}_k + \alpha_k \Delta \mathbf{y}_k\)
  • \(\mathbf{z}_{k+1} = \mathbf{z}_k + \alpha_k \Delta \mathbf{z}_k\)

步骤6:循环

  • \(k = k+1\),返回步骤1。

7. 总结与特点

  • 优势:原始-对偶路径跟踪法收敛速度快(具有多项式时间复杂性),数值稳定性好,尤其擅长处理大规模、具有大量不等式约束的问题。它通过中心路径引导,避免了在边界附近振荡。
  • 关键点:算法成功依赖于一个好的初始内点,以及高效、稳定地求解大型稀疏(或特殊结构)的牛顿方程。实际软件中(如IPOPT, LOQO)会采用更复杂的策略,如滤波器线搜索、二阶校正、惯性控制等来增强鲁棒性。
  • 与已讲内容的区别:之前讨论的“内点法”多为基础概念或与其他方法(如反射牛顿法、罚函数法)的结合。本题聚焦于最核心的原始-对偶路径跟踪框架,它系统地处理了不等式约束,并通过中心路径将原问题和对偶问题的求解统一在一个迭代过程中,是现代内点法的基石。
好的,根据你提供的已讲题目列表,我随机选择一个尚未出现过的算法进行讲解。 非线性规划中的原始-对偶内点路径跟踪法(Primal-Dual Interior-Point Path-Following Method)基础题 1. 问题描述 假设我们有一个标准的非线性规划问题,形式如下: 最小化目标函数:\( f(\mathbf{x}) \) 满足约束条件: \[ \begin{aligned} & g_ i(\mathbf{x}) = 0, \quad i = 1, \dots, m, \\ & h_ j(\mathbf{x}) \ge 0, \quad j = 1, \dots, p. \end{aligned} \] 其中,\( \mathbf{x} \in \mathbb{R}^n \), \( f, g_ i, h_ j \) 都是二阶连续可微的函数。我们要求解这个优化问题,并重点关注其 不等式约束 \( h_ j(\mathbf{x}) \ge 0 \) 。 直接处理不等式约束是困难的,因为它在最优点可能处于边界(等式成立,\( h_ j = 0 \))或内部(严格不等式,\( h_ j > 0 \))。外点罚函数法通过惩罚违反的约束来处理,但迭代点可能不可行。 内点法 的核心思想是构造一条从可行域内部通向最优点的“路径”,并始终保持在可行域内部(\( h_ j(\mathbf{x}) > 0 \)),从而规避了处理边界激活的复杂性。原始-对偶路径跟踪法是其中最主流、高效的一类。 2. 核心思想与转化 为了将不等式约束转化为易于处理的等式形式,我们引入 松弛变量 \( s_ j \) 和 对数障碍函数 。 引入松弛变量 :将不等式约束 \( h_ j(\mathbf{x}) \ge 0 \) 改写为 \( h_ j(\mathbf{x}) - s_ j = 0 \),并强制要求 \( s_ j \ge 0 \)。这个新的 \( s_ j \) 被称为松弛变量,它代表了约束 \( h_ j \) 的“松弛度”。只要 \( s_ j > 0 \),原不等式 \( h_ j(\mathbf{x}) > 0 \) 就成立,我们就在可行域内部。 使用对数障碍函数 :为了在优化过程中自然地强制 \( s_ j > 0 \),我们在目标函数中加入一个惩罚项 \( -\mu \sum_ {j=1}^{p} \ln(s_ j) \),其中 \( \mu > 0 \) 称为 障碍参数 。当 \( s_ j \) 接近 0(即接近边界)时,\( -\ln(s_ j) \to +\infty \),这会“阻止”迭代点触碰边界,从而保证内点性。当 \( \mu \to 0^+ \) 时,这个惩罚的影响越来越小,障碍问题的解就逼近原问题的解。 于是,我们得到 障碍问题(Barrier Problem) : 最小化: \[ B_ \mu(\mathbf{x}, \mathbf{s}) = f(\mathbf{x}) - \mu \sum_ {j=1}^{p} \ln(s_ j) \] 满足: \[ \begin{aligned} & g_ i(\mathbf{x}) = 0, \quad i = 1, \dots, m, \\ & h_ j(\mathbf{x}) - s_ j = 0, \quad j = 1, \dots, p, \\ & s_ j > 0. \end{aligned} \] 这是一个仅含等式约束和简单正定界的问题,我们可以使用拉格朗日乘子法来求解它的一阶最优性条件。 3. 构建拉格朗日函数与KKT条件 为障碍问题构造增广拉格朗日函数: \[ \mathcal{L} \mu(\mathbf{x}, \mathbf{s}, \mathbf{y}, \mathbf{z}) = f(\mathbf{x}) - \mu \sum {j=1}^{p} \ln(s_ j) + \sum_ {i=1}^{m} y_ i g_ i(\mathbf{x}) + \sum_ {j=1}^{p} z_ j (h_ j(\mathbf{x}) - s_ j). \] 其中,\( \mathbf{y} \in \mathbb{R}^m \) 是对应等式约束 \( g_ i = 0 \) 的拉格朗日乘子(或称对偶变量),\( \mathbf{z} \in \mathbb{R}^p \) 是对应等式化后不等式约束 \( h_ j - s_ j = 0 \) 的拉格朗日乘子,并且 \( z_ j \ge 0 \)(对于最小化问题,不等式约束为 \( \ge 0 \) 时,其乘子非负)。 根据一阶最优性条件(KKT条件),在最优解 \( (\mathbf{x}^ , \mathbf{s}^ , \mathbf{y}^ , \mathbf{z}^ ) \) 处,梯度应为零,且 \( s_ j, z_ j > 0 \)(互补松弛条件在 \( \mu > 0 \) 时表现为 \( z_ j s_ j = \mu \))。具体写出: \[ \begin{aligned} \text{(1) 对 } \mathbf{x} &: \nabla f(\mathbf{x}) + \sum_ {i=1}^{m} y_ i \nabla g_ i(\mathbf{x}) + \sum_ {j=1}^{p} z_ j \nabla h_ j(\mathbf{x}) = 0, \\ \text{(2) 对 } \mathbf{s} &: -\mu S^{-1} \mathbf{e} - \mathbf{z} = 0, \quad \text{即 } \mathbf{z} = -\mu S^{-1} \mathbf{e}, \\ \text{(3) 对 } \mathbf{y} &: g_ i(\mathbf{x}) = 0, \quad i = 1, \dots, m, \\ \text{(4) 对 } \mathbf{z} &: h_ j(\mathbf{x}) - s_ j = 0, \quad j = 1, \dots, p. \end{aligned} \] 其中,\( S = \text{diag}(s_ 1, \dots, s_ p) \), \( \mathbf{e} = [ 1, \dots, 1]^T \), \( Z = \text{diag}(z_ 1, \dots, z_ p) \)。由条件(2)可得 \( Z S \mathbf{e} = \mu \mathbf{e} \),这被称为 中心路径条件(Central Path Condition) 。 4. 中心路径与路径跟踪策略 对于每一个 \( \mu > 0 \),障碍问题都有一个最优解,记为 \( (\mathbf{x}(\mu), \mathbf{s}(\mu), \mathbf{y}(\mu), \mathbf{z}(\mu)) \)。所有这些解的集合形成了一条光滑的曲线,称为 中心路径(Central Path) 。当 \( \mu \to 0 \) 时,中心路径的端点 \( (\mathbf{x}^ , \mathbf{s}^ , \mathbf{y}^ , \mathbf{z}^ ) \) 就是原问题的最优解,并且满足严格的互补性 \( s_ j^* z_ j^* = 0 \)。 路径跟踪法 的策略是:不直接求解 \( \mu = 0 \) 时的原问题KKT系统(那可能病态),而是从一个较大的 \( \mu \) 开始,求解对应障碍问题的近似KKT系统(上述(1)-(4)式),得到一个在中心路径附近的点。然后 逐渐减小 \( \mu \) (例如,令 \( \mu_ {k+1} = \sigma \mu_ k \), \( \sigma \in (0, 1) \)),并跟踪中心路径向原问题的最优点逼近。这样,整个过程都是在可行域内部稳定进行的。 5. 牛顿迭代求解近似KKT系统 对于给定的当前迭代点 \( (\mathbf{x}_ k, \mathbf{s}_ k, \mathbf{y}_ k, \mathbf{z}_ k) \) 和当前的障碍参数 \( \mu_ k \),我们需要求解上述非线性方程组(1)-(4)来获得下一个中心路径点。我们使用 牛顿法 来近似求解这个系统。 令当前点的扰动为 \( (\Delta \mathbf{x}, \Delta \mathbf{s}, \Delta \mathbf{y}, \Delta \mathbf{z}) \)。我们在当前点对KKT条件进行一阶泰勒展开(线性化)。线性化后的系统(牛顿方程)为: \[ \begin{bmatrix} H & 0 & J_ g^T & J_ h^T \\ 0 & \Sigma & 0 & -I \\ J_ g & 0 & 0 & 0 \\ J_ h & -I & 0 & 0 \end{bmatrix} \begin{bmatrix} \Delta \mathbf{x} \\ \Delta \mathbf{s} \\ \Delta \mathbf{y} \\ \Delta \mathbf{z} \end{bmatrix} = - \begin{bmatrix} \nabla f + J_ g^T \mathbf{y} + J_ h^T \mathbf{z} \\ \mathbf{z} - \mu S^{-1} \mathbf{e} \\ \mathbf{g}(\mathbf{x}) \\ \mathbf{h}(\mathbf{x}) - \mathbf{s} \end{bmatrix}. \] 其中: \( H = \nabla_ {xx}^2 \mathcal{L}_ 0(\mathbf{x}, \mathbf{y}, \mathbf{z}) = \nabla^2 f(\mathbf{x}) + \sum y_ i \nabla^2 g_ i(\mathbf{x}) + \sum z_ j \nabla^2 h_ j(\mathbf{x}) \) 是拉格朗日函数的Hessian矩阵(相对于 \( \mathbf{x} \))。 \( \Sigma = \text{diag}(\frac{z_ 1}{s_ 1}, \dots, \frac{z_ p}{s_ p}) \) 是由条件(2)线性化 \( \Delta z_ j + (z_ j / s_ j) \Delta s_ j \) 得到的对角矩阵。 \( J_ g, J_ h \) 分别是 \( \mathbf{g}, \mathbf{h} \) 的雅可比矩阵(约束的梯度矩阵)。 等式右边的向量就是当前点不满足KKT条件的残差。 6. 算法步骤 原始-对偶路径跟踪法的一个基本框架如下: 步骤0:初始化 给定初始点 \( \mathbf{x}_ 0 \) 满足 \( h_ j(\mathbf{x}_ 0) > 0 \)。 设置初始松弛变量 \( \mathbf{s}_ 0 = \mathbf{h}(\mathbf{x}_ 0) > 0 \)。 初始化对偶变量 \( \mathbf{y}_ 0, \mathbf{z}_ 0 > 0 \)。 选择初始障碍参数 \( \mu_ 0 > 0 \),衰减因子 \( \sigma \in (0, 1) \)(如0.2),容差 \( \epsilon > 0 \),初始步长缩放因子。 令迭代计数器 \( k = 0 \)。 步骤1:检查收敛 计算原问题可行性误差 \( \| \mathbf{g}(\mathbf{x} k) \| \infty + \| \min(\mathbf{h}(\mathbf{x} k), 0) \| \infty \) 和对偶可行性误差 \( \| \nabla_ {\mathbf{x}} \mathcal{L} 0 \| \infty \)。 计算互补间隙 \( \eta_ k = \mathbf{s}_ k^T \mathbf{z}_ k / p \)。 如果这些误差和互补间隙都小于 \( \epsilon \),则停止迭代,输出当前点作为近似最优解。 步骤2:设置障碍参数 \( \mu_ k = \sigma \cdot \eta_ k \)。(一种常见策略是让障碍参数与当前互补间隙成比例,这能实现自适应调整) 步骤3:求解牛顿方程 构建并求解第5部分中的线性方程组,得到搜索方向 \( (\Delta \mathbf{x}_ k, \Delta \mathbf{s}_ k, \Delta \mathbf{y}_ k, \Delta \mathbf{z}_ k) \)。 步骤4:计算步长 为了保持 \( \mathbf{s} > 0 \) 和 \( \mathbf{z} > 0 \),我们需要进行 阻尼牛顿步 。 计算最大允许步长: \[ \alpha_ s^{\max} = \min(1, 0.99 \times \min_ {j: \Delta s_ j < 0} (-s_ j / \Delta s_ j)), \] \[ \alpha_ z^{\max} = \min(1, 0.99 \times \min_ {j: \Delta z_ j < 0} (-z_ j / \Delta z_ j)). \] (系数0.99是为了避免直接触及边界,保留一个安全裕度) 选择实际步长 \( \alpha_ k = \min(\alpha_ s^{\max}, \alpha_ z^{\max}) \)。有时也会对原变量 \( \mathbf{x}, \mathbf{y} \) 取稍小的步长以保证下降。 步骤5:更新迭代点 \( \mathbf{x}_ {k+1} = \mathbf{x}_ k + \alpha_ k \Delta \mathbf{x}_ k \) \( \mathbf{s}_ {k+1} = \mathbf{s}_ k + \alpha_ k \Delta \mathbf{s}_ k \) \( \mathbf{y}_ {k+1} = \mathbf{y}_ k + \alpha_ k \Delta \mathbf{y}_ k \) \( \mathbf{z}_ {k+1} = \mathbf{z}_ k + \alpha_ k \Delta \mathbf{z}_ k \) 步骤6:循环 令 \( k = k+1 \),返回步骤1。 7. 总结与特点 优势 :原始-对偶路径跟踪法收敛速度快(具有多项式时间复杂性),数值稳定性好,尤其擅长处理大规模、具有大量不等式约束的问题。它通过中心路径引导,避免了在边界附近振荡。 关键点 :算法成功依赖于一个好的初始内点,以及高效、稳定地求解大型稀疏(或特殊结构)的牛顿方程。实际软件中(如IPOPT, LOQO)会采用更复杂的策略,如滤波器线搜索、二阶校正、惯性控制等来增强鲁棒性。 与已讲内容的区别 :之前讨论的“内点法”多为基础概念或与其他方法(如反射牛顿法、罚函数法)的结合。本题聚焦于最核心的 原始-对偶路径跟踪 框架,它系统地处理了不等式约束,并通过中心路径将原问题和对偶问题的求解统一在一个迭代过程中,是现代内点法的基石。