基于序列二次规划-代理模型-信赖域混合算法进阶题
字数 2187 2025-12-03 01:09:37

基于序列二次规划-代理模型-信赖域混合算法进阶题

题目描述
考虑非线性规划问题:
最小化 \(f(x) = (x_1 - 1)^2 + (x_2 - 2.5)^2\)
约束条件:
\(g_1(x) = x_1 - 2x_2 + 2 \geq 0\)
\(g_2(x) = -x_1 - 2x_2 + 6 \geq 0\)
\(g_3(x) = -x_1 + 2x_2 + 2 \geq 0\)
\(x_1, x_2 \geq 0\)
要求使用序列二次规划(SQP)结合代理模型(如二次插值模型)和信赖域策略求解。代理模型用于近似目标函数和约束的梯度信息,信赖域控制每一步的搜索范围,确保收敛稳定性。

解题过程

  1. 初始化

    • 初始点 \(x_0 = [2, 0]\)(需满足约束,验证:\(g_1 = 2 - 0 + 2 = 4 \geq 0\),其他约束均满足)。
    • 设置初始信赖域半径 \(\Delta_0 = 0.5\),代理模型更新阈值 \(\epsilon = 10^{-3}\)
  2. 构建代理模型

    • 在当前点 \(x_k\) 处,通过二次插值模型近似目标函数和约束:
      • 目标函数代理模型:
        \(m_k(d) = f(x_k) + \nabla f(x_k)^T d + \frac{1}{2} d^T B_k d\)
        其中 \(B_k\) 由拟牛顿法(如BFGS更新)维护,初始 \(B_0 = I\)(单位矩阵)。
      • 约束线性化:\(g_j(x_k + d) \approx g_j(x_k) + \nabla g_j(x_k)^T d\)
    • 计算梯度:
      \(\nabla f(x) = [2(x_1 - 1), 2(x_2 - 2.5)]\)
      \(\nabla g_1 = [1, -2]\), \(\nabla g_2 = [-1, -2]\), \(\nabla g_3 = [-1, 2]\)
  3. 求解子问题

    • 在信赖域 \(\|d\| \leq \Delta_k\) 内求解二次规划子问题:
      最小化 \(m_k(d)\)
      约束:\(g_j(x_k) + \nabla g_j(x_k)^T d \geq 0\)\(j = 1,2,3\)),\(x_k + d \geq 0\)
    • 例如,在 \(x_0 = [2, 0]\) 时:
      \(\nabla f(x_0) = [2, -5]\)\(B_0 = I\)
      子问题目标:\(m_0(d) = 2.25 + [2, -5] d + \frac{1}{2} d^T I d\)
      约束线性化后:
      \(g_1: 4 + [1, -2]d \geq 0\)
      \(g_2: 4 + [-1, -2]d \geq 0\)
      \(g_3: 0 + [-1, 2]d \geq 0\)
      解此QP得 \(d_0 \approx [-0.3, 0.2]\)
  4. 接受性检验与信赖域更新

    • 计算实际下降量 \(\text{ared} = f(x_k) - f(x_k + d_k)\)
      预测下降量 \(\text{pred} = m_k(0) - m_k(d_k)\)
    • 比率 \(r_k = \frac{\text{ared}}{\text{pred}}\)
      • \(r_k > 0.75\),扩大信赖域 \(\Delta_{k+1} = 2\Delta_k\)
      • \(r_k < 0.25\),缩小信赖域 \(\Delta_{k+1} = 0.5\Delta_k\)
      • 否则保持 \(\Delta_{k+1} = \Delta_k\)
    • \(r_k > 0.1\),接受新点 \(x_{k+1} = x_k + d_k\);否则拒绝并缩小信赖域重解子问题。
  5. 代理模型更新

    • \(\|x_{k+1} - x_k\| > \epsilon\),用新点信息更新BFGS矩阵 \(B_k\)
      \(s = x_{k+1} - x_k\)\(y = \nabla f(x_{k+1}) - \nabla f(x_k)\)
      \(B_{k+1} = B_k - \frac{B_k s s^T B_k}{s^T B_k s} + \frac{y y^T}{s^T y}\)
  6. 迭代至收敛

    • 重复步骤2-5,直到 \(\|d_k\| < 10^{-6}\) 或梯度满足KKT条件。
    • 最终解趋近于 \(x^* = [1.4, 1.7]\),对应 \(f^* \approx 0.8\),约束均活跃(\(g_1 = g_2 = 0\))。

关键点

  • 代理模型降低函数计算成本,尤其适用于高维或计算昂贵的函数。
  • 信赖域避免步长过大导致发散,平衡全局收敛与局部效率。
  • 序列二次规划保证超线性收敛,结合代理模型后适用于实际工程优化。
