文章目录

  • 一、单纯形法原理
  • 二、单纯形法流程
  • 三、单纯形法案例一
    • 1、线性规划示例
    • 2、转化标准形式
    • 3、查找初始基可行解
    • 4、初始基可行解的最优解判定
    • 5、第一次迭代 : 入基与出基变量选择
    • 6、第一次迭代 : 方程组同解变换
    • 7、第一次迭代 : 生成新的单纯形表
    • 8、第一次迭代 : 解出基可行解
    • 9、第一次迭代 : 计算检验数 σj\sigma_jσj​ 判定最优解 并选择入基变量
    • 10、第一次迭代 : 根据入基变量计算并选择出基变量
    • 11、第二次迭代 : 方程组同解变换
    • 12、第二次迭代 : 生成新的单纯形表
    • 13、第二次迭代 : 计算检验数、最优解判定
  • 四、单纯形法案例二
    • 1、线性规划示例
    • 2、转化成标准形式
    • 3、初始基可行解
    • 5、计算检验数
    • 6、选择入基变量与出基变量
    • 7、第一次迭代 : 列出单纯形表
    • 8、第一次迭代 : 进行行变换
    • 9、第一次迭代 : 计算检验数
    • 10、第一次迭代 : 最优解判定
    • 11、第一次迭代 : 入基变量
    • 12、第一次迭代 : 出基变量
    • 13、第二次迭代 : 进行矩阵变换
    • 14、第二次迭代 : 计算检验数
    • 15、第二次迭代 : 最优解判定
  • 五、线性规划最优解分析
    • 1、唯一最优解
    • 2、无穷多最优解
    • 3、无界解
    • 4、无可行解

一、单纯形法原理


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

单纯形法的理论基础 :

定理 111 ( 可行域是凸集 ) : 如果线性规划的问题 存在可行解 , 其 可行域 必定是 凸集 ;

定理 222 ( 基可行解是凸集顶点 ) : 线性规划的 基可行解 XBX_BXB​ 对应了上述 可行域 ( 凸集 ) 的顶点位置 ;

定理 333 ( 某个基可行解是最优解 ) : 如果线性规划问题 存在最优解 , 那么 一定存在一个基可行解是最优解 ;

参考上一篇博客 【运筹学】线性规划 图解法 ( 唯一最优解 | 无穷最优解 | 无界解 | 无可行解 ) 进行分析 :

给定线性规划 :

maxZ=2x1+x2s.t={x1+1.9x2≥3.8x1−1.9x2≤3.8x1+1.9x2≤10.2x1−1.9x2≥−3.8x1,x2≥0\begin{array}{lcl} max Z = 2x_1 + x_2\\\\ s.t = \begin{cases} x_1 + 1.9x_2 \geq 3.8\\\\ x_1 - 1.9x_2 \leq 3.8\\\\ x_1 + 1.9x_2 \leq 10.2\\\\ x_1 - 1.9x_2 \geq -3.8\\\\ x_1 , x_2 \geq 0 \end{cases} \end{array}maxZ=2x1​+x2​s.t=⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​x1​+1.9x2​≥3.8x1​−1.9x2​≤3.8x1​+1.9x2​≤10.2x1​−1.9x2​≥−3.8x1​,x2​≥0​​

使用图解法进行分析 , 得到如下结果 ;

使用迭代的思想进行求解 :

  • 无限个解中迭代 : 上图中的 可行域 DDD 中的点是无限的 , 可以在所有的无限个可行域 DDD 解中进行迭代 , 逐个迭代很难 ;

  • 有限个解中迭代 : 因此选取 可行域 ( 凸集 ) 的顶点 , 也就是 基可行解 进行迭代 , 该线性规划问题的基可行解是有限的 , 只有 444 个 , 即该凸集有 444 个顶点 ;

上图的凸集中的 444 个顶点 , 必然有一个是最优解 , 因此迭代的时候 , 不用从 DDD 可行域中的无限个点中进行迭代 , 只需要在有限个基可行解中进行迭代 , 即可找到最优解 ;

单纯形法的原理的基础就是源自上述理论 , 在线性规划的有限个基可行解中 , 必定存在一个解释最优解 , 逐个迭代 , 将这个最优解找出即可 ;

从无限个可行解中进行迭代 , 到有限个基可行解中进行迭代 , 简单了很多 ;

但是对于 m×nm \times nm×n 阶的线性规划系数矩阵 , 其基可行解的个数可能有 CnmC_n^mCnm​ 个 , 如果 nnn 和 mmm 很大的话 , 基可行解的数目还是很大 , 这是一个指数级的数 , 因此使用多项式算法 , 完成上述操作 , 计算量还是很大的 ;

这里使用单纯形法 , 进行迭代 , 要比使用多项式法计算量更少 ;

二、单纯形法流程


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

单纯形法的基本流程 :

① 初始基可行解 : 首先找到初始的基可行解 ;

② 判定是否最优解 : 需要一个准则 , 判定该初始基可行解 , 是否是最优解 ; 这里是单纯形法最核心问题 ;

③ 是最优解 : 如果该基可行解是最优解 , 那么结束迭代 ;

④ 不是最优解 : 如果该基可行解不是最优解 , 那么迭代到下一个基可行解 , 继续判定是否是最优解 ; 如何迭代也需要一个准则 ;

这里涉及到了两个准则 :

  • 判断最优解 : 判断一个 基可行解 是否是最优解 ;
  • 迭代原则 : 如何从一个 基可行解 迭代到下一个基可行解 ;

单纯形法涉及到的问题 :

① 初始解 : 如何找到初始基可行解 ;

② 最优解 : 如何找到一个准则 , 用于判定基可行解是否是最优解 ;

③ 迭代解 : 如果一个基可行解不满足准则 , 如何去选择下一个基可行解进行迭代 ;

解决上述 333 个问题 , 基可行解的算法 , 也就可以得出 ;

三、单纯形法案例一


1、线性规划示例

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

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)​​

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)​​

