人工变量法

在一些模型中并不包含单位矩阵,为了得到一组基向量和初始可行解,在约束条件的等式左端添加一组虚拟变量,得到一组基向量。这种人为添加的变量称为人工变量,构成的可行基称为人工基,用大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+2x2x3

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+x34x1x2+2x3102x1+2x2x3=1xi0,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+2x2x3+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+x3x4=4x1x2+2x3+x5=102x12x2+x3=1xi0,i=1,2,,5

画出其对应的单纯形表(如果这一步,还不会的话,可以参考单纯形法求解步骤:一个简单例子

C C C C C C C C C32-100
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-431-10
101-1201
12-2100
σ \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+2x2x3+0x4+0x5Mx6Mx7

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+x3x4+x6=4x1x2+2x3+x5=102x12x2+x3+x7=1xi0,i=1,2,,7

C C C C C C C C C32-100-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 x64-431-1010
0 x 5 x_5 x5101-120100
-M ← x 7 \leftarrow x_7 x712-2[1]0001
σ \sigma σ σ \sigma σ σ \sigma σ3-2M2+M-1+2M-M000

入基变量 x 3 x_3 x3,出基变量 x 7 x_7 x7

C C C C C C C C C32-100-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 x63-6[5]0-101-1
0 x 5 x_5 x58-330010-2
-1 x 3 x_3 x312-210001
σ \sigma σ σ \sigma σ σ \sigma σ5-6M5M0-M001-M

入基变量 x 2 x_2 x2,出基变量 x 6 x_6 x6

C C C C C C C C C32-100-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} 5610 − 1 5 -\frac{1}{5} 510 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]00 3 5 \frac{3}{5} 531 − 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} 5201 − 2 5 -\frac{2}{5} 520 2 5 \frac{2}{5} 52 3 5 \frac{3}{5} 53
σ \sigma σ σ \sigma σ σ \sigma σ50000-M1-M

入基变量 x 1 x_1 x1,出基变量 x 5 x_5 x5

C C C C C C C C C32-100-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 x213010121-3
3 x 1 x_1 x1 31 3 \frac{31}{3} 3311001 5 3 \frac{5}{3} 35-1 − 7 3 -\frac{7}{3} 37
-1 x 3 x_3 x3 19 3 \frac{19}{3} 3190010 2 3 \frac{2}{3} 320 − 1 3 -\frac{1}{3} 31
σ \sigma σ σ \sigma σ σ \sigma σ000-5 − 25 3 -\frac{25}{3} 3251-M 38 3 \frac{38}{3} 338-M

因为 σ j ≤ 0 \sigma_j \leq 0 σj0,对所有的 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+2x2x3=3331+213319=3152.

2. 两阶段法

在原来问题引入人工变量后分两个阶段求解线性规划问题的方法。其中,第一阶段在原来问题中引入人工变量,设法构造一个单位矩阵的初始可行基。在此基础上,建立辅助线性规划问题。然后运用单纯形法求解,直到辅助目标函数为0为止。第二阶段重新回到原来的问题,以第一阶段得到的可行基为初始可行基,运用单纯形法求出原来问题的解。

2.1. 步骤

  1. 不考虑原问题是否存在基可行解,引进人工变量,构造辅助线性规划问题;
  2. 用单纯形法求解辅助问题,若辅助问题的目标函数值 Z ≠ 0 Z \neq 0 Z=0,则原问题无可行解,停止计算;
  3. 若辅助问题的目标函数值 Z = 0 Z = 0 Z=0,则将第一阶段计算得到的最终表,除去人工变量,将目标函数行的系数换为原问题的目标函数系数,作为第二阶段的初始表;
  4. 使用单纯形法求解。

2.2. 题目

用两阶段法求解线性规划问题

max ⁡ Z = 3 x 1 + 2 x 2 − x 3 \max Z = 3x_1 + 2x_2 - x_3 maxZ=3x1+2x2x3

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+x34x1x2+2x3102x1+2x2x3=1xi0,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+2x2x3

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+x3x4=4x1x2+2x3+x5=102x12x2+x3=1xi0,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+2x2x3

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+x3x4+x6=4x1x2+2x3+x5=102x12x2+x3+x7=1xi0,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 maxW=0x1+0x2+0x3+0x4+0x5x6x7

C C C C C C C C C00000-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 x64-431-1010
0 x 5 x_5 x5101-120100
-1 ← x 7 \leftarrow x_7 x712-2[1]0001
σ \sigma σ σ \sigma σ σ \sigma σ-212-1000

入基变量 x 3 x_3 x3,出基变量 x 7 x_7 x7

C C C C C C C C C00000-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 x63-6[5]0-101-1
0 x 5 x_5 x58-330010-2
0 x 3 x_3 x312-210001
σ \sigma σ σ \sigma σ σ \sigma σ-650-100-2

入基变量 x 2 x_2 x2,出基变量 x 6 x_6 x6

C C C C C C C C C00000-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} 5610 − 1 5 -\frac{1}{5} 510 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} 5300 3 5 \frac{3}{5} 531 − 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} 5201 − 2 5 -\frac{2}{5} 520 2 5 \frac{2}{5} 52 3 5 \frac{3}{5} 53
σ \sigma σ σ \sigma σ σ \sigma σ00000-1-1

所有的人工变量都是非基变量,第一阶段结束。

  • 第二阶段
C C C C C C C C C32-100
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} 5610 − 1 5 -\frac{1}{5} 510
0 ← x 5 \leftarrow x_5 x5 31 5 \frac{31}{5} 531[ 3 5 \frac{3}{5} 53]00 3 5 \frac{3}{5} 531
-1 x 3 x_3 x3 11 5 \frac{11}{5} 511 − 2 5 -\frac{2}{5} 5201 − 2 5 -\frac{2}{5} 520
σ \sigma σ σ \sigma σ σ \sigma σ50000

入基变量 x 1 x_1 x1,出基变量 x 5 x_5 x5

C C C C C C C C C32-100
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 x21301012
3 x 1 x_1 x1 31 3 \frac{31}{3} 3311001 5 3 \frac{5}{3} 35
-1 x 3 x_3 x3 19 3 \frac{19}{3} 3190010 2 3 \frac{2}{3} 32
σ \sigma σ σ \sigma σ σ \sigma σ000-5 − 25 3 -\frac{25}{3} 325

σ j ≤ 0 \sigma_j \leq 0 σj0, 对所有的 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+2x2x3=3331+213319=3152.

3. 参考

  1. 正气清风:(完整版)单纯形法、大M法
  2. Homyee King:初始解----两阶段的单纯形法

图片来自网络

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