序列凸近似信赖域反射混合算法进阶题:带有非凸不等式与等式约束的高维非光滑优化问题
字数 6195 2025-12-16 01:54:11

序列凸近似信赖域反射混合算法进阶题:带有非凸不等式与等式约束的高维非光滑优化问题

题目描述

考虑以下高维、非光滑、非凸的约束优化问题:

问题P

\[\begin{aligned} \min_{\mathbf{x} \in \mathbb{R}^n} &\quad f(\mathbf{x}) \\ \text{s.t.} &\quad g_i(\mathbf{x}) \leq 0, \quad i = 1, \dots, m, \\ &\quad h_j(\mathbf{x}) = 0, \quad j = 1, \dots, p, \\ &\quad \mathbf{x}_L \leq \mathbf{x} \leq \mathbf{x}_U. \end{aligned} \]

其中:

  • 决策变量 \(\mathbf{x} \in \mathbb{R}^n\),维度 \(n\) 很大(例如 \(n \geq 1000\))。
  • 目标函数 \(f: \mathbb{R}^n \to \mathbb{R}\) 是非光滑(不可微或包含绝对值、最大值等非光滑算子)且非凸的。
  • 不等式约束函数 \(g_i: \mathbb{R}^n \to \mathbb{R}\) 和等式约束函数 \(h_j: \mathbb{R}^n \to \mathbb{R}\) 是非线性的、非凸的,且可能是非光滑的。
  • 变量边界 \(\mathbf{x}_L, \mathbf{x}_U\) 是给定的。

这个问题的挑战在于:

  1. 高维度:直接应用全局优化方法或二阶方法计算成本过高。
  2. 非光滑性:梯度信息可能不存在或不稳定,传统基于梯度的算法(如SQP)可能失效。
  3. 非凸性:约束集和目标函数都是非凸的,可能存在多个局部极值点。
  4. 混合约束:同时存在非线性不等式、等式和边界约束。

我们的目标是:设计一个序列凸近似信赖域反射混合算法,在可接受的计算成本下,找到一个满足约束的局部最优解或强稳定点


解题过程循序渐进讲解

我们将结合序列凸近似(SCA)信赖域(TR)反射梯度投影思想,构建一个混合算法。核心思路是:在每一步迭代,用一个构造良好的凸近似子问题来逼近原问题,并在一个信赖域内求解该子问题,同时利用反射技巧处理边界约束以保证可行性。

步骤1:问题重构与光滑化处理

由于原问题非光滑,我们首先引入一个光滑近似。

  • 技巧:对于常见的非光滑项,如 \(\phi(\mathbf{x}) = \max(0, q(\mathbf{x}))\)\(\|\mathbf{Ax} - \mathbf{b}\|_1\),可以使用诸如Huber函数对数-指数平滑(LogSumExp) 进行光滑化。
  • 示例:对于绝对值项 \(|t|\),可以用 \(\sqrt{t^2 + \epsilon}\) 近似,其中 \(\epsilon > 0\) 是一个小参数。
  • 结果:经过(自适应)光滑化后,我们得到一个光滑化的问题 \(\tilde{P}\),其目标 \(\tilde{f}(\mathbf{x})\) 和约束 \(\tilde{g}_i(\mathbf{x}), \tilde{h}_j(\mathbf{x})\) 是连续可微的,但依然非凸。

步骤2:构建序列凸近似子问题

在第 \(k\) 次迭代,当前点为 \(\mathbf{x}_k\)。我们对光滑化后的函数进行凸近似

  • 目标函数近似:对于非凸但连续可微的 \(\tilde{f}(\mathbf{x})\),在其一阶泰勒展开基础上,增加一个强凸项(通常是二次正则项),使其变为一个凸的代理函数。

\[ \hat{f}_k(\mathbf{x}) = \tilde{f}(\mathbf{x}_k) + \nabla \tilde{f}(\mathbf{x}_k)^T (\mathbf{x} - \mathbf{x}_k) + \frac{1}{2} (\mathbf{x} - \mathbf{x}_k)^T \mathbf{D}_k (\mathbf{x} - \mathbf{x}_k) \]

