非线性规划中的序列线性化方法(SLM)基础题
字数 3161 2025-11-01 09:19:03

非线性规划中的序列线性化方法(SLM)基础题

题目描述
考虑非线性规划问题:
最小化 \(f(x) = (x_1 - 2)^4 + (x_1 - 2x_2)^2\)
满足约束 \(h(x) = x_1^2 - x_2 = 0\)
使用序列线性化方法(SLM)求解该问题,初始点选为 \(x^{(0)} = (2, 1)\),迭代2步,并分析约束线性化后的可行性。

解题过程

1. 方法原理
序列线性化方法通过逐次线性化非线性约束和目标函数,将原问题转化为一系列线性规划子问题。对于问题:

\[\min f(x) \quad \text{s.t.} \quad h(x) = 0, \]

在迭代点 \(x^{(k)}\) 处,对 \(f(x)\)\(h(x)\) 做一阶泰勒展开:

  • 目标函数线性化:\(f(x) \approx f(x^{(k)}) + \nabla f(x^{(k)})^T (x - x^{(k)})\)
  • 约束线性化:\(h(x) \approx h(x^{(k)}) + \nabla h(x^{(k)})^T (x - x^{(k)}) = 0\)
    子问题为线性规划:

\[\min \nabla f(x^{(k)})^T d \quad \text{s.t.} \quad \nabla h(x^{(k)})^T d = -h(x^{(k)}), \]

其中 \(d = x - x^{(k)}\)。解出 \(d^{(k)}\) 后更新 \(x^{(k+1)} = x^{(k)} + d^{(k)}\)

2. 初始点计算
给定 \(x^{(0)} = (2, 1)\)

  • 目标函数值:\(f(x^{(0)}) = (2-2)^4 + (2 - 2 \times 1)^2 = 0 + 0 = 0\)
  • 约束值:\(h(x^{(0)}) = 2^2 - 1 = 3 \neq 0\)(初始点不满足约束)。
  • 梯度计算:
    • \(\nabla f(x) = \left[ 4(x_1 - 2)^3 + 2(x_1 - 2x_2), \ -4(x_1 - 2x_2) \right]\)
      代入 \(x^{(0)}\)\(\nabla f(x^{(0)}) = [0 + 0, \ 0] = (0, 0)\)
    • \(\nabla h(x) = [2x_1, \ -1]\),代入得 \(\nabla h(x^{(0)}) = (4, -1)\)

3. 第一步迭代(k=0)
子问题关于 \(d = (d_1, d_2)\)

  • 目标:最小化 \(\nabla f(x^{(0)})^T d = 0 \cdot d_1 + 0 \cdot d_2 = 0\)(常函数,任意 \(d\) 均最优)。
  • 约束:\(\nabla h(x^{(0)})^T d = -h(x^{(0)}) \Rightarrow 4d_1 - d_2 = -3\)
    由于目标函数为常数,需额外规则确定 \(d\)。通常添加范数约束 \(\|d\| \leq \Delta\) 避免无界解,但本题未指定,故直接解约束方程。
    \(d_2 = 4d_1 + 3\)(由约束变形),代入目标函数仍为常数。需选择最小范数解:最小化 \(\|d\|^2 = d_1^2 + (4d_1 + 3)^2\)
    求导得 \(2d_1 + 8(4d_1 + 3) = 34d_1 + 24 = 0 \Rightarrow d_1 = -12/17\)
    \(d_2 = 4 \times (-12/17) + 3 = -48/17 + 51/17 = 3/17\)
    更新点:\(x^{(1)} = x^{(0)} + d = (2 - 12/17, \ 1 + 3/17) = (22/17, \ 20/17) \approx (1.294, \ 1.176)\)

4. 第二步迭代(k=1)
计算 \(x^{(1)}\) 处信息:

  • \(f(x^{(1)}) = (22/17 - 2)^4 + (22/17 - 2 \times 20/17)^2 = (-12/17)^4 + (-18/17)^2 \approx 0.219 + 1.121 = 1.34\)
  • \(h(x^{(1)}) = (22/17)^2 - 20/17 = 484/289 - 380/289 = 104/289 \approx 0.36\)
  • 梯度:
    • \(\nabla f(x^{(1)}) = \left[ 4(-12/17)^3 + 2(-18/17), \ -4(-18/17) \right] \approx [-0.244 - 2.118, \ 4.235] = (-2.362, \ 4.235)\)
    • \(\nabla h(x^{(1)}) = [2 \times 22/17, \ -1] = (44/17, \ -1) \approx (2.588, \ -1)\)

