非线性规划中的序列二次规划-代理模型-信赖域混合算法基础题
字数 4189 2025-11-07 12:33:00

非线性规划中的序列二次规划-代理模型-信赖域混合算法基础题

题目描述

考虑以下非线性规划问题:
最小化 \(f(x) = (x_1 - 2)^4 + (x_1 - 2x_2)^2\)
满足约束:
\(g_1(x) = x_1^2 - x_2 \leq 0\)
\(g_2(x) = x_1^2 + x_2^2 - 1 \leq 0\)
初始点 \(x^{(0)} = (0.5, 0.5)\),信赖域半径初始值 \(\Delta_0 = 0.5\)

本题要求使用序列二次规划-代理模型-信赖域混合算法求解。该算法的核心思想是:在每次迭代中,基于当前点构造原问题的近似二次模型(代理模型)作为子问题,在信赖域约束下求解该子问题,根据实际下降量与预测下降量的比率来调整信赖域半径和迭代点。

解题过程

步骤1:算法框架理解
序列二次规划-代理模型-信赖域混合算法结合了SQP(通过二次模型近似目标函数和线性化约束)、代理模型(简化约束处理)和信赖域(控制步长可靠性)三大组件。基本迭代格式为:

  1. 在当前点 \(x^{(k)}\) 构造近似二次规划子问题
  2. 在信赖域 \(\|d\| \leq \Delta_k\) 内求解子问题得试探步 \(d^{(k)}\)
  3. 计算实际下降量 \(\text{ared}\) 与预测下降量 \(\text{pred}\)
  4. 根据比率 \(\rho_k = \text{ared} / \text{pred}\) 决定是否接受试探步并更新信赖域半径

步骤2:第一次迭代(k=0)
初始点 \(x^{(0)} = (0.5, 0.5)\),初始信赖域半径 \(\Delta_0 = 0.5\)

  • 计算梯度和Hessian
    目标函数梯度 \(\nabla f(x) = [4(x_1-2)^3 + 2(x_1-2x_2), -4(x_1-2x_2)]\),在 \(x^{(0)}\) 处:
    \(\nabla f(x^{(0)}) = [4(0.5-2)^3 + 2(0.5-1), -4(0.5-1)] = [4(-1.5)^3 + 2(-0.5), -4(-0.5)] = [-13.5 -1, 2] = [-14.5, 2]\)
    为简化计算,采用单位矩阵作为Hessian近似(最速下降方向):\(B_0 = I\)

  • 约束线性化
    \(g_1(x) \approx g_1(x^{(0)}) + \nabla g_1(x^{(0)})^T d = (0.25-0.5) + [2x_1, -1]^T d = -0.25 + [1, -1]^T d\)
    \(g_2(x) \approx g_2(x^{(0)}) + \nabla g_2(x^{(0)})^T d = (0.25+0.25-1) + [2x_1, 2x_2]^T d = -0.5 + [1, 1]^T d\)

  • 构造子问题
    最小化 \(m_k(d) = f(x^{(0)}) + \nabla f(x^{(0)})^T d + \frac{1}{2} d^T B_0 d\)
    代入数值:\(f(x^{(0)}) = (0.5-2)^4 + (0.5-1)^2 = (-1.5)^4 + (-0.5)^2 = 5.0625 + 0.25 = 5.3125\)
    \(m_k(d) = 5.3125 + [-14.5, 2]^T d + \frac{1}{2} d^T I d\)
    约束:\(-0.25 + d_1 - d_2 \leq 0\)\(-0.5 + d_1 + d_2 \leq 0\)\(\|d\| \leq 0.5\)

  • 求解子问题
    由于信赖域较小,约束可能不起作用。求解无约束最速下降方向 \(d = -\nabla f(x^{(0)}) = [14.5, -2]\),范数为 \(\sqrt{14.5^2 + (-2)^2} \approx 14.64 > 0.5\),需缩放至信赖域内:
    \(d^{(0)} = -0.5 \times \frac{\nabla f(x^{(0)})}{\|\nabla f(x^{(0)})\|} = -0.5 \times [-14.5, 2]/14.64 \approx [0.495, -0.068]\)

  • 计算实际比率
    新点 \(x^{(1)} = x^{(0)} + d^{(0)} \approx (0.995, 0.432)\)
    实际下降 \(\text{ared} = f(x^{(0)}) - f(x^{(1)})\)
    \(f(x^{(1)}) = (0.995-2)^4 + (0.995-2\times0.432)^2 \approx (-1.005)^4 + (0.131)^2 \approx 1.020 + 0.017 = 1.037\)
    \(\text{ared} = 5.3125 - 1.037 = 4.2755\)
    预测下降 \(\text{pred} = -(\nabla f(x^{(0)})^T d^{(0)} + \frac{1}{2} (d^{(0)})^T d^{(0)})\)
    \(\nabla f(x^{(0)})^T d^{(0)} \approx [-14.5, 2]^T [0.495, -0.068] = -7.1775 - 0.136 = -7.3135\)
    \(\text{pred} = -(-7.3135) + 0.5 \times (0.5^2) = 7.3135 + 0.125 = 7.4385\)(注:标准预测下降应为 \(-[\nabla f^T d + \frac{1}{2} d^T B d]\),这里B=I)
    \(\rho_0 = 4.2755 / 7.4385 \approx 0.575\)

  • 更新信赖域
    比率 \(\rho_0 \approx 0.575\) 属于中等接受范围(通常 \(\rho > 0.25\) 可接受),接受 \(x^{(1)}\)。由于 \(\rho < 0.75\),信赖域半径保持 \(\Delta_1 = \Delta_0 = 0.5\)

