文章目录

  • 一、(CNT−CBTB−1N)( C_N^T - C_B^T B^{-1}N )(CNT​−CBT​B−1N) 系数 分析
  • 二、CBC_BCB​ XBX_BXB​ 分析
  • 三、CNC_NCN​ XNX_NXN​ 分析
  • 四、B−1NB^{-1}NB−1N 分析
  • 五、单纯形表
  • 六、最优解判定

在上一篇博客 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 可行解表示 | 目标函数推导 | 目标函数最大值分析 ) 博客中讲解了最优解判定的推导过程 , 基本原理就是

  • 将可行解 {XB=B−1b−B−1NXNXN\begin{cases} X_B = B^{-1}b - B^{-1}NX_N \\ \\X_N \end{cases}⎩⎪⎨⎪⎧​XB​=B−1b−B−1NXN​XN​​

  • 代入线性规划目标函数 maxZ=CBTXB+CNTXNmax Z = C_B^TX_B + C_N^TX_NmaxZ=CBT​XB​+CNT​XN​ 中 ,

  • 最终得到一个 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​ 目标函数 ,

  • 只有当 (CNT−CBTB−1N)( C_N^T - C_B^T B^{-1}N )(CNT​−CBT​B−1N) 系数小于等于 000 时 , 该目标函数才是最大值 , 该解是最优解 ;

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

一、(CNT−CBTB−1N)( C_N^T - C_B^T B^{-1}N )(CNT​−CBT​B−1N) 系数 分析


目标函数推导 :

maxZ=CBT(B−1b−B−1NXN)+CNTXN=CBTB−1b−CBTB−1NXN+CNTXN=b0+(CNT−CBTB−1N)XN=b0+σm+1xm+1+σm+2xm+2+⋯+σnxn\begin{array}{lcl} max Z &=& C_B^T ( B^{-1}b - B^{-1}NX_N ) + C_N^TX_N \\\\ &=& C_B^T B^{-1}b - C_B^T B^{-1}NX_N + C_N^TX_N\\\\ &=& b_0 + ( C_N^T - C_B^T B^{-1}N )X_N \\\\ &=& b_0 + \sigma_{m+1} x_{m+1} + \sigma_{m+2} x_{m+2} + \cdots + \sigma_{n} x_{n} \\\\ \end{array}maxZ​====​CBT​(B−1b−B−1NXN​)+CNT​XN​CBT​B−1b−CBT​B−1NXN​+CNT​XN​b0​+(CNT​−CBT​B−1N)XN​b0​+σm+1​xm+1​+σm+2​xm+2​+⋯+σn​xn​​

上述分析到在 XN=OX_N = OXN​=O 时 , 如果使目标函数取值最大 ,

σm+1xm+1+σm+2xm+2+⋯+σnxn\sigma_{m+1} x_{m+1} + \sigma_{m+2} x_{m+2} + \cdots + \sigma_{n} x_{n}σm+1​xm+1​+σm+2​xm+2​+⋯+σn​xn​

系数都小于等于 000 时 , 满足上述要求 ;

上面的系数是通过 (CNT−CBTB−1N)( C_N^T - C_B^T B^{-1}N )(CNT​−CBT​B−1N) 计算出来的 ;

  • CNTC_N^TCNT​ 是目标函数中 , 非基变量的系数 ;

  • CBTC_B^TCBT​ 是目标函数中 , 基变量的系数 ;

  • B−1NB^{-1}NB−1N : B−1NB^{-1}NB−1N 是将基矩阵进行变换 , 将基矩阵变换为单位阵 III , 非基矩阵就是 B−1NB^{-1}NB−1N ;

二、CBC_BCB​ XBX_BXB​ 分析


CBC_BCB​ 与 XBX_BXB​ 矩阵分析 :

CBTC_B^TCBT​ 矩阵与 XBX_BXB​ 的对应关系 , XB=(x1x2⋮xm)X_B =\begin{pmatrix} x_{1} \\ x_{2} \\ \vdots\\ x_m \end{pmatrix}XB​=⎝⎜⎜⎜⎛​x1​x2​⋮xm​​⎠⎟⎟⎟⎞​ , CB=(c1c2⋮cm)C_B =\begin{pmatrix} c_{1} \\ c_{2} \\ \vdots\\ c_m \end{pmatrix}CB​=⎝⎜⎜⎜⎛​c1​c2​⋮cm​​⎠⎟⎟⎟⎞​ , CBT=(c1c2⋯cm)C_B^T =\begin{pmatrix} c_{1} \quad c_{2} \quad \cdots \quad c_m \end{pmatrix}CBT​=(c1​c2​⋯cm​​) ;

目标函数为 maxZ=CBTXB+CNTXNmax Z = C_B^T X_B+ C_N^TX_NmaxZ=CBT​XB​+CNT​XN​ , 在目标函数中 , 有以下对应关系 :

其中的 CBTXB=(c1c2⋯cm)×(x1x2⋮xm)C_B^T X_B = \begin{pmatrix} c_{1} \quad c_{2} \quad \cdots \quad c_m \end{pmatrix} \times \begin{pmatrix} x_{1} \\ x_{2} \\ \vdots\\ x_m \end{pmatrix}CBT​XB​=(c1​c2​⋯cm​​)×⎝⎜⎜⎜⎛​x1​x2​⋮xm​​⎠⎟⎟⎟⎞​ , c1c_1c1​ 与 x1x_1x1​ 对应 , cmc_mcm​ 与 xmx_mxm​ 对应 ;

三、CNC_NCN​ XNX_NXN​ 分析


CNC_NCN​ 与 XNX_NXN​ 矩阵分析 :

CNTC_N^TCNT​ 矩阵与 XNX_NXN​ 的对应关系 , XN=(xm+1xm+2⋮xn)X_N =\begin{pmatrix} x_{m+1} \\ x_{m+2} \\ \vdots\\ x_n \end{pmatrix}XN​=⎝⎜⎜⎜⎛​xm+1​xm+2​⋮xn​​⎠⎟⎟⎟⎞​ , CN=(cm+1cm+2⋮cn)C_N =\begin{pmatrix} c_{m+1} \\ c_{m+2} \\ \vdots\\ c_n \end{pmatrix}CN​=⎝⎜⎜⎜⎛​cm+1​cm+2​⋮cn​​⎠⎟⎟⎟⎞​ , CNT=(cm+1cm+2⋯cn)C_N^T =\begin{pmatrix} c_{m+1} \quad c_{m+2} \quad \cdots \quad c_n \end{pmatrix}CNT​=(cm+1​cm+2​⋯cn​​) ;

目标函数为 maxZ=CBTXB+CNTXNmax Z = C_B^T X_B+ C_N^TX_NmaxZ=CBT​XB​+CNT​XN​ , 在目标函数中 , 有以下对应关系 :

同理 , CNC_NCN​ 与 XNX_NXN​ 矩阵计算 , CNTXN=(cm+1cm+2⋯cn)×(xm+1xm+2⋮xn)C_N^T X_N = \begin{pmatrix} c_{m+1} \quad c_{m+2} \quad \cdots \quad c_n \end{pmatrix} \times \begin{pmatrix} x_{m+1} \\ x_{m+2} \\ \vdots\\ x_n \end{pmatrix}CNT​XN​=(cm+1​cm+2​⋯cn​​)×⎝⎜⎜⎜⎛​xm+1​xm+2​⋮xn​​⎠⎟⎟⎟⎞​ , cm+1c_{m+1}cm+1​ 与 xm+1x_{m+1}xm+1​ 对应 , cnc_ncn​ 与 xnx_nxn​ 对应 ;

四、B−1NB^{-1}NB−1N 分析


B−1NB^{-1}NB−1N 分析 :

线性规划约束条件是
BXB+NXN=bBX_B + NX_N = bBXB​+NXN​=b , 其系数矩阵是 (BN)\begin{pmatrix} \, B \quad N \, \end{pmatrix}(BN​) 样式的 , 在 BXB+NXN=bBX_B + NX_N = bBXB​+NXN​=b 两端都乘以 B−1B^{-1}B−1 , 然后移项得到

XB+B−1NXN=B−1bX_B + B^{-1}NX_N= B^{-1}bXB​+B−1NXN​=B−1b

, 此时当基变量是单位阵 III 时 , 非基变量就是 B−1NB^{-1}NB−1N , 系数矩阵是 (IB−1N)\begin{pmatrix} \, I \quad B^{-1}N \, \end{pmatrix}(IB−1N​)

五、单纯形表


通过计算 (CNT−CBTB−1N)( C_N^T - C_B^T B^{-1}N )(CNT​−CBT​B−1N) , 是否是负数 , 可以判定当前的解是否是最优解 ;

将上述 CNTC_N^TCNT​ , CBTC_B^TCBT​ , B−1B^{-1}B−1 , NNN 等写在一个表中 , 该表就是如下单纯形表 ;

在上述单纯形表中 , 假设前 mmm 个向量是基变量 , 将基变量对应的矩阵 , 变换为单位阵 , 单位阵 III 与 B−1NB^{-1}NB−1N 如下图所示 :

六、最优解判定


目标函数推导 :

maxZ=CBT(B−1b−B−1NXN)+CNTXN=CBTB−1b−CBTB−1NXN+CNTXN=b0+(CNT−CBTB−1N)XN=b0+σm+1xm+1+σm+2xm+2+⋯+σnxn\begin{array}{lcl} max Z &=& C_B^T ( B^{-1}b - B^{-1}NX_N ) + C_N^TX_N \\\\ &=& C_B^T B^{-1}b - C_B^T B^{-1}NX_N + C_N^TX_N\\\\ &=& b_0 + ( C_N^T - C_B^T B^{-1}N )X_N \\\\ &=& b_0 + \sigma_{m+1} x_{m+1} + \sigma_{m+2} x_{m+2} + \cdots + \sigma_{n} x_{n} \\\\ \end{array}maxZ​====​CBT​(B−1b−B−1NXN​)+CNT​XN​CBT​B−1b−CBT​B−1NXN​+CNT​XN​b0​+(CNT​−CBT​B−1N)XN​b0​+σm+1​xm+1​+σm+2​xm+2​+⋯+σn​xn​​

最终目标是计算 σm+1,σm+2,⋯,σn\sigma_{m+1} , \sigma_{m+2} , \cdots , \sigma_{n}σm+1​,σm+2​,⋯,σn​ 系数是否小于等于 000 ;

上面已经推导出目标函数的系数是 (CNT−CBTB−1N)( C_N^T - C_B^T B^{-1}N )(CNT​−CBT​B−1N) 矩阵 :

  • CNT=(cm+1cm+2⋯cn)C_N^T=\begin{pmatrix} c_{m+1} \quad c_{m+2} \quad \cdots \quad c_n \end{pmatrix}CNT​=(cm+1​cm+2​⋯cn​​)

  • CBT=(c1c2⋯cm)C_B^T = \begin{pmatrix} c_{1} \quad c_{2} \quad \cdots \quad c_m \end{pmatrix}CBT​=(c1​c2​⋯cm​​)

  • B−1N=[a1,m+1⋯a1n⋮⋮⋮am,m+1⋯amn]B^{-1}N =\begin{bmatrix} &a_{1,m+1} & \cdots & a_{1n} & \\\\ &\vdots & \vdots & \vdots & \\\\ &a_{m,m+1} & \cdots & a_{mn} & \end{bmatrix}B−1N=⎣⎢⎢⎢⎢⎢⎡​​a1,m+1​⋮am,m+1​​⋯⋮⋯​a1n​⋮amn​​​⎦⎥⎥⎥⎥⎥⎤​

(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​​​⎦⎥⎥⎥⎥⎥⎤​

=(σm+1σm+2⋯σn)= \begin{pmatrix} \sigma_{m+1} \quad \sigma_{m+2} \quad \cdots \quad \sigma_n \end{pmatrix}=(σm+1​σm+2​⋯σn​​)

σj\sigma_jσj​ 个系数的公式如下 :

σ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 中的矩阵向量 , 代表一列 ;

如 :

σm+1=cm+1−∑i=1nciai,m+1=cm+1−c1a1,m+1−c2a2,m+1−⋯−cnan,m+1\begin{array}{lcl} \sigma_{m+1} &=& c_{m+1} - \sum_{i = 1}^{n} c_i a_{i, m+1} \\\\ &=& c_{m+1} - c_1a_{1,m+1} - c_2a_{2,m+1} - \cdots - c_na_{n,m+1} \end{array}σm+1​​==​cm+1​−∑i=1n​ci​ai,m+1​cm+1​−c1​a1,m+1​−c2​a2,m+1​−⋯−cn​an,m+1​​

如果所有的 σj\sigma_jσj​ 系数值, 都小于等于 000 , 说明该基可行解就是最优解 ;

最优解判定示例 :

① 不是最优解的情况 : 如果最终计算的系数是 maxZ=88+3x6−4x7max Z = 88 + 3x_6 - 4x_7maxZ=88+3x6​−4x7​ , 此时 x6x_6x6​ 的系数 σ6\sigma_6σ6​ 大于 000 , 该函数不是最优解 ;

② 是最优解的情况 : 如果最终计算的系数是 maxZ=88−3x6−4x7max Z = 88 - 3x_6 - 4x_7maxZ=88−3x6​−4x7​ , 所有的系数都是小于等于 000 的值 , 该基矩阵对应的解就是最优解 ;

只要有一个系数不是小于等于 000 的 , 那么该解就不是最优解 , 就需要继续向下迭代 ;

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

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

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

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

    文章目录 一.单纯形法计算示例 二.转化标准形式 三.查找初始基可行解 四.列出单纯形表 五.最优解判定 在上一篇博客 [运筹学]线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 单纯形表 | ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. linux mongodb开机启动脚本,Linux下设置MongoDB开机自启动
  2. 玖富(NASDAQ:JFU) :2019年Q4机构资金占比增至79.8%,科技赋能业务成果显著
  3. 2019-11-09 正定矩阵的一些常见概念
  4. 一年的天数 Exercise06_16
  5. boost库 数组智能指针scoped_array
  6. js中replace的用法
  7. 永中Office—给公文设置密码
  8. PyTorch 入坑十一: 损失函数、正则化----深刻剖析softmax+CrossEntropyLoss
  9. butterknife 配置了点击和绑定无效
  10. 8.最大滑动窗口问题
  11. slqmf刀模工具_CAD刀模绘图插件|CAD刀模绘图插件(SLQMF刀模工具)下载v3.0 免费版 - 欧普软件下载...
  12. 项目开发中的人月及如何计算
  13. Property dataSource threw exception
  14. 自从用了低代码开发,开发效率提升10倍
  15. BlockingQueue 详解
  16. 面试题:kafka的ACK参数-1,0,1分别代表的含义
  17. 传销分子为什么喜欢国学? PS:尽信书不如无书!
  18. 有赞 mysql go agent_有赞数据库服务实践
  19. VS2010中VB.NET中API函数的调用
  20. 如何获得U盘的详细信息

热门文章

  1. 一本通1655数三角形
  2. IP分类以及特殊IP
  3. JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )(转发)
  4. Oracle11g R2学习系列 之六数据库链接,快照及序列
  5. HDOJ2019 ( 数列有序! ) 【水题】
  6. 新年新气象,2008年是我创业关键的一年!
  7. Maven pom.xml 全配置(一)常用配置
  8. 【踩坑】遇到 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 报错...
  9. web移动端全屏滚动页面的适配问题
  10. JSF/SpringMVC/Struts2区别与比较