3、查找初始基可行解

找基矩阵 :

上述线性规划标准形式的系数矩阵为 [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​⎠⎟⎟⎞​ , 该解是初始解 , 下面判定该解是否是最优解 ;

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

使用 检验数矩阵 (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 , 因此不是最优解 ;

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

入基变量选择 : 具体哪个变量入基 , 是由检验数决定的 , 检验数 σ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​ ;

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

方程组做同解变换 :

线性规划原始方程组为 {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​

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

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

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

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​ )

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

新的 基变量是 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​⎠⎟⎟⎞​

9、第一次迭代 : 计算检验数 σ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​ ;

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

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

入基变量 根据检验数 σ\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​ )

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


当前的方程组为 {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​

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


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

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​ )

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


计算检验数 σ\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、线性规划示例

线性规划示例 : 使用单纯形法求解下面的线性规划 ;

maxZ=x1+2x2+x3s.t{2x1−3x2+2x3≤1513x1+x2+5x3≤20xj≥0(j=1,2,3)\begin{array}{lcl} max Z = x_1 + 2x_2 + x_3 \\ \\ s.t\begin{cases} 2 x_1 - 3x_2 + 2x_3 \leq 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 \leq 20 \\ \\x_j \geq 0 & (j = 1 , 2 , 3 ) \end{cases}\end{array}maxZ=x1​+2x2​+x3​s.t⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧​2x1​−3x2​+2x3​≤1531​x1​+x2​+5x3​≤20xj​≥0​(j=1,2,3)​​

2、转化成标准形式

首先将现行规划转化成标准形式 :

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

1 . 处理约束变量 : 所有的约束变量都大于等于 000 , 这里无需处理 ;

2 . 将不等式转为等式 : 两个不等式都是小于等于不等式 , 在左侧加入松弛变量即可 ;

① 添加松弛变量 : 上述两个不等式 {2x1−3x2+2x3≤1513x1+x2+5x3≤20\begin{cases} 2 x_1 - 3x_2 + 2x_3 \leq 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 \leq 20 \end{cases}⎩⎪⎪⎨⎪⎪⎧​2x1​−3x2​+2x3​≤1531​x1​+x2​+5x3​≤20​ , 在左侧分别添加 x4,x5x_4 , x_5x4​,x5​ 松弛变量 ;

② 最终结果 : 转化后的结果是 {2x1−3x2+2x3+x4=1513x1+x2+5x3+x5=20xj≥0(j=1,2,3,4,5)\begin{cases} 2 x_1 - 3x_2 + 2x_3 + x_4 = 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 + x_5 = 20 \\ \\x_j \geq 0 \quad (j = 1 , 2 , 3, 4, 5 ) \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧​2x1​−3x2​+2x3​+x4​=1531​x1​+x2​+5x3​+x5​=20xj​≥0(j=1,2,3,4,5)​

3 . 处理目标函数取最大值 : 目标函数就是取最大值 , 无需处理 ;

4 . 最终的标准形结果是 :

maxZ=x1+2x2+x3+0x4+0x5s.t{2x1−3x2+2x3+x4+0x5=1513x1+x2+5x3+0x4+x5=20xj≥0(j=1,2,3,4,5)\begin{array}{lcl} max Z = x_1 + 2x_2 + x_3 + 0x_4 + 0x_5 \\ \\ s.t\begin{cases} 2 x_1 - 3x_2 + 2x_3 + x_4 + 0x_5 = 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 = 20 \\ \\x_j \geq 0 \quad (j = 1 , 2 , 3, 4, 5 ) \end{cases}\end{array}maxZ=x1​+2x2​+x3​+0x4​+0x5​s.t⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧​2x1​−3x2​+2x3​+x4​+0x5​=1531​x1​+x2​+5x3​+0x4​+x5​=20xj​≥0(j=1,2,3,4,5)​​

3、初始基可行解

找初始基可行解 :

① 查找单位阵 : 该线性规划标准形的系数矩阵中 , x4,x5x_4 , x_5x4​,x5​ 的系数矩阵是 (1001)\begin{pmatrix} \quad 1 \quad 0 \quad \\ \quad 0 \quad 1 \quad \\ \end{pmatrix}(1001​) , 该矩阵是单位阵 ;

② 可行基 : 选择该矩阵作为可行基 ;

③ 初始基可行解 : 其对应的解是基可行解 (0001520)\begin{pmatrix} \quad 0 \quad \\ \quad 0 \quad \\ \quad 0 \quad \\ \quad 15 \quad \\ \quad 20 \quad \\ \end{pmatrix}⎝⎜⎜⎜⎜⎛​0001520​⎠⎟⎟⎟⎟⎞​ ;

## 4、列出单纯形表

maxZ=x1+2x2+x3+0x4+0x5s.t{2x1−3x2+2x3+x4+0x5=1513x1+x2+5x3+0x4+x5=20xj≥0(j=1,2,3,4,5)\begin{array}{lcl} max Z = x_1 + 2x_2 + x_3 + 0x_4 + 0x_5 \\ \\ s.t\begin{cases} 2 x_1 - 3x_2 + 2x_3 + x_4 + 0x_5 = 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 = 20 \\ \\x_j \geq 0 \quad (j = 1 , 2 , 3, 4, 5 ) \end{cases}\end{array}maxZ=x1​+2x2​+x3​+0x4​+0x5​s.t⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧​2x1​−3x2​+2x3​+x4​+0x5​=1531​x1​+x2​+5x3​+0x4​+x5​=20xj​≥0(j=1,2,3,4,5)​​

cjc_jcj​ cjc_jcj​ 111 222 111 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ θi\theta_iθi​
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 151515 222 −1-1−1 222 111 000 −-−
000 ( 目标函数 x5x_5x5​ 系数 c5c_5c5​) x5x_5x5​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 202020
σj\sigma_jσj​ ( 检验数 ) 111 ( σ1\sigma_1σ1​ ) 222 ( σ2\sigma_2σ2​ ) 111 ( σ3\sigma_3σ3​ ) 000 000

5、计算检验数

计算非基变量的检验数 :

单个检验数计算公式 : σj=cj−∑ciaij\sigma_j = c_j - \sum c_i a_{ij}σj​=cj​−∑ci​aij​ , 其中 cjc_jcj​ 是对应目标函数非基变量系数 , cic_ici​ 是目标函数中基变量系数 , aija_{ij}aij​ 是系数矩阵中对应的 xjx_jxj​ 非基变量列向量 ;

① σ1\sigma_1σ1​ 检验数计算 : σ1=1−(0×2+0×13)=1\sigma_1 = 1 - ( 0 \times 2 + 0 \times \dfrac{1}{3} ) = 1σ1​=1−(0×2+0×31​)=1


② σ2\sigma_2σ2​ 检验数计算 : σ2=2−(0×(−1)+0×1)=2\sigma_2 = 2 - ( 0 \times (-1) + 0 \times 1 ) = 2σ2​=2−(0×(−1)+0×1)=2

③ σ13\sigma_13σ1​3 检验数计算 : σ3=1−(0×2+0×5)=1\sigma_3 = 1 - ( 0 \times 2 + 0 \times 5 ) = 1σ3​=1−(0×2+0×5)=1

6、选择入基变量与出基变量

入基变量选择 : 选择检验数 σj\sigma_jσj​ 较大的非基变量作为入基变量 , 即 x2x_2x2​ ;

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

出基变量选择 : 常数列 b=(1520)b =\begin{pmatrix} \quad 15 \quad \\ \quad 20 \quad \end{pmatrix}b=(1520​) , 分别除以除以入基变量 x2x_2x2​ 大于 000 的系数列 (−11)\begin{pmatrix} \quad -1 \quad \\\\ \quad 1 \quad \end{pmatrix}⎝⎛​−11​⎠⎞​ , 计算过程如下 (系数小于0不计算201)\begin{pmatrix} \quad 系数小于0 不计算 \quad \\\\ \quad \cfrac{20}{1} \quad \end{pmatrix}⎝⎜⎜⎛​系数小于0不计算120​​⎠⎟⎟⎞​ , 得出结果是 (无效值20)\begin{pmatrix} \quad 无效值 \quad \\\\ \quad 20 \quad \end{pmatrix}⎝⎛​无效值20​⎠⎞​ , 如果系数小于等于 000 , 该值就是无效值 , 默认为无穷大 , 不进行比较 , 选择 202020 对应的基变量作为出基变量 , 查看该最小值对应的变量是 x5x_5x5​ , 选择该 x5x_5x5​ 变量作为出基变量 ;

7、第一次迭代 : 列出单纯形表

上述已经得到 x2x_2x2​ 作为入基变量 , 由非基变量转为基变量 , x5x_5x5​ 作为出基变量 , 由基变量转为非基变量 ; 使用 x2x_2x2​ , 替换基变量中的 x5x_5x5​ 的位置 ;

基变量为 x4,x2x_4 , x_2x4​,x2​ , 注意顺序不要写反 ;

cjc_jcj​ cjc_jcj​ 111 222 111 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ θi\theta_iθi​
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 151515 222 −1-1−1 222 111 000 −-− (θ4\theta_4θ4​)
000 ( 目标函数 x5x_5x5​ 系数 c5c_5c5​) x5x_5x5​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 202020 ( θ5\theta_5θ5​ )
σj\sigma_jσj​ ( 检验数 ) 111 ( σ1\sigma_1σ1​ ) 222 ( σ2\sigma_2σ2​ ) 111 ( σ3\sigma_3σ3​ ) 000 000
第一次迭代
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 151515 ??? 111 ??? 111 ??? ??? ( θ4\theta_4θ4​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 202020 ??? 000 ??? 000 ??? ??? (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) 111 ( σ1\sigma_1σ1​ ) 000 111 ( σ3\sigma_3σ3​ ) 000 ??? ( σ2\sigma_2σ2​ )

8、第一次迭代 : 进行行变换

当前的线性规划标准形式等式方程组 : {2x1−3x2+2x3+x4+0x5=1513x1+x2+5x3+0x4+x5=20\begin{cases} 2 x_1 - 3x_2 + 2x_3 + x_4 + 0x_5 = 15 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 = 20 \end{cases}⎩⎪⎪⎨⎪⎪⎧​2x1​−3x2​+2x3​+x4​+0x5​=1531​x1​+x2​+5x3​+0x4​+x5​=20​

当前的单纯性表 :

cjc_jcj​ cjc_jcj​ 111 222 111 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ θi\theta_iθi​
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 151515 222 −3-3−3 222 111 000 −-− (θ4\theta_4θ4​)
000 ( 目标函数 x5x_5x5​ 系数 c5c_5c5​) x5x_5x5​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 202020 ( θ5\theta_5θ5​ )
σj\sigma_jσj​ ( 检验数 ) 111 ( σ1\sigma_1σ1​ ) 222 ( σ2\sigma_2σ2​ ) 111 ( σ3\sigma_3σ3​ ) 000 000
第一次迭代
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ ??? ??? ??? ??? ??? ??? ??? ( θ4\theta_4θ4​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ ??? ??? ??? ??? ??? ??? ??? (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) ??? ( σ1\sigma_1σ1​ ) 000 ??? ( σ3\sigma_3σ3​ ) 000 ??? ( σ2\sigma_2σ2​ )

下面进行矩阵变换 :

  • 入基变量是 x2x_2x2​
  • 出基变量是 x5x_5x5​

中心元 : 在下面单纯形表中 , x2x_2x2​ 列 ( 红色选框 ) , 与 x5x_5x5​ 行 ( 绿色选框 ) , 上述 行列相交的部分 是 中心元 ,

以上述 中心元 为轴做变换 , 变换目的是把 中心元位置变换成 111 , 把中心元所在列的另一个位置变换成 000 ;

该行中 x2x_2x2​ 的系数 , 就是 111 , 不用改变 , 因此这里将第二行的系数原封不动填入第一次迭代的单纯形表中 ;

接下来要将上图 蓝色选框 部分的位置 , 变为 000 , 变换过程如下 :

  • 将 13x1+x2+5x3+0x4+x5=20\dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 = 2031​x1​+x2​+5x3​+0x4​+x5​=20 方程 等式左右两边乘以 333 ;
  • 与 2x1−3x2+2x3+x4+0x5=152 x_1 - 3x_2 + 2x_3 + x_4 + 0x_5 = 152x1​−3x2​+2x3​+x4​+0x5​=15 相加 ;

(13x1+x2+5x3+0x4+x5)×3+(2x1−3x2+2x3+x4+0x5)=20×3+15(x1+3x2+15x3+3x5)+(2x1−3x2+2x3+x4+0x5)=753x1+0x2+17x3+x4+3x5=75\begin{array}{lcl} (\dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 ) \times 3 + ( 2 x_1 - 3x_2 + 2x_3 + x_4 + 0x_5 ) &=& 20 \times 3 + 15 \\\\ ( x_1 + 3x_2 + 15x_3 + 3x_5 ) + ( 2 x_1 - 3x_2 + 2x_3 + x_4 + 0x_5 ) &=& 75 \\\\ 3 x_1 + 0x_2 + 17x_3 + x_4 + 3x_5 &=& 75 \end{array}(31​x1​+x2​+5x3​+0x4​+x5​)×3+(2x1​−3x2​+2x3​+x4​+0x5​)(x1​+3x2​+15x3​+3x5​)+(2x1​−3x2​+2x3​+x4​+0x5​)3x1​+0x2​+17x3​+x4​+3x5​​===​20×3+157575​

新的单纯形表为 :

cjc_jcj​ cjc_jcj​ 111 222 111 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ θi\theta_iθi​
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 151515 222 −3-3−3 222 111 000 −-− (θ4\theta_4θ4​)
000 ( 目标函数 x5x_5x5​ 系数 c5c_5c5​) x5x_5x5​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 202020 ( θ5\theta_5θ5​ )
σj\sigma_jσj​ ( 检验数 ) 111 ( σ1\sigma_1σ1​ ) 222 ( σ2\sigma_2σ2​ ) 111 ( σ3\sigma_3σ3​ ) 000 000
第一次迭代
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 757575 333 000 171717 111 333 ??? ( θ4\theta_4θ4​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 ??? (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) ??? ( σ1\sigma_1σ1​ ) 000 ??? ( σ3\sigma_3σ3​ ) 000 ??? ( σ5\sigma_5σ5​ )

9、第一次迭代 : 计算检验数

1 . 计算非基变量 x1x_1x1​ 的检验数 σ1\sigma_1σ1​ :

σ1=1−(02)×(313)=1−(0×3+2×13)=13\sigma_1 = 1 - \begin{pmatrix} \quad 0 \quad 2 \quad \\ \end{pmatrix} \times \begin{pmatrix} \quad 3 \quad \\\\ \quad \dfrac{1}{3} \quad \\ \end{pmatrix} = 1- ( 0 \times 3 + 2 \times \dfrac{1}{3} ) = \dfrac{1}{3}σ1​=1−(02​)×⎝⎜⎛​331​​⎠⎟⎞​=1−(0×3+2×31​)=31​

2 . 计算非基变量 x3x_3x3​ 的检验数 σ3\sigma_3σ3​ :

σ3=1−(02)×(175)=1−(0×17+2×5)=−9\sigma_3 = 1 - \begin{pmatrix} \quad 0 \quad 2 \quad \\ \end{pmatrix} \times \begin{pmatrix} \quad 17 \quad \\\\ \quad 5 \quad \\ \end{pmatrix} = 1- ( 0 \times 17 + 2 \times 5 ) = -9σ3​=1−(02​)×⎝⎛​175​⎠⎞​=1−(0×17+2×5)=−9

3 . 计算非基变量 x5x_5x5​ 的检验数 σ5\sigma_5σ5​ :

σ5=0−(02)×(31)=0−(0×3+2×1)=−2\sigma_5 = 0 - \begin{pmatrix} \quad 0 \quad 2 \quad \\ \end{pmatrix} \times \begin{pmatrix} \quad 3 \quad \\\\ \quad 1 \quad \\ \end{pmatrix} = 0- ( 0 \times 3 + 2 \times 1 ) = -2σ5​=0−(02​)×⎝⎛​31​⎠⎞​=0−(0×3+2×1)=−2

新的单纯形表为 :

cjc_jcj​ cjc_jcj​ 111 222 111 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ θi\theta_iθi​
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 151515 222 −3-3−3 222 111 000 −-− (θ4\theta_4θ4​)
000 ( 目标函数 x5x_5x5​ 系数 c5c_5c5​) x5x_5x5​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 202020 ( θ5\theta_5θ5​ )
σj\sigma_jσj​ ( 检验数 ) 111 ( σ1\sigma_1σ1​ ) 222 ( σ2\sigma_2σ2​ ) 111 ( σ3\sigma_3σ3​ ) 000 000
第一次迭代
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 757575 333 000 171717 111 333 ??? ( θ4\theta_4θ4​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 ??? (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) 13\dfrac{1}{3}31​ ( σ1\sigma_1σ1​ ) 000 −9-9−9 ( σ3\sigma_3σ3​ ) 000 −2-2−2 ( σ5\sigma_5σ5​ )

10、第一次迭代 : 最优解判定

上述三个检验数 , {σ1=13σ3=−9σ5=−2\begin{cases} \sigma_1 = \dfrac{1}{3} \\\\ \sigma_3= -9 \\\\ \sigma_5 = -2 \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧​σ1​=31​σ3​=−9σ5​=−2​ , 其中 σ1\sigma_1σ1​ 大于 000 , 只有当检验数都小于等于 000 时 , 该基可行解才是最优解 ; 该解不是最优解 ;

无穷多最优解 : 当有检验数等于 000 时 , 其它都小于 000 , 该线性规划有无穷多个最优解 ;
无界解 : 找不到出基变量 , 则该线性规划是无界解 ;

11、第一次迭代 : 入基变量

根据上述三个检验数 {σ1=13σ3=−9σ5=−2\begin{cases} \sigma_1 = \dfrac{1}{3} \\\\ \sigma_3= -9 \\\\ \sigma_5 = -2 \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧​σ1​=31​σ3​=−9σ5​=−2​ 的值 , 选择检验数最大的非基变量作为入基变量 , 这里选择 x1x_1x1​ ;

12、第一次迭代 : 出基变量

出基变量选择 : 常数列 b=(7520)b =\begin{pmatrix} \quad 75 \quad \\ \quad 20 \quad \end{pmatrix}b=(7520​) , 分别除以除以入基变量 x1x_1x1​ 大于 000 的系数列 (313)\begin{pmatrix} \quad 3 \quad \\\\ \quad \cfrac{1}{3} \quad \end{pmatrix}⎝⎜⎜⎛​331​​⎠⎟⎟⎞​ , 计算过程如下 (7532013)\begin{pmatrix} \quad \cfrac{75}{3} \quad \\\\ \quad \cfrac{20}{ \dfrac{1}{3}} \quad \end{pmatrix}⎝⎜⎜⎜⎜⎜⎛​375​31​20​​⎠⎟⎟⎟⎟⎟⎞​ , 得出结果是 (2560)\begin{pmatrix} \quad 25 \quad \\\\ \quad 60 \quad \end{pmatrix}⎝⎛​2560​⎠⎞​ , 如果系数小于等于 000 , 该值就是无效值 , 默认为无穷大 , 不进行比较 , 选择 252525 对应的基变量作为出基变量 , 查看该最小值对应的变量是 x4x_4x4​ , 选择该 x4x_4x4​ 变量作为出基变量 ;

新的单纯形表为 :

cjc_jcj​ cjc_jcj​ 111 222 111 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ θi\theta_iθi​
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 151515 222 −3-3−3 222 111 000 −-− (θ4\theta_4θ4​)
000 ( 目标函数 x5x_5x5​ 系数 c5c_5c5​) x5x_5x5​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 202020 ( θ5\theta_5θ5​ )
σj\sigma_jσj​ ( 检验数 ) 111 ( σ1\sigma_1σ1​ ) 222 ( σ2\sigma_2σ2​ ) 111 ( σ3\sigma_3σ3​ ) 000 000
第一次迭代
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 757575 333 000 171717 111 333 252525 ( θ4\theta_4θ4​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 606060 (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) 13\dfrac{1}{3}31​ ( σ1\sigma_1σ1​ ) 000 −9-9−9 ( σ3\sigma_3σ3​ ) 000 −2-2−2 ( σ5\sigma_5σ5​ )

13、第二次迭代 : 进行矩阵变换

在上一篇博客中 , 第一次迭代后 , 找到 入基变量 x1x_1x1​ , 出基变量 x4x_4x4​ , 使用 x1x_1x1​ 替换基变量中的 x4x_4x4​ 位置 ;

新的单纯形表为 :

cjc_jcj​ cjc_jcj​ 111 222 111 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ θi\theta_iθi​
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 151515 222 −3-3−3 222 111 000 −-− (θ4\theta_4θ4​)
000 ( 目标函数 x5x_5x5​ 系数 c5c_5c5​) x5x_5x5​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 202020 ( θ5\theta_5θ5​ )
σj\sigma_jσj​ ( 检验数 ) 111 ( σ1\sigma_1σ1​ ) 222 ( σ2\sigma_2σ2​ ) 111 ( σ3\sigma_3σ3​ ) 000 000
第一次迭代
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 757575 333 000 171717 111 333 252525 ( θ4\theta_4θ4​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 606060 (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) 13\dfrac{1}{3}31​ ( σ1\sigma_1σ1​ ) 000 −9-9−9 ( σ3\sigma_3σ3​ ) 000 −2-2−2 ( σ5\sigma_5σ5​ )
第二次迭代
111 ( 目标函数 x1x_1x1​ 系数 c1c_1c1​ ) x1x_1x1​ ??? ??? ??? ??? ??? ??? ??? ( θ1\theta_1θ1​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ ??? ??? ??? ??? ??? ??? ??? (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) 000 000 ??? ( σ3\sigma_3σ3​ ) ??? ( σ4\sigma_4σ4​ ) ??? ( σ5\sigma_5σ5​ )

中心元 : 入基变量 x1x_1x1​ 所在列 , 与出基变量 x4x_4x4​ 所在行 , 相交的位置叫做中心元 ;

  • 中心元系数 : 转换成 111 ;
  • 中心元所在列另一个系数 : 转换成 000 ;

当前的线性规划标准形式等式方程组 : {3x1+0x2+17x3+x4+3x5=7513x1+x2+5x3+0x4+x5=20\begin{cases} 3 x_1 + 0x_2 + 17x_3 + x_4 + 3x_5 = 75 \\\\ \dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 = 20 \end{cases}⎩⎪⎪⎨⎪⎪⎧​3x1​+0x2​+17x3​+x4​+3x5​=7531​x1​+x2​+5x3​+0x4​+x5​=20​

中心元转换为 111 : 将 3x1+0x2+17x3+x4+3x5=753 x_1 + 0x_2 + 17x_3 + x_4 + 3x_5 = 753x1​+0x2​+17x3​+x4​+3x5​=75 中的 x1x_1x1​ 系数变成 111 , 只需要将方程等式两边都乘以 13\cfrac{1}{3}31​ 即可 ;

(3x1+0x2+17x3+x4+3x5)×13=75×13x1+0x2+173x3+13x4+x5=25\begin{array}{lcl} ( 3 x_1 + 0x_2 + 17x_3 + x_4 + 3x_5 ) \times \cfrac{1}{3} &=& 75 \times \cfrac{1}{3}\\\\ x_1 + 0 x_2 + \cfrac{17}{3} x_3 + \dfrac{1}{3}x_4 + x_5 &=& 25 \end{array}(3x1​+0x2​+17x3​+x4​+3x5​)×31​x1​+0x2​+317​x3​+31​x4​+x5​​==​75×31​25​

与中心元同一列的 x1x_1x1​ 的系数转换为 000 : 将 13x1+x2+5x3+0x4+x5=20\dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 = 2031​x1​+x2​+5x3​+0x4​+x5​=20 中的 x1x_1x1​ 系数转为 000 :

  • 将 x1+0x2+173x3+13x4+x5=25x_1 + 0 x_2 + \cfrac{17}{3} x_3 + \dfrac{1}{3}x_4 + x_5 = 25x1​+0x2​+317​x3​+31​x4​+x5​=25 方程 左右变量乘以 −13-\dfrac{1}{3}−31​ ;
  • 将上个步骤得到的等式与 13x1+x2+5x3+0x4+x5=20\dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 = 2031​x1​+x2​+5x3​+0x4​+x5​=20 相加 , 即可使 x1x_1x1​ 系数为 000 ;

(x1+0x2+173x3+13x4+x5)×−13+(13x1+x2+5x3+0x4+x5)=25×−13+20(−x1+0x2−179x3−19x4−13x5)+(13x1+x2+5x3+0x4+x5)=3530x1+x2+289x3−19x4+23x5=353\begin{array}{lcl} ( x_1 + 0 x_2 + \cfrac{17}{3} x_3 + \dfrac{1}{3}x_4 + x_5 ) \times -\dfrac{1}{3} + ( \dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 )= 25 \times -\dfrac{1}{3} + 20 \\\\ (-x_1 + 0x_2 -\cfrac{17}{9} x_3 - \dfrac{1}{9}x_4 -\dfrac{1}{3} x_5 ) + ( \dfrac{1}{3}x_1 + x_2 + 5x_3 + 0x_4 + x_5 ) = \dfrac{35}{3} \\\\ 0x_1 + x_2 + \cfrac{28}{9} x_3 - \dfrac{1}{9}x_4 + \cfrac{2}{3} x_5 = \dfrac{35}{3} \end{array}(x1​+0x2​+317​x3​+31​x4​+x5​)×−31​+(31​x1​+x2​+5x3​+0x4​+x5​)=25×−31​+20(−x1​+0x2​−917​x3​−91​x4​−31​x5​)+(31​x1​+x2​+5x3​+0x4​+x5​)=335​0x1​+x2​+928​x3​−91​x4​+32​x5​=335​​

新的单纯形表为 :

cjc_jcj​ cjc_jcj​ 111 222 111 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ θi\theta_iθi​
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 151515 222 −3-3−3 222 111 000 −-− (θ4\theta_4θ4​)
000 ( 目标函数 x5x_5x5​ 系数 c5c_5c5​) x5x_5x5​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 202020 ( θ5\theta_5θ5​ )
σj\sigma_jσj​ ( 检验数 ) 111 ( σ1\sigma_1σ1​ ) 222 ( σ2\sigma_2σ2​ ) 111 ( σ3\sigma_3σ3​ ) 000 000
第一次迭代
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 757575 333 000 171717 111 333 252525 ( θ4\theta_4θ4​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 606060 (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) 13\dfrac{1}{3}31​ ( σ1\sigma_1σ1​ ) 000 −9-9−9 ( σ3\sigma_3σ3​ ) 000 −2-2−2 ( σ5\sigma_5σ5​ )
第二次迭代
111 ( 目标函数 x1x_1x1​ 系数 c1c_1c1​ ) x1x_1x1​ 252525 111 000 173\dfrac{17}{3}317​ 13\dfrac{1}{3}31​ 111 ??? ( θ1\theta_1θ1​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 353\dfrac{35}{3}335​ 000 111 289\dfrac{28}{9}928​ −19-\dfrac{1}{9}−91​ 23\dfrac{2}{3}32​ ??? (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) 000 000 ??? ( σ3\sigma_3σ3​ ) ??? ( σ4\sigma_4σ4​ ) ??? ( σ5\sigma_5σ5​ )

14、第二次迭代 : 计算检验数

1 . 计算非基变量 x3x_3x3​ 的检验数 σ3\sigma_3σ3​ :

σ3=1−(12)×(173289)=1−(1×173+2×289)=9−17×3+28×29=−989\sigma_3 = 1 - \begin{pmatrix} \quad 1 \quad 2 \quad \\ \end{pmatrix} \times \begin{pmatrix} \quad \dfrac{17}{3} \quad \\\\ \quad \dfrac{28}{9} \quad \\ \end{pmatrix} = 1- ( 1 \times \dfrac{17}{3} + 2 \times \dfrac{28}{9} ) = \dfrac{9 - 17 \times 3 + 28 \times 2}{9} = - \dfrac{98}{9}σ3​=1−(12​)×⎝⎜⎜⎛​317​928​​⎠⎟⎟⎞​=1−(1×317​+2×928​)=99−17×3+28×2​=−998​

2 . 计算非基变量 x4x_4x4​ 的检验数 σ4\sigma_4σ4​ :

σ4=0−(12)×(13−19)=0−(1×13−2×19)=−19\sigma_4 = 0 - \begin{pmatrix} \quad 1 \quad 2 \quad \\ \end{pmatrix} \times \begin{pmatrix} \quad \dfrac{1}{3} \quad \\\\ \quad -\dfrac{1}{9} \quad \\ \end{pmatrix} = 0- ( 1 \times \dfrac{1}{3} - 2 \times \dfrac{1}{9} ) = - \dfrac{1}{9}σ4​=0−(12​)×⎝⎜⎜⎛​31​−91​​⎠⎟⎟⎞​=0−(1×31​−2×91​)=−91​

3 . 计算非基变量 x5x_5x5​ 的检验数 σ5\sigma_5σ5​ :

σ5=0−(12)×(123)=0−(1×1+2×23)=−73\sigma_5 = 0 - \begin{pmatrix} \quad 1 \quad 2 \quad \\ \end{pmatrix} \times \begin{pmatrix} \quad 1 \quad \\\\ \quad \dfrac{2}{3} \quad \\ \end{pmatrix} = 0- ( 1 \times 1 + 2 \times \dfrac{2}{3} ) = - \dfrac{7}{3}σ5​=0−(12​)×⎝⎜⎛​132​​⎠⎟⎞​=0−(1×1+2×32​)=−37​

新的单纯形表为 :

cjc_jcj​ cjc_jcj​ 111 222 111 000 000
CBC_BCB​ 基变量系数 (目标函数) 基变量 常数 bbb x1x_1x1​ x2x_2x2​ x3x_3x3​ x4x_4x4​ x5x_5x5​ θi\theta_iθi​
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 151515 222 −3-3−3 222 111 000 −-− (θ4\theta_4θ4​)
000 ( 目标函数 x5x_5x5​ 系数 c5c_5c5​) x5x_5x5​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 202020 ( θ5\theta_5θ5​ )
σj\sigma_jσj​ ( 检验数 ) 111 ( σ1\sigma_1σ1​ ) 222 ( σ2\sigma_2σ2​ ) 111 ( σ3\sigma_3σ3​ ) 000 000
第一次迭代
000 ( 目标函数 x4x_4x4​ 系数 c4c_4c4​ ) x4x_4x4​ 757575 333 000 171717 111 333 252525 ( θ4\theta_4θ4​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 202020 13\dfrac{1}{3}31​ 111 555 000 111 606060 (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) 13\dfrac{1}{3}31​ ( σ1\sigma_1σ1​ ) 000 −9-9−9 ( σ3\sigma_3σ3​ ) 000 −2-2−2 ( σ5\sigma_5σ5​ )
第二次迭代
111 ( 目标函数 x1x_1x1​ 系数 c1c_1c1​ ) x1x_1x1​ 252525 111 000 173\dfrac{17}{3}317​ 13\dfrac{1}{3}31​ 111 ??? ( θ1\theta_1θ1​ )
222 ( 目标函数 x2x_2x2​ 系数 c2c_2c2​) x2x_2x2​ 353\dfrac{35}{3}335​ 000 111 289\dfrac{28}{9}928​ −19-\dfrac{1}{9}−91​ 23\dfrac{2}{3}32​ ??? (θ2\theta_2θ2​)
σj\sigma_jσj​ ( 检验数 ) 000 000 −989- \dfrac{98}{9}−998​ ( σ3\sigma_3σ3​ ) −19- \dfrac{1}{9}−91​ ( σ4\sigma_4σ4​ ) −73- \dfrac{7}{3}−37​ ( σ5\sigma_5σ5​ )

15、第二次迭代 : 最优解判定

上述三个检验数 , {σ3=−989σ4=−19σ5=−73\begin{cases} \sigma_3 =- \dfrac{98}{9} \\\\ \sigma_4= - \dfrac{1}{9} \\\\ \sigma_5 = - \dfrac{7}{3} \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧​σ3​=−998​σ4​=−91​σ5​=−37​​ , 三个检验数都小于等于 000 , 该基可行解是最优解 ;

五、线性规划最优解分析


1、唯一最优解

使用单纯形法求解线性规划时 , 得到最优解时 , 所有的非基变量对应的检验数都小于 000 , 该线性规划有唯一最优解 ;

2、无穷多最优解

使用单纯形法求解线性规划时 , 得到最优解时 , 存在一个或多个非基变量对应的检验数等于 000 , 那么该线性规划有无穷多最优解 ;

3、无界解

使用单纯形法求解线性规划时 , 某个非基变量 xjx_jxj​ , 其对应的检验数 σj≤0\sigma_j \leq 0σj​≤0 , 但是该非基变量的所有系数都是小于等于 000 的 , 此时该线性规划有 无界解 ;

4、无可行解

使用人工变量法 ( 大 MMM 单纯形法 ) 求解线性规划 , 得到最优解时 , 此时基变量中还存在人工变量 , 人工添加的变量没有迭代出去 , 这种情况下 , 该线性规划没有可行解 ;

【运筹学】单纯形法总结 ( 单纯形法原理 | 单纯形法流程 | 单纯形表 | 计算检验数 | 最优解判定 | 入基变量 | 出基变量 | 方程组同解变换 ) ★★★相关推荐

  1. 【运筹学】线性规划数学模型 ( 单纯形法 | 第二次迭代 | 方程组同解变换 | 生成新单纯形表 | 计算检验数 | 最优解判定 | 线性规划解个数分析 )

    文章目录 一.第二次迭代 二.方程组同解变换 三.生成新的单纯形表 四.计算检验数.最优解判定 五.最优解个数说明 1.唯一最优解 2.无穷最优解 3.无界解 4.总结 六.出基变量选择说明 上一篇博 ...

  2. 【运筹学】线性规划数学模型 ( 单纯形法 | 第一次迭代 | 方程组同解变换 | 计算新单纯形表 | 计算检验数 | 入基变量选择 | 出基变量选择 )

    文章目录 一.初始基可行解后第一次迭代 二.迭代后新的单纯形表 三.方程组同解变换 四.生成新的单纯形表 五.解出基可行解 六.计算检验数 σj\sigma_jσj​ 并选择入基变量 七.计算 θ\t ...

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

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

  4. 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 初始单纯形表 | 检验数计算 | 入基变量 | 出基变量 )

    文章目录 一.生成初始单纯形表 二.计算非基变量检验数 三.最优解判定 四.选择入基变量 五.选择出基变量 六.更新单纯形表 上一篇博客 [运筹学]线性规划 人工变量法 ( 单纯形法总结 | 人工变量 ...

  5. 【运筹学】人工变量法总结 ( 人工变量法解的分析 | 标准型变换 | 构造单位阵 | 目标函数引入 M | 计算检验数 | 选择入基变量 | 选择出基变量 | 中心元变换 | ) ★★

    文章目录 一.人工变量法及解的分析 二.案例 三.线性规划标准型变换 四.人工变量法构造单位阵 五.初始单纯形表 六.初始单纯形表 : 计算非基变量检验数 七.初始单纯形表 : 最优解判定 八.初始单 ...

  6. 【运筹学】表上作业法 ( 示例 | 使用 “ 闭回路法 “ 计算检验数判定最优解 )

    文章目录 一.运输规划问题 二.使用 " 闭回路法 " 计算检验数判定最优解 一.运输规划问题 运输规划问题 : B1\rm B_1B1​ B1\rm B_1B1​ B1\rm B ...

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

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

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

    文章目录 一.第二次迭代 : 进行矩阵变换 二.第二次迭代 : 计算检验数 三.第二次迭代 : 最优解判定 [运筹学]线性规划数学模型 ( 单纯形法 | 第二次迭代 | 方程组同解变换 | 生成新单纯 ...

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

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

最新文章

  1. Selenium + Python + Chrome 自动化测试 环境搭建
  2. 更改数据库对象所有者
  3. java hashmap object_Java中的大量Object(使用HashMap)
  4. react中规范类型接口的使用
  5. 基于java的银行ATM系统设计(含源文件)
  6. python实操训练300题_如何练习python?有这五个游戏,实操经验就已经够了
  7. 方舟编译器的安装和编译Helloword(2)
  8. 如何在没有域的环境中搭建AlwaysOn(二)
  9. 最新蓝屏代码0x0000006b完美解决方案,附文件
  10. flutter之dart语言发展
  11. 怎么快速解决dns被劫持问题?
  12. ANN之乘积量化PQ
  13. volatile-内存屏障
  14. 两个简单方法--shift()和unshift();
  15. CentOS7 搭建Janus服务
  16. 北航计算机学院本科优秀毕业论文,我校荣获32项北京市普通高等学校优秀本科生毕业设计(论文)...
  17. 如何在Android/鸿蒙上安装XAPK文件
  18. 使用VBA重复多次直线拟合在深度测量数据分析中的应用(原始文件可在我的资源中下载)
  19. QT ModbusCRC16 校验码计算(非查表法,直接计算)
  20. 自考管理系统中计算机应用笔记,自考“管理系统中计算机应用”笔记(15)

热门文章

  1. 20101029总结
  2. node安装升级过程中遇到的问题汇总
  3. PHP 设计模式系列 —— 资源库模式(Repository)
  4. JQuery 实现 锚点跳转
  5. Nginx 使用中文URL,中文目录路径
  6. springmvc如何访问静态文件,例如jpg,js,css
  7. Mac和 iOS 下的对称和非对称加密算法的使用
  8. jQuery 图片剪裁插件初探之 Jcrop
  9. 【转】几点 iOS 开发技巧
  10. 帝国cms栏目忘记设置为终极栏目怎么办?