📅  最后修改于: 2023-12-03 14:56:39.415000             🧑  作者: Mango
本文将为程序员介绍《RD Sharma 数学教材》中的线性规划-练习 30.4的解决方案,这可以帮助你更好地理解线性规划的相关知识,提高数学素养。
线性规划是一门数学领域的重要概念,广泛应用于商业、工业和经济领域。线性规划中,目标函数是线性的,约束条件也是线性的。线性规划的目标是最小化或最大化某个线性函数,同时满足一系列约束条件。
我们将着眼于解决RD Sharma 数学教材中第 12 类的第 30 章线性规划中的第 30.4 练习。该练习的题目是:
Maximize Z = 7x + 4y, subject to the constraints:
使用线性规划的相关知识,我们可以将上述问题转化为标准形式。标准形式的形式如下:
Maximize Z = c1x1 + c2x2 + ... + cnxn, subject to the constraints:
将题目中的数据代入可得:
Maximize Z = 7x + 4y, subject to the constraints:
现在,我们可以使用单纯形法来解决这个问题。运用单纯形法,可得出以下的解决方案:
Step 1: 将约束条件和目标函数写成矩阵形式
[ 2 3 | 12 ]
[-1 -1 | -1 ]
和
[ 7 ]
[ 4 ]
Step 2: 加入松弛变量将约束条件转化成等式
[ 2 3 1 0 | 12 ]
[-1 -1 0 1 | -1 ]
我们发现,每一列都有一个基本变量,现在我们需要选择一个初始基本变量集合。
根据单纯形法的定义,初始基本变量集合应该是非零的个系数在目标函数中的那些列。即:
[ 2 3 1 0 | 12 ]
[-1 -1 0 1 | -1 ]
[ 7 4 0 0 | 0 ]
选择第 1 和 2 列,对应变量 $x_1$ 和 $x_2$ 作为初始基本变量。因此,系数矩阵是:
[ 2 3 1 0 | 12 ]
[-1 -1 0 1 | -1 ]
[ 7 4 0 0 | 0 ]
接下来,我们需要对这个矩阵进行操作来找到最优解。
Step 3: 将初始矩阵转化为单位矩阵
首先,我们需要通过行操作将矩阵的左下角变为单位矩阵。我们可以通过以下的步骤来实现:
a. 将第二行行交换到顶部
[ -1 -1 0 1 | -1 ]
[ 2 3 1 0 | 12 ]
[ 7 4 0 0 | 0 ]
b. 将第一行乘以-1
[ 1 1 0 -1 | 1 ]
[ 2 3 1 0 | 12 ]
[ 7 4 0 0 | 0 ]
c. 将第二行加上两倍的第一行
[ 1 1 0 -1 | 1 ]
[ 0 1 1 -2 | 10 ]
[ 7 4 0 0 | 0 ]
d. 将第三行减去七倍的第一行
[ 1 1 0 -1 | 1 ]
[ 0 1 1 -2 | 10 ]
[ 0 -3 0 7 | -7 ]
e. 将第三行乘以-1/3
[ 1 1 0 -1 | 1 ]
[ 0 1 1 -2 | 10 ]
[ 0 1 0 -7/3| 7/3]
f. 将第二行减去第三行
[ 1 1 0 -1 | 1 ]
[ 0 0 1 -1/3 | 23/3 ]
[ 0 1 0 -7/3 | 7/3 ]
现在,不含于目标函数中的变量列变为单位矩阵。 我们接下来做其它步骤。
Step 4: 选择离基变量
现在我们需要选择下一个基本变量。为了找到下一个基本变量,我们需要计算出每一行的回报系数。回报系数是每个非基本变量的一个价值。换句话说,它告诉我们如果我们让 $x_i$ 变成一个基本变量,会带来多少收益。
[ 1 1 0 -1 | 1 ]
[ 0 0 1 -1/3 | 23/3 ]
[ 0 1 0 -7/3 | 7/3 ]
^
|
离基变量
从这个表格可以看出,将 $x_4$ 作为下一个基本变量会得到最大的收益。然而, $x_4$ 有一个限制条件 $x_4 ≥ 0$。所以我们需要计算限制条件被满足的最小值,即:
12 - 2x1 - 3x2 = 0
x1 = -3 / 2 x2 + 6
因此,我们需要计算这个函数在 $x_4 = 0$ 和 $x_1 = \frac{6-3x_2}{2}$ 两个点的值。这些点是:
(0, 0) -> 0
(3, 2) -> 7
(-3/2, 4) -> 14
所以,我们选择 $x_2$ 作为下一个基本变量。我们将进行下一步操作以将 $x_2$ 成为基本变量。
Step 5: 迭代操作
迭代运算的步骤比较简单,它们如下所示:
a. 将第 3 行乘以3
[ 1 1 0 -1 | 1 ]
[ 0 0 1 -1/3 | 23/3 ]
[ 0 3 0 -7 | 7 ]
b. 将第二行加上3倍的第三行
[ 1 1 0 -1 | 1 ]
[ 0 0 1 -2 | 44/3 ]
[ 0 3 0 -7 | 7 ]
c. 将基本变量列变为单位矩阵
[ 1 0 0 -4 | 2 ]
[ 0 0 1 -2 |44/3]
[ 0 1 0 -7/3|7/3]
Step 6: 检查最优解
由于我们的目标是最大化目标函数 $Z = 7x + 4y$,我们需要检查这个目标函数在每个基向量上的值。我们的基向量是 $(4, 0)$,$(0, 7/3)$ 和 $(0, 0)$。在这些向量上,目标函数的值分别是 28,9 以及 0。因此,最优解是 $Z = 28$,当 $x=4$,$y=0$ 时达到。