非线性规划中的信赖域反射正割法进阶题
我将为您讲解非线性规划中的信赖域反射正割法。这个方法结合了信赖域策略的全局收敛性和正割法的超线性收敛速度,特别适合求解大规模非线性优化问题。
问题描述
考虑非线性规划问题:
min f(x) = (x₁ - 2)⁴ + (x₁ - 2x₂)²
s.t. x₁² + x₂² ≤ 1
x₁ ≥ 0, x₂ ≥ 0
其中初始点x⁰ = [0, 0]ᵀ,初始信赖域半径Δ₀ = 0.5,收敛阈值ε = 10⁻⁶。
解题过程
1. 算法框架理解
信赖域反射正割法的核心思想是:
- 用正割法近似Hessian矩阵,避免计算二阶导数
- 利用信赖域策略控制步长,保证全局收敛
- 通过反射技巧处理边界约束,保持可行性
2. 初始化设置
在初始点x⁰ = [0,0]ᵀ处:
- 计算梯度:∇f(x⁰) = [4(x₁-2)³ + 2(x₁-2x₂), -4(x₁-2x₂)]ᵀ = [-20, 0]ᵀ
- 初始Hessian近似B₀ = I(单位矩阵)
- 当前信赖域半径Δ = 0.5
3. 正割法更新Hessian近似
对于k ≥ 1迭代,使用BFGS公式更新:
Bₖ₊₁ = Bₖ + (yₖyₖᵀ)/(yₖᵀsₖ) - (BₖsₖsₖᵀBₖ)/(sₖᵀBₖsₖ)
其中sₖ = xₖ - xₖ₋₁, yₖ = ∇f(xₖ) - ∇f(xₖ₋₁)
第一次迭代时,由于没有历史信息,使用B₀ = I。
4. 信赖域子问题求解
在第k次迭代,求解子问题:
min mₖ(p) = f(xₖ) + ∇f(xₖ)ᵀp + ½pᵀBₖp
s.t. ‖p‖ ≤ Δₖ, xₖ + p ∈ Ω
这里Ω是可行域。使用狗腿法或Steihaug共轭梯度法求解。
5. 反射技巧处理边界约束
当试探点超出边界时,采用反射:
- 如果x₁ < 0,将p₁反射为-p₁
- 如果x₂ < 0,将p₂反射为-p₂
- 对于圆约束x₁² + x₂² ≤ 1,沿法向反射
6. 接受准则和信赖域调整
计算实际下降量:Δf = f(xₖ) - f(xₖ + pₖ)
预测下降量:Δm = mₖ(0) - mₖ(pₖ)
比值ρₖ = Δf/Δm
调整策略:
- 如果ρₖ > 0.75,接受步长,Δₖ₊₁ = min(2Δₖ, Δ_max)
- 如果0.1 ≤ ρₖ ≤ 0.75,接受步长,Δₖ₊₁ = Δₖ
- 如果ρₖ < 0.1,拒绝步长,Δₖ₊₁ = 0.5Δₖ
7. 收敛性判断
检查以下条件:
‖∇f(xₖ)‖ ≤ ε 或 Δₖ ≤ ε 或 |f(xₖ) - f(xₖ₋₁)| ≤ ε(1 + |f(xₖ)|)
8. 具体迭代示例
第一次迭代(k=0):
- 当前点:x⁰ = [0,0]ᵀ, f(x⁰) = 16
- 梯度:∇f(x⁰) = [-20, 0]ᵀ
- 求解子问题得p⁰ = [0.5, 0]ᵀ(沿负梯度方向,被信赖域截断)
- 新点x¹ = [0.5, 0]ᵀ, f(x¹) ≈ 5.06
- ρ₀ = (16-5.06)/(20×0.5 - ½×0.5²) ≈ 0.92 > 0.75
- 接受步长,Δ₁ = 1.0
9. 算法优势
- 超线性收敛:正割法逼近Hessian
- 全局收敛:信赖域保证稳定性
- 内存效率:仅存储向量,适合大规模问题
- 边界处理:反射技巧保持可行性
该方法通过结合正割法的快速局部收敛和信赖域的全局收敛性,为约束非线性优化提供了高效的解决方案。