步骤3:第二次迭代(k=1)
当前点 \(x^{(1)} \approx (0.995, 0.432)\)

  • 计算梯度
    \(\nabla f(x^{(1)}) = [4(0.995-2)^3 + 2(0.995-0.864), -4(0.995-0.864)] \approx [4(-1.005)^3 + 2(0.131), -4(0.131)] \approx [4(-1.015) + 0.262, -0.524] = [-4.06 + 0.262, -0.524] = [-3.798, -0.524]\)

  • 构造子问题
    采用BFGS更新Hessian近似(略去复杂更新过程,假设 \(B_1\) 仍接近I),子问题:
    最小化 \(m_1(d) = f(x^{(1)}) + [-3.798, -0.524]^T d + \frac{1}{2} d^T d\)
    约束线性化:\(g_1 \approx (0.990-0.432) + [1.99, -1]^T d = 0.558 + [1.99, -1]^T d \leq 0\)
    \(g_2 \approx (0.990+0.187-1) + [1.99, 0.864]^T d = 0.177 + [1.99, 0.864]^T d \leq 0\)
    信赖域 \(\|d\| \leq 0.5\)

  • 求解子问题
    无约束最速下降方向 \(d = -[-3.798, -0.524] = [3.798, 0.524]\),范数 \(\approx 3.834 > 0.5\),缩放得 \(d^{(1)} \approx [0.495, 0.068]\)

  • 计算比率
    \(x^{(2)} = x^{(1)} + d^{(1)} \approx (1.49, 0.5)\)
    \(f(x^{(2)}) = (1.49-2)^4 + (1.49-1)^2 = (-0.51)^4 + (0.49)^2 \approx 0.068 + 0.240 = 0.308\)
    \(\text{ared} = 1.037 - 0.308 = 0.729\)
    \(\text{pred} \approx -([-3.798, -0.524]^T [0.495, 0.068]) + 0.5 \times 0.25 \approx -(-1.879 - 0.036) + 0.125 = 1.915 + 0.125 = 2.04\)
    \(\rho_1 = 0.729 / 2.04 \approx 0.357\)

  • 更新
    接受 \(x^{(2)}\)\(\rho_1 > 0.25\)\(< 0.75\),保持 \(\Delta_2 = 0.5\)

步骤4:收敛判断
经过数次迭代后,点列将趋近约束边界 \(g_2(x) = 0\)(单位圆)附近的最优解。实际应用中,当梯度范数小于阈值(如 \(10^{-6}\))或迭代点变化很小时停止。本例经过有限步即可接近最优解 \(x^* \approx (1, 0.5)\) 附近(满足 \(g_2(x)=0\) 且目标函数较小)。

关键点总结

  • 代理模型用二次函数近似目标,线性函数近似约束
  • 信赖域保证每次迭代的可靠性
  • 比率 \(\rho_k\) 决定步长接受与半径调整
  • 混合策略平衡收敛速度与稳定性
