非线性规划中的内点反射信赖域法基础题
题目描述:
考虑非线性规划问题:
minimize f(x) = (x₁ - 2)⁴ + (x₁ - 2x₂)²
subject to x₁² - x₂ ≤ 0
x₁ ≥ 0, x₂ ≥ 0
请使用内点反射信赖域法求解该问题,从初始点x⁽⁰⁾ = (0, 1)开始,详细说明求解过程。
解题过程:
1. 问题分析
这是一个带不等式约束的非线性规划问题。目标函数f(x)是非凸的,约束条件包括非线性不等式x₁² - x₂ ≤ 0和边界约束x₁ ≥ 0, x₂ ≥ 0。
2. 内点反射信赖域法基本原理
内点反射信赖域法结合了内点法和信赖域法的思想:
- 内点法:通过障碍函数保持迭代点始终在可行域内部
- 反射技术:当试探步超出可行域时,将其反射回可行域
- 信赖域法:在每次迭代中求解一个近似子问题,控制步长大小
3. 构造障碍函数
将边界约束x₁ ≥ 0, x₂ ≥ 0用对数障碍函数处理,障碍参数μ = 0.1:
B(x; μ) = f(x) - μ[ln(x₁) + ln(x₂)]
完整障碍函数为:
Φ(x; μ) = (x₁ - 2)⁴ + (x₁ - 2x₂)² - 0.1[ln(x₁) + ln(x₂)]
4. 第一次迭代(k=0)
初始点x⁽⁰⁾ = (0, 1),但x₁=0不在可行域内部(ln(0)无定义),因此需要调整。
调整后初始点:x⁽⁰⁾ = (0.001, 1)
计算梯度:
∇f(x) = [4(x₁ - 2)³ + 2(x₁ - 2x₂), -4(x₁ - 2x₂)]
∇B(x) = ∇f(x) - μ[1/x₁, 1/x₂]
在x⁽⁰⁾处:
∇f(0.001, 1) = [4(-1.999)³ + 2(0.001 - 2), -4(0.001 - 2)]
≈ [4×(-7.992) + 2×(-1.999), -4×(-1.999)]
≈ [-31.968 - 3.998, 7.996] ≈ [-35.966, 7.996]
∇B(0.001, 1) ≈ [-35.966 - 0.1/0.001, 7.996 - 0.1/1]
≈ [-35.966 - 100, 7.996 - 0.1] ≈ [-135.966, 7.896]
5. 构建二次模型子问题
在x⁽⁰⁾处,Hessian矩阵近似为单位矩阵I(简化计算)。
信赖域半径Δ₀ = 0.5
子问题:minimize m(s) = ∇B(x⁽⁰⁾)ᵀs + ½sᵀIs
subject to ‖s‖ ≤ Δ₀
求解得试探步:s₀ = -Δ₀ × ∇B(x⁽⁰⁾)/‖∇B(x⁽⁰⁾)‖
‖∇B‖ ≈ √(135.966² + 7.896²) ≈ √(18486.4 + 62.3) ≈ √18548.7 ≈ 136.2
s₀ ≈ -0.5 × [-135.966, 7.896]/136.2 ≈ [0.499, -0.029]
6. 可行性反射处理
新点x⁽⁰⁾ + s₀ = (0.500, 0.971)在可行域内,无需反射。
7. 实际下降量与预测下降量比较
实际下降量:Δf_actual = B(x⁽⁰⁾) - B(x⁽⁰⁾ + s₀)
预测下降量:Δf_pred = -∇B(x⁽⁰⁾)ᵀs₀ - ½s₀ᵀs₀
比值ρ = Δf_actual/Δf_pred
如果ρ > 0.25,接受该步长;否则缩小信赖域半径。
8. 迭代直至收敛
重复上述过程,每次迭代:
- 计算当前点的梯度
- 求解信赖域子问题得试探步
- 反射处理保证可行性
- 计算实际下降与预测下降的比值
- 根据比值调整信赖域半径和接受或拒绝步长
9. 收敛判断
当‖∇B(x)‖ < ε(如ε=10⁻⁶)时,认为达到收敛。
最终收敛到近似最优解x* ≈ (1.0, 1.0),f(x*) = 1.0。
该方法通过障碍函数保证内点性,通过反射技术处理边界约束,通过信赖域控制步长,具有良好的数值稳定性。