单纯形法求解步骤:一个简单例子
文章目录
- 1. 题目
- 2. 求解过程
- 2.1. 第一次迭代
- 2.2. 第二次迭代
- 2.3. 第三次迭代
- 3. 算法
- 4. 手稿
- 5. 参考
1. 题目
使用单纯形法求解
maxz=50x1+100x2\max z = 50x_1 + 100x_2 maxz=50x1+100x2
s.t.{x1+x2≤3002x1+x2≤400x2≤250xi≥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+x2≤3002x1+x2≤400x2≤250xi≥0,i=1,2
2. 求解过程
- 首先引入松弛变量,将线性规划问题化成标准型。
maxz=50x1+100x2+0x3+0x4+0x5\max z = 50x_1 + 100x_2 + 0x_3 + 0x_4 + 0x_5 maxz=50x1+100x2+0x3+0x4+0x5
s.t.{x1+x2+x3=3002x1+x2+x4=400x2+x5=250xi≥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=250xi≥0,i=1,2,…,5
2.1. 第一次迭代
- 首先画出如下的表格;(PS:表格第一行有 3 个 CCC、σ\sigmaσ,应该合并,但是我不知道如何在Markdown中合并表格)
CCC | CCC | CCC | |||||
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
σ\sigmaσ | σ\sigmaσ | σ\sigmaσ |
- 在第一行中,CjC_jCj 表示目标函数的系数矩阵(向量),CjC_jCj 右侧是目标函数的系数矩阵(向量)具体值,在题目中目标函数为 maxz=50x1+100x2+0x3+0x4+0x5\max z = 50x_1 + 100x_2 + 0x_3 + 0x_4 + 0x_5maxz=50x1+100x2+0x3+0x4+0x5,因此按照 x1,x2,…,x5x_1, x_2, \dots, x_5x1,x2,…,x5 的顺序写出它们的系数,
C=[50100000]C = \begin{bmatrix} 50 &100 & 0 & 0 & 0 \end{bmatrix} C=[50100000]
CCC | CCC | CCC | 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 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
σ\sigmaσ | σ\sigmaσ | σ\sigmaσ |
- 在 x1,x2,x3,x4,x5x_1, x_2, x_3, x_4, x_5x1,x2,x3,x4,x5 下面写上约束方程组的系数矩阵 AAA;需要注意的是:在方程中没有出现的变量,其系数为 0,必须写上;
A=(aij)=[111002101001001]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⎦⎤
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
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σ |
- 在 bbb 列依次写上约束矩阵右侧的常数,分别是
b=[300400250]b = \begin{bmatrix} 300 \\ 400 \\ 250 \\ \end{bmatrix} b=⎣⎡300400250⎦⎤
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
300\color{#FF0000}{300}300 | 1 | 1 | 1 | 0 | 0 | ||
400\color{#FF0000}{400}400 | 2 | 1 | 0 | 1 | 0 | ||
250\color{#FF0000}{250}250 | 0 | 1 | 0 | 0 | 1 | ||
σ\sigmaσ | σ\sigmaσ | σ\sigmaσ |
- 在系数矩阵中找到一个单位矩阵,其对应的变量作为初始基变量,因此基变量为
基=[x3x4x5]\text{基} = \begin{bmatrix} x_3 \\ x_4 \\ x_5 \\ \end{bmatrix} 基=⎣⎡x3x4x5⎦⎤
将其填入基列;
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
x3\color{#FF0000}{x_3}x3 | 300 | 1 | 1 | 1 | 0 | 0 | |
x4\color{#FF0000}{x_4}x4 | 400 | 2 | 1 | 0 | 1 | 0 | |
x5\color{#FF0000}{x_5}x5 | 250 | 0 | 1 | 0 | 0 | 1 | |
σ\sigmaσ | σ\sigmaσ | σ\sigmaσ |
- 在 CBC_BCB 列中填入基向量在目标函数的系数矩阵(向量)中值
CB=[000]C_B = \begin{bmatrix} 0 \\ 0 \\ 0 \\ \end{bmatrix} CB=⎣⎡000⎦⎤
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
0\color{#FF0000}{0}0 | x3x_3x3 | 300 | 1 | 1 | 1 | 0 | 0 |
0\color{#FF0000}{0}0 | x4x_4x4 | 400 | 2 | 1 | 0 | 1 | 0 |
0\color{#FF0000}{0}0 | x5x_5x5 | 250 | 0 | 1 | 0 | 0 | 1 |
σ\sigmaσ | σ\sigmaσ | σ\sigmaσ |
- 至此,迭代1中的初始单纯形表填入完毕,接下来计算检验和
σj=Cj−∑iCB∗aij\sigma_j = C_j - \sum_{i} C_B * a_{ij}σj=Cj−i∑CB∗aij
因此,
σ1=C1−∑i=13CB∗ai1=50−[000]T∗[120]=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=C1−i=1∑3CB∗ai1=50−⎣⎡000⎦⎤T∗⎣⎡120⎦⎤=50
σ2=C2−∑i=13CB∗ai2=100−[000]T∗[111]=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=C2−i=1∑3CB∗ai2=100−⎣⎡000⎦⎤T∗⎣⎡111⎦⎤=100
σ3=C3−∑i=13CB∗ai3=0−[000]T∗[100]=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=C3−i=1∑3CB∗ai3=0−⎣⎡000⎦⎤T∗⎣⎡100⎦⎤=0
σ4=C4−∑i=13CB∗ai4=0−[000]T∗[010]=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=C4−i=1∑3CB∗ai4=0−⎣⎡000⎦⎤T∗⎣⎡010⎦⎤=0
σ5=C5−∑i=13CB∗ai5=0−[000]T∗[001]=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=C5−i=1∑3CB∗ai5=0−⎣⎡000⎦⎤T∗⎣⎡001⎦⎤=0
因此在σ\sigmaσ 行填入
σ=[50100000]\sigma = \begin{bmatrix} 50 & 100 & 0 & 0 & 0 \end{bmatrix} σ=[50100000]
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
0 | x3x_3x3 | 300 | 1 | 1 | 1 | 0 | 0 |
0 | x4x_4x4 | 400 | 2 | 1 | 0 | 1 | 0 |
0 | x5x_5x5 | 250 | 0 | 1 | 0 | 0 | 1 |
σ\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 |
- 因为 ∃j\exist j∃j,使得 σj>0\sigma_j > 0σj>0 成立,所以还需要继续进行迭代;选择使得 σj\sigma_jσj 取得最大值的变量,作为入基变量;
k=arg maxσj,σj>0k = \argmax \sigma_j, \sigma_j > 0 k=argmaxσj,σj>0
σ=[50100000]\sigma = \begin{bmatrix} 50 & 100 & 0 & 0 & 0 \end{bmatrix} σ=[50100000]
中最大值为100,其对应的变量为 x2x_2x2(位置),所以 x2x_2x2 作为入基变量,k=2k=2k=2;
- 计算 θj\theta_jθj 确认出基变量,
θj=bj/ajk\theta_j = b_j / a_{jk} θj=bj/ajk
求使得 θj\theta_jθj 取得最小值的变量,作为出基变量;
θ1=b1/a12=300/1=300,(x3)\theta_1 = b_1 / a_{12} = 300 / 1 = 300, (x_3) θ1=b1/a12=300/1=300,(x3)
θ2=b2/a22=400/1=400,(x4)\theta_2 = b_2 / a_{22} = 400 / 1 = 400, (x_4) θ2=b2/a22=400/1=400,(x4)
θ3=b3/a32=250/1=250,(x5)\theta_3 = b_3 / a_{32} = 250 / 1 = 250, (x_5) θ3=b3/a32=250/1=250,(x5)
所以,minθj=250\min \theta_j = 250minθj=250,对应的变量为 x5x_5x5 作为出基变量;
2.2. 第二次迭代
- 入基变量 x2x_2x2,出基变量 x5x_5x5;
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
0 | x3x_3x3 | 300 | 1 | 1 | 1 | 0 | 0 |
0 | x4x_4x4 | 400 | 2 | 1 | 0 | 1 | 0 |
100\color{#FF0000}{100}100 | x2\color{#FF0000}{x_2}x2 | 250 | 0 | 1 | 0 | 0 | 1 |
σ\sigmaσ | σ\sigmaσ | σ\sigmaσ |
- 进行初等行变换,将基变量 x2x_2x2 所在列中,除了基变量 x2x_2x2 所在的行为1,其余全部消去;
(−1)∗[25001001]+1∗[30011100]=[501010−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]=[501010−1]
(−1)∗[25001001]+1∗[40021010]=[1502001−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]=[1502001−1]
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
0 | x3x_3x3 | 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 | x4x_4x4 | 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 | x2x_2x2 | 250 | 0 | 1 | 0 | 0 | 1 |
σ\sigmaσ | σ\sigmaσ | σ\sigmaσ |
- 计算检验和
σj=Cj−∑iCB∗aij\sigma_j = C_j - \sum_{i} C_B * a_{ij}σj=Cj−i∑CB∗aij
σ1=C1−CB∗ai1=50−[00100]T∗[120]=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=C1−CB∗ai1=50−⎣⎡00100⎦⎤T∗⎣⎡120⎦⎤=50,
σ2=C2−CB∗ai2=100−[00100]T∗[001]=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=C2−CB∗ai2=100−⎣⎡00100⎦⎤T∗⎣⎡001⎦⎤=0,
σ3=C3−CB∗ai3=0−[00100]T∗[100]=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=C3−CB∗ai3=0−⎣⎡00100⎦⎤T∗⎣⎡100⎦⎤=0,
σ4=C4−CB∗ai4=0−[00100]T∗[010]=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=C4−CB∗ai4=0−⎣⎡00100⎦⎤T∗⎣⎡010⎦⎤=0,
σ5=C5−CB∗ai5=0−[00100]T∗[−1−11]=−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=C5−CB∗ai5=0−⎣⎡00100⎦⎤T∗⎣⎡−1−11⎦⎤=−100,
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
0 | x3x_3x3 | 50 | 1 | 0 | 1 | 0 | -1 |
0 | x4x_4x4 | 150 | 2 | 0 | 0 | 1 | -1 |
100 | x2x_2x2 | 250 | 0 | 1 | 0 | 0 | 1 |
σ\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 |
- 因为 ∃j\exist j∃j,使得 σj>0\sigma_j > 0σj>0 成立,所以还需要继续进行迭代;选择使得 σj\sigma_jσj 取得最大值的变量,作为入基变量,
k=arg maxσj,σj>0k = \argmax \sigma_j, \sigma_j > 0 k=argmaxσj,σj>0
σ=[50000−100]\sigma = \begin{bmatrix} 50 & 0 & 0 & 0 & -100 \end{bmatrix} σ=[50000−100]
中最大值为50,其对应的变量为 x1x_1x1(位置),所以 x1x_1x1 作为入基变量,k=1k=1k=1;
- 计算 θj\theta_jθj 确认出基变量,
θj=bj/ajk\theta_j = b_j / a_{jk} θj=bj/ajk
求使得 θj\theta_jθj 取得最小值的变量,作为出基变量;
θ1=b1/a11=50/1=50,(x3)\theta_1 = b_1 / a_{11} = 50 / 1 = 50, (x_3) θ1=b1/a11=50/1=50,(x3)
θ2=b2/a21=150/2=75,(x4)\theta_2 = b_2 / a_{21} = 150 / 2 = 75, (x_4) θ2=b2/a21=150/2=75,(x4)
θ3=b3/a31=250/0=?,(x5)\theta_3 = b_3 / a_{31} = 250 / 0 = ? , (x_5) θ3=b3/a31=250/0=?,(x5)
所以,minθj=50\min \theta_j = 50minθj=50,对应的变量为 x3x_3x3 作为出基变量;
2.3. 第三次迭代
- 入基变量 x1x_1x1,出基变量 x3x_3x3;
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
50\color{#FF0000}{50}50 | x1\color{#FF0000}{x_1}x1 | 50 | 1 | 0 | 1 | 0 | -1 |
0 | x4x_4x4 | 150 | 2 | 0 | 0 | 1 | -1 |
100100100 | x2x_2x2 | 250 | 0 | 1 | 0 | 0 | 1 |
σ\sigmaσ | σ\sigmaσ | σ\sigmaσ |
- 进行初等行变换,将基变量 x1x_1x1 所在列中,除了基变量 x1x_1x1 所在的行为1,其余全部消去;
(−2)∗[501010−1]+1∗[1502001−1]=[5000−211](-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)∗[501010−1]+1∗[1502001−1]=[5000−211]
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
50 | x1x_1x1 | 50 | 1 | 0 | 1 | 0 | -1 |
0 | x4x_4x4 | 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 | x2x_2x2 | 250 | 0 | 1 | 0 | 0 | 1 |
σ\sigmaσ | σ\sigmaσ | σ\sigmaσ |
- 计算检验和
σj=Cj−∑iCB∗aij\sigma_j = C_j - \sum_{i} C_B * a_{ij}σj=Cj−i∑CB∗aij
σ1=C1−CB∗ai1=50−[500100]T∗[100]=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=C1−CB∗ai1=50−⎣⎡500100⎦⎤T∗⎣⎡100⎦⎤=0,
σ2=C2−CB∗ai2=100−[500100]T∗[001]=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=C2−CB∗ai2=100−⎣⎡500100⎦⎤T∗⎣⎡001⎦⎤=0,
σ3=C3−CB∗ai3=0−[500100]T∗[1−20]=−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=C3−CB∗ai3=0−⎣⎡500100⎦⎤T∗⎣⎡1−20⎦⎤=−50,
σ4=C4−CB∗ai4=0−[500100]T∗[010]=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=C4−CB∗ai4=0−⎣⎡500100⎦⎤T∗⎣⎡010⎦⎤=0,
σ5=C5−CB∗ai5=0−[500100]T∗[−111]=−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=C5−CB∗ai5=0−⎣⎡500100⎦⎤T∗⎣⎡−111⎦⎤=−50,
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
50 | x1x_1x1 | 50 | 1 | 0 | 1 | 0 | -1 |
0 | x4x_4x4 | 50 | 0 | 0 | -2 | 1 | 1 |
100 | x2x_2x2 | 250 | 0 | 1 | 0 | 0 | 1 |
σ\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 |
因为 ∀j\forall j∀j,使得 σj≤0\sigma_j \leq 0σj≤0 成立,所以迭代终止,算法结束;
最终解
CCC | CCC | CCC | 50 | 100 | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
CBC_BCB | 基 | bbb | x1x_1x1 | x2x_2x2 | x3x_3x3 | x4x_4x4 | x5x_5x5 |
50 | x1\color{#FF0000}{x_1}x1 | 50\color{#FF0000}{50}50 | 1 | 0 | 1 | 0 | -1 |
0 | x4\color{#FF0000}{x_4}x4 | 50\color{#FF0000}{50}50 | 0 | 0 | -2 | 1 | 1 |
100 | x2\color{#FF0000}{x_2}x2 | 250\color{#FF0000}{250}250 | 0 | 1 | 0 | 0 | 1 |
σ\sigmaσ | σ\sigmaσ | σ\sigmaσ | 0 | 0 | -50 | 0 | -50 |
解为:
{x1=50;x2=250;x3=0;x4=50;x5=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.
maxz=50x1+100x2=50∗50+100∗250=27500.\max z = 50x_1 + 100x_2 = 50 * 50 + 100 * 250 = 27500. maxz=50x1+100x2=50∗50+100∗250=27500.
3. 算法
1、 标准化(引入松弛变量);
2、构造初始单纯形表;
3、确定基变量和非基变量;
4、计算检验和;
5、确定入基变量和出基变量;
6、初等行变换;
7、重复4-6步,直到所有的检验和小于等于0;
8、bbb 值就是对应的基变量的解,非基变量的解为0。
4. 手稿
5. 参考
- cruelty_angel:单纯形法
- 妙恋非恋:单纯形法的计算步骤
- mohu:常用数学符号的 LaTeX 表示方法
- CodeAllen的博客:Markdown文字添加颜色方法总结(珍藏)
单纯形法求解步骤:一个简单例子相关推荐
- 单纯形法之人工变量法求解步骤:一个简单例子
文章目录 人工变量法 1. 大M法 1.1. 题目 1.2. 转化为标准型 1.3. 添加人工变量 2. 两阶段法 2.1. 步骤 2.2. 题目 2.2.1. 转化为标准型 2.2.2. 添加人工变 ...
- SAP MM采购定价过程的一个简单例子
SAP MM采购定价过程的一个简单例子 本文以一个简单的例子阐述了SAP MM模块中采购定价的基本原理.本例中,假定采购订单里输入的是含税采购价,然后系统自动计算出物料最终的采购价格(含税价-税额=采 ...
- 一个简单例子:贫血模型or领域模型
转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...
- KaTex的一个简单例子
在网页中可以用KaTex显示数学公式,KaTex官网是https://katex.org 以下是KaTex的一个简单例子: 下载https://github.com/KaTeX/KaTeX/archi ...
- 初次使用CTex时的一个简单例子
初次使用CTex时的一个简单例子 1.初次使用Ctex时的例子 第一次使用 LATEX,在WinEdt编辑以下代码,然后使用PDFLaTeX生成PDF文档. \documentclass{articl ...
- 协方差检验用在什么地方_通过一个简单例子,通俗讲下协方差分析
内容来自:"小白学统计"微信公众号,感谢作者授权. 临床中经常碰到这种设计:研究对象分为两组,接受不同治疗(如治疗组和安慰组),每组分别在治疗前和治疗后测量观察指标(如血压值).目 ...
- 通过一个简单例子理解 RecyclerView.ItemDecoration
一.前言 RecyclerView 是从5.0推出的 MD 风格的控件.RecyclerView 之前有 ListView.GridView,但是功能很有限,例如 ListView 只能实现垂直方向上 ...
- 什么是量子计算机?用一个简单例子来解释
译者:王亮 作者:YK Sugi 原文:http://t.cn/EZAElk0 Hi,大家好! 不久前,我参观了加拿大温哥华的D-Wave Systems公司,这是一家制造前沿量子计算机的公司. ...
- 词法分析程序 LEX和VC6整合使用的一个简单例子
词法分析的理论知识不少,包括了正规式.正规文法.它们之间的转换以及确定的有穷自动机和不确定的有穷自动机等等... 要自己写一个词法分析器也不会很难,只要给出了最简的有穷自动机,就能很方便实现了,用if ...
最新文章
- swift 中跳转web view的两种方法
- C#语言与面向对象技术(4)
- 清华大学:智能驾驶背景下转向系统发展趋势
- JAVA Calendar方法详解
- 资源已存在时POST的HTTP响应代码
- 阿里团队高效沟通的秘密,全在这5点!
- An Invitation to 3-D Vision: From Images to Geometric Models 邀请 3d 视觉从图像的几何模型(免费下载)
- 图像分割 2020 最新进展
- FreeBsd网络性能优化方案sysctl
- Asp.net在IE10、IE11下事件丢失经验总结
- 高级技巧之Lambda表达式
- 关于oracle的物理dg,oracle物理DG管理-redo数据传输,应用与三种模式
- idea 创建多模块项目子模块为灰色
- Java中根据URL下载gif图片文件
- Error occurred during initialization of VM Could not reserve enough space for object heap
- SUSE12 sp1如何进入单用户模式
- 计算机源代码英语,计算机源代码编写规范(国外英文资料).doc
- Cisco2960交换机配置(二)
- python爬虫:案例二:携程网酒店价格信息
- 图片转cad用什么软件?转换有技巧