非线性规划中的序列线性化信赖域反射法基础题
题目描述
考虑非线性规划问题:
minimize f(x) = (x₁ - 2)⁴ + (x₁ - 2x₂)²
subject to x₁² + x₂² - 1 ≤ 0
初始点x⁰ = [0.5, 0.5]ᵀ,信赖域半径Δ₀ = 0.5。请用序列线性化信赖域反射法进行第一次迭代计算。
解题过程
1. 方法原理介绍
序列线性化信赖域反射法结合了三种技术:
- 序列线性化:在每步将非线性问题线性化
- 信赖域法:控制线性化近似的有效性范围
- 反射技巧:当试探点违反约束时将其反射回可行域
2. 第一次迭代计算步骤
步骤1:计算当前点函数值和梯度
在当前点x⁰ = [0.5, 0.5]ᵀ:
- 目标函数f(x⁰) = (0.5-2)⁴ + (0.5-2×0.5)² = (-1.5)⁴ + (0.5-1)² = 5.0625 + 0.25 = 5.3125
- 目标函数梯度∇f(x) = [4(x₁-2)³ + 2(x₁-2x₂), -4(x₁-2x₂)]ᵀ
∇f(x⁰) = [4×(0.5-2)³ + 2×(0.5-1), -4×(0.5-1)] = [4×(-1.5)³ + 2×(-0.5), -4×(-0.5)]
= [4×(-3.375) - 1, 2] = [-13.5 - 1, 2] = [-14.5, 2]ᵀ
步骤3:约束函数线性化
- 约束函数c(x) = x₁² + x₂² - 1 ≤ 0
- 约束梯度∇c(x) = [2x₁, 2x₂]ᵀ
- 在x⁰处:c(x⁰) = 0.5² + 0.5² - 1 = 0.25 + 0.25 - 1 = -0.5
- ∇c(x⁰) = [2×0.5, 2×0.5] = [1, 1]ᵀ
步骤4:构建线性化子问题
在信赖域‖d‖ ≤ Δ₀ = 0.5内求解:
minimize ∇f(x⁰)ᵀd = -14.5d₁ + 2d₂
subject to c(x⁰) + ∇c(x⁰)ᵀd ≤ 0 → -0.5 + d₁ + d₂ ≤ 0
‖d‖₂ ≤ 0.5
步骤5:求解线性化子问题
这是一个线性目标函数、线性约束、球型信赖域的问题。通过分析求解:
- 目标函数希望d₁尽可能大,d₂尽可能小(因为系数分别为-14.5和+2)
- 约束简化为d₁ + d₂ ≤ 0.5
- 在单位圆内,最优解在边界上
通过拉格朗日法求解,得到试探步dₖ ≈ [0.3536, -0.3536]ᵀ(满足‖d‖₂ = 0.5)
步骤6:计算试探点并检查可行性
x_trial = x⁰ + dₖ = [0.5+0.3536, 0.5-0.3536] = [0.8536, 0.1464]
检查约束:c(x_trial) = 0.8536² + 0.1464² - 1 = 0.7286 + 0.0214 - 1 = -0.25 ≤ 0(可行)
步骤7:计算实际下降量与预测下降量
- 实际下降量:ared = f(x⁰) - f(x_trial) = 5.3125 - f([0.8536,0.1464])
f(x_trial) = (0.8536-2)⁴ + (0.8536-2×0.1464)² = (-1.1464)⁴ + (0.8536-0.2928)²
= 1.728 + (0.5608)² = 1.728 + 0.3145 = 2.0425
ared = 5.3125 - 2.0425 = 3.27 - 预测下降量:pred = -∇f(x⁰)ᵀdₖ = -(-14.5×0.3536 + 2×(-0.3536)) = -(-5.1272 - 0.7072) = 5.8344
步骤8:计算比值并更新信赖域半径
比值ρ = ared/pred = 3.27/5.8344 ≈ 0.56
由于0.25 < ρ < 0.75,接受该步长,保持信赖域半径Δ₀ = 0.5不变。
第一次迭代完成,新迭代点为x¹ = [0.8536, 0.1464]ᵀ。