非线性规划中的序列二次规划-代理模型-信赖域混合算法基础题 题目描述 考虑以下非线性规划问题: 最小化 \( f(x) = (x_ 1 - 2)^4 + (x_ 1 - 2x_ 2)^2 \) 满足约束: \( g_ 1(x) = x_ 1^2 - x_ 2 \leq 0 \) \( g_ 2(x) = x_ 1^2 + x_ 2^2 - 1 \leq 0 \) 初始点 \( x^{(0)} = (0.5, 0.5) \),信赖域半径初始值 \( \Delta_ 0 = 0.5 \)。 本题要求使用序列二次规划-代理模型-信赖域混合算法求解。该算法的核心思想是:在每次迭代中,基于当前点构造原问题的近似二次模型(代理模型)作为子问题,在信赖域约束下求解该子问题,根据实际下降量与预测下降量的比率来调整信赖域半径和迭代点。 解题过程 步骤1:算法框架理解 序列二次规划-代理模型-信赖域混合算法结合了SQP(通过二次模型近似目标函数和线性化约束)、代理模型(简化约束处理)和信赖域(控制步长可靠性)三大组件。基本迭代格式为: 在当前点 \( x^{(k)} \) 构造近似二次规划子问题 在信赖域 \( \|d\| \leq \Delta_ k \) 内求解子问题得试探步 \( d^{(k)} \) 计算实际下降量 \( \text{ared} \) 与预测下降量 \( \text{pred} \) 根据比率 \( \rho_ k = \text{ared} / \text{pred} \) 决定是否接受试探步并更新信赖域半径 步骤2:第一次迭代(k=0) 初始点 \( x^{(0)} = (0.5, 0.5) \),初始信赖域半径 \( \Delta_ 0 = 0.5 \)。 计算梯度和Hessian : 目标函数梯度 \( \nabla f(x) = [ 4(x_ 1-2)^3 + 2(x_ 1-2x_ 2), -4(x_ 1-2x_ 2) ] \),在 \( x^{(0)} \) 处: \( \nabla f(x^{(0)}) = [ 4(0.5-2)^3 + 2(0.5-1), -4(0.5-1)] = [ 4(-1.5)^3 + 2(-0.5), -4(-0.5)] = [ -13.5 -1, 2] = [ -14.5, 2 ] \) 为简化计算,采用单位矩阵作为Hessian近似(最速下降方向):\( B_ 0 = I \) 约束线性化 : \( g_ 1(x) \approx g_ 1(x^{(0)}) + \nabla g_ 1(x^{(0)})^T d = (0.25-0.5) + [ 2x_ 1, -1]^T d = -0.25 + [ 1, -1 ]^T d \) \( g_ 2(x) \approx g_ 2(x^{(0)}) + \nabla g_ 2(x^{(0)})^T d = (0.25+0.25-1) + [ 2x_ 1, 2x_ 2]^T d = -0.5 + [ 1, 1 ]^T d \) 构造子问题 : 最小化 \( m_ k(d) = f(x^{(0)}) + \nabla f(x^{(0)})^T d + \frac{1}{2} d^T B_ 0 d \) 代入数值:\( f(x^{(0)}) = (0.5-2)^4 + (0.5-1)^2 = (-1.5)^4 + (-0.5)^2 = 5.0625 + 0.25 = 5.3125 \) \( m_ k(d) = 5.3125 + [ -14.5, 2 ]^T d + \frac{1}{2} d^T I d \) 约束:\( -0.25 + d_ 1 - d_ 2 \leq 0 \),\( -0.5 + d_ 1 + d_ 2 \leq 0 \),\( \|d\| \leq 0.5 \) 求解子问题 : 由于信赖域较小,约束可能不起作用。求解无约束最速下降方向 \( d = -\nabla f(x^{(0)}) = [ 14.5, -2 ] \),范数为 \( \sqrt{14.5^2 + (-2)^2} \approx 14.64 > 0.5 \),需缩放至信赖域内: \( d^{(0)} = -0.5 \times \frac{\nabla f(x^{(0)})}{\|\nabla f(x^{(0)})\|} = -0.5 \times [ -14.5, 2]/14.64 \approx [ 0.495, -0.068 ] \) 计算实际比率 : 新点 \( x^{(1)} = x^{(0)} + d^{(0)} \approx (0.995, 0.432) \) 实际下降 \( \text{ared} = f(x^{(0)}) - f(x^{(1)}) \) \( f(x^{(1)}) = (0.995-2)^4 + (0.995-2\times0.432)^2 \approx (-1.005)^4 + (0.131)^2 \approx 1.020 + 0.017 = 1.037 \) \( \text{ared} = 5.3125 - 1.037 = 4.2755 \) 预测下降 \( \text{pred} = -(\nabla f(x^{(0)})^T d^{(0)} + \frac{1}{2} (d^{(0)})^T d^{(0)}) \) \( \nabla f(x^{(0)})^T d^{(0)} \approx [ -14.5, 2]^T [ 0.495, -0.068 ] = -7.1775 - 0.136 = -7.3135 \) \( \text{pred} = -(-7.3135) + 0.5 \times (0.5^2) = 7.3135 + 0.125 = 7.4385 \)(注:标准预测下降应为 \( -[ \nabla f^T d + \frac{1}{2} d^T B d ] \),这里B=I) \( \rho_ 0 = 4.2755 / 7.4385 \approx 0.575 \) 更新信赖域 : 比率 \( \rho_ 0 \approx 0.575 \) 属于中等接受范围(通常 \( \rho > 0.25 \) 可接受),接受 \( x^{(1)} \)。由于 \( \rho < 0.75 \),信赖域半径保持 \( \Delta_ 1 = \Delta_ 0 = 0.5 \) 步骤3:第二次迭代(k=1) 当前点 \( x^{(1)} \approx (0.995, 0.432) \) 计算梯度 : \( \nabla f(x^{(1)}) = [ 4(0.995-2)^3 + 2(0.995-0.864), -4(0.995-0.864)] \approx [ 4(-1.005)^3 + 2(0.131), -4(0.131)] \approx [ 4(-1.015) + 0.262, -0.524] = [ -4.06 + 0.262, -0.524] = [ -3.798, -0.524 ] \) 构造子问题 : 采用BFGS更新Hessian近似(略去复杂更新过程,假设 \( B_ 1 \) 仍接近I),子问题: 最小化 \( m_ 1(d) = f(x^{(1)}) + [ -3.798, -0.524 ]^T d + \frac{1}{2} d^T d \) 约束线性化:\( g_ 1 \approx (0.990-0.432) + [ 1.99, -1]^T d = 0.558 + [ 1.99, -1 ]^T d \leq 0 \) \( g_ 2 \approx (0.990+0.187-1) + [ 1.99, 0.864]^T d = 0.177 + [ 1.99, 0.864 ]^T d \leq 0 \) 信赖域 \( \|d\| \leq 0.5 \) 求解子问题 : 无约束最速下降方向 \( d = -[ -3.798, -0.524] = [ 3.798, 0.524] \),范数 \( \approx 3.834 > 0.5 \),缩放得 \( d^{(1)} \approx [ 0.495, 0.068 ] \) 计算比率 : \( x^{(2)} = x^{(1)} + d^{(1)} \approx (1.49, 0.5) \) \( f(x^{(2)}) = (1.49-2)^4 + (1.49-1)^2 = (-0.51)^4 + (0.49)^2 \approx 0.068 + 0.240 = 0.308 \) \( \text{ared} = 1.037 - 0.308 = 0.729 \) \( \text{pred} \approx -([ -3.798, -0.524]^T [ 0.495, 0.068 ]) + 0.5 \times 0.25 \approx -(-1.879 - 0.036) + 0.125 = 1.915 + 0.125 = 2.04 \) \( \rho_ 1 = 0.729 / 2.04 \approx 0.357 \) 更新 : 接受 \( x^{(2)} \),\( \rho_ 1 > 0.25 \) 但 \( < 0.75 \),保持 \( \Delta_ 2 = 0.5 \) 步骤4:收敛判断 经过数次迭代后,点列将趋近约束边界 \( g_ 2(x) = 0 \)(单位圆)附近的最优解。实际应用中,当梯度范数小于阈值(如 \( 10^{-6} \))或迭代点变化很小时停止。本例经过有限步即可接近最优解 \( x^* \approx (1, 0.5) \) 附近(满足 \( g_ 2(x)=0 \) 且目标函数较小)。 关键点总结 代理模型用二次函数近似目标,线性函数近似约束 信赖域保证每次迭代的可靠性 比率 \( \rho_ k \) 决定步长接受与半径调整 混合策略平衡收敛速度与稳定性