非线性规划中的序列线性化信赖域反射法基础题
我将为您讲解非线性规划中的序列线性化信赖域反射法。这个方法结合了序列线性化、信赖域和反射技术,特别适合处理带约束的非线性优化问题。
题目描述
考虑以下非线性规划问题:
最小化 f(x) = (x₁ - 2)⁴ + (x₁ - 2x₂)²
满足约束条件:
c₁(x) = x₁² - x₂ ≤ 0
c₂(x) = -x₁ ≤ 0
初始点 x⁰ = [0, 1]ᵀ
解题过程讲解
第一步:问题分析与线性化
首先分析目标函数和约束条件。目标函数f(x)是四阶多项式,约束条件包含二次函数和线性函数。
序列线性化信赖域反射法的核心思想是:在每次迭代中,在当前点xᵏ处对目标函数和约束条件进行线性化近似。
在点xᵏ处,我们构造线性化子问题:
最小化 ∇f(xᵏ)ᵀd + ½dᵀBᵏd
满足约束:
∇cᵢ(xᵏ)ᵀd + cᵢ(xᵏ) ≤ 0, i=1,2
‖d‖ ≤ Δᵏ
其中Bᵏ是Hessian矩阵的近似,Δᵏ是信赖域半径。
第二步:初始点计算
从初始点x⁰ = [0, 1]ᵀ开始计算:
f(x⁰) = (0-2)⁴ + (0-2)² = 16 + 4 = 20
∇f(x) = [4(x₁-2)³ + 2(x₁-2x₂), -4(x₁-2x₂)]ᵀ
∇f(x⁰) = [4(-2)³ + 2(-2), -4(-2)]ᵀ = [-32-4, 8]ᵀ = [-36, 8]ᵀ
约束函数值:
c₁(x⁰) = 0² - 1 = -1 ≤ 0
c₂(x⁰) = -0 = 0 ≤ 0
约束梯度:
∇c₁(x) = [2x₁, -1]ᵀ, ∇c₁(x⁰) = [0, -1]ᵀ
∇c₂(x) = [-1, 0]ᵀ, ∇c₂(x⁰) = [-1, 0]ᵀ
第三步:构建第一个子问题
在x⁰处,我们构建如下信赖域子问题:
最小化 [-36, 8]d + ½dᵀB⁰d
满足约束:
[0, -1]d - 1 ≤ 0
[-1, 0]d + 0 ≤ 0
‖d‖ ≤ Δ⁰
设初始信赖域半径Δ⁰ = 1,初始Hessian近似B⁰ = I(单位矩阵)。
第四步:求解子问题
子问题变为:
最小化 -36d₁ + 8d₂ + ½(d₁² + d₂²)
满足约束:
-d₂ - 1 ≤ 0 ⇒ d₂ ≥ -1
-d₁ ≤ 0 ⇒ d₁ ≥ 0
d₁² + d₂² ≤ 1
这是一个带线性约束的二次规划问题。通过KKT条件求解,得到搜索方向d⁰。
第五步:反射技术应用
当搜索方向遇到信赖域边界时,采用反射技术:
如果d达到信赖域边界,计算反射方向d_ref = d - 2(n·d)n
其中n是边界法向量,确保搜索方向在可行域内。
第六步:接受性检验与信赖域更新
计算实际下降量:Δf_actual = f(xᵏ) - f(xᵏ + d)
预测下降量:Δf_predicted = -[∇f(xᵏ)ᵀd + ½dᵀBᵏd]
比值ρ = Δf_actual / Δf_predicted
根据ρ值更新信赖域半径:
- 如果ρ > 0.75,扩大信赖域:Δᵏ⁺¹ = min(2Δᵏ, Δ_max)
- 如果0.1 ≤ ρ ≤ 0.75,保持信赖域:Δᵏ⁺¹ = Δᵏ
- 如果ρ < 0.1,缩小信赖域:Δᵏ⁺¹ = 0.5Δᵏ
第七步:Hessian矩阵更新
使用BFGS公式更新Hessian近似:
Bᵏ⁺¹ = Bᵏ - (Bᵏs)(Bᵏs)ᵀ/(sᵀBᵏs) + (y yᵀ)/(yᵀs)
其中s = xᵏ⁺¹ - xᵏ, y = ∇f(xᵏ⁺¹) - ∇f(xᵏ)
第八步:收敛性判断
重复迭代过程,直到满足收敛条件:
‖∇f(xᵏ) + ∑λᵢ∇cᵢ(xᵏ)‖ ≤ ε₁
|cᵢ(xᵏ)| ≤ ε₂, 对于积极约束
‖xᵏ - xᵏ⁻¹‖ ≤ ε₃
其中ε₁, ε₂, ε₃是预设的容差。
方法优势
序列线性化信赖域反射法结合了序列线性化的计算效率、信赖域的全局收敛性和反射技术的可行性保持,特别适合处理中等规模的非线性约束优化问题。