非线性规划中的自适应信赖域-序列二次规划混合算法基础题
我将通过一个具体问题来讲解自适应信赖域-序列二次规划混合算法的原理和应用。考虑如下约束非线性规划问题:
最小化 f(x) = (x₁ - 2)² + (x₂ - 1)²
约束条件:
c₁(x) = x₁² - x₂ ≤ 0
c₂(x) = x₁ + x₂ - 2 ≤ 0
初始点:x⁰ = (0, 0)
问题分析
这是一个典型的带不等式约束的非线性规划问题。目标函数是二次函数,约束条件包含非线性约束c₁(x)和线性约束c₂(x)。我们需要在可行域内找到使目标函数最小的点。
算法原理
自适应信赖域-序列二次规划混合算法结合了两种方法的优点:
- 序列二次规划(SQP):通过求解一系列二次规划子问题来逼近原问题
- 自适应信赖域:动态调整信赖域半径,控制步长的可靠性
求解步骤
步骤1:初始化
设置初始点x⁰ = (0, 0),初始信赖域半径Δ₀ = 0.5,参数η = 0.1(接受阈值),γ₁ = 0.5(半径缩小因子),γ₂ = 2.0(半径扩大因子),收敛容差ε = 10⁻⁶
计算初始函数值:
f(x⁰) = (0-2)² + (0-1)² = 4 + 1 = 5
约束违反度:c₁(x⁰) = 0 - 0 = 0,c₂(x⁰) = 0 + 0 - 2 = -2
步骤2:构建拉格朗日函数
拉格朗日函数:L(x,λ) = f(x) + λ₁c₁(x) + λ₂c₂(x)
在x⁰处,梯度计算:
∇f(x) = [2(x₁-2), 2(x₂-1)],∇f(x⁰) = [-4, -2]
∇c₁(x) = [2x₁, -1],∇c₁(x⁰) = [0, -1]
∇c₂(x) = [1, 1],∇c₂(x⁰) = [1, 1]
步骤3:构建第一个二次规划子问题
在当前点x⁰,构建QP子问题:
最小化 q(d) = ∇f(x⁰)ᵀd + ½dᵀB₀d
约束条件:c₁(x⁰) + ∇c₁(x⁰)ᵀd ≤ 0
c₂(x⁰) + ∇c₂(x⁰)ᵀd ≤ 0
||d|| ≤ Δ₀
其中B₀是拉格朗日函数Hessian的近似,初始可用单位矩阵。
步骤4:求解QP子问题
代入数值:
最小化 q(d) = [-4, -2]·[d₁,d₂] + ½[d₁,d₂]·I·[d₁,d₂]ᵀ
约束条件:0 + [0,-1]·[d₁,d₂] ≤ 0 → -d₂ ≤ 0
-2 + [1,1]·[d₁,d₂] ≤ 0 → d₁ + d₂ - 2 ≤ 0
d₁² + d₂² ≤ 0.25
求解得:d⁰ = (0.3536, 0.3536)
步骤5:计算实际下降与预测下降
实际下降:Ared = f(x⁰) - f(x⁰ + d⁰)
预测下降:Pred = q(0) - q(d⁰)
计算x¹ = x⁰ + d⁰ = (0.3536, 0.3536)
f(x¹) = (0.3536-2)² + (0.3536-1)² ≈ 2.707 + 0.418 ≈ 3.125
Ared = 5 - 3.125 = 1.875
Pred = q(0) - q(d⁰) = 0 - (-4×0.3536 -2×0.3536 + ½×0.5) ≈ 2.121 - 0.25 = 1.871
步骤6:计算比值并调整信赖域半径
比值ρ = Ared/Pred = 1.875/1.871 ≈ 1.002
由于ρ > η = 0.1,接受该步长:x¹ = (0.3536, 0.3536)
由于ρ接近1,说明模型拟合良好,可扩大信赖域:Δ₁ = γ₂×Δ₀ = 2×0.5 = 1.0
步骤7:第二次迭代
在x¹处重新计算梯度和约束,构建新的QP子问题:
∇f(x¹) = [2(0.3536-2), 2(0.3536-1)] ≈ [-3.293, -1.293]
∇c₁(x¹) = [2×0.3536, -1] = [0.7072, -1]
c₁(x¹) = 0.125 - 0.3536 = -0.2286
c₂(x¹) = 0.3536 + 0.3536 - 2 = -1.2928
新的QP子问题:
最小化 [-3.293, -1.293]·d + ½dᵀB₁d
约束条件:-0.2286 + [0.7072, -1]·d ≤ 0
-1.2928 + [1,1]·d ≤ 0
||d|| ≤ 1.0
步骤8:收敛判断
重复上述过程,直到满足以下收敛条件之一:
- 步长||d|| < ε
- 函数值变化|f(xᵏ⁺¹) - f(xᵏ)| < ε
- 梯度投影||P(∇f(xᵏ))|| < ε
经过数次迭代后,算法收敛到近似最优解x* ≈ (1.0, 1.0),f(x*) = 1.0
算法优势
- 自适应信赖域确保算法稳定性
- SQP提供快速局部收敛
- 混合策略平衡全局收敛和局部收敛速度
- 能有效处理非线性约束
这个算法特别适合中等规模的非线性规划问题,在工程优化、经济建模等领域有广泛应用。