引言
今天被一个人问到了一个线性规划问题,这个问题我印象中只有在数学建模中会出现,于是就研究了一下,这里做一个记录。
示例
线性规划问题如下:
max
z
=
90
x
1
+
70
x
2
s
.
t
.
{
x
1
+
x
2
≤
16
3
x
1
+
2
x
2
≤
36
5
x
2
≤
65
x
1
,
x
2
≥
0
(1)
\text{max} \quad z = 90x_1 + 70x_2 \\ \begin{align} s.t.\left\{\begin{matrix} x_1 + x_2 &\le 16 \\ 3x_1 + 2x_2 &\le36 \\ 5x_2 &\le 65\\ x_1, x_2 &\ge 0 \end{matrix}\right. \nonumber \end{align} \tag{1}
maxz=90x1+70x2s.t.⎩
⎨
⎧x1+x23x1+2x25x2x1,x2≤16≤36≤65≥0(1)
先将模型化为标准型:
max
z
=
90
x
1
+
70
x
2
s
.
t
.
{
x
1
+
x
2
+
x
3
=
16
3
x
1
+
2
x
2
+
x
4
=
36
5
x
2
+
x
5
=
65
x
1
,
x
2
,
x
3
,
x
4
,
x
5
≥
0
(2)
\text{max} \quad z = 90x_1 + 70x_2 \\ \begin{align} s.t.\left\{\begin{matrix} x_1 + x_2 + x_3 &= 16 \\ 3x_1 + 2x_2 + x_4 &= 36\\ 5x_2 + x _5 &= 65\\ x_1, x_2,x_3,x_4,x_5 &\ge 0 \nonumber \end{matrix}\right. \end{align} \tag{2}
maxz=90x1+70x2s.t.⎩
⎨
⎧x1+x2+x33x1+2x2+x45x2+x5x1,x2,x3,x4,x5=16=36=65≥0(2)
标准形式下的约束条件系数矩阵的增广矩阵可以表示为:
[
1
1
1
0
0
∣
16
3
2
0
1
0
∣
36
0
5
0
0
1
∣
65
]
\begin{bmatrix} 1 & 1 & 1 & 0 & 0 &| 16\\ 3 & 2 & 0 & 1 & 0 &|36 \\ 0 & 5 & 0 & 0 & 1 &|65 \end{bmatrix}
130125100010001∣16∣36∣65
显然,我们应将
x
3
,
x
4
,
x
5
x_3, x_4, x_5
x3,x4,x5 视为基变量,且将
x
1
,
x
2
x_1, x_2
x1,x2 视作非基变量。接下来,令
x
1
,
x
2
=
0
x_1, x_2 = 0
x1,x2=0,找到初始基可行解
X
=
(
0
,
0
,
16
,
36
,
65
)
X = \left(0, 0, 16, 36, 65\right)
X=(0,0,16,36,65),列出初始的单纯形表:
x B x_B xB | b | x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | θ \theta θ |
---|---|---|---|---|---|---|---|
x 3 x_3 x3 | 16 | 1 | 1 | 1 | 0 | 0 | 16 |
x 4 x_4 x4 | 36 | 3 | 2 | 0 | 1 | 0 | 12 |
x 5 x_5 x5 | 65 | 0 | 5 | 0 | 0 | 1 | |
z | 0 | 90 | 70 | 0 | 0 | 0 |
观察(2)式可知,其中只有两个关于
x
1
x_1
x1 的约束条件:
x
1
+
x
2
+
x
3
=
16
3
x
1
+
2
x
2
+
x
4
=
36
\begin{align} x_1 + x_2 + x_3 &= 16 \tag{3} \\ 3x_1 + 2x_2 + x_4 &= 36 \tag{4} \end{align}
x1+x2+x33x1+2x2+x4=16=36(3)(4)
现在我们要对
x
1
x_1
x1 进行研究,因此,首先令
x
2
=
0
x_2 = 0
x2=0。
对于(3)式,如果我们令 x 3 x_3 x3 减小到 0, 那么 x 1 x_1 x1 最大可以取到 16。对于(4)式,如果我们令 x 4 x_4 x4 减小到 0,那么 x 1 x_1 x1 最大可以取到 12。因为两个约束条件共同作用,因此, x 1 x_1 x1 最大只能增加到 12。如上述表格中的 θ \theta θ 所示。
此时,我们需要将
x
1
x_1
x1 作为换入变量,将
x
4
x_4
x4 作为换出变量。那么当完成替换后,z 值的增量为:
z
increase
=
12
×
90
=
1080
z_{\text{increase}} = 12 \times 90 = 1080
zincrease=12×90=1080
我们需要将上表中所有
x
4
x_4
x4 对应行中的
x
1
x_1
x1 的系数化简为 1,其余行
x
1
x_1
x1 的系数化 0,因此,我们需要进行行列式变换,变换后,我们得到新的单纯形表为:
x B x_B xB | b | x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | θ \theta θ |
---|---|---|---|---|---|---|---|
x 3 x_3 x3 | 4 | 0 | 1 3 \frac{1}{3} 31 | 1 | - 1 3 \frac{1}{3} 31 | 0 | 16 |
x 1 x_1 x1 | 12 | 1 | 2 3 \frac{2}{3} 32 | 0 | 1 3 \frac{1}{3} 31 | 0 | 12 |
x 5 x_5 x5 | 65 | 0 | 5 | 0 | 0 | 1 | |
z | 1080 | 0 | 10 | 0 | -35 | 0 |
对于(4)式,当
x
3
=
0
x_3 = 0
x3=0,
x
2
x_2
x2 每增大 1,
x
1
x_1
x1 需要减小
2
3
\frac{2}{3}
32,因此,
x
2
x_2
x2 每增大 1,对应 z 值的变化量为:
z
variation
=
z
x
1
+
z
x
2
=
90
×
(
−
2
3
)
+
70
×
1
=
−
60
+
70
=
10
\begin{align} z_{\text{variation}} &= z_{x_1} + z_{x_2} \nonumber \\ &= 90 \times (-\frac{2}{3}) + 70 \times 1 \nonumber \\ & = -60 + 70 \nonumber \\ &= 10 \nonumber \end{align}
zvariation=zx1+zx2=90×(−32)+70×1=−60+70=10
对于(4)式,当
x
1
=
0
x_1 = 0
x1=0,
x
2
x_2
x2 每增大 1,
x
2
x_2
x2 需要减小
1
2
\frac{1}{2}
21,因此,
x
4
x_4
x4 每增大 1,对应 z 值的变化量为:
z
variation
=
−
1
2
×
70
=
−
35
\begin{align} z_{\text{variation}} &= -\frac{1}{2} \times 70 \nonumber \\ &= -35 \nonumber \end{align}
zvariation=−21×70=−35
替换完成后的非基变量变成了
x
2
,
x
4
x_2, x_4
x2,x4,接下来需要考虑将
x
2
x_2
x2 换入,三个约束条件均包含
x
2
x_2
x2 变量:
x
1
+
x
2
+
x
3
=
16
3
x
1
+
2
x
2
+
x
4
=
36
5
x
2
+
x
5
=
65
\begin{align} x_1 + x_2 + x_3 &= 16 \tag{5} \\ 3x_1 + 2x_2 + x_4 &= 36 \tag{6} \\ 5x_2 + x _5 &= 65 \tag{7} \end{align}
x1+x2+x33x1+2x2+x45x2+x5=16=36=65(5)(6)(7)
现在我们要对
x
2
x_2
x2 进行研究,因此,首先令
x
1
=
0
x_1 = 0
x1=0。
对于(5)式,当 x 3 x_3 x3 减小到 0 时, x 2 x_2 x2 最大可以取到 16。对于(6)式,当 x 4 x_4 x4 减小到 0 时, x 2 x_2 x2 最大可以取到 18。对于(7)式,当 x 5 x_5 x5 减小到 0 时, x 2 x_2 x2 最大可以取到 13。因此, x 2 x_2 x2 的最大值只能取到 13。
类比上面相同的行列式操作,最终我们可以得到的单纯形表为:
x B x_B xB | b | x 1 x_1 x1 | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | θ \theta θ |
---|---|---|---|---|---|---|---|
x 3 x_3 x3 | 1 3 \frac{1}{3} 31 | 0 | 0 | 1 | - 1 3 \frac{1}{3} 31 | 1 15 \frac{1}{15} 151 | |
x 1 x_1 x1 | 10 3 \frac{10}{3} 310 | 1 | 0 | 0 | 1 3 \frac{1}{3} 31 | - 2 15 \frac{2}{15} 152 | |
x 2 x_2 x2 | 13 | 0 | 1 | 0 | 0 | 1 5 \frac{1}{5} 51 | |
z | 1210 | 0 | 0 | 0 | -14 | -2 |
对应上述单纯表,最终我们可以将标准模型变为:
max
z
=
90
x
1
+
70
x
2
s
.
t
.
{
x
3
−
1
3
x
4
+
1
15
x
5
=
1
3
x
1
+
1
3
x
4
−
2
15
x
5
=
10
3
x
2
+
1
5
x
5
=
13
x
1
,
x
2
,
x
3
,
x
4
,
x
5
≥
0
(8)
\text{max} \quad z = 90x_1 + 70x_2 \\ \begin{align} s.t.\left\{\begin{matrix} x_3 - \frac{1}{3}x_4 + \frac{1}{15}x_5&= \frac{1}{3} \\ x_1 + \frac{1}{3}x_4 - \frac{2}{15}x_5 &= \frac{10}{3} \\ x_2 + \frac{1}{5}x _5 &= 13 \\ x_1, x_2,x_3,x_4,x_5 &\ge 0 \nonumber \end{matrix}\right. \end{align} \tag{8}
maxz=90x1+70x2s.t.⎩
⎨
⎧x3−31x4+151x5x1+31x4−152x5x2+51x5x1,x2,x3,x4,x5=31=310=13≥0(8)
对于(7)式,
x
5
x_5
x5 每增大 1,
x
2
x_2
x2 需要减小
1
5
\frac{1}{5}
51,因此,
x
5
x_5
x5 每增大 1,对应 z 值的变化量为:
z
variation
=
−
1
5
×
10
=
−
2
\begin{align} z_{\text{variation}} &= -\frac{1}{5} \times 10 \nonumber \\ &= -2 \nonumber \end{align}
zvariation=−51×10=−2
对于(7)式,
x
5
x_5
x5 每增大 1,
x
2
x_2
x2 需要减小
1
5
\frac{1}{5}
51,再考虑约束(6)式,
x
2
x_2
x2 每减小 1,
x
4
x_4
x4 需要增加
2
5
\frac{2}{5}
52,对应 z 值的变化量为:
z
variation
=
−
2
5
×
35
=
−
14
\begin{align} z_{\text{variation}} &= -\frac{2}{5} \times 35 \nonumber \\ &= -14 \nonumber \end{align}
zvariation=−52×35=−14
最终,z 值的最大值为:
z
increase
=
1080
+
10
×
13
=
1080
+
130
=
1210
z_{\text{increase}} = 1080 + 10 \times 13 = 1080 + 130 = 1210
zincrease=1080+10×13=1080+130=1210
因此,我们说,我们求解的原始线性规划问题等同于求解方程
y
=
1210
−
14
x
4
−
2
x
5
y = 1210 -14x_4 - 2x_5
y=1210−14x4−2x5的最大值问题。文章来源:https://www.toymoban.com/news/detail-741189.html
如果大家觉得有用,就点个赞让更多的人看到吧~文章来源地址https://www.toymoban.com/news/detail-741189.html
到了这里,关于单纯形法求解线性规划问题示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!