文章目录

  • 一、线性规划示例
  • 二、转化标准形式
  • 三、查找初始基可行解
  • 四、初始基可行解的最优解判定
  • 五、第一次迭代 : 入基与出基变量选择
  • 六、第一次迭代 : 方程组同解变换
  • 七、第一次迭代 : 生成新的单纯形表
  • 八、第一次迭代 : 解出基可行解
  • 九、第一次迭代 : 计算检验数 σj\sigma_jσj​ 判定最优解 并选择入基变量
  • 十、第一次迭代 : 根据入基变量计算并选择出基变量
  • 十一、第二次迭代 : 方程组同解变换
  • 十二、第二次迭代 : 生成新的单纯形表
  • 十三、第二次迭代 : 计算检验数、最优解判定

单纯形法 参考博客 :

1 . 查找初始基可行解 :

  • 【运筹学】线性规划数学模型 ( 单纯形法原理 | 单纯形法流程 | 查找初始基可行解 )

2 . 最优解判定 :

  • 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 可行解表示 | 目标函数推导 | 目标函数最大值分析 )
  • 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 单纯形表 | 系数计算方法 | 根据系数是否小于等于 0 判定最优解 )
  • 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 线性规划求解示例 )

3 . 迭代原则 :

  • 【运筹学】线性规划数学模型 ( 单纯形法 | 迭代原则 | 入基 | 出基 | 线性规划求解示例 )
  • 【运筹学】线性规划数学模型 ( 单纯形法 | 第一次迭代 | 方程组同解变换 | 计算新单纯形表 | 计算检验数 | 入基变量选择 | 出基变量选择 )
  • 【运筹学】线性规划数学模型 ( 单纯形法 | 第二次迭代 | 方程组同解变换 | 生成新单纯形表 | 计算检验数 | 最优解判定 | 线性规划解个数分析 )

4 . 单纯形法阶段总结 :

  • 【运筹学】线性规划 单纯形法 阶段总结 ( 初始基可行解 | 判定最优解 | 迭代 | 得到最优解 | 全流程详细解析 ) ★ 推荐

一、线性规划示例


使用单纯形法求解线性规划最优解 :