其中 $\mathbf{D}_k$ 是一个对称正定矩阵(例如 $\sigma_k \mathbf{I}$,$\sigma_k > 0$),确保 $\hat{f}_k$ 是强凸的。
  • 约束函数近似:对每个非凸约束函数 \(\tilde{g}_i(\mathbf{x})\),我们也构建一个凸的上界近似 \(\hat{g}_{i,k}(\mathbf{x})\),使得在 \(\mathbf{x}_k\) 处:

    1. \(\hat{g}_{i,k}(\mathbf{x}_k) = \tilde{g}_i(\mathbf{x}_k)\)
    2. \(\nabla \hat{g}_{i,k}(\mathbf{x}_k) = \nabla \tilde{g}_i(\mathbf{x}_k)\)
    3. \(\hat{g}_{i,k}(\mathbf{x}) \geq \tilde{g}_i(\mathbf{x})\) 对所有 \(\mathbf{x}\)(或至少在信赖域内)成立。
      一个常见方法是利用凸包络或简单的一阶泰勒上界(对于特定结构的函数,如差分凸函数)。对于等式约束 \(\tilde{h}_j(\mathbf{x})=0\),通常直接线性化为 \(\tilde{h}_j(\mathbf{x}_k) + \nabla \tilde{h}_j(\mathbf{x}_k)^T (\mathbf{x} - \mathbf{x}_k) = 0\),但这可能导致子问题不可行,因此更常用的是将其放松为两个不等式约束,或纳入罚函数。
  • 形成凸子问题

\[ \begin{aligned} (\text{SP}_k): \min_{\mathbf{s} \in \mathbb{R}^n} &\quad \hat{f}_k(\mathbf{x}_k + \mathbf{s}) \\ \text{s.t.} &\quad \hat{g}_{i,k}(\mathbf{x}_k + \mathbf{s}) \leq 0, \quad i = 1, \dots, m, \\ &\quad \tilde{h}_j(\mathbf{x}_k) + \nabla \tilde{h}_j(\mathbf{x}_k)^T \mathbf{s} = 0, \quad j = 1, \dots, p, \\ &\quad \mathbf{x}_L \leq \mathbf{x}_k + \mathbf{s} \leq \mathbf{x}_U, \\ &\quad \|\mathbf{s}\| \leq \Delta_k. \end{aligned} \]

这里 $\mathbf{s} = \mathbf{x} - \mathbf{x}_k$ 是移动步长,$\Delta_k > 0$ 是当前的信赖域半径。增加信赖域约束 $\|\mathbf{s}\| \leq \Delta_k$ 是为了保证近似模型的有效性。

步骤3:信赖域反射(Trust Region Reflection)求解子问题

子问题 \((\text{SP}_k)\) 是一个凸优化问题,但由于有信赖域约束和边界约束,直接求解可能仍需迭代。我们采用反射梯度投影法的思想来高效求解。

  • 反射变换处理边界:对于边界约束 \(\mathbf{x}_L \leq \mathbf{x} \leq \mathbf{x}_U\),当迭代点靠近或碰到边界时,标准的梯度下降方向可能指向可行域外。反射法的思想是,当遇到边界时,不是简单地将投影回可行域,而是计算一个“反射方向”,仿佛从边界“弹回”,这样可以探索沿着边界移动的可能性,可能带来更快的收敛。
  • 结合信赖域的梯度投影:我们可以设计一个内点算法或投影梯度法的变种来求解 \((\text{SP}_k)\)。算法框架如下(在求解每个子问题时内部循环):
    1. 初始化:从 \(\mathbf{s}^{(0)} = \mathbf{0}\)(即 \(\mathbf{x}_k\))开始。
    2. 梯度计算:计算凸目标 \(\hat{f}_k\)\(\mathbf{s}^{(t)}\) 处的梯度 \(\mathbf{g}^{(t)}\)
    3. 反射投影步
      • 计算一个试探步 \(\mathbf{d}^{(t)}\)(例如,最速下降方向 \(-\mathbf{g}^{(t)}\) 或拟牛顿方向)。
      • 如果沿 \(\mathbf{d}^{(t)}\) 移动会违反信赖域或边界约束,则计算一个反射步:将试探步沿违反的边界进行镜面反射,得到一个新的搜索方向。
      • 将反射后的方向投影回信赖域和边界的交集内,得到一个可行的移动步长 \(\alpha^{(t)}\) 和更新 \(\mathbf{s}^{(t+1)} = \mathbf{s}^{(t)} + \alpha^{(t)} \mathbf{p}^{(t)}\),其中 \(\mathbf{p}^{(t)}\) 是处理后的可行方向。
    4. 收敛判断:检查子问题 (\(\text{SP}_k\)) 的KKT条件是否近似满足。若满足,则停止内部循环,得到子问题解 \(\mathbf{s}_k^*\) 和候选点 \(\mathbf{x}_k^+ = \mathbf{x}_k + \mathbf{s}_k^*\)

