非线性规划中的模式搜索法基础题
字数 2531 2025-10-26 09:00:43
非线性规划中的模式搜索法基础题
题目描述:
考虑非线性规划问题:
\[\min f(x) = (x_1 - 2)^4 + (x_1 - 2x_2)^2
\]
其中 \(x = (x_1, x_2) \in \mathbb{R}^2\)。初始点设为 \(x^{(0)} = (0, 3)\),使用模式搜索法(Pattern Search)求解该问题,要求通过迭代逐步逼近局部极小点。
解题过程:
1. 模式搜索法简介
模式搜索法是一种直接搜索算法,适用于目标函数不可导或导数难以计算的情况。其核心思想是:
- 探索移动(Exploratory Move):在当前位置周围按一定模式(如坐标方向)试探,寻找比当前点更优的点。
- 模式移动(Pattern Move):若探索成功,则沿“当前点→新点”方向加速移动,扩大步长以快速收敛。
- 若模式移动失败,则缩小步长,重新探索。
2. 算法参数设置
- 初始点 \(x^{(0)} = (0, 3)\)
- 初始步长 \(\delta^{(0)} = 1\)
- 步长缩小系数 \(\beta = 0.5\)(若探索失败则步长减半)
- 步长扩大系数 \(\gamma = 2\)(模式移动成功时步长加倍)
- 收敛阈值 \(\epsilon = 10^{-3}\)(步长小于该值时停止)
- 搜索方向集:标准坐标方向 \(D = \{ (1,0), (-1,0), (0,1), (0,-1) \}\)
3. 迭代过程详解
第1轮迭代(k=0)
- 当前点:\(x^{(0)} = (0, 3)\),\(f(x^{(0)}) = (0-2)^4 + (0-2\times3)^2 = 16 + 36 = 52\)
- 探索移动:以步长 \(\delta = 1\) 沿四个方向试探:
- 方向 \((1,0)\):\(x_{\text{test}} = (0+1, 3) = (1, 3)\),\(f = (1-2)^4 + (1-6)^2 = 1 + 25 = 26\)(更优)
- 方向 \((-1,0)\):\(x_{\text{test}} = (-1, 3)\),\(f = 81 + 49 = 130\)(更差)
- 方向 \((0,1)\):\(x_{\text{test}} = (0, 4)\),\(f = 16 + 64 = 80\)(更差)
- 方向 \((0,-1)\):\(x_{\text{test}} = (0, 2)\),\(f = 16 + 16 = 32\)(更优)
- 选择最优方向:比较 \((1,0)\) 和 \((0,-1)\),\(f=26\) 更小,故探索成功点 \(x^{(1)}_{\text{exp}} = (1, 3)\)
- 模式移动:计算方向 \(d = x^{(1)}_{\text{exp}} - x^{(0)} = (1, 0)\)
- 新模式点 \(x^{(1)}_{\text{pat}} = x^{(1)}_{\text{exp}} + \gamma \cdot d = (1, 3) + 2 \cdot (1, 0) = (3, 3)\)
- 计算 \(f(3,3) = (3-2)^4 + (3-6)^2 = 1 + 9 = 10\)(比 \(f=26\) 更优),故模式移动成功
- 更新当前点 \(x^{(1)} = (3, 3)\),步长保持 \(\delta = 1\)
第2轮迭代(k=1)
- 当前点:\(x^{(1)} = (3, 3)\),\(f = 10\)
- 探索移动:以 \(\delta = 1\) 试探:
- 方向 \((1,0)\):\((4,3)\),\(f = (4-2)^4 + (4-6)^2 = 16 + 4 = 20\)(更差)
- 方向 \((-1,0)\):\((2,3)\),\(f = 0 + (2-6)^2 = 16\)(更差)
- 方向 \((0,1)\):\((3,4)\),\(f = 1 + (3-8)^2 = 26\)(更差)
- 方向 \((0,-1)\):\((3,2)\),\(f = 1 + (3-4)^2 = 2\)(更优)
- 探索成功点 \(x^{(2)}_{\text{exp}} = (3, 2)\)
- 模式移动:方向 \(d = (3,2) - (3,3) = (0, -1)\)
- 新模式点 \(x^{(2)}_{\text{pat}} = (3,2) + 2 \cdot (0,-1) = (3,0)\)
- \(f(3,0) = 1 + (3-0)^2 = 10\)(比 \(f=2\) 更差),故模式移动失败
- 退回探索点 \(x^{(2)} = (3, 2)\),步长缩小为 \(\delta = 0.5\)
第3轮迭代(k=2)
- 当前点:\(x^{(2)} = (3, 2)\),\(f = 2\)
- 探索移动(步长 \(\delta = 0.5\)):
- 试探四个方向均无更优点(例如 \((3.5,2)\) 的 \(f = 5.06\) 更差),探索失败
- 步长更新:缩小步长 \(\delta = 0.5 \times 0.5 = 0.25\)
- 当前点不变 \(x^{(3)} = (3, 2)\)
后续迭代
重复探索,直至步长 \(\delta < 10^{-3}\)。最终收敛到点 \(x^* \approx (2, 1)\),此时 \(f(2,1) = 0 + (2-2)^2 = 0\),为精确极小点。
4. 关键点总结
- 模式搜索法通过“探索→模式移动”循环,结合步长自适应调整,兼顾全局搜索与局部精细优化。
- 本例中,模式移动在初期加速收敛,后期步长缩小确保精度。
- 算法简单可靠,但收敛速度较慢,适合低维问题或导数信息缺失的场景。
非线性规划中的模式搜索法基础题 题目描述: 考虑非线性规划问题: \[ \min f(x) = (x_ 1 - 2)^4 + (x_ 1 - 2x_ 2)^2 \] 其中 \( x = (x_ 1, x_ 2) \in \mathbb{R}^2 \)。初始点设为 \( x^{(0)} = (0, 3) \),使用 模式搜索法(Pattern Search) 求解该问题,要求通过迭代逐步逼近局部极小点。 解题过程: 1. 模式搜索法简介 模式搜索法是一种直接搜索算法,适用于目标函数不可导或导数难以计算的情况。其核心思想是: 探索移动(Exploratory Move) :在当前位置周围按一定模式(如坐标方向)试探,寻找比当前点更优的点。 模式移动(Pattern Move) :若探索成功,则沿“当前点→新点”方向加速移动,扩大步长以快速收敛。 若模式移动失败,则缩小步长,重新探索。 2. 算法参数设置 初始点 \( x^{(0)} = (0, 3) \) 初始步长 \( \delta^{(0)} = 1 \) 步长缩小系数 \( \beta = 0.5 \)(若探索失败则步长减半) 步长扩大系数 \( \gamma = 2 \)(模式移动成功时步长加倍) 收敛阈值 \( \epsilon = 10^{-3} \)(步长小于该值时停止) 搜索方向集:标准坐标方向 \( D = \{ (1,0), (-1,0), (0,1), (0,-1) \} \) 3. 迭代过程详解 第1轮迭代(k=0) 当前点 :\( x^{(0)} = (0, 3) \),\( f(x^{(0)}) = (0-2)^4 + (0-2\times3)^2 = 16 + 36 = 52 \) 探索移动 :以步长 \( \delta = 1 \) 沿四个方向试探: 方向 \( (1,0) \):\( x_ {\text{test}} = (0+1, 3) = (1, 3) \),\( f = (1-2)^4 + (1-6)^2 = 1 + 25 = 26 \)(更优) 方向 \( (-1,0) \):\( x_ {\text{test}} = (-1, 3) \),\( f = 81 + 49 = 130 \)(更差) 方向 \( (0,1) \):\( x_ {\text{test}} = (0, 4) \),\( f = 16 + 64 = 80 \)(更差) 方向 \( (0,-1) \):\( x_ {\text{test}} = (0, 2) \),\( f = 16 + 16 = 32 \)(更优) 选择最优方向:比较 \( (1,0) \) 和 \( (0,-1) \),\( f=26 \) 更小,故探索成功点 \( x^{(1)}_ {\text{exp}} = (1, 3) \) 模式移动 :计算方向 \( d = x^{(1)}_ {\text{exp}} - x^{(0)} = (1, 0) \) 新模式点 \( x^{(1)} {\text{pat}} = x^{(1)} {\text{exp}} + \gamma \cdot d = (1, 3) + 2 \cdot (1, 0) = (3, 3) \) 计算 \( f(3,3) = (3-2)^4 + (3-6)^2 = 1 + 9 = 10 \)(比 \( f=26 \) 更优),故模式移动成功 更新当前点 \( x^{(1)} = (3, 3) \),步长保持 \( \delta = 1 \) 第2轮迭代(k=1) 当前点 :\( x^{(1)} = (3, 3) \),\( f = 10 \) 探索移动 :以 \( \delta = 1 \) 试探: 方向 \( (1,0) \):\( (4,3) \),\( f = (4-2)^4 + (4-6)^2 = 16 + 4 = 20 \)(更差) 方向 \( (-1,0) \):\( (2,3) \),\( f = 0 + (2-6)^2 = 16 \)(更差) 方向 \( (0,1) \):\( (3,4) \),\( f = 1 + (3-8)^2 = 26 \)(更差) 方向 \( (0,-1) \):\( (3,2) \),\( f = 1 + (3-4)^2 = 2 \)(更优) 探索成功点 \( x^{(2)}_ {\text{exp}} = (3, 2) \) 模式移动 :方向 \( d = (3,2) - (3,3) = (0, -1) \) 新模式点 \( x^{(2)}_ {\text{pat}} = (3,2) + 2 \cdot (0,-1) = (3,0) \) \( f(3,0) = 1 + (3-0)^2 = 10 \)(比 \( f=2 \) 更差),故模式移动失败 退回探索点 \( x^{(2)} = (3, 2) \),步长缩小为 \( \delta = 0.5 \) 第3轮迭代(k=2) 当前点 :\( x^{(2)} = (3, 2) \),\( f = 2 \) 探索移动 (步长 \( \delta = 0.5 \)): 试探四个方向均无更优点(例如 \( (3.5,2) \) 的 \( f = 5.06 \) 更差),探索失败 步长更新 :缩小步长 \( \delta = 0.5 \times 0.5 = 0.25 \) 当前点不变 \( x^{(3)} = (3, 2) \) 后续迭代 重复探索,直至步长 \( \delta < 10^{-3} \)。最终收敛到点 \( x^* \approx (2, 1) \),此时 \( f(2,1) = 0 + (2-2)^2 = 0 \),为精确极小点。 4. 关键点总结 模式搜索法通过“探索→模式移动”循环,结合步长自适应调整,兼顾全局搜索与局部精细优化。 本例中,模式移动在初期加速收敛,后期步长缩小确保精度。 算法简单可靠,但收敛速度较慢,适合低维问题或导数信息缺失的场景。