习题解答
- 某厂向用户提供发动机。合同规定,第一、二、三季度末分别交货40台、60台、80台。每季度的生产费用为\(f(x) = ax+bx^2\) ( 元 ),其中\(x\)是该季生产的台数。若交货后有剩余,可用于下季度交货,但需支付存储费,每台每季度\(c\)元。已知该厂每季度最大生产能力为100台,第一季度开始时无存货,设\(a\)=50、\(b\)=0.2、\(c\)=4,问工厂应如何安排生产计划,才能既满足合同又使总费用最低?讨论a,b,c变化对计划的影响。
解:设\(x_1,x_2,x_3\)分别表示工厂三季度生产的发动机数量。建立模型如下:
\[\min f=a\left( x_1+x_2+x_3 \right) +b\left( x_{1}^{2}+x_{2}^{2}+x_{3}^{2} \right) +c\left( 2x_1+x_2-140 \right) \]
\[ s.t.\quad \begin{array}{c} x_1 \geq 40\\ x_1+x_2 \geqslant 100\\ x_1+x_2+x_3\geqslant 180\\ 0\leqslant x_1,x_2,x_3\leqslant 100\left( \text{整数} \right) \end{array}
\]
问题的最优解为(50,60,70)。
- 求解下面无约束非线性规划问题:
\[\min\quad f(x)=x_1^2+25x_2^2
\]
其中\(x=(x_1,x_2)^T\)。要求选取初始点\(x^{(0)}=(2,2)^T\),精度\(\epsilon=10^{-6}\)。
问题的最优解为(0,0)。
- 试写出非线性规划问题
\[\min \quad f(X)=x_1^2+x_2^2-4x_1-8x_2
\]
\[s.t. \quad x_1+x_2 \leq 2 \\ x_1 \geq 0,x_2 \geq 0
\]
的Kuhn-Tucker条件(不求解)。
解: (1)改写非线性规划为标准形式,上述约束问题可改写为:
\[\min \quad f(X)=x_1^2+x_2^2-4x_1-8x_2
\]
\[s.t. \quad g_1(X)=x_1+x_2-2 \leq 0 \\ x_1 \geq 0,x_2 \geq 0
\]
(2)求目标函数和约束条件的梯度
\[\nabla f(X)=\left(\begin{array}{l}
2x_1-4 \\
2x_2-8
\end{array}\right), \quad \nabla g_1(X)=\left(\begin{array}{l}
1 \\
1
\end{array}\right) \]
(3)KT条件
\[\nabla f(X)+ \gamma_1 \nabla g_1(X) =\left(\begin{array}{l}
2x_1-4 \\
2x_2-8
\end{array}\right)+\gamma_1\left(\begin{array}{l}
1 \\
1
\end{array}\right)=0 \quad \gamma_1 \geq 0
\]
注意:两个变量的取值都是非负,为KT条件更为约减,没有变成约束。
- 求解下面非线性规划问题
\[\begin{array}{l}
\min \quad f(x) = x_1^2 + x_2^2 + x_3^2 + 8\\
s.t. \quad \left\{ {\begin{array}{*{20}{c}}
{x_1^2 - {x_2} + x_3^2 \ge 0}\\
{{x_1} + x_2^2 + x_3^3 \le 20}\\
{ - {x_1} - x_2^2 + 2 = 0}\\
{{x_2} + 2x_3^2 = 3}\\
{{x_1},{x_2},{x_3} \ge 0}
\end{array}} \right.
\end{array}
\]
最优解为(0.552,1.203,0.948),最优值为10.651。
- 考虑非线性规划问题
\[min \quad (x_{1}-3)^2+(x_{2}-2)^2\\
-x_{1}^{2}-x_{2}^{2}\geqslant 5\\ x_{1}+2x_{2}= 4\\ x_{1}, x_{2}\geqslant 0
\]
检验\(X^{(1)}=(2,1)^{^{T}}\),是否为KT点。
解:(1)改写非线性规划为标准形式,上述约束问题可改写为:
\[min \quad f(X)= (x_{1}-3)^2+(x_{2}-2)^2 \\
g_1(X)=x_{1}^{2}+x_{2}^{2}-5 \leqslant 0\\ g_2(X)=x_{1}+2x_{2}-4=0\\ x_{1}, x_{2}\geqslant 0
\]
将\(X^{(1)}=(2,1)^{^{T}}\)代入上述约束条件,发现\(X^{(1)}\)正好在前两个约束条件的边界上,因此前两个约束是起作用约束。
(2)求目标函数和约束条件的梯度
\[\nabla f(X)=\left(\begin{array}{l}
2 (x_1-3) \\
2(x_2-2)
\end{array}\right), \quad \nabla g_1(X)=\left(\begin{array}{l}
2 x_1 \\
2 x_2
\end{array}\right), \quad \nabla g_2(X)=\left(\begin{array}{l}
1 \\
2
\end{array}\right) \]
(3)判断是否满足KT条件
\[\nabla f\left(X^{(1)}\right)+ \gamma_1 \nabla g_1\left(X^{(1)}\right)+\mu_1 \nabla g_2\left(X^{(1)}\right)=\left(\begin{array}{l}
-2 \\
-2
\end{array}\right)+\gamma_1\left(\begin{array}{l}
4 \\
2
\end{array}\right)+\mu_1\left(\begin{array}{l}
1 \\
2
\end{array}\right)=\left(\begin{array}{l}
0 \\
0
\end{array}\right)
\]
得 \(\gamma_1=\frac{1}{3}>0, \mu_1=\frac{2}{3}\), 故 \(X^{(1)}=(2,1)^{^{T}}\) 满足 Kuhn-Tucker 条 件。
- 用梯度法(最速下降法)求下述函数的极小点。
\[f(X) = (x_1 - 2)^2 + (x_2 - 1)^2
\]
解:取初始点 \(X^{(0)} = (0, 0)^T\)。
\[\nabla f(X) = [2(x_1 - 2), 2(x_2 - 1)]^T, \quad \nabla f(X^{(0)}) = (-4, -2)^T
\]
\[\nabla^2 f(X) =
\begin{pmatrix}
2 & 0 \\
0 & 2
\end{pmatrix}
\]
\[\lambda_0 = \frac{\nabla f(X^{(0)})^T \nabla f(X^{(0)})}{\nabla f(X^{(0)})^T \nabla^2 f(X) \nabla f(X^{(0)})}
= \frac{(-4, -2)
\begin{pmatrix}
-4 \\
-2
\end{pmatrix}}{(-4, -2)
\begin{pmatrix}
2 & 0 \\
0 & 2
\end{pmatrix}
\begin{pmatrix}
-4 \\
-2
\end{pmatrix}} = \frac{20}{40} = \frac{1}{2}
\]
\[X^{(1)} = X^{(0)} - \lambda_0 \nabla f(X^{(0)})
=
\begin{pmatrix}
0 \\
0
\end{pmatrix}
- \frac{1}{2}
\begin{pmatrix}
-4 \\
-2
\end{pmatrix}
=
\begin{pmatrix}
2 \\
1
\end{pmatrix}
\]
\[\nabla f(X^{(1)}) = (0, 0)^T, \quad \text{故 } X^{(1)} \text{为极小点,其极小值 } f(X^{(1)}) = 0。
\]
- 用梯度法(最速下降法)求函数\(f(X) = x_1^2 + 5x_2^2\)的极小点,取允误差\(\varepsilon = 0.7\)。
解:取初始点 \(X^{(0)} = (2, 1)^T\)。
\[\nabla f(X) = (2x_1, 10x_2)^T, \quad \nabla f(X^{(0)}) = (4, 10)^T
\]
\[\nabla^2 f(X) =
\begin{pmatrix}
2 & 0 \\
0 & 10
\end{pmatrix}
\]
\[\lambda_0 = \frac{\nabla f(X^{(0)})^T \nabla f(X^{(0)})}{\nabla f(X^{(0)})^T \nabla^2 f(X) \nabla f(X^{(0)})}
= \frac{(4, 10)
\begin{pmatrix}
4 \\
10
\end{pmatrix}}{(4, 10)
\begin{pmatrix}
2 & 0 \\
0 & 10
\end{pmatrix}
\begin{pmatrix}
4 \\
10
\end{pmatrix}}
= 0.1124
\]
\[X^{(1)} = X^{(0)} - \lambda_0 \nabla f(X^{(0)})
=
\begin{pmatrix}
2 \\
1
\end{pmatrix}
- 0.1124
\begin{pmatrix}
4 \\
10
\end{pmatrix}
=
\begin{pmatrix}
1.5504 \\
-0.1240
\end{pmatrix}
\]
- 计算新梯度\(\nabla f(X^{(1)})\)
\[\nabla f(X^{(1)}) =
\begin{pmatrix}
3.1008 \\
-1.2400
\end{pmatrix}
\]
\[\|\nabla f(X^{(1)})\|^2 = 11.1526 > \varepsilon
\]
由于梯度的平方范数大于允许误差\(\varepsilon\),算法未收敛,需继续迭代。
\[\lambda_1 = \frac{\nabla f(X^{(1)})^T \nabla f(X^{(1)})}{\nabla f(X^{(1)})^T \nabla^2 f(X) \nabla f(X^{(1)})}
= \frac{
\begin{pmatrix}
3.1008 \\
-1.2400
\end{pmatrix}^T
\begin{pmatrix}
3.1008 \\
-1.2400
\end{pmatrix}
}{
\begin{pmatrix}
3.1008 \\
-1.2400
\end{pmatrix}^T
\begin{pmatrix}
2 & 0 \\
0 & 10
\end{pmatrix}
\begin{pmatrix}
3.1008 \\
-1.2400
\end{pmatrix}
}
= 0.3223
\]
更新点 \(X^{(2)}\):
\[X^{(2)} = X^{(1)} - \lambda_1 \nabla f(X^{(1)})
=
\begin{pmatrix}
1.5504 \\
-0.1240
\end{pmatrix}
- 0.3223
\begin{pmatrix}
3.1008 \\
-1.2400
\end{pmatrix}
=
\begin{pmatrix}
0.5510 \\
0.2757
\end{pmatrix}
\]
计算新的梯度 \(\nabla f(X^{(2)})\):
\[\nabla f(X^{(2)}) =
\begin{pmatrix}
1.102 \\
2.757
\end{pmatrix}, \quad
\|\nabla f(X^{(2)})\|^2 = 8.815 > \varepsilon
\]
\[\lambda_2 = \frac{
\begin{pmatrix}
1.102 \\
2.757
\end{pmatrix}^T
\begin{pmatrix}
1.102 \\
2.757
\end{pmatrix}
}{
\begin{pmatrix}
1.102 \\
2.757
\end{pmatrix}^T
\begin{pmatrix}
2 & 0 \\
0 & 10
\end{pmatrix}
\begin{pmatrix}
1.102 \\
2.757
\end{pmatrix}
}
= 0.1124
\]
更新点 \(X^{(3)}\):
\[X^{(3)} = X^{(2)} - \lambda_2 \nabla f(X^{(2)})
=
\begin{pmatrix}
0.5510 \\
0.2757
\end{pmatrix}
- 0.1124
\begin{pmatrix}
1.102 \\
2.757
\end{pmatrix}
=
\begin{pmatrix}
0.4271 \\
-0.03419
\end{pmatrix}
\]
计算新的梯度 \(\nabla f(X^{(3)})\):
\[\nabla f(X^{(3)}) =
\begin{pmatrix}
0.8542 \\
-0.3419
\end{pmatrix}, \quad
\|\nabla f(X^{(3)})\|^2 = 0.8466 > \varepsilon
\]
\[\lambda_3 = \frac{
\begin{pmatrix}
0.8542 \\
-0.3419
\end{pmatrix}^T
\begin{pmatrix}
0.8542 \\
-0.3419
\end{pmatrix}
}{
\begin{pmatrix}
0.8542 \\
-0.3419
\end{pmatrix}^T
\begin{pmatrix}
2 & 0 \\
0 & 10
\end{pmatrix}
\begin{pmatrix}
0.8542 \\
-0.3419
\end{pmatrix}
}
= 0.3221
\]
更新点 \(X^{(4)}\):
\[X^{(4)} = X^{(3)} - \lambda_3 \nabla f(X^{(3)})
=
\begin{pmatrix}
0.4271 \\
-0.03419
\end{pmatrix}
- 0.3221
\begin{pmatrix}
0.8542 \\
-0.3419
\end{pmatrix}
=
\begin{pmatrix}
0.152 \\
0.0759
\end{pmatrix}
\]
计算新的梯度 \(\nabla f(X^{(4)})\):
\[\nabla f(X^{(4)}) =
\begin{pmatrix}
0.304 \\
0.759
\end{pmatrix}, \quad
\|\nabla f(X^{(4)})\|^2 = 0.6685 < \varepsilon
\]
故 \(X^{(4)} = (0.152, 0.0759)^T\) 为近似极小点,此时的函数值为:\(f(X^{(4)}) = 0.0519\)。
- 用库恩—塔克条件求解下面非线性规划
\[\max f(x) = (x - 4)^2\\
1 \leq x \leq 6
\]
解:先将其变为问题标准的形式:
\[\begin{cases}
\min f(x) = -(x - 4)^2, \\
g_1(x) = x - 1 \geq 0, \\
g_2(x) = 6 - x \geq 0.
\end{cases}
\]
设\(K-T\)点为\(x^*\),各函数的梯度为:
\[\nabla f(x) = -2(x - 4), \quad \nabla g_1(x) = 1, \quad \nabla g_2(x) = -1.
\]
对第一个和第二个约束条件分别引入广义拉格朗日乘子\(u_1^*\)、\(u_2^*\),则得该问题的\(K-T\)条件如下:
\[\begin{cases}
-2(x^* - 4) - u_1^* - u_2^* = 0, \\
u_1^* (x^* - 1) = 0, \\
u_2^* (6 - x^*) = 0, \\
u_1^* \geq 0, \ u_2^* \geq 0.
\end{cases}
\]
为解该方程组,需要考虑以下几种情况:
-
\(u_1^* > 0, u_2^* > 0\):无解。
-
\(u_1^* > 0, u_2^* = 0\):\(x^* = 1, \ f(x^*) = 9\)
-
\(u_1^* = 0, u_2^* = 0\):\(x^* = 4, \ f(x^*) = 0\)
-
\(u_1^* = 0, u_2^* > 0\):\(x^* = 6, \ f(x^*) = 4\)
对应上述后面三种情形,我们得到了三个\(K-T\) 点,其中:
- \(x^* = 1\)和 \(x^* = 6\) 为极大值点,且 \(x^* = 1\)为最大值点,最大值\(f(x^*) = 9\);
- \(x^* = 4\)为可行域的内点,它不是该问题的极大值点,而是极小点。
- 用罚函数法求解
\[\begin{cases}
\min f(x) = \left( x - \frac{1}{2} \right)^2, \\
x \leq 0
\end{cases}
\]
解 构造罚函数
\[P(x, M) = f(x) + M \left[ \min(0, g(x)) \right]^2 = \left( x - \frac{1}{2} \right)^2 + M \left[ \min(0, -x) \right]^2
\]
对于固定的\(M\),令
\[\frac{dP(x, M)}{dx} = 2 \left( x - \frac{1}{2} \right) - 2M \left[ \min(0, -x) \right] = 0
\]
对于不满足约束条件的点\(x\),有
\[2 \left( x - \frac{1}{2} \right) + 2Mx = 0
\]
从而求得其最小值点\(x(M)\)如下:
\[x(M) = \frac{1}{2(1 + M)}
\]
当 \(M = 0\)时,\(x(M) = \frac{1}{2}\);当\(M = 1\)时,\(x(M) = \frac{1}{4}\);
当\(M = 10\)时,\(x(M) = \frac{1}{22}\);当\(M \to \infty\)时,\(x(M) \to 0\),说明原约束问题的极小点是\(x^* = 0\)。
10 用罚函数法求解
\[\begin{cases}
\min f(X) = x_1 \\
g_1(X) = 2 - x_2 - (x_1 - 1)^3 \geq 0 \\
g_2(X) = x_2 - 2 - (x_1 - 1)^3 \geq 0 \\
g_3(X) = x_1 \geq 0 \\
g_4(X) = x_2 \geq 0
\end{cases}
\]
解 构造罚函数
\[\begin{aligned}
P(X, M) = & -x_1 + M \left[ 2 - x_2 - (x_1 - 1)^3 \right]^2 u_1 \big( g_1(X) \big) \\
& + M \left[ x_2 - 2 - (x_1 - 1)^3 \right]^2 u_2 \big( g_2(X) \big) \\
& + Mx_1^2 u_3 \big( g_3(X) \big) + Mx_2^2 u_4 \big( g_4(X) \big)
\end{aligned}
\]
\[\begin{aligned}
\frac{\partial P(X, M)}{\partial x_1} = & -1 - 6M \left[ 2 - x_2 - (x_1 - 1)^3 \right] (x_1 - 1)^2 u_1 \big( g_1(X) \big) \\
& - 6M \left[ x_2 - 2 - (x_1 - 1)^3 \right] (x_1 - 1)^2 u_2 \big( g_2(X) \big) \\
& + 2Mx_1 u_3 \big( g_3(X) \big)
\end{aligned}
\]
\[\frac{\partial P(X, M)}{\partial x_2} = -2 M \left[ 2 - x_2 - (x_1 - 1)^3 \right] u_1(g_1(X)) + 2 M \left[ x_2 - 2 - (x_1 - 1)^3 \right] u_2(g_2(X))
\]
\[+ 2 M x_2 u_4(g_4(X))
\]
现考虑第一象限中的点,可令
\[u_1(g_1(X)) = u_2(g_2(X)) = 1
\]
\[u_3(g_3(X)) = u_4(g_4(X)) = 0
\]
为求极值点,令
\[\frac{\partial P(X, M)}{\partial x_2} = 0
\]
得到\(x_2^* = 2\)
再令 \(\frac{\partial P(X, M)}{\partial x_1} = 0\),并代入上述结果,得
\[(x_1 - 1)^5 = \frac{1}{12 M}
\]
令 \(M \rightarrow \infty\),得 \(x_1^* = 1\),即该问题的最优点是\(X^* = (1, 2)^T\)。
- 用共轭下降法计算函数 $ f(x_1, x_2) = x_1^2 + x_2^2 - x_1 x_2 + x_1 + x_2 + 1 $ 的极小点和极小值,设初始点为 $ x^0 = (0,0)^T $,迭代误差为 $ \varepsilon = 0.05 $。
解 因为函数 $ f(x_1, x_2) $ 的梯度为:$ \nabla f(x_1, x_2) = \begin{pmatrix} 2x_1 - x_2 + 1 \ 2x_2 - x_1 + 1 \end{pmatrix} $,那么在点 $ x^0 = \begin{pmatrix} 0 \ 0 \end{pmatrix} $ 的梯度值等于:$ \nabla f(x^0) = \begin{pmatrix} 1 \ 1 \end{pmatrix} $。令 $ d^0 = -\nabla f(x^0) = \begin{pmatrix} -1 \ -1 \end{pmatrix} $,则有
\[x^1 = x^0 + \alpha d^0 = \begin{pmatrix} 0 \\ 0 \end{pmatrix} + \alpha \begin{pmatrix} -1 \\ -1 \end{pmatrix} = \begin{pmatrix} -\alpha \\ -\alpha \end{pmatrix}
\]
将 $ x^1 $ 代入目标函数中,有:$ f(x^1) = \alpha^2 + 2\alpha + 1 $,求解步长 $ \alpha_0 $,使得
\[f(x^0 + \alpha_0 d^0) = \min_{\alpha \geq 0} \{ \alpha^2 + 2\alpha + 1 \}
\]
为此,令 $ \frac{d}{d\alpha} (\alpha^2 + 2\alpha + 1) = 2\alpha + 2 = 0 $,求得 $ \alpha_0 = -1 $,所以,
\[x^1 = x^0 + \alpha_0 d^0 = \begin{pmatrix} 0 \\ 0 \end{pmatrix} -1 \begin{pmatrix} -1 \\ -1 \end{pmatrix} = \begin{pmatrix} 1 \\ 1 \end{pmatrix}
\]
计算 $ f(x_1, x_2) $ 在点 $ x^1 $ 处的梯度值,有 $ \nabla f(x^1) = \begin{pmatrix} 2 \ 2 \end{pmatrix} $。计算 $ f(x_1, x_2) $ 在点 $ x^1 $ 处的搜索方向:
\[\begin{align*}
\beta_1 &= \left( \frac{\|\nabla f(x^1)\|}{\|\nabla f(x^0)\|} \right)^2 = \left( \frac{\sqrt{(2)^2 + (2)^2}}{\sqrt{1^2 + 1^2}} \right)^2 = 4 \\
d^1 &= -\nabla f(x^1) + \beta_1 d^0 = -\begin{pmatrix} 2 \\ 2 \end{pmatrix} + 4 \begin{pmatrix} -1 \\ -1 \end{pmatrix} = \begin{pmatrix} -6 \\ -6 \end{pmatrix} \\
x^2 &= x^1 + \alpha d^1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix} + \alpha \begin{pmatrix} -6 \\ -6 \end{pmatrix} = \begin{pmatrix} 1 - 6\alpha \\ 1 - 6\alpha \end{pmatrix}
\end{align*}
\]
将 $ x^2 $ 代入目标函数中,有:$ f(x^2) = 36\alpha^2 - 24\alpha + 4 $,求解步长 $ \alpha_1 $,使得
\[f(x^1 + \alpha_1 d^1) = \min_{\alpha \geq 0} \{ 36\alpha^2 - 24\alpha + 4 \}
\]
为此,令 $ \frac{d}{d\alpha} (36\alpha^2 - 24\alpha + 4) = 72\alpha - 24 = 0 $,求得 $ \alpha_1 = \frac{1}{3} $,所以,
\[x^2 = x^1 + \alpha_1 d^1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix} + \frac{1}{3} \begin{pmatrix} -6 \\ -6 \end{pmatrix} = \begin{pmatrix} -1 \\ -1 \end{pmatrix}
\]
计算 $ f(x_1, x_2) $ 在点 $ x^2 $ 处的梯度值:$ \nabla f(x^2) = \begin{pmatrix} 0 \ 0 \end{pmatrix} $,由于 $ |\nabla f(x^2)| = 0 \leq 0.05 $,那么 $ x^2 $ 是局部极小点,对应 $ x^2 $ 的局部极小值为 $ f(-1, -1) = 0 $,迭代结束。
- 文化传播公司预算 10,000 元的广告投入。电视广告费为每分钟 3,000 元;电台广告费为每分钟 1,000 元。如果公司购买 \(x\) 分钟电视广告,和 \(y\) 分钟电台广告,其销售收入为:
\[f(x, y) = -2x^2 - y^2 + xy + 8x + 3y
\]
问公司是否有增加广告预算的余地?
解 我们将它表示成下述非线性规划问题:
\[\min f(x, y) = -2x^2 - y^2 + xy + 8x + 3y
\]
\[\text{s.t.} \begin{cases}
3x + y = 10 \\
x \geq 0, y \geq 0
\end{cases}
\]
那么 $$ L(x, y, \lambda) = -2x^2 - y^2 + xy + 8x + 3y + \lambda(10 - 3x - y)$$
我们设:
\[\frac{\partial L}{\partial x} = \frac{\partial L}{\partial y} = \frac{\partial L}{\partial \lambda} = 0
\]
则:
\[\begin{align*}
\frac{\partial L}{\partial x} &= -4x + y + 8 - 3\lambda = 0 \\
\frac{\partial L}{\partial y} &= -2y + x + 3 - \lambda = 0 \\
\frac{\partial L}{\partial \lambda} &= 10 - 3x - y = 0
\end{align*}
\]
求解后,获得:
\[x^* = \frac{69}{28}, \quad y^* = \frac{73}{28}, \quad \lambda^* = \frac{1}{4}
\]
因为 \(\lambda^* = \frac{1}{4}\),这说明如果该公司继续增加广告预算,比如说,\(\delta\)(元),就可增加 $ 0.25\delta $(元)销售收入。
- 假设你是一家公司的销售经理,负责优化某个产品的销售策略。根据历史数据和市场分析,你确定了一个销售指标公式 $ f(x) = -x_1 - x_2 + 2x_1^2 + 2x_1x_2 + x_2^2 $ 来评估不同的销售策略,其中,销售策略的参数由 $ x_1 $ 和 $ x_2 $ 描述,表示采用不同的促销手段和定价策略,为了确保销售策略的可行性,促销手段和定价策略均不能为负值。根据给定的指标公式,你应该如何确定最佳的销售策略参数,以使得该指标最小?(终止误差 $ \varepsilon = 0.3 $ )
解 根据题目可得出
\[\min f(x) = -x_1 - x_2 + 2x_1^2 + 2x_1x_2 + x_2^2
\]
取初始点为 $ X^{(1)} = (0,0)^T, \varepsilon = 0.3 $
目标函数 $ f(x) $ 的梯度为:
\[\nabla f(x) = \begin{bmatrix} \frac{\partial f(x)}{\partial x_1} \\ \frac{\partial f(x)}{\partial x_2} \end{bmatrix} = \begin{bmatrix} -1 + 4x_1 + 2x_2 \\ -1 + 2x_1 + 2x_2 \end{bmatrix}
\]
即 $ \nabla f(X^{(1)}) = \begin{bmatrix} -1 \ -1 \end{bmatrix} $,由于 $ |\nabla f(X^{(1)})| \approx 1.4142 > 0.3 $,令搜索方向 $ d^{(1)} = -\nabla f(X^{(1)}) = \begin{bmatrix} 1 \ 1 \end{bmatrix} $,再从 $ X^{(1)} $ 出发,沿 $ d^{(1)} $ 方向作一维寻优,令步长变量为 $ \lambda $,最优步长为 $ \lambda_1 $,则有
\[X^{(1)} + \lambda d^{(1)} = \begin{bmatrix} 0 \\ 0 \end{bmatrix} + \lambda \begin{bmatrix} 1 \\ 1 \end{bmatrix} = \begin{bmatrix} \lambda \\ \lambda \end{bmatrix}
\]
故 $ f(x) = f(X^{(1)} + \lambda d^{(1)}) = -\lambda - \lambda + 2\lambda^2 + 2\lambda\lambda + \lambda^2 = 5\lambda^2 - 2\lambda = \varphi_1(\lambda) $ 令 $ \varphi_1'(\lambda) = 10\lambda - 2 = 0 $,可得 $ \lambda_1 = \frac{1}{5}, X^{(2)} = X^{(1)} + \lambda_1 d^{(1)} = \begin{bmatrix} 0 \ 0 \end{bmatrix} + \frac{1}{5} \begin{bmatrix} 1 \ 1 \end{bmatrix} = \begin{bmatrix} 0.2 \ 0.2 \end{bmatrix} $ 求出 $ X^{(2)} $ 点之后,与上类似地,进行第二次迭代:$ \nabla f(X^{(2)}) = \begin{bmatrix} 0.2 \ -0.2 \end{bmatrix} $
由于 $ |\nabla f(X^{(2)})| \approx 0.2828 < 0.3 $,故 $ X^{(2)} = \begin{bmatrix} 0.2 \ 0.2 \end{bmatrix} $ 为近似极小点,此时的函数值 $ f(X^*) = 0.48 $。
- 某一施工单位希望设计一座跨越一条河流的桥梁,为了提高桥梁的性能,需要使得函数 $ f(x) = 2x_1^2 + 2x_1x_2 + x_2^2 - 10x_1 - 10x_2 $ 最小,希望桥梁在材料使用和结构设计上能够达到最佳的效果,以提高桥梁的承重能力、稳定性和耐久性。其中,变量 $ x_1 $ 和 $ x_2 $ 分别代表桥梁的设计参数。为了避免过分复杂的结构和不切实际的设计,桥梁的设计参数的取值必须满足 $ x_1^2 + x_2^2 \leq 5 $。另外,桥梁的设计参数 $ x_1 $ 和 $ x_2 $ 的线性组合必须满足 $ 3x_1 + x_2 \leq 6 $。
根据上述对问题的描述,可以明确的看出该优化问题是在有约束条件下求取最小值,我们可以使用库恩-塔克条件来解决。通过对约束条件引入广义拉格朗日乘子,分情况对引入的约束条件进行讨论,如果可以找到一组满足库恩-塔克条件的可行点和广义拉格朗日乘子,就能够找到该问题的最优点。
\[\begin{align*}
\min f(X) &= 2x_1^2 + 2x_1x_2 + x_2^2 - 10x_1 - 10x_2 \\
\text{s.t.} &\left\{
\begin{array}{l}
x_1^2 + x_2^2 \leq 5 \\
3x_1 + x_2 \leq 6
\end{array}
\right.
\end{align*}
\]
解 将约束条件化成一般形式:
\[\left\{
\begin{array}{l}
g_1(X) = -x_1^2 - x_2^2 + 5 \geq 0 \\
g_2(X) = -3x_1 - x_2 + 6 \geq 0
\end{array}
\right.
\]
设库恩-塔克点位 $ X^* = (x_1, x_2)^T $,各函数梯度为
\[\nabla f(X^*) = \begin{bmatrix} 4x_1 + 2x_2 - 10 \\ 2x_1 + 2x_2 - 10 \end{bmatrix}, \quad \nabla g_1(X^*) = \begin{bmatrix} -2x_1 \\ -2x_2 \end{bmatrix}, \quad \nabla g_2(X^*) = \begin{bmatrix} -3 \\ -1 \end{bmatrix}
\]
对约束条件进入广义拉格朗日乘子 $ \mu_1^* $ 和 $ \mu_2^* $,得该问题的库恩-塔克条件如下:
\[\left\{
\begin{array}{l}
\begin{bmatrix} 4x_1 + 2x_2 - 10 \\ 2x_1 + 2x_2 - 10 \end{bmatrix} - \mu_1 \begin{bmatrix} -2x_1 \\ -2x_2 \end{bmatrix} - \mu_2 \begin{bmatrix} -3 \\ -1 \end{bmatrix} = 0 \\
\mu_1(5 - x_1^2 - x_2^2) = 0 \\
\mu_2(6 - 3x_1 - x_2) = 0 \\
\mu_1 \geq 0 \\
\mu_2 \geq 0
\end{array}
\right.
\]
\[\left\{
\begin{array}{l}
4x_1 + 2x_2 - 10 + 2\mu_1 x_1 + 3\mu_2 = 0 \\
2x_1 + 2x_2 - 10 + 2\mu_1 x_2 + \mu_2 = 0 \\
\mu_1(5 - x_1^2 - x_2^2) = 0 \\
\mu_2(6 - 3x_1 - x_2) = 0 \\
\mu_1 \geq 0 \\
\mu_2 \geq 0
\end{array}
\right.
\]
(1) 两个约束都是不起作用约束,则有 \(\mu_1 = 0, \mu_2 = 0\),得到方程组:
\[\left\{
\begin{array}{l}
4x_1 + 2x_2 - 10 = 0 \\
2x_1 + 2x_2 - 10 = 0
\end{array}
\right.
\]
解得:
\[\left\{
\begin{array}{l}
x_1 = 0 \\
x_2 = 5
\end{array}
\right.
\]
代入约束条件,不满足 \(g_i(X) \geq 0\),因此该点不是可行点。
(2) \(g_1(X) \geq 0\) 是起作用约束,\(g_2(X) \geq 0\) 是不起作用约束,则有 \(\mu_2 = 0\),得到方程组:
\[\left\{
\begin{array}{l}
4x_1 + 2x_2 - 10 + 2\mu_1 x_1 = 0 \\
2x_1 + 2x_2 - 10 + 2\mu_1 x_2 = 0 \\
\mu_1(5 - x_1^2 - x_2^2) = 0 \\
\mu_1 \geq 0
\end{array}
\right.
\]
解得:
\[\left\{
\begin{array}{l}
x_1 = 1 \\
x_2 = 2 \\
\mu_1 = 1 \\
\mu_2 = 0
\end{array}
\right.
\]
代入原问题检验,可知该点为可行点,且满足 K-T 定理的条件,又是一个正则点,故它是一个 K-T 点。
因为 \(g_1(X) \geq 0\) 是起作用约束,此时可以是 \(\mu_1 > 0\),也可以是 \(\mu_1 = 0\),后一种情况与(1)相同,已知不可行。
(3) $ g_1(X) \geq 0 $ 是不起作用约束,$ g_2(X) \geq 0 $ 是起作用约束,则 $ \mu_1 = 0 $
\[\left\{
\begin{array}{l}
4x_1 + 2x_2 - 10 + 3\mu_2 = 0 \\
2x_1 + 2x_2 - 10 + \mu_2 = 0 \\
\mu_2(6 - 3x_1 - x_2) = 0 \\
\mu_2 \geq 0
\end{array}
\right.
\]
解得 $ \mu_2 = 0 $,同(1)的结果;或 $ \mu_2 = -\frac{2}{5} $,舍去。
(4) 两个约束都是起作用约束,则 $ \mu_1 > 0, \mu_2 > 0 $
\[\left\{
\begin{array}{l}
4x_1 + 2x_2 - 10 + 2\mu_1 x_1 + 3\mu_2 = 0 \\
2x_1 + 2x_2 - 10 + 2\mu_1 x_2 + \mu_2 = 0 \\
5 - x_1^2 - x_2^2 = 0 \\
6 - 3x_1 - x_2 = 0
\end{array}
\right.
\]
解得
\[\left\{
\begin{array}{l}
x_1 = 1.43 \\
x_2 = 1.72 \\
\mu_1 = 1.37 \\
\mu_2 = -1.02
\end{array}
\right.
\]
舍去。
因此本题的 K-T 点为 $ X^* = (1, 2)^T $,同时本题 $ f(X) $ 为凸函数,而 $ g_1(X) \geq 0 $ 为凹函数,$ g_2(X) \geq 0 $ 为线性函数,也可视为凹函数,所以此题为凸规划。对于凸规划 K-T 条件也是充分条件,所以 $ X^* = (1, 2)^T $ 也是本题的全局最小点,最小值。
- 利用可行方向法求解以下非线性规划问题
\[\min f(X) = x_1^2 + x_2^2 - 4x_1 - 4x_2 + 8, \quad x_1 + 2x_2 - 4 \leq 0
\]
从初始点 $ X^{(0)} = \begin{bmatrix} 0 \ 0 \end{bmatrix} $ 出发,进行迭代求解。
初始化
- 初始点:$ X^{(0)} = \begin{bmatrix} 0 \ 0 \end{bmatrix} $
- 约束检查: $ g(X^{(0)}) = x_1 + 2x_2 - 4 = 0 + 2 \cdot 0 - 4 = -4 \leq 0 $ 初始点满足约束条件,可行。
可行方向法步骤
目标函数:
\[f(X) = x_1^2 + x_2^2 - 4x_1 - 4x_2 + 8
\]
其梯度为:
\[\nabla f(X) = \begin{bmatrix} 2x_1 - 4 \\ 2x_2 - 4 \end{bmatrix}
\]
约束函数:
\[g(X) = x_1 + 2x_2 - 4
\]
其梯度为:
\[\nabla g(X) = \begin{bmatrix} 1 \\ 2 \end{bmatrix}
\]
在初始点 $ X^{(0)} = \begin{bmatrix} 0 \ 0 \end{bmatrix} $ 处:
\[\nabla f(X^{(0)}) = \begin{bmatrix} -4 \\ -4 \end{bmatrix}, \quad \nabla g(X^{(0)}) = \begin{bmatrix} 1 \\ 2 \end{bmatrix}
\]
可行方向需满足以下条件:
\(d^T \nabla f(X) < 0\)(目标函数下降)。
\(d^T \nabla g(X) \leq 0\)(满足约束条件)。
设下降方向为 $ d = \begin{bmatrix} d_1 \ d_2 \end{bmatrix} $,联立解得:
\[d = -\nabla f(X^{(0)}) = \begin{bmatrix} 4 \\ 4 \end{bmatrix}
\]
在线搜索中,寻找步长 $ \alpha $,使得 $ f(X^{(0)} + \alpha d) $ 最小。
将方向 $ d = \begin{bmatrix} 4 \ 4 \end{bmatrix} $ 和初始点 $ X^{(0)} = \begin{bmatrix} 0 \ 0 \end{bmatrix} $ 代入目标函数:
\[f(X^{(0)} + \alpha d) = f\left(\begin{bmatrix} 4\alpha \\ 4\alpha \end{bmatrix}\right)
\]
目标函数展开为:
\[f(X) = x_1^2 + x_2^2 - 4x_1 - 4x_2 + 8
\]
代入 $ X = \begin{bmatrix} 4\alpha \ 4\alpha \end{bmatrix} $:
\[f(\alpha) = (4\alpha)^2 + (4\alpha)^2 - 4(4\alpha) - 4(4\alpha) + 8
\]
化简为:
\[f(\alpha) = 32\alpha^2 - 32\alpha + 8
\]
这是一个开口向上的二次函数,最小值对应顶点:
\[\alpha = -\frac{b}{2a} = -\frac{-32}{2 \cdot 32} = \frac{1}{2}
\]
根据更新公式:
\[X^{(1)} = X^{(0)} + \alpha d = \begin{bmatrix} 0 \\ 0 \end{bmatrix} + \frac{1}{2} \begin{bmatrix} 4 \\ 4 \end{bmatrix} = \begin{bmatrix} 2 \\ 2 \end{bmatrix}
\]
在新点 $ X^{(1)} = \begin{bmatrix} 2 \ 2 \end{bmatrix} $ 处:
\[g(X^{(1)}) = x_1 + 2x_2 - 4 = 2 + 2 \cdot 2 - 4 = 2 \leq 0
\]
约束条件仍然满足。
在 $ X^{(1)} $ 处,计算目标函数梯度:
\[\nabla f(X^{(1)}) = \begin{bmatrix} 2x_1 - 4 \\ 2x_2 - 4 \end{bmatrix} = \begin{bmatrix} 2 \cdot 2 - 4 \\ 2 \cdot 2 - 4 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}
\]
梯度为零,说明已经达到最优解。
最优解为:
\[X^* = \begin{bmatrix} 2 \\ 2 \end{bmatrix}
\]
目标函数值:
\[f(X^*) = 2^2 + 2^2 - 4 \cdot 2 - 4 \cdot 2 + 8 = 0
\]
- 使用共轭梯度法求解以下二次函数的极小点
\[f(X) = \frac{1}{2} X^T A X
\]
其中:
\[A = \begin{bmatrix} 1 & 1 \\ 1 & 2 \end{bmatrix}
\]
共轭梯度法的主要步骤包括:
初始化变量和参数。
计算初始梯度,确定搜索方向。
使用线搜索更新步长。
更新搜索方向并继续迭代,直至梯度收敛到零。
初始化点设为:
\[X^{(0)} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}
\]
初始梯度为:
\[g^{(0)} = \nabla f(X^{(0)}) = A X^{(0)} = \begin{bmatrix} 1 & 1 \\ 1 & 2 \end{bmatrix} \begin{bmatrix} 0 \\ 0 \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}
\]
初始搜索方向:
\[d^{(0)} = -g^{(0)} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}
\]
假设当前迭代点为 $ X^{(k)} $,对应梯度为 $ g^{(k)} $,搜索方向为 $ d^{(k)} $。
(1)线搜索
确定步长 $ \alpha_k $:
\[\alpha_k = -\frac{g^{(k)^T} d^{(k)}}{d^{(k)^T} A d^{(k)}}
\]
(2)更新变量
更新点:
\[X^{(k+1)} = X^{(k)} + \alpha_k d^{(k)}
\]
(3)更新梯度
计算新的梯度:
\[g^{(k+1)} = \nabla f(X^{(k+1)}) = A X^{(k+1)}
\]
(4)更新搜索方向
搜索方向使用以下公式:
\[\beta_k = \frac{g^{(k+1)^T} g^{(k+1)}}{g^{(k)^T} g^{(k)}}
\]
\[d^{(k+1)} = -g^{(k+1)} + \beta_k d^{(k)}
\]
迭代至梯度满足 $ | g^{(k)} | < \epsilon $ 为止。
根据矩阵 $$ A = \begin{bmatrix} 1 & 1 \\ 1 & 2 \end{bmatrix} $$,详细迭代如下:
第 0 步:
- 初始点:$ X^{(0)} = \begin{bmatrix} 0 \ 0 \end{bmatrix} $
- 梯度:$ g^{(0)} = A X^{(0)} = \begin{bmatrix} 0 \ 0 \end{bmatrix} $
- 搜索方向:$ d^{(0)} = -g^{(0)} = \begin{bmatrix} 0 \ 0 \end{bmatrix} $
停止条件已满足。
由于初始点 $ X^{(0)} $ 即为零点,梯度也为零,因此最优解为:
\[X^* = \begin{bmatrix} 0 \\ 0 \end{bmatrix}
\]
最小值:
\[f(X^*) = \frac{1}{2} X^{*T} A X^* = 0
\]
[16道题解答下载链接](https://wwxh.lanzoum.com/igY660yqgc1a密码:74z9)
