单纯形法之人工变量法求解步骤:一个简单例子
文章目录人工变量法1. 大M法1.1. 题目1.2. 求解过程1.3. 添加人工变量2. 两阶段法3. 参考人工变量法在一些模型中并不包含单位矩阵,为了得到一组基向量和初始可行解,在约束条件的等式左端添加一组虚拟变量,得到一组基向量。这种人为添加的变量称为人工变量,构成的可行基称为人工基,用大M法或两阶段法求解。1. 大M法大M法,通过引进人工变量,构造一个辅助的线性规划问题, 然后由辅助的线性规
文章目录
人工变量法
在一些模型中并不包含单位矩阵,为了得到一组基向量和初始可行解,在约束条件的等式左端添加一组虚拟变量,得到一组基向量。这种人为添加的变量称为人工变量,构成的可行基称为人工基,用大M法或两阶段法求解。
1. 大M法
大M法,通过引进人工变量,构造一个辅助的线性规划问题, 然后由辅助的线性规划问题找出原问题的第一个初始可行基,在此基础上,利用单纯形法求出原问题的最优解。
1.1. 题目
用大 M 法解下列线性规划
max Z = 3 x 1 + 2 x 2 − x 3 \max Z = 3x_1 + 2x_2 - x_3 maxZ=3x1+2x2−x3
s.t. { − 4 x 1 + 3 x 2 + x 3 ≥ 4 x 1 − x 2 + 2 x 3 ≤ 10 − 2 x 1 + 2 x 2 − x 3 = − 1 x i ≥ 0 , i = 1 , 2 , 3 \text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 \geq 4 \\ x_1 - x_2 + 2x_3 \leq 10 \\ -2x_1 + 2x_2 - x_3 = -1 \\ x_i \geq 0, i=1,2,3 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧−4x1+3x2+x3≥4x1−x2+2x3≤10−2x1+2x2−x3=−1xi≥0,i=1,2,3
1.2. 转化为标准型
首先将线性规划转换成标准型
max Z = 3 x 1 + 2 x 2 − x 3 + 0 x 4 + 0 x 5 \max Z = 3x_1 + 2x_2 - x_3 + 0x_4 + 0x_5 maxZ=3x1+2x2−x3+0x4+0x5
s.t. { − 4 x 1 + 3 x 2 + x 3 − x 4 = 4 x 1 − x 2 + 2 x 3 + x 5 = 10 2 x 1 − 2 x 2 + x 3 = 1 x i ≥ 0 , i = 1 , 2 , … , 5 \text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 - x_4 = 4 \\ x_1 - x_2 + 2x_3 + x_5 = 10 \\ 2x_1 - 2x_2 + x_3 = 1 \\ x_i \geq 0, i=1,2,\dots, 5 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧−4x1+3x2+x3−x4=4x1−x2+2x3+x5=102x1−2x2+x3=1xi≥0,i=1,2,…,5
画出其对应的单纯形表(如果这一步,还不会的话,可以参考单纯形法求解步骤:一个简单例子)
C C C | C C C | C C C | 3 | 2 | -1 | 0 | 0 |
---|---|---|---|---|---|---|---|
C B C_B CB | 基 | b b 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 |
4 | -4 | 3 | 1 | -1 | 0 | ||
10 | 1 | -1 | 2 | 0 | 1 | ||
1 | 2 | -2 | 1 | 0 | 0 | ||
σ \sigma σ | σ \sigma σ | σ \sigma σ |
在这个表的系数矩阵中,没有单位矩阵存在,所以无法直接进行求解,需要使用一些辅助手段–人工变量法。
1.3. 添加人工变量
max Z = 3 x 1 + 2 x 2 − x 3 + 0 x 4 + 0 x 5 − M x 6 − M x 7 \max Z = 3x_1 + 2x_2 - x_3 + 0x_4 + 0x_5 - Mx_6 - Mx_7 maxZ=3x1+2x2−x3+0x4+0x5−Mx6−Mx7
s.t. { − 4 x 1 + 3 x 2 + x 3 − x 4 + x 6 = 4 x 1 − x 2 + 2 x 3 + x 5 = 10 2 x 1 − 2 x 2 + x 3 + x 7 = 1 x i ≥ 0 , i = 1 , 2 , … , 7 \text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 - x_4 + x_6 = 4 \\ x_1 - x_2 + 2x_3 + x_5 = 10 \\ 2x_1 - 2x_2 + x_3 + x_7 = 1 \\ x_i \geq 0, i=1,2,\dots,7 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧−4x1+3x2+x3−x4+x6=4x1−x2+2x3+x5=102x1−2x2+x3+x7=1xi≥0,i=1,2,…,7
C C C | C C C | C C C | 3 | 2 | -1 | 0 | 0 | -M | -M |
---|---|---|---|---|---|---|---|---|---|
C B C_B CB | 基 | b b b | x 1 x_1 x1 | x 2 x_2 x2 | x 3 ↓ x_3 \downarrow x3↓ | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | x 7 x_7 x7 |
-M | x 6 x_6 x6 | 4 | -4 | 3 | 1 | -1 | 0 | 1 | 0 |
0 | x 5 x_5 x5 | 10 | 1 | -1 | 2 | 0 | 1 | 0 | 0 |
-M | ← x 7 \leftarrow x_7 ←x7 | 1 | 2 | -2 | [1] | 0 | 0 | 0 | 1 |
σ \sigma σ | σ \sigma σ | σ \sigma σ | 3-2M | 2+M | -1+2M | -M | 0 | 0 | 0 |
入基变量 x 3 x_3 x3,出基变量 x 7 x_7 x7;
C C C | C C C | C C C | 3 | 2 | -1 | 0 | 0 | -M | -M |
---|---|---|---|---|---|---|---|---|---|
C B C_B CB | 基 | b b b | x 1 x_1 x1 | x 2 ↓ x_2 \downarrow x2↓ | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | x 7 x_7 x7 |
-M | ← x 6 \leftarrow x_6 ←x6 | 3 | -6 | [5] | 0 | -1 | 0 | 1 | -1 |
0 | x 5 x_5 x5 | 8 | -3 | 3 | 0 | 0 | 1 | 0 | -2 |
-1 | x 3 x_3 x3 | 1 | 2 | -2 | 1 | 0 | 0 | 0 | 1 |
σ \sigma σ | σ \sigma σ | σ \sigma σ | 5-6M | 5M | 0 | -M | 0 | 0 | 1-M |
入基变量 x 2 x_2 x2,出基变量 x 6 x_6 x6;
C C C | C C C | C C C | 3 | 2 | -1 | 0 | 0 | -M | -M |
---|---|---|---|---|---|---|---|---|---|
C B C_B CB | 基 | b b b | x 1 ↓ x_1 \downarrow x1↓ | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | x 7 x_7 x7 |
2 | x 2 x_2 x2 | 3 5 \frac{3}{5} 53 | − 6 5 -\frac{6}{5} −56 | 1 | 0 | − 1 5 -\frac{1}{5} −51 | 0 | 1 5 \frac{1}{5} 51 | − 1 5 -\frac{1}{5} −51 |
0 | ← x 5 \leftarrow x_5 ←x5 | 31 5 \frac{31}{5} 531 | [ 3 5 \frac{3}{5} 53] | 0 | 0 | 3 5 \frac{3}{5} 53 | 1 | − 3 5 -\frac{3}{5} −53 | − 7 5 -\frac{7}{5} −57 |
-1 | x 3 x_3 x3 | 11 5 \frac{11}{5} 511 | − 2 5 -\frac{2}{5} −52 | 0 | 1 | − 2 5 -\frac{2}{5} −52 | 0 | 2 5 \frac{2}{5} 52 | 3 5 \frac{3}{5} 53 |
σ \sigma σ | σ \sigma σ | σ \sigma σ | 5 | 0 | 0 | 0 | 0 | -M | 1-M |
入基变量 x 1 x_1 x1,出基变量 x 5 x_5 x5;
C C C | C C C | C C C | 3 | 2 | -1 | 0 | 0 | -M | -M |
---|---|---|---|---|---|---|---|---|---|
C B C_B CB | 基 | b b 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 | x 6 x_6 x6 | x 7 x_7 x7 |
2 | x 2 x_2 x2 | 13 | 0 | 1 | 0 | 1 | 2 | 1 | -3 |
3 | x 1 x_1 x1 | 31 3 \frac{31}{3} 331 | 1 | 0 | 0 | 1 | 5 3 \frac{5}{3} 35 | -1 | − 7 3 -\frac{7}{3} −37 |
-1 | x 3 x_3 x3 | 19 3 \frac{19}{3} 319 | 0 | 0 | 1 | 0 | 2 3 \frac{2}{3} 32 | 0 | − 1 3 -\frac{1}{3} −31 |
σ \sigma σ | σ \sigma σ | σ \sigma σ | 0 | 0 | 0 | -5 | − 25 3 -\frac{25}{3} −325 | 1-M | 38 3 \frac{38}{3} 338-M |
因为
σ
j
≤
0
\sigma_j \leq 0
σj≤0,对所有的
j
j
j 成立,所以迭代结束。
最优解为
x ∗ = ( 31 3 , 13 , 19 3 , 0 , 0 ) T , x^*=(\frac{31}{3}, 13, \frac{19}{3}, 0, 0)^T, x∗=(331,13,319,0,0)T,
Z ∗ = 3 x 1 + 2 x 2 − x 3 = 3 ∗ 31 3 + 2 ∗ 13 − 19 3 = 152 3 . Z^* = 3x_1 + 2x_2 - x_3 = 3*\frac{31}{3} + 2*13-\frac{19}{3}= \frac{152}{3}. Z∗=3x1+2x2−x3=3∗331+2∗13−319=3152.
2. 两阶段法
在原来问题引入人工变量后分两个阶段求解线性规划问题的方法。其中,第一阶段在原来问题中引入人工变量,设法构造一个单位矩阵的初始可行基。在此基础上,建立辅助线性规划问题。然后运用单纯形法求解,直到辅助目标函数为0为止。第二阶段重新回到原来的问题,以第一阶段得到的可行基为初始可行基,运用单纯形法求出原来问题的解。
2.1. 步骤
- 不考虑原问题是否存在基可行解,引进人工变量,构造辅助线性规划问题;
- 用单纯形法求解辅助问题,若辅助问题的目标函数值 Z ≠ 0 Z \neq 0 Z=0,则原问题无可行解,停止计算;
- 若辅助问题的目标函数值 Z = 0 Z = 0 Z=0,则将第一阶段计算得到的最终表,除去人工变量,将目标函数行的系数换为原问题的目标函数系数,作为第二阶段的初始表;
- 使用单纯形法求解。
2.2. 题目
用两阶段法求解线性规划问题
max Z = 3 x 1 + 2 x 2 − x 3 \max Z = 3x_1 + 2x_2 - x_3 maxZ=3x1+2x2−x3
s.t. { − 4 x 1 + 3 x 2 + x 3 ≥ 4 x 1 − x 2 + 2 x 3 ≤ 10 − 2 x 1 + 2 x 2 − x 3 = − 1 x i ≥ 0 , i = 1 , 2 , 3 \text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 \geq 4 \\ x_1 - x_2 + 2x_3 \leq 10 \\ -2x_1 + 2x_2 - x_3 = -1 \\ x_i \geq 0, i=1,2,3 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧−4x1+3x2+x3≥4x1−x2+2x3≤10−2x1+2x2−x3=−1xi≥0,i=1,2,3
2.2.1. 转化为标准型
max Z = 3 x 1 + 2 x 2 − x 3 \max Z = 3x_1 + 2x_2 - x_3 maxZ=3x1+2x2−x3
s.t. { − 4 x 1 + 3 x 2 + x 3 − x 4 = 4 x 1 − x 2 + 2 x 3 + x 5 = 10 2 x 1 − 2 x 2 + x 3 = 1 x i ≥ 0 , i = 1 , 2 , … , 5 \text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 - x_4 = 4 \\ x_1 - x_2 + 2x_3 + x_5 = 10 \\ 2x_1 - 2x_2 + x_3 = 1 \\ x_i \geq 0, i=1,2,\dots, 5 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧−4x1+3x2+x3−x4=4x1−x2+2x3+x5=102x1−2x2+x3=1xi≥0,i=1,2,…,5
2.2.2. 添加人工变量
max Z = 3 x 1 + 2 x 2 − x 3 \max Z = 3x_1 + 2x_2 - x_3 maxZ=3x1+2x2−x3
s.t. { − 4 x 1 + 3 x 2 + x 3 − x 4 + x 6 = 4 x 1 − x 2 + 2 x 3 + x 5 = 10 2 x 1 − 2 x 2 + x 3 + x 7 = 1 x i ≥ 0 , i = 1 , 2 , … , 7 \text{s.t.} \begin{cases} -4x_1 + 3x_2 + x_3 - x_4 + x_6 = 4 \\ x_1 - x_2 + 2x_3 + x_5 = 10 \\ 2x_1 - 2x_2 + x_3 + x_7 = 1 \\ x_i \geq 0, i=1,2,\dots, 7 \end{cases} s.t.⎩⎪⎪⎪⎨⎪⎪⎪⎧−4x1+3x2+x3−x4+x6=4x1−x2+2x3+x5=102x1−2x2+x3+x7=1xi≥0,i=1,2,…,7
2.2.3. 两阶段
- 第一阶段
min W = 0 x 1 + 0 x 2 + 0 x 3 + 0 x 4 + 0 x 5 + x 6 + x 7 \min W = 0x_1 + 0x_2 + 0x_3 + 0x_4 + 0x_5 + x_6 + x_7 minW=0x1+0x2+0x3+0x4+0x5+x6+x7
⟺ \iff ⟺
max − W = 0 x 1 + 0 x 2 + 0 x 3 + 0 x 4 + 0 x 5 − x 6 − x 7 \max -W = 0x_1 + 0x_2 + 0x_3 + 0x_4 + 0x_5 - x_6 - x_7 max−W=0x1+0x2+0x3+0x4+0x5−x6−x7
C C C | C C C | C C C | 0 | 0 | 0 | 0 | 0 | -1 | -1 |
---|---|---|---|---|---|---|---|---|---|
C B C_B CB | 基 | b b b | x 1 x_1 x1 | x 2 x_2 x2 | x 3 ↓ x_3 \downarrow x3↓ | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | x 7 x_7 x7 |
-1 | x 6 x_6 x6 | 4 | -4 | 3 | 1 | -1 | 0 | 1 | 0 |
0 | x 5 x_5 x5 | 10 | 1 | -1 | 2 | 0 | 1 | 0 | 0 |
-1 | ← x 7 \leftarrow x_7 ←x7 | 1 | 2 | -2 | [1] | 0 | 0 | 0 | 1 |
σ \sigma σ | σ \sigma σ | σ \sigma σ | -2 | 1 | 2 | -1 | 0 | 0 | 0 |
入基变量 x 3 x_3 x3,出基变量 x 7 x_7 x7;
C C C | C C C | C C C | 0 | 0 | 0 | 0 | 0 | -1 | -1 |
---|---|---|---|---|---|---|---|---|---|
C B C_B CB | 基 | b b b | x 1 x_1 x1 | x 2 ↓ x_2 \downarrow x2↓ | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 | x 6 x_6 x6 | x 7 x_7 x7 |
-1 | ← x 6 \leftarrow x_6 ←x6 | 3 | -6 | [5] | 0 | -1 | 0 | 1 | -1 |
0 | x 5 x_5 x5 | 8 | -3 | 3 | 0 | 0 | 1 | 0 | -2 |
0 | x 3 x_3 x3 | 1 | 2 | -2 | 1 | 0 | 0 | 0 | 1 |
σ \sigma σ | σ \sigma σ | σ \sigma σ | -6 | 5 | 0 | -1 | 0 | 0 | -2 |
入基变量 x 2 x_2 x2,出基变量 x 6 x_6 x6;
C C C | C C C | C C C | 0 | 0 | 0 | 0 | 0 | -1 | -1 |
---|---|---|---|---|---|---|---|---|---|
C B C_B CB | 基 | b b 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 | x 6 x_6 x6 | x 7 x_7 x7 |
0 | x 2 x_2 x2 | 3 5 \frac{3}{5} 53 | − 6 5 -\frac{6}{5} −56 | 1 | 0 | − 1 5 -\frac{1}{5} −51 | 0 | 1 5 \frac{1}{5} 51 | − 1 5 -\frac{1}{5} −51 |
0 | x 5 x_5 x5 | 31 5 \frac{31}{5} 531 | 3 5 \frac{3}{5} 53 | 0 | 0 | 3 5 \frac{3}{5} 53 | 1 | − 3 5 -\frac{3}{5} −53 | − 7 5 -\frac{7}{5} −57 |
0 | x 3 x_3 x3 | 11 5 \frac{11}{5} 511 | − 2 5 -\frac{2}{5} −52 | 0 | 1 | − 2 5 -\frac{2}{5} −52 | 0 | 2 5 \frac{2}{5} 52 | 3 5 \frac{3}{5} 53 |
σ \sigma σ | σ \sigma σ | σ \sigma σ | 0 | 0 | 0 | 0 | 0 | -1 | -1 |
所有的人工变量都是非基变量,第一阶段结束。
- 第二阶段
C C C | C C C | C C C | 3 | 2 | -1 | 0 | 0 |
---|---|---|---|---|---|---|---|
C B C_B CB | 基 | b b b | x 1 ↓ x_1 \downarrow x1↓ | x 2 x_2 x2 | x 3 x_3 x3 | x 4 x_4 x4 | x 5 x_5 x5 |
2 | x 2 x_2 x2 | 3 5 \frac{3}{5} 53 | − 6 5 -\frac{6}{5} −56 | 1 | 0 | − 1 5 -\frac{1}{5} −51 | 0 |
0 | ← x 5 \leftarrow x_5 ←x5 | 31 5 \frac{31}{5} 531 | [ 3 5 \frac{3}{5} 53] | 0 | 0 | 3 5 \frac{3}{5} 53 | 1 |
-1 | x 3 x_3 x3 | 11 5 \frac{11}{5} 511 | − 2 5 -\frac{2}{5} −52 | 0 | 1 | − 2 5 -\frac{2}{5} −52 | 0 |
σ \sigma σ | σ \sigma σ | σ \sigma σ | 5 | 0 | 0 | 0 | 0 |
入基变量 x 1 x_1 x1,出基变量 x 5 x_5 x5;
C C C | C C C | C C C | 3 | 2 | -1 | 0 | 0 |
---|---|---|---|---|---|---|---|
C B C_B CB | 基 | b b 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 |
2 | x 2 x_2 x2 | 13 | 0 | 1 | 0 | 1 | 2 |
3 | x 1 x_1 x1 | 31 3 \frac{31}{3} 331 | 1 | 0 | 0 | 1 | 5 3 \frac{5}{3} 35 |
-1 | x 3 x_3 x3 | 19 3 \frac{19}{3} 319 | 0 | 0 | 1 | 0 | 2 3 \frac{2}{3} 32 |
σ \sigma σ | σ \sigma σ | σ \sigma σ | 0 | 0 | 0 | -5 | − 25 3 -\frac{25}{3} −325 |
σ j ≤ 0 \sigma_j \leq 0 σj≤0, 对所有的 j j j 都成立,因此求解结束。
最优解
x ∗ = ( 31 3 , 13 , 19 3 , 0 , 0 ) T , x^* = (\frac{31}{3}, 13, \frac{19}{3}, 0, 0)^T, x∗=(331,13,319,0,0)T,
Z ∗ = 3 x 1 + 2 x 2 − x 3 = 3 ∗ 31 3 + 2 ∗ 13 − 19 3 = 152 3 . Z^* = 3x_1 + 2x_2 - x_3 = 3 * \frac{31}{3} + 2 * 13 - \frac{19}{3} = \frac{152}{3}. Z∗=3x1+2x2−x3=3∗331+2∗13−319=3152.
3. 参考
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)