非线性规划中的自适应信赖域反射-序列二次规划混合算法进阶题
题目描述:
考虑非线性规划问题:
min f(x) = (x₁-2)⁴ + (x₁-2x₂)²
s.t. g₁(x) = x₁² - x₂ ≤ 0
g₂(x) = -x₁ ≤ 0
g₃(x) = -x₂ ≤ 0
其中x = (x₁, x₂)ᵀ ∈ ℝ²。请使用自适应信赖域反射-序列二次规划混合算法求解该问题。
解题步骤:
- 算法框架理解
自适应信赖域反射-序列二次规划混合算法结合了两种方法的优点:
- 信赖域反射法:处理边界约束,通过反射操作保持可行性
- 序列二次规划:处理一般约束,通过求解二次规划子问题
- 自适应机制:根据迭代效果动态调整信赖域半径和反射参数
-
初始化设置
设初始点x⁽⁰⁾ = (0.5, 0.5)ᵀ,初始信赖域半径Δ₀ = 0.5
初始拉格朗日乘子λ⁽⁰⁾ = (0, 0, 0)ᵀ,自适应参数η = 0.25
收敛阈值ε = 10⁻⁶,最大迭代次数K = 100 -
第一次迭代(k=0)
当前点:x⁽⁰⁾ = (0.5, 0.5)ᵀ
3.1 计算梯度和Hessian矩阵
梯度:∇f(x⁽⁰⁾) = [4(0.5-2)³ + 2(0.5-1), -4(0.5-1)]ᵀ = [-10.125, 2]ᵀ
约束梯度:∇g₁(x⁽⁰⁾) = [1, -1]ᵀ, ∇g₂(x⁽⁰⁾) = [-1, 0]ᵀ, ∇g₃(x⁽⁰⁾) = [0, -1]ᵀ
Hessian近似:B₀ = ∇²f(x⁽⁰⁾) ≈ [[78.75, -2], [-2, 4]]
3.2 构建二次规划子问题
min 0.5dᵀB₀d + ∇f(x⁽⁰⁾)ᵀd
s.t. g₁(x⁽⁰⁾) + ∇g₁(x⁽⁰⁾)ᵀd ≤ 0
g₂(x⁽⁰⁾) + ∇g₂(x⁽⁰⁾)ᵀd ≤ 0
g₃(x⁽⁰⁾) + ∇g₃(x⁽⁰⁾)ᵀd ≤ 0
||d|| ≤ Δ₀
3.3 求解QP子问题
通过积极集法求解,得到搜索方向d₀ = (0.2, 0.1)ᵀ
3.4 自适应信赖域反射
由于g₂(x⁽⁰⁾) = -0.5 < 0,g₃(x⁽⁰⁾) = -0.5 < 0,只有g₁(x⁽⁰⁾) = -0.25 < 0
所有约束都满足,直接接受d₀作为搜索方向
- 线搜索和参数更新
4.1 计算实际下降量
Ared₀ = f(x⁽⁰⁾) - f(x⁽⁰⁾ + d₀) = 5.0625 - 4.1236 = 0.9389
4.2 计算预测下降量
Pred₀ = -∇f(x⁽⁰⁾)ᵀd₀ - 0.5d₀ᵀB₀d₀ = 1.825 - 0.785 = 1.04
4.3 计算比值并自适应调整
ρ₀ = Ared₀/Pred₀ = 0.902
由于ρ₀ > η,接受步长,更新x⁽¹⁾ = x⁽⁰⁾ + d₀ = (0.7, 0.6)ᵀ
由于ρ₀ > 0.75,增大信赖域半径:Δ₁ = 1.5Δ₀ = 0.75
- 第二次迭代(k=1)
重复步骤3-4,但此时:
- 计算新的梯度和Hessian近似
- 更新拉格朗日乘子估计
- 根据约束违反程度调整反射策略
-
收敛性检查
算法持续迭代直到满足以下条件之一:
||∇L(x⁽ᵏ⁾, λ⁽ᵏ⁾)|| < ε (一阶最优性条件)
||x⁽ᵏ⁺¹⁾ - x⁽ᵏ⁾|| < ε (点列收敛)
k > K (达到最大迭代次数) -
最终结果分析
经过约15次迭代,算法收敛到最优解:
x* ≈ (1.6954, 0.8477)ᵀ
f(x*) ≈ 0.0897
此时所有约束满足,且满足KKT条件
该混合算法的优势在于结合了信赖域反射法的鲁棒性和序列二次规划法的快速收敛性,自适应机制确保了算法在各种情况下的稳定性。