步骤4:接受准则与信赖域半径更新

得到候选点 \(\mathbf{x}_k^+\) 后,我们需要判断是否接受该点,并更新信赖域半径 \(\Delta_k\)。这通过比较实际函数下降量模型预测下降量的比率 \(\rho_k\) 来决定。

  • 实际下降量\(\text{Ared}_k = \Phi(\mathbf{x}_k) - \Phi(\mathbf{x}_k^+)\)
  • 预测下降量\(\text{Pred}_k = \hat{\Phi}_k(\mathbf{x}_k) - \hat{\Phi}_k(\mathbf{x}_k^+)\)
    其中 \(\Phi(\mathbf{x}) = \tilde{f}(\mathbf{x}) + \mu \sum_i \max(0, \tilde{g}_i(\mathbf{x}))^2 + \mu \sum_j \tilde{h}_j(\mathbf{x})^2\) 是光滑化问题的精确罚函数(\(\mu\) 是罚参数),\(\hat{\Phi}_k\) 是对应的凸近似模型。
  • 比率计算\(\rho_k = \frac{\text{Ared}_k}{\text{Pred}_k}\)
  • 更新策略
    • 如果 \(\rho_k \geq \eta_1\)(例如 \(\eta_1 = 0.01\)),接受该步:\(\mathbf{x}_{k+1} = \mathbf{x}_k^+\)
    • 否则,拒绝该步:\(\mathbf{x}_{k+1} = \mathbf{x}_k\)
    • 信赖域半径更新:
      • 如果 \(\rho_k \geq \eta_2\)(例如 \(\eta_2 = 0.75\)),说明模型拟合很好,下一次可以尝试更大步长:\(\Delta_{k+1} = \min(\gamma_1 \Delta_k, \Delta_{\max})\)
      • 如果 \(\rho_k < \eta_1\),说明模型拟合很差,需要收缩信赖域:\(\Delta_{k+1} = \gamma_2 \Delta_k\)
      • 其他情况,保持半径不变:\(\Delta_{k+1} = \Delta_k\)
        这里 \(0 < \gamma_2 < 1 < \gamma_1\)\(\Delta_{\max}\) 是最大半径。

步骤5:算法流程与收敛性

