非线性规划中的Hooke-Jeeves模式搜索法进阶题
题目描述
考虑非线性规划问题:
最小化 \(f(x) = (x_1 - 2)^4 + (x_1 - 2x_2)^2\)
初始点 \(x^{(0)} = [0.0, 3.0]\),收敛阈值 \(\epsilon = 10^{-4}\)。
要求使用Hooke-Jeeves模式搜索法求解,并分析其收敛性。
解题过程
-
算法原理回顾
Hooke-Jeeves法由两类移动组成:- 探测移动(Exploratory Move):沿坐标轴方向试探步长,寻找下降点。
- 模式移动(Pattern Move):沿当前点与上一基点的连线方向加速搜索。
参数包括初始步长 \(\delta = 0.5\)(可调整)、步长缩减因子 \(\alpha = 0.5\)。
-
初始化
设基点 \(b^{(0)} = x^{(0)} = [0.0, 3.0]\),当前点 \(p^{(0)} = b^{(0)}\),步长 \(\delta = 0.5\),\(k = 0\)。 -
迭代步骤(以第1轮迭代为例)
-
探测移动:
从 \(p^{(0)} = [0.0, 3.0]\) 开始,沿各坐标轴试探:- \(x_1\) 方向:试探 \([0.0 + \delta, 3.0] = [0.5, 3.0]\),计算 \(f = (0.5-2)^4 + (0.5-6)^2 ≈ 150.0625\),比当前 \(f(0,3) = 620\) 小,接受。
更新 \(p^{(1)} = [0.5, 3.0]\)。 - \(x_2\) 方向:试探 \([0.5, 3.0 - \delta] = [0.5, 2.5]\),\(f ≈ 96.0625\),下降,接受。
更新 \(p^{(1)} = [0.5, 2.5]\)。
探测移动后 \(p^{(1)} = [0.5, 2.5]\),\(f ≈ 96.0625\)。
- \(x_1\) 方向:试探 \([0.0 + \delta, 3.0] = [0.5, 3.0]\),计算 \(f = (0.5-2)^4 + (0.5-6)^2 ≈ 150.0625\),比当前 \(f(0,3) = 620\) 小,接受。
-
判断是否更新基点:
比较 \(f(p^{(1)})\) 与 \(f(b^{(0)})\):
\(f(b^{(0)}) = 620 > f(p^{(1)})\),满足下降条件,设置新基点 \(b^{(1)} = p^{(1)}\)。 -
模式移动:
方向 \(d = b^{(1)} - b^{(0)} = [0.5, -0.5]\),新试探点 \(p_{\text{temp}} = b^{(1)} + d = [1.0, 2.0]\)。
计算 \(f(1.0, 2.0) = (1-2)^4 + (1-4)^2 = 1 + 9 = 10\),优于 \(f(b^{(1)})\)。
从 \(p_{\text{temp}}\) 开始新一轮探测移动(详细步骤略)。
-
-
收敛判断
当步长 \(\delta < \epsilon\) 时停止。若探测移动无法找到更优点,则缩减步长 \(\delta \leftarrow \alpha \delta\)。
本题中,函数为凸且光滑,Hooke-Jeeves法能收敛到全局最优解 \(x^* ≈ [2.0, 1.0]\),\(f(x^*) = 0\)。 -
关键点说明
- 探测移动保证局部下降,模式移动利用历史信息加速。
- 步长管理避免震荡:若模式移动失败,退回基点并缩减步长。
- 对于非光滑问题,需调整步长策略以避免卡在非最优拐点。