非线性规划中的序列线性化信赖域反射法基础题
字数 1688 2025-11-04 08:32:42

非线性规划中的序列线性化信赖域反射法基础题

题目描述
考虑非线性规划问题:
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]ᵀ。

非线性规划中的序列线性化信赖域反射法基础题 题目描述 考虑非线性规划问题: 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 ]ᵀ。