maxZ=3x1+4x2{2x1+x2≤40x1+3x2≤30xj≥0(j=1,2)\begin{array}{lcl} max Z = 3x_1 + 4x_2 \\ \\ \begin{cases} 2 x_1 + x_2 \leq 40 \\\\ x_1 + 3x_2 \leq 30 \\ \\x_j \geq 0 & (j = 1 , 2 ) \end{cases}\end{array}maxZ=3x1​+4x2​⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​2x1​+x2​≤40x1​+3x2​≤30xj​≥0​(j=1,2)​​

二、转化标准形式


首先将该线性规划转为标准形式 :

参考 【运筹学】线性规划数学模型标准形式 ( 标准形式 | 目标函数转化 | 决策变量转化 | 约束方程转化 | 固定转化顺序 | 标准形式转化实例 ) 线性规划 普通形式 -> 标准形式 转化顺序说明 博客 , 先处理变量约束 , 再将不等式转为等式 , 最后更新目标函数 ;

① 变量约束 : 首先查看变量约束 , 两个变量都是 ≥0\geq 0≥0 的 , 符合线性规划标准形式要求 ;

② 不等式转换 : 两个等式都是 小于等于不等式 , 需要 在不等式左侧加入松弛变量 , 将其转为等式 ;

  • 2x1+x2≤402 x_1 + x_2 \leq 402x1​+x2​≤40 , 左侧加入松弛变量 x3x_3x3​ , 变为 2x1+x2+x3=402 x_1 + x_2 + x_3 = 402x1​+x2​+x3​=40
  • x1+3x2≤30x_1 + 3x_2 \leq 30x1​+3x2​≤30 , 左侧加入松弛变量 x4x_4x4​ , 变为 x1+3x2+x4=30x_1 + 3x_2 + x_4 = 30x1​+3x2​+x4​=30

③ 更新目标函数 : 将 x3x_3x3​ 和 x4x_4x4​ 加入到目标函数中 , 得到新的目标函数 maxZ=3x1+4x2+0x3+0x4max Z = 3x_1 + 4x_2 + 0x_3 + 0x_4maxZ=3x1​+4x2​+0x3​+0x4​ ;

此时线性规划标准形式为 :

maxZ=3x1+4x2+0x3+0x4{2x1+x2+x3+0x4=40x1+3x2+0x3+x4=30xj≥0(j=1,2,3,4)\begin{array}{lcl} max Z = 3x_1 + 4x_2 + 0x_3 + 0x_4 \\ \\ \begin{cases} 2 x_1 + x_2 + x_3 + 0x_4 = 40 \\\\ x_1 + 3x_2 + 0x_3 + x_4 = 30 \\\\ x_j \geq 0 & (j = 1 , 2 , 3 , 4 ) \end{cases}\end{array}maxZ=3x1​+4x2​+0x3​+0x4​⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧​2x1​+x2​+x3​+0x4​=40x1​+3x2​+0x3​+x4​=30xj​≥0​(j=1,2,3,4)​​

三、查找初始基可行解


找基矩阵 :

上述线性规划标准形式的系数矩阵为 [21101301]\begin{bmatrix} &2 & 1 & 1 & 0 & \\\\ & 1 & 3 & 0 & 1 & \end{bmatrix}⎣⎡​​21​13​10​01​​⎦⎤​ , 其中子矩阵中有 [1001]\begin{bmatrix} & 1 & 0 & \\\\ & 0 & 1 & \end{bmatrix}⎣⎡​​10​01​​⎦⎤​ 单位阵 III ;

使用该单位阵 III 作为基矩阵 , 单位阵肯定是可逆的 , 其对应的基解 , 解出后的值就是右侧的常数值 , 肯定大于等于 000 , 是基可行解 ;

列出单纯形表 :

cjc_jcj​ cjc_jcj​ 333 444 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ θi\theta_iθi​
000 ( 目标函数 x3x_3x3​ 系数 c3c_3c3​ ) x3x_3x3​ 404040 222 111 111 000
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​) x4x_4x4​ 303030 111 333 000 111
σj\sigma_jσj​ 333 444 000 000

基变量是 x3x_3x3​ 和 x4x_4x4​ , 基变量在约束条件中的系数矩阵 [1001]\begin{bmatrix} &1 & 0 & \\\\ &0 & 1 & \end{bmatrix}⎣⎡​​10​01​​⎦⎤​ 就是基矩阵 , 这是个单位阵 ;

基变量是 x3x_3x3​ 和 x4x_4x4​ 在目标函数中的系数是 (00)\begin{pmatrix} \quad 0 \quad 0 \quad \end{pmatrix}(00​) ;

此时的基解是 (004030)\begin{pmatrix} \quad 0 \quad \\ \quad 0 \quad \\ \quad 40 \quad \\ \quad 30 \quad \\ \end{pmatrix}⎝⎜⎜⎛​004030​⎠⎟⎟⎞​ , 该解是初始解 , 下面判定该解是否是最优解 ;

四、初始基可行解的最优解判定


使用 检验数矩阵 (CNT−CBTB−1N)( C_N^T - C_B^T B^{-1}N )(CNT​−CBT​B−1N) 判断上述解 , 是否是最优解 , 该矩阵计算结果中所有的数 , 都是检验数 σ\sigmaσ , 如果 所有的数都小于等于 000 , 说明该解就是最优解 ;

这里只求非基变量的检验数 , 即 x1x_1x1​ , x2x_2x2​ 的检验数 ;

列出目标函数非基变量系数 (CNT−CBTB−1N)( C_N^T - C_B^T B^{-1}N )(CNT​−CBT​B−1N) 矩阵 :

  • 非基变量在目标函数中的系数矩阵 : CNT=(34)C_N^T=\begin{pmatrix} \quad 3 \quad 4 \quad \end{pmatrix}CNT​=(34​)

  • 基变量在目标函数中的叙述矩阵 : CBT=(00)C_B^T = \begin{pmatrix} \quad 0 \quad 0 \quad \end{pmatrix}CBT​=(00​)

  • B−1NB^{-1}NB−1N 是系数矩阵中经过矩阵变换后 , 基变量系数是单位阵 III , 非基变量系数是 B−1NB^{-1}NB−1N : B−1N=[2113]B^{-1}N =\begin{bmatrix} &2 & 1 & \\\\ &1 & 3 & \end{bmatrix}B−1N=⎣⎡​​21​13​​⎦⎤​

(CNT−CBTB−1N)=CNT=(34)−(00)×[2113]( C_N^T - C_B^T B^{-1}N ) = C_N^T=\begin{pmatrix} \quad 3 \quad 4 \quad \end{pmatrix} - \begin{pmatrix} \quad 0 \quad 0 \quad \end{pmatrix} \times \begin{bmatrix} &2 & 1 & \\\\ &1 & 3 & \end{bmatrix}(CNT​−CBT​B−1N)=CNT​=(34​)−(00​)×⎣⎡​​21​13​​⎦⎤​

=(σ1σ2)= \begin{pmatrix} \quad \sigma_{1} \quad \sigma_{2} \quad \end{pmatrix}=(σ1​σ2​​)

其中 σ1\sigma_{1}σ1​ 是目标函数中 x1x_1x1​ 的系数 , σ2\sigma_{2}σ2​ 是目标函数中的 x2x_2x2​ 的系数 ;

如果上述两个系数都小于等于 000 , 那么当 非基变量 XN=(x1x2)X_N =\begin{pmatrix} x_{1} \\ x_{2} \end{pmatrix}XN​=(x1​x2​​) 取值为 000 时 , 目标函数取值最大 ;

系数的计算公式为 : σj=cj−∑ciaij\sigma_j = c_j - \sum c_i a_{ij}σj​=cj​−∑ci​aij​ , 其中 cjc_jcj​ 对应的是非基变量在目标函数系数 , cic_ici​ 是基变量在目标函数中的系数 , aija_{ij}aij​ 是 B−1NB^{-1}NB−1N 中的矩阵向量 , 代表一列 ;

σ1=c1−(c3a11+c4a12)\sigma_{1} = c_1 - ( c_3 a_{11} + c_4 a_{12} )σ1​=c1​−(c3​a11​+c4​a12​)

σ1=3−(0×2)−(0×1)=3\sigma_{1} =3 - (0 \times 2) - (0 \times 1) = 3σ1​=3−(0×2)−(0×1)=3 , 是从下面的单纯形表中的如下位置提取的数值 ;

σ2=c2−(c3a21+c4a22)\sigma_{2} = c_2 - ( c_3 a_{21} + c_4 a_{22} )σ2​=c2​−(c3​a21​+c4​a22​)

σ2=4−(0×1)−(0×3)=4\sigma_{2} =4 - (0 \times 1) - (0 \times 3) = 4σ2​=4−(0×1)−(0×3)=4 , 是从下面的单纯形表中的如下位置提取的数值 ;

如果这两个系数 , 如果都小于等于 000 , 该 基可行解(004030)\begin{pmatrix} \quad 0 \quad \\ \quad 0 \quad \\ \quad 40 \quad \\ \quad 30 \quad \\ \end{pmatrix}⎝⎜⎜⎛​004030​⎠⎟⎟⎞​ 才是最优解 , 这两个系数都大于 000 , 因此不是最优解 ;

五、第一次迭代 : 入基与出基变量选择


入基变量选择 : 具体哪个变量入基 , 是由检验数决定的 , 检验数 σj\sigma_jσj​ 较大的入基 ; x2x_2x2​ 的检验数 σ2\sigma_2σ2​ 是 444 , 大于 σ1=3\sigma_1 = 3σ1​=3 , 因此这里选择 x2x_2x2​ 作为入基变量 ;

出基变量选择 : 系数矩阵中 , 常数列 b=(4030)b =\begin{pmatrix} \quad 40 \quad \\ \quad 30 \quad \end{pmatrix}b=(4030​) , 分别除以除以入基变量大于 000 的系数列 (13)\begin{pmatrix} \quad 1 \quad \\ \quad 3 \quad \end{pmatrix}(13​) , 得出结果是 (4010)\begin{pmatrix} \quad 40 \quad \\ \quad 10 \quad \end{pmatrix}(4010​) , 然后选择一个最小值 101010 , 查看该最小值对应的变量是 x4x_4x4​ , 选择该变量作为出基变量 ;

这里将出基变量与入基变量选择好了 , x2x_2x2​ 的检验数较大 , 选择 x2x_2x2​ 作为入基变量 , x4x_4x4​ 的 θ4\theta_4θ4​ 较小 , 选择 x4x_4x4​ 作为出基变量 ;

入基出基操作完成后 , 基变量变成了 x3,x2x_3, x_2x3​,x2​ ;

六、第一次迭代 : 方程组同解变换


方程组做同解变换 :

线性规划原始方程组为 {2x1+x2+x3+0x4=40x1+3x2+0x3+x4=30\begin{cases} 2 x_1 + x_2 + x_3 + 0x_4 = 40 \\\\ x_1 + 3x_2 + 0x_3 + x_4 = 30 \end{cases}⎩⎪⎨⎪⎧​2x1​+x2​+x3​+0x4​=40x1​+3x2​+0x3​+x4​=30​ , 需要将 x2x_2x2​ 的系数变为 (01)\begin{pmatrix} \quad 0 \quad \\ \quad 1 \quad \end{pmatrix}(01​) , x3x_3x3​ 的系数保持 (10)\begin{pmatrix} \quad 1 \quad \\ \quad 0 \quad \end{pmatrix}(10​) 不变 ;

方程 222 同解变换 : 在 x1+3x2+0x3+x4=30x_1 + 3x_2 + 0x_3 + x_4 = 30x1​+3x2​+0x3​+x4​=30 中 , 需要将 x2x_2x2​ 的系数变成 111 , 在方程两端乘以 13\dfrac{1}{3}31​ , 此时方程变成 13x1+x2+0x3+13x4=10\dfrac{1}{3}x_1 + x_2 + 0x_3 + \dfrac{1}{3}x_4 = 1031​x1​+x2​+0x3​+31​x4​=10 ;

方程 111 同解变换 : 将上述方程 222 作同解变换后 , 方程组变成 {2x1+x2+x3+0x4=4013x1+x2+0x3+13x4=10\begin{cases} 2 x_1 + x_2 + x_3 + 0x_4 = 40 \\\\ \dfrac{1}{3}x_1 + x_2 + 0x_3 + \dfrac{1}{3}x_4 = 10 \end{cases}⎩⎪⎪⎨⎪⎪⎧​2x1​+x2​+x3​+0x4​=4031​x1​+x2​+0x3​+31​x4​=10​ , 目前的需求是将方程 111 的 x2x_2x2​ 系数变为 000 , 使用方程 111 减去 方程 222 即可得到要求的矩阵 :

(2−13)x1+0x2+x3+(0−13)x4=40−1053x1+0x2+x3−13x4=30\begin{array}{lcl} (2 - \dfrac{1}{3}) x_1 + 0 x_2 + x_3 + (0 - \dfrac{1}{3}) x_4 &=& 40 - 10 \\\\ \dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 &=& 30 \end{array}(2−31​)x1​+0x2​+x3​+(0−31​)x4​35​x1​+0x2​+x3​−31​x4​​==​40−1030​

最终方程 111 转化为 53x1+0x2+x3−13x4=30\dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 = 3035​x1​+0x2​+x3​−31​x4​=30 ;

同解变换完成后的方程组为 {53x1+0x2+x3−13x4=3013x1+x2+0x3+13x4=10\begin{cases} \dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 = 30 \\\\ \dfrac{1}{3}x_1 + x_2 + 0x_3 + \dfrac{1}{3}x_4 = 10 \end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧​35​x1​+0x2​+x3​−31​x4​=3031​x1​+x2​+0x3​+31​x4​=10​

七、第一次迭代 : 生成新的单纯形表


单纯形表变成如下形式 : 下面的单纯形表中 , 上面部分是初始基可行解对应的单纯形表 , 下面的部分是本次迭代后生成的新的单纯形表 ;

将同解变换后的方程组中的 系数矩阵 , 和 常数 , 填入新的单纯形表中 ;

cjc_jcj​ cjc_jcj​ 333 444 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ θi\theta_iθi​
000 ( 目标函数 x3x_3x3​ 系数 c3c_3c3​ ) x3x_3x3​ 404040 222 111 111 000 404040 ( θ3\theta_3θ3​ )
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​) x4x_4x4​ 303030 111 333 000 111 101010 ( θ4\theta_4θ4​ )
σj\sigma_jσj​ 333 ( σ1\sigma_1σ1​ ) 444 ( σ2\sigma_2σ2​ ) 000 000
000 ( 目标函数 x3x_3x3​ 系数 c3c_3c3​ ) x3x_3x3​ 303030 53\dfrac{5}{3}35​ 000 111 −13-\dfrac{1}{3}−31​ ??? ( θ3\theta_3θ3​ )
444 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 101010 13\dfrac{1}{3}31​ 111 000 13\dfrac{1}{3}31​ ??? ( θ2\theta_2θ2​ )
σj\sigma_jσj​ ( 检验数 ) 53\dfrac{5}{3}35​ ( σ1\sigma_1σ1​ ) 000 000 −43-\dfrac{4}{3}−34​ ( σ4\sigma_4σ4​ )

八、第一次迭代 : 解出基可行解


新的 基变量是 x3,x2x_3 , x_2x3​,x2​ , 对应的基矩阵是 (1001)\begin{pmatrix} \quad 1 \quad 0 \quad \\ \quad 0 \quad 1 \quad \end{pmatrix}(1001​) , 非基变量是 x1,x4x_1, x_4x1​,x4​ , 对应的非基矩阵是 (53−131313)\begin{pmatrix} \quad \dfrac{5}{3} \quad -\dfrac{1}{3} \quad \\ \quad \dfrac{1}{3} \quad \dfrac{1}{3} \quad \end{pmatrix}⎝⎜⎛​35​−31​31​31​​⎠⎟⎞​ , 将非基变量设置为 000 , 方程组为 {53×0+0x2+x3−13×0=3013×0+x2+0x3+13×0=10\begin{cases} \dfrac{5}{3} \times 0 + 0x_2 + x_3 - \dfrac{1}{3} \times 0 = 30 \\\\ \dfrac{1}{3} \times 0 + x_2 + 0x_3 + \dfrac{1}{3} \times 0 = 10 \end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧​35​×0+0x2​+x3​−31​×0=3031​×0+x2​+0x3​+31​×0=10​ , 解出基变量为 {x3=30x2=10\begin{cases} x_3 = 30 \\\\ x_2 = 10 \end{cases}⎩⎪⎨⎪⎧​x3​=30x2​=10​ , 基可行解 为 (010300)\begin{pmatrix} \quad 0 \quad \\ \quad 10 \quad \\ \quad 30 \quad \\ \quad 0 \quad \end{pmatrix}⎝⎜⎜⎛​010300​⎠⎟⎟⎞​

九、第一次迭代 : 计算检验数 σj\sigma_jσj​ 判定最优解 并选择入基变量


根据 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 单纯形表 | 系数计算方法 | 根据系数是否小于等于 0 判定最优解 ) 博客中分析 , 检验数计算公式为 :

  • 矩阵形式 : CNT−CBTB−1NC_N^T - C_B^T B^{-1}NCNT​−CBT​B−1N
  • 单个检验数计算公式 : σj=cj−∑ciaij\sigma_j = c_j - \sum c_i a_{ij}σj​=cj​−∑ci​aij​

基变量的检验数是 000 , 主要是求非基变量的检验数 σ1,σ4\sigma_1 , \sigma_4σ1​,σ4​ ;

σ1=c1−(c3a11+c2a12)\sigma_{1} = c_1 - ( c_3 a_{11} + c_2 a_{12} )σ1​=c1​−(c3​a11​+c2​a12​)

σ1=3−(0×53)−(4×13)=53\sigma_{1} =3 - (0 \times \dfrac{5}{3}) - (4 \times \dfrac{1}{3}) = \dfrac{5}{3}σ1​=3−(0×35​)−(4×31​)=35​ , 是从下面的单纯形表中的如下位置提取的数值 ;

σ4=c4−(c3a41+c2a42)\sigma_{4} = c_4 - ( c_3 a_{41} + c_2 a_{42} )σ4​=c4​−(c3​a41​+c2​a42​)

σ4=0−(0×−13)−(4×13)=−43\sigma_{4} =0 - (0 \times -\dfrac{1}{3}) - (4 \times \dfrac{1}{3}) = -\dfrac{4}{3}σ4​=0−(0×−31​)−(4×31​)=−34​ , 是从下面的单纯形表中的如下位置提取的数值 ;

检验数 {σ1=3−(0×53)−(4×13)=53σ4=0−(0×−13)−(4×13)=−43\begin{cases} \sigma_{1} =3 - (0 \times \dfrac{5}{3}) - (4 \times \dfrac{1}{3}) = \dfrac{5}{3} \\\\ \sigma_{4} =0 - (0 \times -\dfrac{1}{3}) - (4 \times \dfrac{1}{3}) = -\dfrac{4}{3} \end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧​σ1​=3−(0×35​)−(4×31​)=35​σ4​=0−(0×−31​)−(4×31​)=−34​​ , σ1\sigma_1σ1​ 是大于 000 的 , 两个检验数必须都小于等于 000 , 该基可行解才算作是最优解 , 因此 该基可行解不是最优解 ;

根据检验数选择入基变量 : 继续迭代 , 选择检验数较大的非基变量 , 作为入基变量 , 这里入基变量是 x1x_1x1​ ;

十、第一次迭代 : 根据入基变量计算并选择出基变量


参考博客 【运筹学】线性规划数学模型 ( 单纯形法 | 迭代原则 | 入基 | 出基 | 线性规划求解示例 ) 五、出基与入基变量选择

入基变量 根据检验数 σ\sigmaσ 选择的是 x1x_1x1​ ;

出基变量是根据 θ\thetaθ 值来选择的 , 选择 θ\thetaθ 值较小的值对应的基变量作为出基变量 ;

θ\thetaθ 值计算 : 常数列 b=(3010)b =\begin{pmatrix} \quad 30 \quad \\ \quad 10 \quad \end{pmatrix}b=(3010​) , 分别除以除以入基变量 x1x_1x1​ 大于 000 的系数列 (5313)\begin{pmatrix} \quad \dfrac{5}{3} \quad \\\\ \quad \dfrac{1}{3} \quad \end{pmatrix}⎝⎜⎜⎛​35​31​​⎠⎟⎟⎞​ , 计算过程如下 (30531013)\begin{pmatrix} \quad \cfrac{30}{\dfrac{5}{3}} \quad \\\\ \quad \cfrac{10}{\dfrac{1}{3}} \quad \end{pmatrix}⎝⎜⎜⎜⎜⎜⎜⎜⎛​35​30​31​10​​⎠⎟⎟⎟⎟⎟⎟⎟⎞​ , 得出结果是 (1830)\begin{pmatrix} \quad 18 \quad \\\\ \quad 30 \quad \end{pmatrix}⎝⎛​1830​⎠⎞​ , 然后选择一个最小值 181818 , 查看该最小值对应的变量是 x3x_3x3​ , 选择该变量作为出基变量 ;

x1x_1x1​ 作入基变量 , x3x_3x3​ 作出基变量 ; 使用 x1x_1x1​ 替代基变量中 x3x_3x3​ 的位置 ;

迭代后的基变量为 x1,x2x_1 ,x_2x1​,x2​ ;

更新一下单纯形表 :

cjc_jcj​ cjc_jcj​ 333 444 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ θi\theta_iθi​
000 ( 目标函数 x3x_3x3​ 系数 c3c_3c3​ ) x3x_3x3​ 404040 222 111 111 000 404040 ( θ3\theta_3θ3​ )
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​) x4x_4x4​ 303030 111 333 000 111 101010 ( θ4\theta_4θ4​ )
σj\sigma_jσj​ 333 ( σ1\sigma_1σ1​ ) 444 ( σ2\sigma_2σ2​ ) 000 000
000 ( 目标函数 x3x_3x3​ 系数 c3c_3c3​ ) x3x_3x3​ 303030 53\dfrac{5}{3}35​ 000 111 −13-\dfrac{1}{3}−31​ 181818 ( θ3\theta_3θ3​ )
444 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 101010 13\dfrac{1}{3}31​ 111 000 13\dfrac{1}{3}31​ 303030 ( θ2\theta_2θ2​ )
σj\sigma_jσj​ ( 检验数 ) 53\dfrac{5}{3}35​ ( σ1\sigma_1σ1​ ) 000 000 −43-\dfrac{4}{3}−34​ ( σ4\sigma_4σ4​ )

十一、第二次迭代 : 方程组同解变换


当前的方程组为 {53x1+0x2+x3−13x4=3013x1+x2+0x3+13x4=10\begin{cases} \dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 = 30 \\\\ \dfrac{1}{3}x_1 + x_2 + 0x_3 + \dfrac{1}{3}x_4 = 10 \end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧​35​x1​+0x2​+x3​−31​x4​=3031​x1​+x2​+0x3​+31​x4​=10​ , 选择 x1,x2x_1, x_2x1​,x2​ 作为基变量 , 基矩阵为 (530131)\begin{pmatrix} \quad \dfrac{5}{3} \quad 0 \quad \\\\ \quad \dfrac{1}{3} \quad 1 \quad \end{pmatrix}⎝⎜⎜⎛​35​031​1​⎠⎟⎟⎞​ , 进行同解变换 , 将基矩阵转为单位阵 ;

方程 111 同解变换 :

将 53x1+0x2+x3−13x4=30\dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 = 3035​x1​+0x2​+x3​−31​x4​=30 方程中的 x1x_1x1​ 的系数变为 111 , x2x_2x2​ 的系数为 000 保持不变 ;

方程的左右变量乘以 35\dfrac{3}{5}53​ :

53x1+0x2+x3−13x4=30(53x1+0x2+x3−13x4)×35=30×35x1+0x2+35x3−15x4=18\begin{array}{lcl} \dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 &=& 30 \\\\ ( \dfrac{5}{3} x_1 + 0x_2 + x_3 - \dfrac{1}{3} x_4 ) \times \dfrac{3}{5} &=& 30 \times \dfrac{3}{5} \\\\ x_1 + 0x_2 + \dfrac{3}{5} x_3 - \dfrac{1}{5}x_4 &=& 18 \end{array}35​x1​+0x2​+x3​−31​x4​(35​x1​+0x2​+x3​−31​x4​)×53​x1​+0x2​+53​x3​−51​x4​​===​3030×53​18​

当前方程组变成 {x1+0x2+35x3−15x4=1813x1+x2+0x3+13x4=10\begin{cases} x_1 + 0x_2 + \dfrac{3}{5} x_3 - \dfrac{1}{5}x_4 = 18 \\\\ \dfrac{1}{3}x_1 + x_2 + 0x_3 + \dfrac{1}{3}x_4 = 10 \end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧​x1​+0x2​+53​x3​−51​x4​=1831​x1​+x2​+0x3​+31​x4​=10​

方程 222 同解变换 : 将方程 111 乘以 −13-\dfrac{1}{3}−31​ , 与方程 222 相加 ;

① 方程 111 乘以 −13-\dfrac{1}{3}−31​ :

(x1+0x2+35x3−15x4)×−13=18×−13−13x1+0x2+−15x3+115x4=−6\begin{array}{lcl} ( x_1 + 0x_2 + \dfrac{3}{5} x_3 - \dfrac{1}{5}x_4 ) \times -\dfrac{1}{3} &=& 18 \times -\dfrac{1}{3} \\\\ -\dfrac{1}{3} x_1 + 0x_2 + -\dfrac{1}{5}x_3 + \dfrac{1}{15} x_4 &=& -6 \end{array}(x1​+0x2​+53​x3​−51​x4​)×−31​−31​x1​+0x2​+−51​x3​+151​x4​​==​18×−31​−6​

② 与方程 222 相加 :

(−13x1+0x2+−15x3+115x4)+(13x1+x2+0x3+13x4)=−6+100x1+x2−15x3+25x4=4\begin{array}{lcl} (-\dfrac{1}{3} x_1 + 0x_2 + -\dfrac{1}{5}x_3 + \dfrac{1}{15} x_4) + (\dfrac{1}{3}x_1 + x_2 + 0x_3 + \dfrac{1}{3}x_4)&=& -6 + 10 \\\\ 0x_1 + x_2 -\dfrac{1}{5}x_3 + \dfrac{2}{5} x_4 &=& 4 \end{array}(−31​x1​+0x2​+−51​x3​+151​x4​)+(31​x1​+x2​+0x3​+31​x4​)0x1​+x2​−51​x3​+52​x4​​==​−6+104​

当前方程组变成 {x1+0x2+35x3−15x4=180x1+x2−15x3+615x4=4\begin{cases} x_1 + 0x_2 + \dfrac{3}{5} x_3 - \dfrac{1}{5}x_4 = 18 \\\\ 0x_1 + x_2 -\dfrac{1}{5}x_3 + \dfrac{6}{15} x_4 = 4 \end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧​x1​+0x2​+53​x3​−51​x4​=180x1​+x2​−51​x3​+156​x4​=4​

十二、第二次迭代 : 生成新的单纯形表


更新一下单纯形表 : 将第三次迭代的矩阵填入下面的单纯形表中 ;

cjc_jcj​ cjc_jcj​ 333 444 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ θi\theta_iθi​
000 ( 目标函数 x3x_3x3​ 系数 c3c_3c3​ ) x3x_3x3​ 404040 222 111 111 000 404040 ( θ3\theta_3θ3​ )
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​) x4x_4x4​ 303030 111 333 000 111 101010 ( θ4\theta_4θ4​ )
σj\sigma_jσj​ 333 ( σ1\sigma_1σ1​ ) 444 ( σ2\sigma_2σ2​ ) 000 000
第一次迭代
000 ( 目标函数 x3x_3x3​ 系数 c3c_3c3​ ) x3x_3x3​ 303030 53\dfrac{5}{3}35​ 000 111 −13-\dfrac{1}{3}−31​ 181818 ( θ3\theta_3θ3​ )
444 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 101010 13\dfrac{1}{3}31​ 111 000 13\dfrac{1}{3}31​ 303030 ( θ2\theta_2θ2​ )
σj\sigma_jσj​ ( 检验数 ) 53\dfrac{5}{3}35​ ( σ1\sigma_1σ1​ ) 000 000 −43-\dfrac{4}{3}−34​ ( σ4\sigma_4σ4​ )
第二次迭代
333 ( 目标函数 x1x_1x1​ 系数 c1c_1c1​ ) x1x_1x1​ 181818 111 000 35\dfrac{3}{5}53​ −15-\dfrac{1}{5}−51​ ??? ( θ3\theta_3θ3​ )
444 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 444 000 111 −15-\dfrac{1}{5}−51​ 25\dfrac{2}{5}52​ ??? ( θ2\theta_2θ2​ )
σj\sigma_jσj​ ( 检验数 ) 000 000 ??? ( σ3\sigma_3σ3​ ) ??? ( σ4\sigma_4σ4​ )

十三、第二次迭代 : 计算检验数、最优解判定


计算检验数 σ\sigmaσ :

σ3=0−3×35−4×(−15)=−95+45=−1\sigma_3 = 0 - 3 \times \dfrac{3}{5} - 4 \times (-\dfrac{1}{5}) = -\dfrac{9}{5} + \dfrac{4}{5} = -1σ3​=0−3×53​−4×(−51​)=−59​+54​=−1

σ4=0−3×(−15)−4×25=35−85=−1\sigma_4 = 0 - 3 \times (-\dfrac{1}{5}) - 4 \times \dfrac{2}{5} = \dfrac{3}{5} - \dfrac{8}{5} = -1σ4​=0−3×(−51​)−4×52​=53​−58​=−1

两个非基变量的检验数都是小于等于 000 的 , 因此该基可行解 (18400)\begin{pmatrix} \quad 18 \quad \\ \quad 4 \quad \\ \quad 0 \quad \\ \quad 0 \quad \end{pmatrix}⎝⎜⎜⎛​18400​⎠⎟⎟⎞​是最优解 ;

【运筹学】线性规划 单纯形法 阶段总结 ( 初始基可行解 | 判定最优解 | 迭代 | 得到最优解 | 全流程详细解析 ) ★相关推荐

  1. 【运筹学】线性规划 单纯形法 案例二 ( 案例解析 | 标准形转化 | 查找初始基可行解 | 最优解判定 | 查找入基变量与出基变量 | 第一次迭代 )

    文章目录 一.线性规划示例 二.转化成标准形式 三.初始基可行解 四.列出单纯形表 五.计算检验数 六.选择入基变量与出基变量 七.第一次迭代 : 列出单纯形表 一.线性规划示例 线性规划示例 : 使 ...

  2. 【运筹学】线性规划数学模型 ( 单纯形法原理 | 单纯形法流程 | 查找初始基可行解 )

    文章目录 一.单纯形法原理 二.单纯形法流程 三.初始的基可行解查找 一.单纯形法原理 单纯形法的理论基础 : 定理 111 ( 可行域是凸集 ) : 如果线性规划的问题 存在可行解 , 其 可行域 ...

  3. 【运筹学】表上作业法 ( 最优解判别 | 初始基可行解 | 运费修改可行性方案 | 闭回路法 )

    文章目录 一.最优解判别 二.初始基可行解 三.运费修改可行性方案 四.闭回路法 一.最优解判别 在上两篇博客 [运筹学]表上作业法 ( 求初始基可行解 | 最小元素法 ) , [运筹学]表上作业法 ...

  4. 【运筹学】表上作业法 ( 示例 | 使用 “ 最小元素法 “ 找初始基可行解 )

    文章目录 一.运输规划问题 二.找初始基可行解 一.运输规划问题 运输规划问题 : B1\rm B_1B1​ B1\rm B_1B1​ B1\rm B_1B1​ B1\rm B_1B1​ 产量 A1\ ...

  5. 【运筹学】表上作业法 ( 找初始基可行解 | 计算检验数 | 调整运量 )

    文章目录 一.运输规划问题 二.找初始基可行解 三.计算检验数 四.调整运量 ( 换基 ) 一.运输规划问题 运输规划问题 : 二.找初始基可行解 使用最小元素法求得的初始基可行解 : B1\rm B ...

  6. 【运筹学】表上作业法 ( 求初始基可行解 | 最小元素法 )

    文章目录 一.表上作业法 第一步 : 确定初始基可行解 二.最小元素法 一.表上作业法 第一步 : 确定初始基可行解 运输问题如下 : 下面的表格代表 333 个产地 , 444 个销地 的运输规划问 ...

  7. 单纯形法表格法例题详解_优化 |运筹学线性规划单纯形法之求解

    文章申明 文章作者:臧永森 臧永森:清华大学工业工程系在读博士,研究方向:运筹优化算法的设计与应用.数据统计分析.大数据技术与应用,戚铭尧老师团队 责任编辑:阎泳楠 文章由『运筹OR帷幄』原创发布,如 ...

  8. python求解运输问题_【Python实现】运输问题的表上作业法:利用伏格尔 (Vogel) 法寻找初始基可行解...

    #运输问题求解:使用Vogel逼近法寻找初始基本可行解 import numpy as np import pandas as pd import copy #定义函数TP_vogel,用来实现Vog ...

  9. 【运筹学】线性规划 单纯形法 案例二 ( 第一次迭代 | 矩阵变换 | 检验数计算 | 最优解判定 | 入基变量 | 出基变量 )

    文章目录 一.第一次迭代 : 进行行变换 二.第一次迭代 : 计算检验数 三.第一次迭代 : 最优解判定 四.第一次迭代 : 入基变量 五.第一次迭代 : 出基变量 [运筹学]线性规划 单纯形法 ( ...

最新文章

  1. 【源代码】基于Android和蓝牙的单片机温度採集系统
  2. 10行Python代码自动清理电脑内重复文件
  3. -bash: /tyrone/jdk/jdk1.8.0_91/bin/java: cannot execute binary file
  4. CSDN-Markdown基本语法
  5. 全国计算机等级考试题库二级C操作题100套(第04套)
  6. java perl5compiler,Java中正则表达式使用方法详解(四)
  7. Java StringBuilder length()方法与示例
  8. jquery中的css函数css(name)、css(key,value)、css(properties)、css(key,fn)
  9. 干货分享 | 工业信息数据库安全现状与技术分析
  10. 计算机三级——数据库技术
  11. CZ1206计算机在线,若按CZ-1206科学计算器的键后,再依次按键,则显示的结果是()...
  12. python中文字符串比较模块_python比较字符串相似度,原创度检测工具
  13. 2019广东工业智造创新大赛【赛场二】感谢拼命的自己
  14. 用U盘给服务器做系统用在pe里分区吗,如何用U盘装系统并给硬盘分区
  15. oracle的cbo,Oracle CBO术语大集合
  16. Hive函数(内置函数(字符串函数,数学函数,日期函数,集合函数,条件函数,聚合函数,表生成函数)和自定义函数(自定义函数创建流程,临时函数,永久函数)))(四)
  17. 纯css实现视频容器动态尺寸并且固定长宽比
  18. 数字游戏(算法设计与分析c++)
  19. DeamNet代码学习||网络框架核心代码 逐句查找学习
  20. exported android,Android activity exported属性理解

热门文章

  1. VS2008 Tips #004 – 您可以通过“浏览方式…”添加浏览器到 Visual Web Developer
  2. vue中的v-model原理,与组件自定义v-model
  3. 题解 DTOJ #1438. 矮人排队(lineup)
  4. C#里partial关键字的作用(转摘)
  5. Cracking The Coding Interview5.2
  6. [转]android-学习笔记之按钮事件
  7. 保证相同类型的MDI子窗体只会被打开一次的方法
  8. php 常用字符串函数
  9. [BZOJ3595][SCOI2014]方伯伯的OJ(裂点Splay)
  10. POJ 3237.Tree -树链剖分(边权)(边值更新、路径边权最值、区间标记)贴个板子备忘...