非线性规划中的外推梯度法基础题
题目描述:
考虑非线性规划问题:
min f(x) = (x₁-2)⁴ + (x₁-2x₂)²
其中 x ∈ ℝ²。使用外推梯度法求解该问题,初始点 x⁰ = [0, 3]ᵀ,固定步长 α = 0.1,外推参数 β = 0.5。
解题过程:
-
问题分析
目标函数 f(x) = (x₁-2)⁴ + (x₁-2x₂)² 是一个光滑的非线性函数,没有约束条件。我们需要计算梯度来实施外推梯度法。 -
梯度计算
目标函数的梯度为:
∇f(x) = [∂f/∂x₁, ∂f/∂x₂]ᵀ
其中:
∂f/∂x₁ = 4(x₁-2)³ + 2(x₁-2x₂)
∂f/∂x₂ = -4(x₁-2x₂) -
外推梯度法原理
外推梯度法结合了梯度下降和外推步骤,基本迭代格式为:
yᵏ = xᵏ - α∇f(xᵏ) (梯度下降步)
xᵏ⁺¹ = yᵏ + β(yᵏ - yᵏ⁻¹) (外推步)
对于第一步(k=0),由于没有前一次迭代的外推信息,我们只执行梯度下降步。
- 迭代过程详解
第0次迭代 (k=0):
初始点:x⁰ = [0, 3]ᵀ
计算梯度:
∂f/∂x₁ = 4(0-2)³ + 2(0-2×3) = 4×(-8) + 2×(-6) = -32 - 12 = -44
∂f/∂x₂ = -4(0-2×3) = -4×(-6) = 24
∇f(x⁰) = [-44, 24]ᵀ
梯度下降步:
y⁰ = x⁰ - α∇f(x⁰) = [0, 3]ᵀ - 0.1×[-44, 24]ᵀ = [0, 3]ᵀ - [-4.4, 2.4]ᵀ = [4.4, 0.6]ᵀ
由于是第一次迭代,没有外推步:
x¹ = y⁰ = [4.4, 0.6]ᵀ
第1次迭代 (k=1):
当前点:x¹ = [4.4, 0.6]ᵀ
计算梯度:
∂f/∂x₁ = 4(4.4-2)³ + 2(4.4-2×0.6) = 4×(2.4)³ + 2×(4.4-1.2) = 4×13.824 + 2×3.2 = 55.296 + 6.4 = 61.696
∂f/∂x₂ = -4(4.4-2×0.6) = -4×3.2 = -12.8
∇f(x¹) = [61.696, -12.8]ᵀ
梯度下降步:
y¹ = x¹ - α∇f(x¹) = [4.4, 0.6]ᵀ - 0.1×[61.696, -12.8]ᵀ = [4.4, 0.6]ᵀ - [6.1696, -1.28]ᵀ = [-1.7696, 1.88]ᵀ
外推步(使用前一次梯度下降结果 y⁰ 和当前梯度下降结果 y¹):
x² = y¹ + β(y¹ - y⁰) = [-1.7696, 1.88]ᵀ + 0.5×([-1.7696, 1.88]ᵀ - [4.4, 0.6]ᵀ)
= [-1.7696, 1.88]ᵀ + 0.5×[-6.1696, 1.28]ᵀ
= [-1.7696, 1.88]ᵀ + [-3.0848, 0.64]ᵀ
= [-4.8544, 2.52]ᵀ
-
收敛性分析
继续迭代,函数值会逐渐减小。外推梯度法通过结合动量项(外推步)可以加速收敛,特别是在目标函数存在"峡谷"形状时效果更明显。 -
最优解验证
该问题的理论最优解在 x* = [2, 1]ᵀ 处,此时 f(x*) = 0。随着迭代次数增加,外推梯度法会逐渐逼近这个最优解。
外推梯度法的优势在于通过外推步骤引入动量,可以加速收敛并帮助跳出局部极小值,特别适用于具有复杂地形的高维非线性优化问题。