非线性规划中的响应面方法基础题
题目描述
考虑一个非线性规划问题:
最小化 \(f(x) = (x_1 - 2)^4 + (x_1 - 2x_2)^2\)
初始点为 \(x^{(0)} = [0.0, 3.0]\),使用响应面方法(Response Surface Methodology, RSM)结合一阶模型和最速下降法进行迭代优化,要求经过两次迭代后估计解的改进情况。RSM 使用中心复合设计(CCD)在初始点附近生成采样点,拟合线性模型并沿负梯度方向搜索。
解题过程
1. 响应面方法的基本思想
响应面方法是一种通过实验设计拟合近似模型(通常为低阶多项式),并基于模型引导搜索的优化技术。核心步骤包括:
- 实验设计:在当前点周围选择采样点(如CCD设计)。
- 模型拟合:用采样点的函数值拟合线性或二次模型。
- 模型优化:在近似模型上寻找改进点,更新当前解。
- 迭代重复:直到收敛。
2. 第一次迭代(k=0)
(1)实验设计
初始点 \(x^{(0)} = [0.0, 3.0]\),设采样步长 \(\Delta = 0.5\)。采用CCD的中心点(当前点)和轴向点(沿各坐标轴偏移±Δ):
- 中心点:\(x^{(0)} = [0.0, 3.0]\)
- 轴向点:
\(x^{(1)} = [0.5, 3.0]\)(x₁方向+Δ)
\(x^{(2)} = [-0.5, 3.0]\)(x₁方向-Δ)
\(x^{(3)} = [0.0, 3.5]\)(x₂方向+Δ)
\(x^{(4)} = [0.0, 2.5]\)(x₂方向-Δ)
(2)计算函数值
- \(f(x^{(0)}) = (0-2)^4 + (0-2×3)^2 = 16 + 36 = 52\)
- \(f(x^{(1)}) = (0.5-2)^4 + (0.5-6)^2 = 5.0625 + 30.25 = 35.3125\)
- \(f(x^{(2)}) = (-0.5-2)^4 + (-0.5-6)^2 = 39.0625 + 42.25 = 81.3125\)
- \(f(x^{(3)}) = (0-2)^4 + (0-7)^2 = 16 + 49 = 65\)
- \(f(x^{(4)}) = (0-2)^4 + (0-5)^2 = 16 + 25 = 41\)
(3)拟合一阶线性模型
设模型为 \(\hat{f}(x) = \beta_0 + \beta_1 x_1 + \beta_2 x_2\)。
通过最小二乘法拟合(中心点权重为1,轴向点权重为1):
- 设计矩阵 \(X\) 和响应向量 \(y\):
\[X = \begin{bmatrix} 1 & 0.0 & 3.0 \\ 1 & 0.5 & 3.0 \\ 1 & -0.5 & 3.0 \\ 1 & 0.0 & 3.5 \\ 1 & 0.0 & 2.5 \end{bmatrix}, \quad y = \begin{bmatrix} 52 \\ 35.3125 \\ 81.3125 \\ 65 \\ 41 \end{bmatrix} \]
- 正规方程:\((X^T X) \beta = X^T y\)。
计算得:
\[X^T X = \begin{bmatrix} 5 & 0 & 15 \\ 0 & 0.5 & 0 \\ 15 & 0 & 45.5 \end{bmatrix}, \quad X^T y = \begin{bmatrix} 274.625 \\ -23 \\ 832.4375 \end{bmatrix} \]
解得:\(\beta_0 = 50.25, \beta_1 = -46, \beta_2 = 10.5\)。
模型为:\(\hat{f}(x) = 50.25 - 46x_1 + 10.5x_2\)。
(4)沿负梯度方向搜索
线性模型的梯度为 \(\nabla \hat{f} = [-46, 10.5]^T\),负梯度方向为 \(d^{(0)} = [46, -10.5]^T\)。
归一化方向:\(\|d^{(0)}\| \approx 47.18\),单位方向 \(u = [0.975, -0.222]\)。
从 \(x^{(0)}\) 出发沿 \(u\) 进行一维搜索(步长 \(t\)):
\(x(t) = [0.0 + 0.975t, 3.0 - 0.222t]\)。
最小化真实函数 \(f(x(t))\):
- 尝试 \(t=1\):\(x = [0.975, 2.778]\),\(f = (0.975-2)^4 + (0.975-5.556)^2 \approx 1.03 + 21.00 = 22.03\)(显著下降)。
接受 \(t=1\),更新 \(x^{(1)} = [0.975, 2.778]\)。
3. 第二次迭代(k=1)
(1)实验设计
以 \(x^{(1)} = [0.975, 2.778]\) 为中心,步长 \(\Delta = 0.3\):
- 中心点:\(x^{(1)}\)
- 轴向点:
\([1.275, 2.778], [0.675, 2.778], [0.975, 3.078], [0.975, 2.478]\)
(2)计算函数值
- \(f(中心) = 22.03\)
- \(f(1.275, 2.778) = (1.275-2)^4 + (1.275-5.556)^2 \approx 0.26 + 18.33 = 18.59\)
- \(f(0.675, 2.778) = (0.675-2)^4 + (0.675-5.556)^2 \approx 3.13 + 23.84 = 26.97\)
- \(f(0.975, 3.078) = (0.975-2)^4 + (0.975-6.156)^2 \approx 1.03 + 26.85 = 27.88\)
- \(f(0.975, 2.478) = (0.975-2)^4 + (0.975-4.956)^2 \approx 1.03 + 15.86 = 16.89\)
(3)拟合一阶模型
设计矩阵与响应向量:
\[X = \begin{bmatrix} 1 & 0.975 & 2.778 \\ 1 & 1.275 & 2.778 \\ 1 & 0.675 & 2.778 \\ 1 & 0.975 & 3.078 \\ 1 & 0.975 & 2.478 \end{bmatrix}, \quad y = \begin{bmatrix} 22.03 \\ 18.59 \\ 26.97 \\ 27.88 \\ 16.89 \end{bmatrix} \]
解得新模型:\(\hat{f}(x) = 22.03 - 14.0(x_1 - 0.975) - 18.3(x_2 - 2.778)\)。
梯度为 \([-14.0, -18.3]^T\),负梯度方向 \(d^{(1)} = [14.0, 18.3]^T\)。
(4)一维搜索
单位方向 \(u = [0.608, 0.794]\)。
沿 \(x(t) = [0.975 + 0.608t, 2.778 + 0.794t]\) 搜索:
- 尝试 \(t=0.5\):\(x = [1.279, 3.175]\),\(f \approx (1.279-2)^4 + (1.279-6.35)^2 \approx 0.26 + 25.70 = 25.96\)(比22.03差,需缩小步长)。
- 尝试 \(t=0.2\):\(x = [1.097, 2.937]\),\(f \approx (1.097-2)^4 + (1.097-5.874)^2 \approx 0.57 + 22.84 = 23.41\)(仍稍差,说明当前点接近局部极小,需调整步长或终止)。
实际应用中可继续精细搜索,但本题要求两次迭代,因此停止在 \(x^{(1)}\)。
4. 结论
经过两次RSM迭代,解从初始点 \([0.0, 3.0]\)(f=52)改进到 \([0.975, 2.778]\)(f=22.03),目标函数值下降约57.6%。响应面方法通过局部近似模型有效引导了搜索方向。