文章目录

  • 一、单纯形法计算示例 ( 上篇博客回顾总结 )
  • 二、迭代原则
  • 三、最优解推导
  • 四、出基与入基
  • 五、出基与入基变量选择

一、单纯形法计算示例 ( 上篇博客回顾总结 )


在上一篇博客 【运筹学】线性规划数学模型 ( 单纯形法 | 最优解判定原则 | 线性规划求解示例 ) 博客给出了一个线性规划的示例 , 并进行了 查找初始基可行解 , 和 判定该基可行解是否是最优解 ;

在目标函数中 , 将基可行解代入目标函数中

  • 不是最优解情况 : 非基变量的系数都是大于 000 的数值 , 该基可行解不是最优解 ;
  • 是最优解情况 : 只有当 非基变量的系数都是小于等于 000 的数时 , 该基可行解才是最优解 ;

线性规划标准形式为 :

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

单纯形表 :

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

选择 [1001]\begin{bmatrix} &1 & 0 & \\\\ &0 & 1 & \end{bmatrix}⎣⎡​​10​01​​⎦⎤​ 作为基矩阵 , 基变量是 x3x_3x3​ , x4x_4x4​ , 初始基可行解是 (004030)\begin{pmatrix} \quad 0 \quad \\ \quad 0 \quad \\ \quad 40 \quad \\ \quad 30 \quad \\ \end{pmatrix}⎝⎜⎜⎛​004030​⎠⎟⎟⎞​ , 经过计算 , 其目标函数中 x1x_1x1​ 的系数是 333 , x2x_2x2​ 的系数是 444 , 都是大于 000 的数 , 该基可行解不是基解 , 继续向下迭代 ;

二、迭代原则


上述解出的基可行解 (004030)\begin{pmatrix} \quad 0 \quad \\ \quad 0 \quad \\ \quad 40 \quad \\ \quad 30 \quad \\ \end{pmatrix}⎝⎜⎜⎛​004030​⎠⎟⎟⎞​ 不是最优解 , 那么 需要迭代下一个基可行解 , 下面开始讲解 , 如何进行迭代 ;

上述的解中 , 非基变量 x1x_1x1​ 和 x2x_2x2​ 取 000 不是最好的选择 , 那么 这两个变量最好取非 000 的值 , 求解线性规划的思路是 :

  • 在无穷多个可行解中迭代 , 得到最优解 ;

  • 上述思路可以转化成在有限个基可行解中迭代 , 得到最优解 ;

  • 无限 -> 有限 : 可行解 是无限个的 , 基可行解 是有限个 ;

三、最优解推导


x1,x2x_1 , x_2x1​,x2​ 取值为 000 不是最优解 , 约束条件要求这两个变量必须大于等于 000

xj≥0(j=1,2,3,4)x_j \geq 0 (j = 1 , 2 , 3 , 4 )xj​≥0(j=1,2,3,4)

, 那么只能取值大于 000 , 下面讨论这两个变量取值大于 000 的情况 ;

x1x_1x1​ 的系数是 333 , x2x_2x2​ 的系数是 444 , 如果 x3,x4x_3 , x_4x3​,x4​ 取 000 , 目标函数 maxZ=0+3x1+4x2maxZ = 0 + 3x_1 + 4x_2maxZ=0+3x1​+4x2​ , 将 x1,x2x_1 , x_2x1​,x2​ 任意一个增大 , 其目标函数的值都会增大 ;

  • 增大 x2x_2x2​ : 此时可以选择将 x2x_2x2​ 增大 , x2x_2x2​ 增加 111 , 目标函数就会增加 444 ;
  • 增大 x1x_1x1​ : 也可以选择将 x1x_1x1​ 增大 , x1x_1x1​ 增加 111 , 目标函数就会增加 333 , 只要是目标函数随变量增加而增加即可 ;

