基于自适应屏障函数的逐步凸信赖域法(Adaptive Barrier-Based Sequential Convex Trust Region Method)基础题
题目描述
考虑如下形式的非线性规划问题(NLP):
\[\begin{aligned} \min_{x \in \mathbb{R}^n} \quad & f(x) \\ \text{s.t.} \quad & c_i(x) \leq 0, \quad i=1,\dots,m \\ & Ax = b, \end{aligned} \]
其中 \(f: \mathbb{R}^n \to \mathbb{R}\) 是可微但非凸的目标函数,\(c_i: \mathbb{R}^n \to \mathbb{R}\) 是可微、非凸的不等式约束函数,\(A \in \mathbb{R}^{p \times n}, b \in \mathbb{R}^p\) 是线性等式约束。假设 \(f\) 和 \(c_i\) 的二阶导数(Hessian矩阵)在可行域附近是连续可计算的。传统方法如序列二次规划(SQP)在非凸约束下可能难以保证子问题的可行性。为此,本题引入一种自适应屏障函数,将原约束转换为一系列易于处理的凸约束近似,并利用信赖域机制控制近似精度,从而逐步逼近原问题的最优解。
要求:阐述算法的核心思想,推导迭代过程中自适应屏障函数的构造方法,说明逐步凸近似的构建步骤,并结合信赖域框架给出完整的算法流程,分析其收敛性条件。
解题过程循序渐进讲解
1. 问题难点与核心思想
- 难点:原问题的约束 \(c_i(x) \leq 0\) 是非凸的,导致在任意点做线性化或二次近似后得到的可行域可能为空,或子问题不可行。
- 核心思想:
- 引入自适应屏障函数(Adaptive Barrier Function)对每个不等式约束进行变换,使其在当前迭代点附近是凸的,从而得到局部凸近似。
- 利用逐步凸近似(Sequential Convex Approximation, SCA)框架,在每一步求解一个凸子问题。
- 引入信赖域(Trust Region)约束,限制迭代步长,保证近似的精度和子问题可行性。
- 根据子问题解的优劣,自适应调整屏障函数的参数,控制近似精度。
2. 自适应屏障函数的构造
对于每个非凸约束 \(c_i(x) \leq 0\),在当前迭代点 \(x_k\) 处构造如下自适应屏障函数:
\[\hat{c}_i(x; x_k, \mu_k) = c_i(x_k) + \nabla c_i(x_k)^T (x - x_k) + \frac{1}{2\mu_k} \|x - x_k\|^2, \]
其中:
- 第一、二项是 \(c_i\) 在 \(x_k\) 处的线性近似(一阶泰勒展开)。
- 第三项是附加的凸二次项,其中 \(\mu_k > 0\) 是自适应参数。
- 这个二次项系数 \(1/\mu_k\) 是正的,因此 \(\hat{c}_i\) 是凸的(实际上是一个关于 \(x\) 的凸二次函数)。
物理意义:当 \(\mu_k\) 较小时,二次项占主导,使 \(\hat{c}_i\) 在 \(x_k\) 附近很“陡峭”,近似更保守,可行域较小;当 \(\mu_k\) 较大时,二次项影响变小,近似更接近线性,可行域更大。通过调整 \(\mu_k\),可以平衡近似精度和子问题可行性。
3. 逐步凸近似的子问题构建
在第 \(k\) 步迭代,我们构造如下凸优化子问题:
\[\begin{aligned} \min_{d \in \mathbb{R}^n} \quad & \hat{f}_k(d) = f(x_k) + \nabla f(x_k)^T d + \frac{1}{2} d^T B_k d \\ \text{s.t.} \quad & \hat{c}_i(x_k + d; x_k, \mu_k) \leq 0, \quad i=1,\dots,m \\ & A(x_k + d) = b, \\ & \|d\| \leq \Delta_k, \end{aligned} \]
其中:
- \(d = x - x_k\) 是搜索方向。
- \(B_k\) 是目标函数 Hessian \(\nabla^2 f(x_k)\) 的一个对称正定近似(若 \(\nabla^2 f\) 非正定,可用拟牛顿法如 BFGS 得到 \(B_k\) 保证凸性)。
- \(\hat{c}_i\) 如上定义,是凸的。
- 线性等式约束 \(Ax = b\) 直接保留,因为它们是凸的。
- \(\|d\| \leq \Delta_k\) 是信赖域约束,\(\Delta_k > 0\) 是信赖域半径,控制步长大小,保证 \(x_k + d\) 不远离 \(x_k\),从而使凸近似有效。
子问题的凸性保证:由于目标函数二次项 \(B_k\) 正定,约束 \(\hat{c}_i\) 凸且二次,等式约束线性,信赖域是凸集(球),因此整个子问题是凸优化问题,可用内点法、有效集法等高效求解。
4. 自适应参数更新与信赖域调整
定义实际改进(Actual Reduction)与预测改进(Predicted Reduction):
\[\text{Are}_k = f(x_k) - f(x_k + d_k), \quad \text{Pre}_k = \hat{f}_k(0) - \hat{f}_k(d_k). \]
计算比值 \(\rho_k = \text{Are}_k / \text{Pre}_k\)。
- 如果 \(\rho_k\) 接近 1(如 \(\rho_k > 0.75\)),说明近似模型很好,可以接受步长 \(d_k\),并增大信赖域半径和减小屏障参数以提升近似精度:
\[ x_{k+1} = x_k + d_k, \quad \Delta_{k+1} = \min(2\Delta_k, \Delta_{\max}), \quad \mu_{k+1} = \mu_k / \gamma_1 \ (\gamma_1 > 1). \]
- 如果 \(\rho_k\) 中等(如 \(0.25 \leq \rho_k \leq 0.75\)),接受步长但保持半径和屏障参数不变。
- 如果 \(\rho_k\) 很小(如 \(\rho_k < 0.25\)),说明近似较差,拒绝步长,缩小信赖域并增大屏障参数以使近似更保守、可行域更大:
\[ x_{k+1} = x_k, \quad \Delta_{k+1} = \Delta_k / 2, \quad \mu_{k+1} = \mu_k \cdot \gamma_2 \ (\gamma_2 > 1). \]
5. 完整算法流程
- 初始化:给定初始点 \(x_0\)(需满足 \(Ax_0 = b\),可松弛处理),初始信赖域半径 \(\Delta_0 > 0\),初始屏障参数 \(\mu_0 > 0\),常数 \(0 < \eta_1 < \eta_2 < 1\)(如 \(\eta_1=0.25, \eta_2=0.75\)),\(\gamma_1 > 1, \gamma_2 > 1\),容忍误差 \(\epsilon > 0\),置 \(k=0\)。
- 循环直到收敛(如 \(\|d_k\| < \epsilon\) 且约束违反度很小):
a. 构建凸子问题:计算梯度 \(\nabla f(x_k)\), \(\nabla c_i(x_k)\),构造 \(B_k\)(如 BFGS 更新),形成子问题。
b. 求解子问题:得到搜索方向 \(d_k\)。
c. 计算比值 \(\rho_k\)。
d. 更新迭代点:- 若 \(\rho_k > \eta_1\),接受步长:\(x_{k+1} = x_k + d_k\)。
- 否则,拒绝步长:\(x_{k+1} = x_k\)。
e. 自适应调整: - 若 \(\rho_k > \eta_2\),则 \(\Delta_{k+1} = \min(2\Delta_k, \Delta_{\max})\),\(\mu_{k+1} = \mu_k / \gamma_1\)。
- 若 \(\eta_1 \leq \rho_k \leq \eta_2\),则 \(\Delta_{k+1} = \Delta_k\),\(\mu_{k+1} = \mu_k\)。
- 若 \(\rho_k < \eta_1\),则 \(\Delta_{k+1} = \Delta_k / 2\),\(\mu_{k+1} = \mu_k \cdot \gamma_2\)。
f. 更新 \(k = k+1\)。
6. 收敛性分析
- 在适当条件下(如 \(f, c_i\) 连续可微且有下界,梯度 Lipschitz 连续,子问题始终可行),算法可保证:
- 每次迭代至少是可行的(由于屏障函数和信赖域控制)。
- 当 \(k \to \infty\) 时,若 \(\mu_k \to 0\) 且 \(\Delta_k\) 不趋于零,则极限点满足一阶必要条件(KKT 条件)。
- 关键点:屏障参数 \(\mu_k\) 的调整需使近似误差可控,信赖域机制保证全局收敛(避免 Maratos 效应)。
总结:该方法通过自适应屏障函数将非凸约束局部凸化,结合信赖域控制步长,形成一系列凸子问题。其优势是能处理非凸约束,保证子问题可行性,且参数自适应调整平衡了精度与效率。适用于目标函数和约束非凸但光滑的工程优化问题。