非线性规划中的Hooke-Jeeves模式搜索法基础题
题目描述
考虑非线性规划问题:
最小化 \(f(x)1, x_2) = (x_1 - 2)^4 + (x_1 - 2x_2)^2\)
初始点取为 \(x^{(0)} = [0.0, 3.0]\),允许误差 \(\epsilon = 10^{-3}\)。
使用Hooke-Jeeves模式搜索法求解该问题,要求详细展示迭代过程。
解题过程
-
算法原理
Hooke-Jeeves法由探索移动和模式移动交替进行:- 探索移动:从当前基点 \(x^{(k)}\) 出发,沿坐标轴方向进行试探步长搜索(固定步长 \(\delta\)),若目标函数下降则更新临时点。
- 模式移动:若探索移动成功,沿当前基点与前一基点的连线方向(模式方向)进行加速搜索,步长按比例扩展。
迭代终止条件为步长 \(\delta < \epsilon\)。
-
参数设置
- 初始步长 \(\delta = 0.5\),缩减因子 \(\alpha = 0.5\)(若探索失败则缩小步长)。
- 坐标方向集 \(d_1 = [1,0]\), \(d_2 = [0,1]\)。
-
迭代详解
第1轮迭代-
步骤1:探索移动(从基点 \( x^{(0)} = [0.0, 3.0] \)
- 沿 \(d_1\) 方向试探 \(x_{\text{temp}} = [0.0+0.5, 3.0] = [0.5, 3.0]\):
\(f(x_{\text{temp}}) = (0.5-2)^4 + (0.5-6)^2 = 38.0625 + 30.25 = 68.3125\)
当前 \(f(x^{(0)}) = (0-2)^4 + (0-6)^2 = 16 + 36 = 52\),函数值上升,试探失败。
反向试探 \(x_{\text{temp}} = [0.0-0.5, 3.0] = [-0.5, 3.0]\):
\(f = (-2.5)^4 + (-0.5-6)^2 = 39.0625 + 42.25 = 81.3125\),失败。保持 \(x_1\) 不变。 - 沿 \(d_2\) 方向试探 \(x_{\text{temp}} = [0.0, 3.0+0.5] = [0.0, 3.5]\):
\(f = (0-2)^4 + (0-7)^2 = 16 + 49 = 65\),失败。
反向试探 \(x_{\text{temp}} = [0.0, 3.0-0.5] = [0.0, 2.5]\):
\(f = 16 + (0-5)^2 = 16 + 25 = 41 < 52\),成功!更新临时点为 \([0.0, 2.5]\)。 - 探索移动得到新点 \(x^{(1)}_{\text{explore}} = [0.0, 2.5]\),\(f = 41\)。
- 沿 \(d_1\) 方向试探 \(x_{\text{temp}} = [0.0+0.5, 3.0] = [0.5, 3.0]\):
-
步骤2:模式移动
模式方向 \(p = x^{(1)}_{\text{explore}} - x^{(0)} = [0.0, -0.5]\)
加速点 \(x^{(1)}_{\text{pattern}} = x^{(1)}_{\text{explore}} + p = [0.0, 2.0]\)
\(f = 16 + (0-4)^2 = 16 + 16 = 32 < 41\),模式移动成功。
更新基点 \(x^{(1)} = [0.0, 2.0]\)。
第2轮迭代(步长 \(\delta = 0.5\) 不变)
-
探索移动(从 \(x^{(1)} = [0.0, 2.0]\))
- 沿 \(d_1\) 正方向:\([0.5, 2.0]\), \(f = (0.5-2)^4 + (0.5-4)^2 = 5.0625 + 12.25 = 17.3125 < 32\),成功。
- 沿 \(d_2\) 正方向:\([0.5, 2.5]\), \(f = 5.0625 + (0.5-5)^2 = 5.0625 + 20.25 = 25.3125 > 17.3125\),失败。
负方向:\([0.5, 1.5]\), \(f = 5.0625 + (0.5-3)^2 = 5.0625 + 6.25 = 11.3125 < 17.3125\),成功。
探索结果 \(x^{(2)}_{\text{explore}} = [0.5, 1.5]\),\(f = 11.3125\)。
-
模式移动
方向 \(p = [0.5, 1.5] - [0.0, 2.0] = [0.5, -0.5]\)
加速点 \(x^{(2)}_{\text{pattern}} = [0.5, 1.5] + [0.5, -0.5] = [1.0, 1.0]\)
\(f = (1-2)^4 + (1-2)^2 = 1 + 1 = 2 < 11.3125\),成功。更新基点 \(x^{(2)} = [1.0, 1.0]\)。
后续迭代
- 第3轮探索移动从 \([1.0, 1.0]\) 开始,\(f = 2\)。
沿 \(d_1\) 正方向试探 \([1.5, 1.0]\):\(f = (1.5-2)^4 + (1.5-2)^2 = 0.0625 + 0.25 = 0.3125 < 2\),成功。
继续探索可能失败,但模式移动将指向更优区域。 - 当步长 \(\delta\) 经多次失败后缩减至 \(\delta < 10^{-3}\) 时终止。
最终解接近理论最优解 \(x^* = [2.0, 1.0]\),\(f = 0\)。
-
-
关键点总结
- 探索移动保证局部收敛性,模式移动利用函数特征加速搜索。
- 步长缩减策略平衡全局探索与局部精细搜索。
- 本例中模式方向有效利用目标函数的山谷状形态,快速逼近最优解。