增大 x2x_2x2​ , x2x_2x2​ 不能无限增大 , 其需要受到 {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​ , 最多是 x1,x3,x4x_1, x_3, x_4x1​,x3​,x4​ 都取值 000 , x2x_2x2​ 理论上最大值时 404040 ;
  • 受第一个方程约束 , 增大 x2x_2x2​ , 最多是 x1,x3,x4x_1, x_3, x_4x1​,x3​,x4​ 都取值 000 , x2x_2x2​ 理论上最大值时 101010 ;

x2x_2x2​ 最大就能取值到 101010 , 否则无法满足第二个约束方程 , 如果 x2x_2x2​ 取 404040 , 那么在第二个方程中 , 就会出现有变量为负数 , 就不符合约束条件了 , 因此 x2x_2x2​ 最大只能取到 101010 ;

那么开始增加 x2x_2x2​ 的值 , 目标函数 maxZ=0+3x1+4x2maxZ = 0 + 3x_1 + 4x_2maxZ=0+3x1​+4x2​ , 增大 x2x_2x2​ , 如果 x2x_2x2​ 从 000 增加到 101010 , 目标函数可以增加 404040 ,

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 444 000 000

四、出基与入基


基可行解 : 选择可行基 , 自然会产生基变量 ( 可行基对应变量 ) , 与非基变量 , 非基变量取值为 000 , 解出基变量 , 此时基变量的解与 000 组合成基可行解 ;

上一次的初始基可行解选择时 , x3x_3x3​ 和 x4x_4x4​ 是基变量 , x1x_1x1​ 和 x2x_2x2​ 是非基变量 , 非基变量取值必须为 000 ;

如果 x2x_2x2​ 变成了非 000 取值 , 此时就需要将 x2x_2x2​ 设置成基变量 ;

基变量的个数是固定的 , 本示例中是 222 个 , 如果将 x2x_2x2​ 设置成基变量 , 那么就需要将之前的 x3x_3x3​ 和 x4x_4x4​ 中其中一个基变量替换成 x2x_2x2​ , 被替换的基变量变成非基变量 ;

因此该迭代的过程又称为出基 , 入基过程 ;

  • 出基 : x3,x4x_3 , x_4x3​,x4​ 有一个变量设置成非基变量 , 称为出基 ;
  • 入基 : x2x_2x2​ 设置成基变量 , 称为入基 ;

五、出基与入基变量选择


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

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

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

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

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

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

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

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

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

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

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

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

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

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

  7. 运筹学修炼日记:如何优雅地写出大规模线性规划的对偶

    运筹学修炼日记:如何优雅地写出大规模线性规划的对偶问题 运筹学修炼日记:如何优雅地写出大规模线性规划的对偶 最短路问题 多商品流问题`Multicommodity Network Flow Probl ...

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

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

  9. 单纯形法只有两个约束条件_教学 | 线性规划 7 :单纯形法的引入

    介绍单纯形法的引例. 如果觉得对运筹学学习和教学有用,请关注和转发! 01 单纯形法的概述 之前提到,对于LP问题,如果它有最优解,肯定可以在顶点上取到最优值. 因此,找LP问题的最优解,也就转换为找 ...

最新文章

  1. Spring Data JPA 常用注解
  2. 使用FtpWebRequest 类操作(上传、下载和删除)FTP上的XML文件
  3. Java基础知识——Java集合详解
  4. 修改eclipse默认编码方式
  5. mysql双机热备 读写分离_轻松搭建MySQL主从复制、读写分离(双机热备)
  6. Bootstrap按钮组中按钮的尺寸
  7. node中的数据持久化
  8. 如何在Mac上的一个“预览”窗口中显示若干文件
  9. Mac新手比较容易犯的一些错误
  10. 高斯消元法(Gauss Elimination) 分析 题解 模板——czyuan原创
  11. 服务器监视Zabbix 5.0 - 安装部署
  12. 使用WWWGrep检查你的网站元素安全
  13. Windows文件同步
  14. 浅学几天统计(SPSS)
  15. OFDM 调制系统框图 OFDM
  16. 调查:人工智能技术的应用现状
  17. matlab仿真的英文文献,matlab 外文翻译 外文文献 英文文献 MATALAB 混合仿真平台控制算法的概述...
  18. 颜值开路,带货千万,看小霸宠如何低成本运作
  19. Web项目部署到TongWeb的注意事项,TongWeb踩过的坑
  20. 网管软件的几种主动监测方式

热门文章

  1. ③ESP8266 开发学习笔记_By_GYC 【虚拟机Ubuntu系统的安装】
  2. Matlab数组内插(平滑)函数
  3. Java网络爬虫学习记录(请求基础篇)
  4. 14个岗位,看完就知道自己在互联网行业该怎么混
  5. 前缀加加和后缀加加重载
  6. 没有密码,如何去除PPT的限制编辑
  7. Android打空的签名包
  8. java汽车的风挡玻璃_悄悄告诉你:擦拭风挡玻璃的内表面可防雾
  9. 通过Wireshark抓包疯狂聊天程序聊天记录
  10. 【Telegram】开启允许权限让你的TG可以实现bot直接监控频道