非线性规划中的自适应信赖域序列二次规划(TR-SQP)算法进阶题
题目描述
考虑非线性约束优化问题:
min f(x) = (x₁ - 2)⁴ + (x₁ - 2x₂)²
s.t. c₁(x) = x₁² - x₂ = 0
c₂(x) = x₁ + x₂ - 2 ≤ 0
x ∈ ℝ²
这是一个包含等式约束和不等式约束的非线性规划问题。目标函数f(x)是非凸的,约束条件包含非线性等式和线性不等式。我们需要使用自适应信赖域序列二次规划(TR-SQP)方法来求解。
解题过程
第一步:算法基本原理理解
自适应TR-SQP结合了信赖域方法和序列二次规划的优点:
- 在每一步迭代中,构造一个二次规划子问题来近似原问题
- 使用信赖域约束来控制步长,保证算法稳定性
- 自适应机制根据实际下降量与预测下降量的比值来调整信赖域半径
第二步:问题预处理
-
计算目标函数梯度:
∇f(x) = [4(x₁ - 2)³ + 2(x₁ - 2x₂), -4(x₁ - 2x₂)]ᵀ -
计算约束雅可比矩阵:
J(x) = [∇c₁(x)ᵀ, ∇c₂(x)ᵀ] = [[2x₁, -1], [1, 1]] -
计算拉格朗日函数梯度:
∇L(x,λ,μ) = ∇f(x) + λ∇c₁(x) + μ∇c₂(x)
第三步:构造SQP子问题
在第k次迭代点xₖ,构造二次规划子问题:
min ½dᵀBₖd + ∇f(xₖ)ᵀd
s.t. c₁(xₖ) + ∇c₁(xₖ)ᵀd = 0
c₂(xₖ) + ∇c₂(xₖ)ᵀd ≤ 0
‖d‖ ≤ Δₖ
其中Bₖ是拉格朗日函数的Hessian近似,Δₖ是当前信赖域半径。
第四步:Hessian矩阵近似
使用BFGS公式更新Hessian近似:
Bₖ₊₁ = Bₖ - (Bₖsₖ)(Bₖsₖ)ᵀ/(sₖᵀBₖsₖ) + (yₖyₖᵀ)/(sₖᵀyₖ)
其中:
sₖ = xₖ₊₁ - xₖ
yₖ = ∇L(xₖ₊₁,λₖ₊₁,μₖ₊₁) - ∇L(xₖ,λₖ,μₖ)
初始Hessian设为单位矩阵。
第五步:信赖域机制
定义实际下降量:
Aredₖ = f(xₖ) - f(xₖ + dₖ) + ρ[‖c(xₖ)‖ - ‖c(xₖ + dₖ)‖]
预测下降量:
Predₖ = -∇f(xₖ)ᵀdₖ - ½dₖᵀBₖdₖ + ρ[‖c(xₖ)‖ - ‖c(xₖ) + J(xₖ)dₖ‖]
比值:
rₖ = Aredₖ/Predₖ
第六步:自适应调整策略
根据比值rₖ调整信赖域半径:
- 如果 rₖ < 0.25:Δₖ₊₁ = 0.5Δₖ (收缩)
- 如果 rₖ > 0.75 且 ‖dₖ‖ = Δₖ:Δₖ₊₁ = 2Δₖ (扩张)
- 否则:Δₖ₊₁ = Δₖ (保持)
第七步:迭代求解过程
- 初始化:x₀ = [0,0]ᵀ, Δ₀ = 1, B₀ = I, ρ = 10
- 对于k = 0,1,2,...直到收敛:
a. 求解QP子问题得到步长dₖ
b. 计算比值rₖ
c. 如果rₖ > 0.1,接受步长:xₖ₊₁ = xₖ + dₖ
d. 否则拒绝步长:xₖ₊₁ = xₖ
e. 更新Hessian近似Bₖ₊₁
f. 调整信赖域半径Δₖ₊₁
g. 检查收敛条件:‖∇L(xₖ,λₖ,μₖ)‖ < ε 且 约束违反度 < δ
第八步:收敛性分析
算法在满足MFCQ约束规格的条件下具有全局收敛性。当迭代点接近最优解时,自适应机制能识别出SQP步长的有效性,从而快速收敛到局部最优解。
最终结果
经过迭代,算法收敛到近似最优解x* ≈ [1.0, 1.0]ᵀ,对应的目标函数值f(x*) ≈ 1.0,满足所有约束条件。自适应信赖域机制有效处理了目标函数的非凸性和约束的非线性特性。