子问题:

  • 目标:最小化 \(\nabla f(x^{(1)})^T d = -2.362 d_1 + 4.235 d_2\)
  • 约束:\(2.588 d_1 - d_2 = -0.36\)
    \(d_2 = 2.588 d_1 + 0.36\),代入目标得:

\[-2.362 d_1 + 4.235 (2.588 d_1 + 0.36) = (-2.362 + 10.96) d_1 + 1.524 = 8.598 d_1 + 1.524。 \]

目标函数随 \(d_1\) 减小而减小(系数正),但需约束 \(\|d\|\) 有界。若不加范数约束,解无界。实际SLM中需控制步长(如信赖域)。此处假设最大步长 \(\Delta = 0.5\),解约束下的线性规划:
添加约束 \(d_1^2 + d_2^2 \leq 0.25\),结合线性约束求解。简化计算:取 \(d_1 = -0.3\)(满足范数约束),则 \(d_2 = 2.588 \times (-0.3) + 0.36 = -0.416\)
\(\|d\| \approx 0.52 > 0.5\),调整至 \(d_1 = -0.28\)\(d_2 \approx -0.365\)\(\|d\| \approx 0.45\)
更新点:\(x^{(2)} \approx (1.294 - 0.28, \ 1.176 - 0.365) = (1.014, \ 0.811)\)

5. 结果分析

  • 经过两步迭代,约束值从 \(3\) 降至 \(0.36\)(第一步)和 \(h(x^{(2)}) \approx 1.014^2 - 0.811 = 0.216\)(第二步),约束 violation 减小。
  • SLM 的挑战:线性化可能导致子问题不可行或无界,需结合步长控制。本例中初始点梯度为零,第一步依赖约束推动移动;第二步目标梯度出现,引导优化方向。
  • 最终点 \(x^{(2)}\) 接近可行域 \(x_1^2 = x_2\),但需更多迭代收敛至最优解(理论最优在 \(x = (2, 4)\)\(f = 0\))。
