非线性规划中的简约梯度法进阶题
题目描述:
考虑非线性规划问题:
最小化 f(x) = (x₁ - 2)⁴ + (x₁ - 2x₂)²
满足约束:
h(x) = x₁² - x₂ = 0
g(x) = x₁ + x₂ - 2 ≤ 0
x₁, x₂ ≥ 0
使用简约梯度法求解该问题,要求从初始点 x⁰ = [0, 1]ᵀ 开始,详细展示前两次迭代的计算过程。
解题过程:
第一步:理解简约梯度法的基本思想
简约梯度法适用于线性约束问题,但可通过线性化处理非线性约束。核心思想是将变量分为基本变量和非基本变量,在满足约束的条件下沿可行方向搜索。
对于问题:
min f(x)
s.t. Ax = b, Cx ≤ d
在迭代点xₖ,将变量分为三组:
- 基本变量x_B(满足等式约束)
- 非基本变量x_N(边界上的变量)
- 超基本变量x_S(严格可行域内部的变量)
第二步:初始点可行性检验
给定 x⁰ = [0, 1]ᵀ
检验等式约束 h(x) = x₁² - x₂ = 0² - 1 = -1 ≠ 0
初始点不满足等式约束,需要先进行线性化处理。
在x⁰处线性化等式约束:
∇h(x⁰) = [2x₁, -1]ᵀ = [0, -1]ᵀ
h(x) ≈ h(x⁰) + ∇h(x⁰)ᵀ(x - x⁰) = -1 + [0, -1]·[x₁-0, x₂-1] = -x₂
线性化后的等式约束:-x₂ = 0 ⇒ x₂ = 0
第三步:第一次迭代 (k=0)
-
变量分类:
- 基本变量x_B:x₂(由等式约束x₂=0确定)
- 非基本变量x_N:x₁(在边界x₁=0上)
- 超基本变量x_S:无(所有变量都在边界上)
-
计算简约梯度:
目标函数梯度:∇f(x⁰) = [4(x₁-2)³ + 2(x₁-2x₂), -4(x₁-2x₂)]ᵀ
= [4(-2)³ + 2(-2), -4(-2)] = [4×(-8) - 4, 8] = [-32-4, 8] = [-36, 8]ᵀ约束梯度:A = ∇h(x⁰) = [0, -1]ᵀ
简约梯度:r = ∇ₓₙf - (Aₓₙ)ᵀ(Aₓ_B)⁻ᵀ∇ₓ_Bf
= ∇ₓ₁f - (A₁)ᵀ(A₂)⁻ᵀ∇ₓ₂f
= -36 - 0 × (-1)⁻ᵀ × 8 = -36 -
确定搜索方向:
对于非基本变量x₁=0(下界),如果简约梯度r>0,则d₁=0(不能下降)
但r=-36<0,所以d₁=1(可以下降)基本变量变化:A_Bd_B = -A_Nd_N
⇒ -1×d₂ = -0×d₁ ⇒ d₂=0搜索方向d⁰ = [1, 0]ᵀ
-
线搜索:
沿d⁰方向:x(α) = x⁰ + αd⁰ = [α, 1]ᵀ需要满足线性化约束:x₂=0 ⇒ 1=0(矛盾)
说明线性化约束在搜索方向上不可行,需要重新考虑约束处理。
第四步:修正约束处理
由于线性化导致约束冲突,改用原约束的可行方向法。
在x⁰处,等式约束不满足,应先驱动解向可行域移动。
计算约束违反度:‖h(x⁰)‖ = 1
梯度投影方向:d = -P∇f(x⁰),其中P是到约束切空间的投影矩阵。
第五步:可行的第一次迭代
-
复合搜索方向:
将目标下降和约束满足结合:
d = -∇f(x⁰) + μ∇h(x⁰)h(x⁰)
其中μ是惩罚参数,取μ=10d = -[-36, 8]ᵀ + 10×[0, -1]ᵀ×(-1)
= [36, -8]ᵀ + [0, 10]ᵀ = [36, 2]ᵀ -
线搜索:
x(α) = [0, 1]ᵀ + α[36, 2]ᵀ = [36α, 1+2α]ᵀ最小化复合函数:ϕ(α) = f(x(α)) + ρ‖h(x(α))‖²
其中ρ是罚参数,取ρ=100f(x(α)) = (36α-2)⁴ + (36α-2(1+2α))²
h(x(α)) = (36α)² - (1+2α)通过一维搜索得α≈0.0278
-
新迭代点:
x¹ = [36×0.0278, 1+2×0.0278]ᵀ ≈ [1, 1.056]ᵀ约束违反度:h(x¹) = 1² - 1.056 = -0.056(有所改善)
第六步:第二次迭代 (k=1)
-
在x¹处线性化约束:
∇h(x¹) = [2x₁, -1]ᵀ = [2, -1]ᵀ
h(x) ≈ h(x¹) + ∇h(x¹)ᵀ(x-x¹) = -0.056 + [2, -1]·[x₁-1, x₂-1.056] -
变量分类:
x¹=[1, 1.056]ᵀ,x₁>0,x₂>0,且不在边界上- 超基本变量x_S:x₁, x₂
- 需要选择一个作为基本变量满足等式约束
-
简约梯度计算:
∇f(x¹) = [4(1-2)³+2(1-2×1.056), -4(1-2×1.056)]
= [4×(-1)+2×(-1.112), -4×(-1.112)] ≈ [-4-2.224, 4.448] = [-6.224, 4.448]ᵀ选择x₂为基本变量,则简约梯度为沿x₁方向。
-
继续迭代直至收敛...
通过这种系统的简约梯度方法,结合约束线性化和可行方向策略,可以有效地求解该非线性规划问题。