文章目录

  • 一、单纯形法计算示例
  • 二、转化标准形式
  • 三、查找初始基可行解
  • 四、列出单纯形表
  • 五、最优解判定

在上一篇博客 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 单纯形表 | 系数计算方法 | 根据系数是否小于等于 0 判定最优解 ) 博客中讲解了最优解判定原则 , 基本原理就是

  • 目标函数推导后的结果 maxZ=b0+(CNT−CBTB−1N)XNmaxZ = b_0 + ( C_N^T - C_B^T B^{-1}N )X_NmaxZ=b0​+(CNT​−CBT​B−1N)XN​ ;

  • 如果满足条件 : " 当 XN=OX_N = OXN​=O 时 , 目标函数取值最大 " , 那么该 BBB 矩阵对应的基可行解就是最优解 ( 根据定理得出 ) ;

  • 在 (CNT−CBTB−1N)( C_N^T - C_B^T B^{-1}N )(CNT​−CBT​B−1N) 计算结果中 , 每个分量的值都小于等于 000 时 , 该解就是最优解 ;

  • 将 CNC_NCN​ , CBC_BCB​ , B−1NB^{-1}NB−1N 写入单纯形表中 , 方便计算 ;

  • (CNT−CBTB−1N)=(cm+1cm+2⋯cn)−(c1c2⋯cm)×[a1,m+1⋯a1n⋮⋮⋮am,m+1⋯amn]( C_N^T - C_B^T B^{-1}N ) = \begin{pmatrix} c_{m+1} \quad c_{m+2} \quad \cdots \quad c_n \end{pmatrix} - \begin{pmatrix} c_{1} \quad c_{2} \quad \cdots \quad c_m \end{pmatrix} \times \begin{bmatrix} &a_{1,m+1} & \cdots & a_{1n} & \\\\ &\vdots & \vdots & \vdots & \\\\ &a_{m,m+1} & \cdots & a_{mn} & \end{bmatrix}(CNT​−CBT​B−1N)=(cm+1​cm+2​⋯cn​​)−(c1​c2​⋯cm​​)×⎣⎢⎢⎢⎢⎢⎡​​a1,m+1​⋮am,m+1​​⋯⋮⋯​a1n​⋮amn​​​⎦⎥⎥⎥⎥⎥⎤​

  • 根据上述公式 , 每个系数的计算公式为 : σ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 中的矩阵向量 , 代表一列 ;

单纯形法解线性规划的三大问题 : 查找初始基可行解 , 判定是否是最优解 , 如何迭代基可行解 ;

在前几篇博客中讲解了 如何查找初始基可行解 , 与 判定是否是最优解 , 本篇博客中讲解 如何进行迭代 ;

一、单纯形法计算示例


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

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 , 因此不是最优解 ;

【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 线性规划求解示例 )相关推荐

  1. 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 可行解表示 | 目标函数推导 | 目标函数最大值分析 )

    文章目录 一.基矩阵 + 非基矩阵 约束条件 二.基矩阵 + 非基矩阵 线性规划 三.线性规划 可行解 四.目标函数 推导 五.XN=OX_N = OXN​=O 目标函数最大 分析 六.总结 在上一篇 ...

  2. 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 单纯形表 | 系数计算方法 | 根据系数是否小于等于 0 判定最优解 )

    文章目录 一.(CNT−CBTB−1N)( C_N^T - C_B^T B^{-1}N )(CNT​−CBT​B−1N) 系数 分析 二.CBC_BCB​ XBX_BXB​ 分析 三.CNC_NCN​ ...

  3. 【运筹学】线性规划数学模型 ( 单纯形法 | 迭代原则 | 入基 | 出基 | 线性规划求解示例 )

    文章目录 一.单纯形法计算示例 ( 上篇博客回顾总结 ) 二.迭代原则 三.最优解推导 四.出基与入基 五.出基与入基变量选择 一.单纯形法计算示例 ( 上篇博客回顾总结 ) 在上一篇博客 [运筹学] ...

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

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

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

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

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

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

  7. 运筹学 ——线性规划之单纯形法

    专栏简介: 大家好,我是小佘,一名交通专业在读本科生.新学期我们专业开设了运筹学课程,运筹学是本专业核心课程之一,所以学好运筹学是很有必要的.开设这个专栏的目的主要是为了督促自己及时整理,复习所学知识 ...

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

    文章目录 一.单纯形法原理 二.单纯形法流程 三.单纯形法案例一 1.线性规划示例 2.转化标准形式 3.查找初始基可行解 4.初始基可行解的最优解判定 5.第一次迭代 : 入基与出基变量选择 6.第 ...

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

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

最新文章

  1. 计算勒让德多项式系数的第二种方法
  2. 【机器视觉】 dev_update_window算子
  3. 107. 二叉树的层次遍历 II
  4. vs2012里用easyUI,显示不正常
  5. 列注释_机器学习 Pandas 03:基础 前16题 ( 带答案、注释 )
  6. 图论 —— 生成树 —— 最小生成树 —— Kruskal
  7. 查找树的指定层级_阿里面试,问了B+树,这个回答让我通过了
  8. 为什么有的父母喜欢在子女之间,来回拨弄是非,使他们反目?
  9. 如何打造标签式IE浏览器 (共享源码)
  10. 深度学习笔记(三)——GAN入门实现MNIST数据集
  11. 如何下载vue.js
  12. FFMPEG硬件编解码器使用
  13. 啥是各向同性、各向异性GNN:
  14. 2535: [Noi2010]Plane 航空管制2
  15. .Net Core Mvc 2.1如何调用thrift
  16. 2019.6.7 一场搜索专题的考试【including 洛谷·血色先锋队,入门OJ·兴建高铁,珠光宝气阁
  17. JVM和Java体系架构
  18. 国家开放大学2021春2129药物化学题目
  19. 从截图里面识别数字_【答疑解惑】还没成功入驻数字工坊的同学看过来!!!
  20. C++设计:关于CMatrix类的相关操作

热门文章

  1. 轮滑---1、动作和杂记
  2. JAVA中的常量定义在class中还是interface中比较合理?
  3. Android而一个超级漂亮的日历控件
  4. 2008_10_28_星期二
  5. 算法学习:计算几何旋转卡壳
  6. Parallel学习
  7. Fastcgi 协议解析及 getpost 使用实例
  8. 作业二/Git的安装以及使用
  9. 报错解决——ctypes.ArgumentError: argument 1:……….. : wrong type
  10. 8.使用for循环和while循环遍历文件