非线性规划中的自适应信赖域反射-序列二次规划混合算法进阶题
我将为您讲解一个非线性规划中的自适应信赖域反射-序列二次规划混合算法进阶题目。
题目描述:
考虑约束非线性规划问题:
最小化 f(x) = (x₁ - 2)⁴ + (x₁ - 2x₂)²
约束条件:
g₁(x) = x₁² - x₂ ≤ 0
g₂(x) = -x₁ ≤ 0
g₃(x) = -x₂ ≤ 0
初始点 x⁰ = [0, 1]ᵀ
这是一个具有非线性目标函数和非线性不等式约束的优化问题,需要结合自适应信赖域反射和序列二次规划的优势来求解。
解题过程:
步骤1:算法框架理解
自适应信赖域反射-序列二次规划混合算法的核心思想是:
- 使用序列二次规划(SQP)构建局部二次模型
- 利用信赖域反射(TR)确保全局收敛性
- 自适应调整信赖域半径和反射参数
步骤2:初始化参数
设初始点 x⁰ = [0, 1]ᵀ
初始信赖域半径 Δ₀ = 0.5
初始拉格朗日乘子估计 λ⁰ = [0, 0, 0]ᵀ
收敛容忍度 ε = 10⁻⁶
参数 η = 0.1(接受阈值),γ₁ = 0.5,γ₂ = 2.0
步骤3:构建拉格朗日函数
拉格朗日函数为:
L(x, λ) = f(x) + λ₁g₁(x) + λ₂g₂(x) + λ₃g₃(x)
= (x₁ - 2)⁴ + (x₁ - 2x₂)² + λ₁(x₁² - x₂) - λ₂x₁ - λ₃x₂
步骤4:计算梯度和Hessian矩阵
在点 x⁰ = [0, 1]ᵀ 处:
梯度计算:
∇f(x) = [4(x₁ - 2)³ + 2(x₁ - 2x₂), -4(x₁ - 2x₂)]ᵀ
∇f(x⁰) = [4(0-2)³ + 2(0-2), -4(0-2)] = [-32 + (-4), 8] = [-36, 8]ᵀ
约束梯度:
∇g₁(x) = [2x₁, -1]ᵀ = [0, -1]ᵀ
∇g₂(x) = [-1, 0]ᵀ
∇g₃(x) = [0, -1]ᵀ
拉格朗日函数梯度:
∇ₓL(x⁰, λ⁰) = ∇f(x⁰) + λ₁⁰∇g₁(x⁰) + λ₂⁰∇g₂(x⁰) + λ₃⁰∇g₃(x⁰)
= [-36, 8]ᵀ
步骤5:构建二次规划子问题
在当前迭代点 xᵏ,构建QP子问题:
最小化 q(d) = ½dᵀBᵏd + ∇f(xᵏ)ᵀd
约束条件:
∇gᵢ(xᵏ)ᵀd + gᵢ(xᵏ) ≤ 0, i = 1,2,3
‖d‖ ≤ Δᵏ
其中 Bᵏ 是拉格朗日函数的Hessian矩阵近似,初始可用单位矩阵。
步骤6:求解QP子问题
使用积极集法求解QP:
在 x⁰ 处,约束值:
g₁(x⁰) = 0² - 1 = -1 ≤ 0
g₂(x⁰) = -0 = 0 ≤ 0
g₃(x⁰) = -1 = -1 ≤ 0
只有 g₂ 是积极约束,构建等式约束:
∇g₂(x⁰)ᵀd + g₂(x⁰) = [-1, 0]d + 0 = -d₁ = 0
⇒ d₁ = 0
在信赖域约束下求解:
最小化 q(d) = ½[d₁, d₂]I[d₁, d₂]ᵀ + [-36, 8][d₁, d₂]ᵀ
= ½(d₁² + d₂²) - 36d₁ + 8d₂
约束 d₁ = 0, d₁² + d₂² ≤ 0.5²
解得:d⁰ = [0, -0.5]ᵀ(沿负梯度方向投影到信赖域内)
步骤7:计算实际下降与预测下降比
实际下降:Aredᵏ = f(xᵏ) - f(xᵏ + dᵏ)
预测下降:Predᵏ = q(0) - q(dᵏ)
在 x⁰ 处:
f(x⁰) = (0-2)⁴ + (0-2)² = 16 + 4 = 20
f(x⁰ + d⁰) = f([0, 0.5]) = (0-2)⁴ + (0-1)² = 16 + 1 = 17
Ared⁰ = 20 - 17 = 3
Pred⁰ = q(0) - q(d⁰) = 0 - [½(0 + 0.25) - 0 + 8×(-0.5)] = -[0.125 - 4] = 3.875
比值 ρ⁰ = Ared⁰/Pred⁰ = 3/3.875 ≈ 0.774
步骤8:自适应调整信赖域半径
由于 ρ⁰ > η = 0.1,接受步长:x¹ = x⁰ + d⁰ = [0, 0.5]ᵀ
由于 ρ⁰ ∈ [0.1, 0.9),保持信赖域半径:Δ₁ = Δ₀ = 0.5
步骤9:更新Hessian近似
使用BFGS公式更新Bᵏ:
s = x¹ - x⁰ = [0, -0.5]ᵀ
y = ∇ₓL(x¹, λ¹) - ∇ₓL(x⁰, λ⁰)
需要先计算 λ¹,然后计算 y,最后用BFGS公式更新B¹。
步骤10:迭代直至收敛
重复步骤4-9,每次迭代:
- 构建并求解QP子问题
- 计算实际下降与预测下降比
- 根据比值自适应调整信赖域半径
- 更新Hessian矩阵近似
- 检查收敛条件:‖∇ₓL(xᵏ, λᵏ)‖ ≤ ε
经过多次迭代,算法会收敛到最优解 x* ≈ [1, 0.5]ᵀ,f(x*) ≈ 1.0。
这个混合算法结合了SQP的快速局部收敛和信赖域反射的全局收敛性,通过自适应机制平衡了局部近似精度和全局收敛保证。