将上述步骤整合,形成完整算法:

  1. 初始化:给定初始点 \(\mathbf{x}_0\),初始信赖域半径 \(\Delta_0 > 0\),罚参数 \(\mu > 0\),光滑化参数 \(\epsilon > 0\),凸化参数 \(\sigma_0 > 0\),以及常数 \(0 < \eta_1 \leq \eta_2 < 1\)\(0 < \gamma_2 < 1 < \gamma_1\)\(k=0\)
  2. 光滑化:使用当前参数 \(\epsilon\) 构造光滑化问题 \(\tilde{P}\)
  3. 主循环(直到满足收敛条件):
    a. 构建凸近似:在 \(\mathbf{x}_k\) 处,构造凸代理目标 \(\hat{f}_k\) 和凸代理约束 \(\hat{g}_{i,k}\)、线性化等式约束。
    b. 求解子问题:使用信赖域反射方法(步骤3)求解凸子问题 (\(\text{SP}_k\)),得到步长 \(\mathbf{s}_k^*\) 和候选点 \(\mathbf{x}_k^+\)
    c. 计算比率:计算实际下降与预测下降的比率 \(\rho_k\)
    d. 接受/拒绝步长并更新半径:根据步骤4的规则更新 \(\mathbf{x}_{k+1}\)\(\Delta_{k+1}\)
    e. 参数更新:可自适应更新凸化参数 \(\sigma_k\)(例如,基于模型误差)和罚参数 \(\mu\)
    f. 检查收敛:判断是否满足停止准则(例如,信赖域半径小于阈值 \(\Delta_k \leq \epsilon_{tol}\),且最优性条件残差足够小)。
    g. 令 \(k = k+1\)

收敛性:在适当的假设下(如代理函数是原函数的一致凸上近似,且罚参数足够大),该算法生成的序列 \(\{\mathbf{x}_k\}\) 的任何聚点都是原光滑化问题 \(\tilde{P}\) 的一个稳定点。通过让光滑化参数 \(\epsilon \to 0\),该稳定点可以逼近原非光滑问题 \(P\) 的一个Clarke稳定点。

总结

本算法序列凸近似(SCA) 处理非凸性,用信赖域(TR) 控制近似模型的局部有效性,用反射梯度投影高效处理子问题中的边界约束,并用罚函数处理等式约束。通过这种混合策略,它能够系统性地求解高维、非光滑、非凸的约束优化问题,在工程优化、机器学习参数调优等领域有应用潜力。其核心挑战在于如何为复杂的非凸函数构造既紧(保证精度)又易求解的凸近似,以及如何自适应地调整信赖域半径和罚参数以保证收敛效率。

