单纯形法求解步骤:一个简单例子

1. 题目

使用单纯形法求解
max ⁡ z = 50 x 1 + 100 x 2 \max z = 50x_1 + 100x_2 maxz=50x1+100x2

s.t. { x 1 + x 2 ≤ 300 2 x 1 + x 2 ≤ 400 x 2 ≤ 250 x i ≥ 0 , i = 1 , 2 \text{s.t.} \begin{cases} x_1 + x_2 \leq 300 \\ 2x_1 + x_2 \leq 400 \\ x_2 \leq 250 \\ x_i \geq 0, i= 1, 2 \end{cases} s.t.x1+x23002x1+x2400x2250xi0,i=1,2

2. 求解过程

  • 首先引入松弛变量,将线性规划问题化成标准型。
    max ⁡ z = 50 x 1 + 100 x 2 + 0 x 3 + 0 x 4 + 0 x 5 \max z = 50x_1 + 100x_2 + 0x_3 + 0x_4 + 0x_5 maxz=50x1+100x2+0x3+0x4+0x5

s.t. { x 1 + x 2 + x 3 = 300 2 x 1 + x 2 + x 4 = 400 x 2 + x 5 = 250 x i ≥ 0 , i = 1 , 2 , … , 5 \text{s.t.} \begin{cases} x_1 + x_2 + x_3 = 300 \\ 2x_1 + x_2 + x_4 = 400 \\ x_2 + x_5 = 250 \\ x_i \geq 0, i = 1, 2, \dots, 5 \end{cases} s.t.x1+x2+x3=3002x1+x2+x4=400x2+x5=250xi0,i=1,2,,5

2.1. 第一次迭代

  1. 首先画出如下的表格;(PS:表格第一行有 3 个 C C C σ \sigma σ,应该合并,但是我不知道如何在Markdown中合并表格)
C C C C C C C C C
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
σ \sigma σ σ \sigma σ σ \sigma σ
  1. 在第一行中, C j C_j Cj 表示目标函数的系数矩阵(向量), C j C_j Cj 右侧是目标函数的系数矩阵(向量)具体值,在题目中目标函数为 max ⁡ z = 50 x 1 + 100 x 2 + 0 x 3 + 0 x 4 + 0 x 5 \max z = 50x_1 + 100x_2 + 0x_3 + 0x_4 + 0x_5 maxz=50x1+100x2+0x3+0x4+0x5,因此按照 x 1 , x 2 , … , x 5 x_1, x_2, \dots, x_5 x1,x2,,x5 的顺序写出它们的系数,
    C = [ 50 100 0 0 0 ] C = \begin{bmatrix} 50 &100 & 0 & 0 & 0 \end{bmatrix} C=[50100000]
C C C C C C C C C 50 \color{#FF0000}{50} 50 100 \color{#FF0000}{100} 100 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{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
σ \sigma σ σ \sigma σ σ \sigma σ
  1. x 1 , x 2 , x 3 , x 4 , x 5 x_1, x_2, x_3, x_4, x_5 x1,x2,x3,x4,x5 下面写上约束方程组的系数矩阵 A A A;需要注意的是:在方程中没有出现的变量,其系数为 0,必须写上;
    A = ( a i j ) = [ 1 1 1 0 0 2 1 0 1 0 0 1 0 0 1 ] A = (a_{ij}) = \begin{bmatrix} 1 & 1 & 1 & 0 & 0 \\ 2 & 1 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 & 1 \\ \end{bmatrix} A=(aij)=120111100010001
C C C C C C C C C50100000
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
1 \color{#FF0000}{1} 1 1 \color{#FF0000}{1} 1 1 \color{#FF0000}{1} 1 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{0} 0
2 \color{#FF0000}{2} 2 1 \color{#FF0000}{1} 1 0 \color{#FF0000}{0} 0 1 \color{#FF0000}{1} 1 0 \color{#FF0000}{0} 0
0 \color{#FF0000}{0} 0 1 \color{#FF0000}{1} 1 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{0} 0 1 \color{#FF0000}{1} 1
σ \sigma σ σ \sigma σ σ \sigma σ
  1. b b b 列依次写上约束矩阵右侧的常数,分别是
    b = [ 300 400 250 ] b = \begin{bmatrix} 300 \\ 400 \\ 250 \\ \end{bmatrix} b=300400250
C C C C C C C C C50100000
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
300 \color{#FF0000}{300} 30011100
400 \color{#FF0000}{400} 40021010
250 \color{#FF0000}{250} 25001001
σ \sigma σ σ \sigma σ σ \sigma σ
  1. 在系数矩阵中找到一个单位矩阵,其对应的变量作为初始基变量,因此基变量为
    基 = [ x 3 x 4 x 5 ] \text{基} = \begin{bmatrix} x_3 \\ x_4 \\ x_5 \\ \end{bmatrix} =x3x4x5
    将其填入基列;
C C C C C C C C C50100000
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 3 \color{#FF0000}{x_3} x330011100
x 4 \color{#FF0000}{x_4} x440021010
x 5 \color{#FF0000}{x_5} x525001001
σ \sigma σ σ \sigma σ σ \sigma σ
  1. C B C_B CB 列中填入基向量在目标函数的系数矩阵(向量)中值
    C B = [ 0 0 0 ] C_B = \begin{bmatrix} 0 \\ 0 \\ 0 \\ \end{bmatrix} CB=000
C C C C C C C C C50100000
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
0 \color{#FF0000}{0} 0 x 3 x_3 x330011100
0 \color{#FF0000}{0} 0 x 4 x_4 x440021010
0 \color{#FF0000}{0} 0 x 5 x_5 x525001001
σ \sigma σ σ \sigma σ σ \sigma σ
  1. 至此,迭代1中的初始单纯形表填入完毕,接下来计算检验和

σ j = C j − ∑ i C B ∗ a i j \sigma_j = C_j - \sum_{i} C_B * a_{ij} σj=CjiCBaij

因此,

σ 1 = C 1 − ∑ i = 1 3 C B ∗ a i 1 = 50 − [ 0 0 0 ] T ∗ [ 1 2 0 ] = 50 \sigma_1 = C_1 - \sum_{i=1}^{3} C_B * a_{i1} = 50 - \begin{bmatrix} 0 \\ 0 \\ 0 \\ \end{bmatrix}^T * \begin{bmatrix} 1 \\ 2 \\ 0 \end{bmatrix} = 50 σ1=C1i=13CBai1=50000T120=50

σ 2 = C 2 − ∑ i = 1 3 C B ∗ a i 2 = 100 − [ 0 0 0 ] T ∗ [ 1 1 1 ] = 100 \sigma_2 = C_2 - \sum_{i=1}^{3} C_B * a_{i2} = 100 - \begin{bmatrix} 0 \\ 0 \\ 0 \\ \end{bmatrix}^T * \begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix} = 100 σ2=C2i=13CBai2=100000T111=100

σ 3 = C 3 − ∑ i = 1 3 C B ∗ a i 3 = 0 − [ 0 0 0 ] T ∗ [ 1 0 0 ] = 0 \sigma_3 = C_3 - \sum_{i=1}^{3} C_B * a_{i3} = 0 - \begin{bmatrix} 0 \\ 0 \\ 0 \\ \end{bmatrix}^T * \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} = 0 σ3=C3i=13CBai3=0000T100=0

σ 4 = C 4 − ∑ i = 1 3 C B ∗ a i 4 = 0 − [ 0 0 0 ] T ∗ [ 0 1 0 ] = 0 \sigma_4 = C_4 - \sum_{i=1}^{3} C_B * a_{i4} = 0 - \begin{bmatrix} 0 \\ 0 \\ 0 \\ \end{bmatrix}^T * \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} = 0 σ4=C4i=13CBai4=0000T010=0

σ 5 = C 5 − ∑ i = 1 3 C B ∗ a i 5 = 0 − [ 0 0 0 ] T ∗ [ 0 0 1 ] = 0 \sigma_5 = C_5 - \sum_{i=1}^{3} C_B * a_{i5} = 0 - \begin{bmatrix} 0 \\ 0 \\ 0 \\ \end{bmatrix}^T * \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} = 0 σ5=C5i=13CBai5=0000T001=0

因此在 σ \sigma σ 行填入
σ = [ 50 100 0 0 0 ] \sigma = \begin{bmatrix} 50 & 100 & 0 & 0 & 0 \end{bmatrix} σ=[50100000]

C C C C C C C C C50100000
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
0 x 3 x_3 x330011100
0 x 4 x_4 x440021010
0 x 5 x_5 x525001001
σ \sigma σ σ \sigma σ σ \sigma σ 50 \color{#FF0000}{50} 50 100 \color{#FF0000}{100} 100 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{0} 0
  1. 因为 ∃ j \exist j j,使得 σ j > 0 \sigma_j > 0 σj>0 成立,所以还需要继续进行迭代;选择使得 σ j \sigma_j σj 取得最大值的变量,作为入基变量;

k = arg max ⁡ σ j , σ j > 0 k = \argmax \sigma_j, \sigma_j > 0 k=argmaxσj,σj>0

σ = [ 50 100 0 0 0 ] \sigma = \begin{bmatrix} 50 & 100 & 0 & 0 & 0 \end{bmatrix} σ=[50100000]
中最大值为100,其对应的变量为 x 2 x_2 x2(位置),所以 x 2 x_2 x2 作为入基变量, k = 2 k=2 k=2

  1. 计算 θ j \theta_j θj 确认出基变量,

θ j = b j / a j k \theta_j = b_j / a_{jk} θj=bj/ajk

求使得 θ j \theta_j θj 取得最小值的变量,作为出基变量;

θ 1 = b 1 / a 12 = 300 / 1 = 300 , ( x 3 ) \theta_1 = b_1 / a_{12} = 300 / 1 = 300, (x_3) θ1=b1/a12=300/1=300,(x3)

θ 2 = b 2 / a 22 = 400 / 1 = 400 , ( x 4 ) \theta_2 = b_2 / a_{22} = 400 / 1 = 400, (x_4) θ2=b2/a22=400/1=400,(x4)

θ 3 = b 3 / a 32 = 250 / 1 = 250 , ( x 5 ) \theta_3 = b_3 / a_{32} = 250 / 1 = 250, (x_5) θ3=b3/a32=250/1=250,(x5)

所以, min ⁡ θ j = 250 \min \theta_j = 250 minθj=250,对应的变量为 x 5 x_5 x5 作为出基变量;

2.2. 第二次迭代

  1. 入基变量 x 2 x_2 x2,出基变量 x 5 x_5 x5
C C C C C C C C C50100000
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
0 x 3 x_3 x330011100
0 x 4 x_4 x440021010
100 \color{#FF0000}{100} 100 x 2 \color{#FF0000}{x_2} x225001001
σ \sigma σ σ \sigma σ σ \sigma σ
  1. 进行初等行变换,将基变量 x 2 x_2 x2 所在列中,除了基变量 x 2 x_2 x2 所在的行为1,其余全部消去;

( − 1 ) ∗ [ 250 0 1 0 0 1 ] + 1 ∗ [ 300 1 1 1 0 0 ] = [ 50 1 0 1 0 − 1 ] (-1) * \begin{bmatrix} 250 & 0 & 1 & 0 & 0 & 1 \end{bmatrix} + 1 * \begin{bmatrix} 300 & 1 & 1 & 1 & 0 & 0 \end{bmatrix} = \begin{bmatrix} 50 & 1 & 0 & 1 & 0 & -1 \end{bmatrix} (1)[25001001]+1[30011100]=[5010101]

( − 1 ) ∗ [ 250 0 1 0 0 1 ] + 1 ∗ [ 400 2 1 0 1 0 ] = [ 150 2 0 0 1 − 1 ] (-1) * \begin{bmatrix} 250 & 0 & 1 & 0 & 0 & 1 \end{bmatrix} + 1 * \begin{bmatrix} 400 & 2 & 1 & 0 & 1 & 0 \end{bmatrix} = \begin{bmatrix} 150 & 2 & 0 & 0 & 1 & -1 \end{bmatrix} (1)[25001001]+1[40021010]=[15020011]

C C C C C C C C C50100000
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
0 x 3 x_3 x3 50 \color{#FF0000}{50} 50 1 \color{#FF0000}{1} 1 0 \color{#FF0000}{0} 0 1 \color{#FF0000}{1} 1 0 \color{#FF0000}{0} 0 − 1 \color{#FF0000}{-1} 1
0 x 4 x_4 x4 150 \color{#FF0000}{150} 150 2 \color{#FF0000}{2} 2 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{0} 0 1 \color{#FF0000}{1} 1 − 1 \color{#FF0000}{-1} 1
100 x 2 x_2 x225001001
σ \sigma σ σ \sigma σ σ \sigma σ
  1. 计算检验和

σ j = C j − ∑ i C B ∗ a i j \sigma_j = C_j - \sum_{i} C_B * a_{ij} σj=CjiCBaij

σ 1 = C 1 − C B ∗ a i 1 = 50 − [ 0 0 100 ] T ∗ [ 1 2 0 ] = 50 , \sigma_1 = C_1 - C_B * a_{i1} = 50 - \begin{bmatrix} 0 \\ 0 \\ 100 \end{bmatrix}^T * \begin{bmatrix} 1 \\ 2 \\ 0 \end{bmatrix} = 50, σ1=C1CBai1=5000100T120=50,

σ 2 = C 2 − C B ∗ a i 2 = 100 − [ 0 0 100 ] T ∗ [ 0 0 1 ] = 0 , \sigma_2 = C_2 - C_B * a_{i2} = 100 - \begin{bmatrix} 0 \\ 0 \\ 100 \end{bmatrix}^T * \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} = 0, σ2=C2CBai2=10000100T001=0,

σ 3 = C 3 − C B ∗ a i 3 = 0 − [ 0 0 100 ] T ∗ [ 1 0 0 ] = 0 , \sigma_3 = C_3 - C_B * a_{i3} = 0 - \begin{bmatrix} 0 \\ 0 \\ 100 \end{bmatrix}^T * \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} = 0, σ3=C3CBai3=000100T100=0,

σ 4 = C 4 − C B ∗ a i 4 = 0 − [ 0 0 100 ] T ∗ [ 0 1 0 ] = 0 , \sigma_4 = C_4 - C_B * a_{i4} = 0 - \begin{bmatrix} 0 \\ 0 \\ 100 \end{bmatrix}^T * \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} = 0, σ4=C4CBai4=000100T010=0,

σ 5 = C 5 − C B ∗ a i 5 = 0 − [ 0 0 100 ] T ∗ [ − 1 − 1 1 ] = − 100 , \sigma_5 = C_5 - C_B * a_{i5} = 0 - \begin{bmatrix} 0 \\ 0 \\ 100 \end{bmatrix}^T * \begin{bmatrix} -1 \\ -1 \\ 1 \end{bmatrix} = -100, σ5=C5CBai5=000100T111=100,

C C C C C C C C C50100000
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
0 x 3 x_3 x3501010-1
0 x 4 x_4 x41502001-1
100 x 2 x_2 x225001001
σ \sigma σ σ \sigma σ σ \sigma σ 50 \color{#FF0000}{50} 50 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{0} 0 − 100 \color{#FF0000}{-100} 100
  1. 因为 ∃ j \exist j j,使得 σ j > 0 \sigma_j > 0 σj>0 成立,所以还需要继续进行迭代;选择使得 σ j \sigma_j σj 取得最大值的变量,作为入基变量,

k = arg max ⁡ σ j , σ j > 0 k = \argmax \sigma_j, \sigma_j > 0 k=argmaxσj,σj>0

σ = [ 50 0 0 0 − 100 ] \sigma = \begin{bmatrix} 50 & 0 & 0 & 0 & -100 \end{bmatrix} σ=[50000100]
中最大值为50,其对应的变量为 x 1 x_1 x1(位置),所以 x 1 x_1 x1 作为入基变量, k = 1 k=1 k=1

  1. 计算 θ j \theta_j θj 确认出基变量,

θ j = b j / a j k \theta_j = b_j / a_{jk} θj=bj/ajk

求使得 θ j \theta_j θj 取得最小值的变量,作为出基变量;

θ 1 = b 1 / a 11 = 50 / 1 = 50 , ( x 3 ) \theta_1 = b_1 / a_{11} = 50 / 1 = 50, (x_3) θ1=b1/a11=50/1=50,(x3)

θ 2 = b 2 / a 21 = 150 / 2 = 75 , ( x 4 ) \theta_2 = b_2 / a_{21} = 150 / 2 = 75, (x_4) θ2=b2/a21=150/2=75,(x4)

θ 3 = b 3 / a 31 = 250 / 0 = ? , ( x 5 ) \theta_3 = b_3 / a_{31} = 250 / 0 = ? , (x_5) θ3=b3/a31=250/0=?,(x5)

所以, min ⁡ θ j = 50 \min \theta_j = 50 minθj=50,对应的变量为 x 3 x_3 x3 作为出基变量;

2.3. 第三次迭代

  1. 入基变量 x 1 x_1 x1,出基变量 x 3 x_3 x3
C C C C C C C C C50100000
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
50 \color{#FF0000}{50} 50 x 1 \color{#FF0000}{x_1} x1501010-1
0 x 4 x_4 x41502001-1
100 100 100 x 2 x_2 x225001001
σ \sigma σ σ \sigma σ σ \sigma σ
  1. 进行初等行变换,将基变量 x 1 x_1 x1 所在列中,除了基变量 x 1 x_1 x1 所在的行为1,其余全部消去;

( − 2 ) ∗ [ 50 1 0 1 0 − 1 ] + 1 ∗ [ 150 2 0 0 1 − 1 ] = [ 50 0 0 − 2 1 1 ] (-2) * \begin{bmatrix} 50 & 1 & 0 & 1 & 0 & -1 \end{bmatrix} + 1 * \begin{bmatrix} 150 & 2 & 0 & 0 & 1 & -1 \end{bmatrix} = \begin{bmatrix} 50 & 0 & 0 & -2 & 1 & 1 \end{bmatrix} (2)[5010101]+1[15020011]=[5000211]

C C C C C C C C C50100000
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
50 x 1 x_1 x1501010-1
0 x 4 x_4 x4 50 \color{#FF0000}{50} 50 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{0} 0 − 2 \color{#FF0000}{-2} 2 1 \color{#FF0000}{1} 1 1 \color{#FF0000}{1} 1
100 x 2 x_2 x225001001
σ \sigma σ σ \sigma σ σ \sigma σ
  1. 计算检验和
    σ j = C j − ∑ i C B ∗ a i j \sigma_j = C_j - \sum_{i} C_B * a_{ij} σj=CjiCBaij

σ 1 = C 1 − C B ∗ a i 1 = 50 − [ 50 0 100 ] T ∗ [ 1 0 0 ] = 0 , \sigma_1 = C_1 - C_B * a_{i1} = 50 - \begin{bmatrix} 50 \\ 0 \\ 100 \end{bmatrix}^T * \begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} = 0, σ1=C1CBai1=50500100T100=0,

σ 2 = C 2 − C B ∗ a i 2 = 100 − [ 50 0 100 ] T ∗ [ 0 0 1 ] = 0 , \sigma_2 = C_2 - C_B * a_{i2} = 100 - \begin{bmatrix} 50 \\ 0 \\ 100 \end{bmatrix}^T * \begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} = 0, σ2=C2CBai2=100500100T001=0,

σ 3 = C 3 − C B ∗ a i 3 = 0 − [ 50 0 100 ] T ∗ [ 1 − 2 0 ] = − 50 , \sigma_3 = C_3 - C_B * a_{i3} = 0 - \begin{bmatrix} 50 \\ 0 \\ 100 \end{bmatrix}^T * \begin{bmatrix} 1 \\ -2 \\ 0 \end{bmatrix} = -50, σ3=C3CBai3=0500100T120=50,

σ 4 = C 4 − C B ∗ a i 4 = 0 − [ 50 0 100 ] T ∗ [ 0 1 0 ] = 0 , \sigma_4 = C_4 - C_B * a_{i4} = 0 - \begin{bmatrix} 50 \\ 0 \\ 100 \end{bmatrix}^T * \begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix} = 0, σ4=C4CBai4=0500100T010=0,

σ 5 = C 5 − C B ∗ a i 5 = 0 − [ 50 0 100 ] T ∗ [ − 1 1 1 ] = − 50 , \sigma_5 = C_5 - C_B * a_{i5} = 0 - \begin{bmatrix} 50 \\ 0 \\ 100 \end{bmatrix}^T * \begin{bmatrix} -1 \\ 1 \\ 1 \end{bmatrix} = -50, σ5=C5CBai5=0500100T111=50,

C C C C C C C C C50100000
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
50 x 1 x_1 x1501010-1
0 x 4 x_4 x45000-211
100 x 2 x_2 x225001001
σ \sigma σ σ \sigma σ σ \sigma σ 0 \color{#FF0000}{0} 0 0 \color{#FF0000}{0} 0 − 50 \color{#FF0000}{-50} 50 0 \color{#FF0000}{0} 0 − 50 \color{#FF0000}{-50} 50
  1. 因为 ∀ j \forall j j,使得 σ j ≤ 0 \sigma_j \leq 0 σj0 成立,所以迭代终止,算法结束;

  2. 最终解

C C C C C C C C C50100000
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
50 x 1 \color{#FF0000}{x_1} x1 50 \color{#FF0000}{50} 501010-1
0 x 4 \color{#FF0000}{x_4} x4 50 \color{#FF0000}{50} 5000-211
100 x 2 \color{#FF0000}{x_2} x2 250 \color{#FF0000}{250} 25001001
σ \sigma σ σ \sigma σ σ \sigma σ00-500-50

解为:
{ x 1 = 50 ; x 2 = 250 ; x 3 = 0 ; x 4 = 50 ; x 5 = 0. \begin{cases} x_1 = 50; \\ x_2 = 250; \\ x_3 = 0; \\ x_4 = 50; \\ x_5 = 0. \end{cases} x1=50;x2=250;x3=0;x4=50;x5=0.

max ⁡ z = 50 x 1 + 100 x 2 = 50 ∗ 50 + 100 ∗ 250 = 27500. \max z = 50x_1 + 100x_2 = 50 * 50 + 100 * 250 = 27500. maxz=50x1+100x2=5050+100250=27500.

3. 算法

1、 标准化(引入松弛变量);
2、构造初始单纯形表;
3、确定基变量和非基变量;
4、计算检验和;
5、确定入基变量和出基变量;
6、初等行变换;
7、重复4-6步,直到所有的检验和小于等于0;
8、 b b b 值就是对应的基变量的解,非基变量的解为0。

4. 手稿

5. 参考

  1. cruelty_angel:单纯形法
  2. 妙恋非恋:单纯形法的计算步骤
  3. mohu:常用数学符号的 LaTeX 表示方法
  4. CodeAllen的博客:Markdown文字添加颜色方法总结(珍藏)

图片来自网络

  • 57
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
好的,下面是一个线性规划问题的例子单纯形法求解步骤: 假设有一个工厂需要生产两种产品A和B,每种产品需要耗费不同的资源,如下表所示: | 产品 | 资源1 | 资源2 | 利润 | | ---- | ---- | ---- | ---- | | A | 2 | 1 | 10 | | B | 1 | 3 | 20 | 该工厂有限制条件,资源1和资源2的总数不能超过给定的限制,如下表所示: | 资源 | 限制 | | ---- | ---- | | 资源1 | 6 | | 资源2 | 9 | 现在需要求解该工厂如何生产这两种产品才能获得最大利润。 单纯形法求解步骤如下: 1. 将原问题转化为标准形式: 将目标函数转化为最小化形式,加入人工变量,得到下面的标准形式: min Z = -10x1 -20x2 s.t. 2x1 + x2 + x3 = 6 x1 + 3x2 + x4 = 9 x1, x2, x3, x4, >= 0 2. 初始化单纯形表: | | x1 | x2 | x3 | x4 | 右端项 | | - | - | - | - | - | ----- | | x3 | 2 | 1 | 1 | 0 | 6 | | x4 | 1 | 3 | 0 | 1 | 9 | | | 10 | 20 | 0 | 0 | 0 | 3. 选择入基变量和出基变量: 首先计算每个约束条件的单位成本,即系数与松弛变量的比值,得到下面的表格: | | x1 | x2 | x3 | x4 | 右端项 | 单位成本 | | - | - | - | - | - | ----- | ----- | | x3 | 2 | 1 | 1 | 0 | 6 | | | x4 | 1 | 3 | 0 | 1 | 9 | | | | 10 | 20 | 0 | 0 | 0 | | 选择单位成本最小的变量作为入基变量,即x2。接下来计算x2对应的约束条件中每个变量的系数与右端项的比值,得到下面的表格: | | x1 | x2 | x3 | x4 | 右端项 | 比值 | | - | - | - | - | - | ----- | ----- | | x3 | 2 | 1 | 1 | 0 | 6 | 6 | | x1 | 1/3 | 1 | 0 | 1/3 | 3 | 3 | | | 10/3 | 0 | 0 | -20/3 | -60 | | 选择比值最小的约束条件对应的松弛变量作为出基变量,即x4。 4. 更新单纯形表: 将x4对应的约束条件转化为基变量形式,得到下面的表格: | | x1 | x2 | x3 | x4 | 右端项 | | - | - | - | - | - | ----- | | x3 | 2/3 | 0 | 1 | -1/3 | 2 | | x4 | 1/3 | 1 | 0 | 1/3 | 3 | | | -10/3 | 0 | 0 | 20/3 | 60 | 5. 重复步骤3和4,直到无法继续优化: 继续计算每个约束条件的单位成本和比值,选择入基变量和出基变量,并更新单纯形表,得到下面的结果: | | x1 | x2 | x3 | x4 | 右端项 | | - | - | - | - | - | ----- | | x1 | 1/4 | 0 | 1/4 | -1/12 | 7/2 | | x4 | 1/4 | 1 | 0 | 1/12 | 3/2 | | | -5/2 | 0 | 5/4 | 25/12 | 75 | 此时,所有的单位成本和比值都大于等于零,单纯形法得出的解为x1=7/2,x2=3/2,Z=65。 以上就是使用单纯形法求解线性规划问题的例子步骤

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值