非线性规划中的序列线性化方法(SLM)基础题 题目描述 考虑非线性规划问题: 最小化 \( f(x) = (x_ 1 - 2)^4 + (x_ 1 - 2x_ 2)^2 \) 满足约束 \( h(x) = x_ 1^2 - x_ 2 = 0 \)。 使用序列线性化方法(SLM)求解该问题,初始点选为 \( x^{(0)} = (2, 1) \),迭代2步,并分析约束线性化后的可行性。 解题过程 1. 方法原理 序列线性化方法通过逐次线性化非线性约束和目标函数,将原问题转化为一系列线性规划子问题。对于问题: \[ \min f(x) \quad \text{s.t.} \quad h(x) = 0, \] 在迭代点 \( x^{(k)} \) 处,对 \( f(x) \) 和 \( h(x) \) 做一阶泰勒展开: 目标函数线性化:\( f(x) \approx f(x^{(k)}) + \nabla f(x^{(k)})^T (x - x^{(k)}) \)。 约束线性化:\( h(x) \approx h(x^{(k)}) + \nabla h(x^{(k)})^T (x - x^{(k)}) = 0 \)。 子问题为线性规划: \[ \min \nabla f(x^{(k)})^T d \quad \text{s.t.} \quad \nabla h(x^{(k)})^T d = -h(x^{(k)}), \] 其中 \( d = x - x^{(k)} \)。解出 \( d^{(k)} \) 后更新 \( x^{(k+1)} = x^{(k)} + d^{(k)} \)。 2. 初始点计算 给定 \( x^{(0)} = (2, 1) \): 目标函数值:\( f(x^{(0)}) = (2-2)^4 + (2 - 2 \times 1)^2 = 0 + 0 = 0 \)。 约束值:\( h(x^{(0)}) = 2^2 - 1 = 3 \neq 0 \)(初始点不满足约束)。 梯度计算: \( \nabla f(x) = \left[ 4(x_ 1 - 2)^3 + 2(x_ 1 - 2x_ 2), \ -4(x_ 1 - 2x_ 2) \right ] \), 代入 \( x^{(0)} \) 得 \( \nabla f(x^{(0)}) = [ 0 + 0, \ 0 ] = (0, 0) \)。 \( \nabla h(x) = [ 2x_ 1, \ -1 ] \),代入得 \( \nabla h(x^{(0)}) = (4, -1) \)。 3. 第一步迭代(k=0) 子问题关于 \( d = (d_ 1, d_ 2) \): 目标:最小化 \( \nabla f(x^{(0)})^T d = 0 \cdot d_ 1 + 0 \cdot d_ 2 = 0 \)(常函数,任意 \( d \) 均最优)。 约束:\( \nabla h(x^{(0)})^T d = -h(x^{(0)}) \Rightarrow 4d_ 1 - d_ 2 = -3 \)。 由于目标函数为常数,需额外规则确定 \( d \)。通常添加范数约束 \( \|d\| \leq \Delta \) 避免无界解,但本题未指定,故直接解约束方程。 令 \( d_ 2 = 4d_ 1 + 3 \)(由约束变形),代入目标函数仍为常数。需选择最小范数解:最小化 \( \|d\|^2 = d_ 1^2 + (4d_ 1 + 3)^2 \)。 求导得 \( 2d_ 1 + 8(4d_ 1 + 3) = 34d_ 1 + 24 = 0 \Rightarrow d_ 1 = -12/17 \), \( d_ 2 = 4 \times (-12/17) + 3 = -48/17 + 51/17 = 3/17 \)。 更新点:\( x^{(1)} = x^{(0)} + d = (2 - 12/17, \ 1 + 3/17) = (22/17, \ 20/17) \approx (1.294, \ 1.176) \)。 4. 第二步迭代(k=1) 计算 \( x^{(1)} \) 处信息: \( f(x^{(1)}) = (22/17 - 2)^4 + (22/17 - 2 \times 20/17)^2 = (-12/17)^4 + (-18/17)^2 \approx 0.219 + 1.121 = 1.34 \)。 \( h(x^{(1)}) = (22/17)^2 - 20/17 = 484/289 - 380/289 = 104/289 \approx 0.36 \)。 梯度: \( \nabla f(x^{(1)}) = \left[ 4(-12/17)^3 + 2(-18/17), \ -4(-18/17) \right] \approx [ -0.244 - 2.118, \ 4.235 ] = (-2.362, \ 4.235) \)。 \( \nabla h(x^{(1)}) = [ 2 \times 22/17, \ -1 ] = (44/17, \ -1) \approx (2.588, \ -1) \)。 子问题: 目标:最小化 \( \nabla f(x^{(1)})^T d = -2.362 d_ 1 + 4.235 d_ 2 \)。 约束:\( 2.588 d_ 1 - d_ 2 = -0.36 \)。 令 \( d_ 2 = 2.588 d_ 1 + 0.36 \),代入目标得: \[ -2.362 d_ 1 + 4.235 (2.588 d_ 1 + 0.36) = (-2.362 + 10.96) d_ 1 + 1.524 = 8.598 d_ 1 + 1.524。 \] 目标函数随 \( d_ 1 \) 减小而减小(系数正),但需约束 \( \|d\| \) 有界。若不加范数约束,解无界。实际SLM中需控制步长(如信赖域)。此处假设最大步长 \( \Delta = 0.5 \),解约束下的线性规划: 添加约束 \( d_ 1^2 + d_ 2^2 \leq 0.25 \),结合线性约束求解。简化计算:取 \( d_ 1 = -0.3 \)(满足范数约束),则 \( d_ 2 = 2.588 \times (-0.3) + 0.36 = -0.416 \), \( \|d\| \approx 0.52 > 0.5 \),调整至 \( d_ 1 = -0.28 \),\( d_ 2 \approx -0.365 \),\( \|d\| \approx 0.45 \)。 更新点:\( x^{(2)} \approx (1.294 - 0.28, \ 1.176 - 0.365) = (1.014, \ 0.811) \)。 5. 结果分析 经过两步迭代,约束值从 \( 3 \) 降至 \( 0.36 \)(第一步)和 \( h(x^{(2)}) \approx 1.014^2 - 0.811 = 0.216 \)(第二步),约束 violation 减小。 SLM 的挑战:线性化可能导致子问题不可行或无界,需结合步长控制。本例中初始点梯度为零,第一步依赖约束推动移动;第二步目标梯度出现,引导优化方向。 最终点 \( x^{(2)} \) 接近可行域 \( x_ 1^2 = x_ 2 \),但需更多迭代收敛至最优解(理论最优在 \( x = (2, 4) \) 处 \( f = 0 \))。