序列凸近似信赖域反射混合算法进阶题:带有非凸不等式与等式约束的高维非光滑优化问题 题目描述 考虑以下高维、非光滑、非凸的约束优化问题: 问题P : \[ \begin{aligned} \min_ {\mathbf{x} \in \mathbb{R}^n} &\quad f(\mathbf{x}) \\ \text{s.t.} &\quad g_ i(\mathbf{x}) \leq 0, \quad i = 1, \dots, m, \\ &\quad h_ j(\mathbf{x}) = 0, \quad j = 1, \dots, p, \\ &\quad \mathbf{x}_ L \leq \mathbf{x} \leq \mathbf{x}_ U. \end{aligned} \] 其中: 决策变量 \(\mathbf{x} \in \mathbb{R}^n\),维度 \(n\) 很大(例如 \(n \geq 1000\))。 目标函数 \(f: \mathbb{R}^n \to \mathbb{R}\) 是非光滑(不可微或包含绝对值、最大值等非光滑算子)且非凸的。 不等式约束函数 \(g_ i: \mathbb{R}^n \to \mathbb{R}\) 和等式约束函数 \(h_ j: \mathbb{R}^n \to \mathbb{R}\) 是非线性的、非凸的,且可能是非光滑的。 变量边界 \(\mathbf{x}_ L, \mathbf{x}_ U\) 是给定的。 这个问题的挑战在于: 高维度 :直接应用全局优化方法或二阶方法计算成本过高。 非光滑性 :梯度信息可能不存在或不稳定,传统基于梯度的算法(如SQP)可能失效。 非凸性 :约束集和目标函数都是非凸的,可能存在多个局部极值点。 混合约束 :同时存在非线性不等式、等式和边界约束。 我们的目标是: 设计一个序列凸近似信赖域反射混合算法,在可接受的计算成本下,找到一个满足约束的局部最优解或强稳定点 。 解题过程循序渐进讲解 我们将结合 序列凸近似(SCA) 、 信赖域(TR) 和 反射梯度投影 思想,构建一个混合算法。核心思路是:在每一步迭代,用一个构造良好的凸近似子问题来逼近原问题,并在一个信赖域内求解该子问题,同时利用反射技巧处理边界约束以保证可行性。 步骤1:问题重构与光滑化处理 由于原问题非光滑,我们首先引入一个光滑近似。 技巧 :对于常见的非光滑项,如 \( \phi(\mathbf{x}) = \max(0, q(\mathbf{x})) \) 或 \( \|\mathbf{Ax} - \mathbf{b}\|_ 1 \),可以使用诸如 Huber函数 或 对数-指数平滑(LogSumExp) 进行光滑化。 示例 :对于绝对值项 \(|t|\),可以用 \(\sqrt{t^2 + \epsilon}\) 近似,其中 \(\epsilon > 0\) 是一个小参数。 结果 :经过(自适应)光滑化后,我们得到一个光滑化的问题 \(\tilde{P}\),其目标 \(\tilde{f}(\mathbf{x})\) 和约束 \(\tilde{g}_ i(\mathbf{x}), \tilde{h}_ j(\mathbf{x})\) 是连续可微的,但依然非凸。 步骤2:构建序列凸近似子问题 在第 \(k\) 次迭代,当前点为 \(\mathbf{x}_ k\)。我们对光滑化后的函数进行 凸近似 。 目标函数近似 :对于非凸但连续可微的 \(\tilde{f}(\mathbf{x})\),在其一阶泰勒展开基础上,增加一个强凸项(通常是二次正则项),使其变为一个凸的代理函数。 \[ \hat{f}_ k(\mathbf{x}) = \tilde{f}(\mathbf{x}_ k) + \nabla \tilde{f}(\mathbf{x}_ k)^T (\mathbf{x} - \mathbf{x}_ k) + \frac{1}{2} (\mathbf{x} - \mathbf{x}_ k)^T \mathbf{D}_ k (\mathbf{x} - \mathbf{x}_ k) \] 其中 \(\mathbf{D}_ k\) 是一个对称正定矩阵(例如 \(\sigma_ k \mathbf{I}\),\(\sigma_ k > 0\)),确保 \(\hat{f}_ k\) 是强凸的。 约束函数近似 :对每个非凸约束函数 \(\tilde{g} i(\mathbf{x})\),我们也构建一个凸的上界近似 \(\hat{g} {i,k}(\mathbf{x})\),使得在 \(\mathbf{x}_ k\) 处: \(\hat{g}_ {i,k}(\mathbf{x}_ k) = \tilde{g}_ i(\mathbf{x}_ k)\)。 \(\nabla \hat{g}_ {i,k}(\mathbf{x}_ k) = \nabla \tilde{g}_ i(\mathbf{x}_ k)\)。 \(\hat{g}_ {i,k}(\mathbf{x}) \geq \tilde{g}_ i(\mathbf{x})\) 对所有 \(\mathbf{x}\)(或至少在信赖域内)成立。 一个常见方法是利用 凸包络 或简单的 一阶泰勒上界 (对于特定结构的函数,如差分凸函数)。对于等式约束 \(\tilde{h}_ j(\mathbf{x})=0\),通常直接线性化为 \(\tilde{h}_ j(\mathbf{x}_ k) + \nabla \tilde{h}_ j(\mathbf{x}_ k)^T (\mathbf{x} - \mathbf{x}_ k) = 0\),但这可能导致子问题不可行,因此更常用的是将其放松为两个不等式约束,或纳入罚函数。 形成凸子问题 : \[ \begin{aligned} (\text{SP} k): \min {\mathbf{s} \in \mathbb{R}^n} &\quad \hat{f}_ k(\mathbf{x} k + \mathbf{s}) \\ \text{s.t.} &\quad \hat{g} {i,k}(\mathbf{x}_ k + \mathbf{s}) \leq 0, \quad i = 1, \dots, m, \\ &\quad \tilde{h}_ j(\mathbf{x}_ k) + \nabla \tilde{h}_ j(\mathbf{x}_ k)^T \mathbf{s} = 0, \quad j = 1, \dots, p, \\ &\quad \mathbf{x}_ L \leq \mathbf{x}_ k + \mathbf{s} \leq \mathbf{x}_ U, \\ &\quad \|\mathbf{s}\| \leq \Delta_ k. \end{aligned} \] 这里 \(\mathbf{s} = \mathbf{x} - \mathbf{x}_ k\) 是移动步长,\(\Delta_ k > 0\) 是当前的信赖域半径。增加信赖域约束 \(\|\mathbf{s}\| \leq \Delta_ k\) 是为了保证近似模型的有效性。 步骤3:信赖域反射(Trust Region Reflection)求解子问题 子问题 \((\text{SP}_ k)\) 是一个凸优化问题,但由于有信赖域约束和边界约束,直接求解可能仍需迭代。我们采用 反射梯度投影法 的思想来高效求解。 反射变换处理边界 :对于边界约束 \(\mathbf{x}_ L \leq \mathbf{x} \leq \mathbf{x}_ U\),当迭代点靠近或碰到边界时,标准的梯度下降方向可能指向可行域外。反射法的思想是,当遇到边界时,不是简单地将投影回可行域,而是计算一个“反射方向”,仿佛从边界“弹回”,这样可以探索沿着边界移动的可能性,可能带来更快的收敛。 结合信赖域的梯度投影 :我们可以设计一个内点算法或投影梯度法的变种来求解 \((\text{SP}_ k)\)。算法框架如下(在求解每个子问题时内部循环): 初始化 :从 \(\mathbf{s}^{(0)} = \mathbf{0}\)(即 \(\mathbf{x}_ k\))开始。 梯度计算 :计算凸目标 \(\hat{f}_ k\) 在 \(\mathbf{s}^{(t)}\) 处的梯度 \(\mathbf{g}^{(t)}\)。 反射投影步 : 计算一个试探步 \(\mathbf{d}^{(t)}\)(例如,最速下降方向 \(-\mathbf{g}^{(t)}\) 或拟牛顿方向)。 如果沿 \(\mathbf{d}^{(t)}\) 移动会违反信赖域或边界约束,则计算一个反射步:将试探步沿违反的边界进行镜面反射,得到一个新的搜索方向。 将反射后的方向投影回信赖域和边界的交集内,得到一个可行的移动步长 \(\alpha^{(t)}\) 和更新 \(\mathbf{s}^{(t+1)} = \mathbf{s}^{(t)} + \alpha^{(t)} \mathbf{p}^{(t)}\),其中 \(\mathbf{p}^{(t)}\) 是处理后的可行方向。 收敛判断 :检查子问题 (\(\text{SP}_ k\)) 的KKT条件是否近似满足。若满足,则停止内部循环,得到子问题解 \(\mathbf{s}_ k^ \) 和候选点 \(\mathbf{x}_ k^+ = \mathbf{x}_ k + \mathbf{s}_ k^ \)。 步骤4:接受准则与信赖域半径更新 得到候选点 \(\mathbf{x}_ k^+\) 后,我们需要判断是否接受该点,并更新信赖域半径 \(\Delta_ k\)。这通过比较 实际函数下降量 与 模型预测下降量 的比率 \(\rho_ k\) 来决定。 实际下降量 :\(\text{Ared}_ k = \Phi(\mathbf{x}_ k) - \Phi(\mathbf{x}_ k^+)\)。 预测下降量 :\(\text{Pred}_ k = \hat{\Phi}_ k(\mathbf{x}_ k) - \hat{\Phi}_ k(\mathbf{x}_ k^+)\)。 其中 \(\Phi(\mathbf{x}) = \tilde{f}(\mathbf{x}) + \mu \sum_ i \max(0, \tilde{g}_ i(\mathbf{x}))^2 + \mu \sum_ j \tilde{h}_ j(\mathbf{x})^2\) 是光滑化问题的精确罚函数(\(\mu\) 是罚参数),\(\hat{\Phi}_ k\) 是对应的凸近似模型。 比率计算 :\(\rho_ k = \frac{\text{Ared}_ k}{\text{Pred}_ k}\)。 更新策略 : 如果 \(\rho_ k \geq \eta_ 1\)(例如 \(\eta_ 1 = 0.01\)),接受该步:\(\mathbf{x}_ {k+1} = \mathbf{x}_ k^+\)。 否则,拒绝该步:\(\mathbf{x}_ {k+1} = \mathbf{x}_ k\)。 信赖域半径更新: 如果 \(\rho_ k \geq \eta_ 2\)(例如 \(\eta_ 2 = 0.75\)),说明模型拟合很好,下一次可以尝试更大步长:\(\Delta_ {k+1} = \min(\gamma_ 1 \Delta_ k, \Delta_ {\max})\)。 如果 \(\rho_ k < \eta_ 1\),说明模型拟合很差,需要收缩信赖域:\(\Delta_ {k+1} = \gamma_ 2 \Delta_ k\)。 其他情况,保持半径不变:\(\Delta_ {k+1} = \Delta_ k\)。 这里 \(0 < \gamma_ 2 < 1 < \gamma_ 1\),\(\Delta_ {\max}\) 是最大半径。 步骤5:算法流程与收敛性 将上述步骤整合,形成完整算法: 初始化 :给定初始点 \(\mathbf{x}_ 0\),初始信赖域半径 \(\Delta_ 0 > 0\),罚参数 \(\mu > 0\),光滑化参数 \(\epsilon > 0\),凸化参数 \(\sigma_ 0 > 0\),以及常数 \(0 < \eta_ 1 \leq \eta_ 2 < 1\), \(0 < \gamma_ 2 < 1 < \gamma_ 1\), \(k=0\)。 光滑化 :使用当前参数 \(\epsilon\) 构造光滑化问题 \(\tilde{P}\)。 主循环 (直到满足收敛条件): a. 构建凸近似 :在 \(\mathbf{x}_ k\) 处,构造凸代理目标 \(\hat{f} k\) 和凸代理约束 \(\hat{g} {i,k}\)、线性化等式约束。 b. 求解子问题 :使用信赖域反射方法(步骤3)求解凸子问题 (\(\text{SP} k\)),得到步长 \(\mathbf{s} k^* \) 和候选点 \(\mathbf{x} k^+\)。 c. 计算比率 :计算实际下降与预测下降的比率 \(\rho_ k\)。 d. 接受/拒绝步长并更新半径 :根据步骤4的规则更新 \(\mathbf{x} {k+1}\) 和 \(\Delta {k+1}\)。 e. 参数更新 :可自适应更新凸化参数 \(\sigma_ k\)(例如,基于模型误差)和罚参数 \(\mu\)。 f. 检查收敛 :判断是否满足停止准则(例如,信赖域半径小于阈值 \(\Delta_ k \leq \epsilon {tol}\),且最优性条件残差足够小)。 g. 令 \(k = k+1\)。 收敛性 :在适当的假设下(如代理函数是原函数的一致凸上近似,且罚参数足够大),该算法生成的序列 \(\{\mathbf{x}_ k\}\) 的任何聚点都是原光滑化问题 \(\tilde{P}\) 的一个稳定点。通过让光滑化参数 \(\epsilon \to 0\),该稳定点可以逼近原非光滑问题 \(P\) 的一个Clarke稳定点。 总结 本算法 序列凸近似(SCA) 处理非凸性,用 信赖域(TR) 控制近似模型的局部有效性,用 反射梯度投影 高效处理子问题中的边界约束,并用 罚函数 处理等式约束。通过这种混合策略,它能够系统性地求解高维、非光滑、非凸的约束优化问题,在工程优化、机器学习参数调优等领域有应用潜力。其核心挑战在于如何为复杂的非凸函数构造既紧(保证精度)又易求解的凸近似,以及如何自适应地调整信赖域半径和罚参数以保证收敛效率。