基于序列二次规划-代理模型-信赖域混合算法进阶题 题目描述 考虑非线性规划问题: 最小化 \( f(x) = (x_ 1 - 1)^2 + (x_ 2 - 2.5)^2 \) 约束条件: \( g_ 1(x) = x_ 1 - 2x_ 2 + 2 \geq 0 \) \( g_ 2(x) = -x_ 1 - 2x_ 2 + 6 \geq 0 \) \( g_ 3(x) = -x_ 1 + 2x_ 2 + 2 \geq 0 \) \( x_ 1, x_ 2 \geq 0 \) 要求使用序列二次规划(SQP)结合代理模型(如二次插值模型)和信赖域策略求解。代理模型用于近似目标函数和约束的梯度信息,信赖域控制每一步的搜索范围,确保收敛稳定性。 解题过程 初始化 初始点 \( x_ 0 = [ 2, 0] \)(需满足约束,验证:\( g_ 1 = 2 - 0 + 2 = 4 \geq 0 \),其他约束均满足)。 设置初始信赖域半径 \( \Delta_ 0 = 0.5 \),代理模型更新阈值 \( \epsilon = 10^{-3} \)。 构建代理模型 在当前点 \( x_ k \) 处,通过二次插值模型近似目标函数和约束: 目标函数代理模型: \( m_ k(d) = f(x_ k) + \nabla f(x_ k)^T d + \frac{1}{2} d^T B_ k d \) 其中 \( B_ k \) 由拟牛顿法(如BFGS更新)维护,初始 \( B_ 0 = I \)(单位矩阵)。 约束线性化:\( g_ j(x_ k + d) \approx g_ j(x_ k) + \nabla g_ j(x_ k)^T d \)。 计算梯度: \( \nabla f(x) = [ 2(x_ 1 - 1), 2(x_ 2 - 2.5) ] \), \( \nabla g_ 1 = [ 1, -2] \), \( \nabla g_ 2 = [ -1, -2] \), \( \nabla g_ 3 = [ -1, 2 ] \)。 求解子问题 在信赖域 \( \|d\| \leq \Delta_ k \) 内求解二次规划子问题: 最小化 \( m_ k(d) \) 约束:\( g_ j(x_ k) + \nabla g_ j(x_ k)^T d \geq 0 \)(\( j = 1,2,3 \)),\( x_ k + d \geq 0 \)。 例如,在 \( x_ 0 = [ 2, 0 ] \) 时: \( \nabla f(x_ 0) = [ 2, -5] \),\( B_ 0 = I \), 子问题目标:\( m_ 0(d) = 2.25 + [ 2, -5 ] d + \frac{1}{2} d^T I d \)。 约束线性化后: \( g_ 1: 4 + [ 1, -2 ]d \geq 0 \) \( g_ 2: 4 + [ -1, -2 ]d \geq 0 \) \( g_ 3: 0 + [ -1, 2 ]d \geq 0 \) 解此QP得 \( d_ 0 \approx [ -0.3, 0.2 ] \)。 接受性检验与信赖域更新 计算实际下降量 \( \text{ared} = f(x_ k) - f(x_ k + d_ k) \), 预测下降量 \( \text{pred} = m_ k(0) - m_ k(d_ k) \)。 比率 \( r_ k = \frac{\text{ared}}{\text{pred}} \): 若 \( r_ k > 0.75 \),扩大信赖域 \( \Delta_ {k+1} = 2\Delta_ k \); 若 \( r_ k < 0.25 \),缩小信赖域 \( \Delta_ {k+1} = 0.5\Delta_ k \); 否则保持 \( \Delta_ {k+1} = \Delta_ k \)。 若 \( r_ k > 0.1 \),接受新点 \( x_ {k+1} = x_ k + d_ k \);否则拒绝并缩小信赖域重解子问题。 代理模型更新 若 \( \|x_ {k+1} - x_ k\| > \epsilon \),用新点信息更新BFGS矩阵 \( B_ k \): \( s = x_ {k+1} - x_ k \),\( y = \nabla f(x_ {k+1}) - \nabla f(x_ k) \), \( B_ {k+1} = B_ k - \frac{B_ k s s^T B_ k}{s^T B_ k s} + \frac{y y^T}{s^T y} \)。 迭代至收敛 重复步骤2-5,直到 \( \|d_ k\| < 10^{-6} \) 或梯度满足KKT条件。 最终解趋近于 \( x^* = [ 1.4, 1.7] \),对应 \( f^* \approx 0.8 \),约束均活跃(\( g_ 1 = g_ 2 = 0 \))。 关键点 代理模型降低函数计算成本,尤其适用于高维或计算昂贵的函数。 信赖域避免步长过大导致发散,平衡全局收敛与局部效率。 序列二次规划保证超线性收敛,结合代理模型后适用于实际工程优化。