当前位置: 首页 > ops >正文

运筹学——求解线性规划的单纯形法

单纯形法的原理

先来举个例子:
用单纯形法求解下面线性规划问题的最优解:
在这里插入图片描述
注释:解的过程是反复迭代的过程,如果第一次迭代没有理解也没关系,再继续看第二次迭代,和第三次迭代,每次迭代的流程都是一样的,建议自己看完之后,再手写一遍回忆一下哦~~

解析:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

单纯形法的原理

线性规划问题的标准型如图:

在这里插入图片描述

首先要得到一个初始的基可行解,具体做法如下:

假设系数矩阵A为下图所示的情形:

在这里插入图片描述
它的前m列就可以组成一个满秩矩阵B,且有B=(P1,P2······Pm)=I
再将基变量用非基变量来表示:
在这里插入图片描述
此时的目标函数里面的基变量也用非基变量表示:
在这里插入图片描述
此时,令非基变量全部为0,就可以得到一个初始的基可行解:
在这里插入图片描述

第二步就是判断得到的基可行解是否是最优解,具体做法如下:

目标函数在此时就变为只含非基变量的形式:
在这里插入图片描述
观察目标函数中非基变量的系数:
在这里插入图片描述

在这里插入图片描述
如果从λm+1一直到λn中只要有一个系数是正的,那么就说明当前的基可行解不是最优解,需要进一步改进目标函数的值,只有一直改到所有非基变量的系数全部为负时才说明那个时刻的基可行解是最优解。
因为用λi来判断最优解的情况,所以λi就被称为是检验系数

第三步的改进就是更改基变量,然后迭代出新的目标函数,得到新的基可行解。具体的方法仍然是先比较目标函数中非基变量中的系数,选择系数最大的变量作为入基,然后接着上述步骤来继续进行迭代改变目标函数。
单纯形法的基本步骤总结
在这里插入图片描述

定理1

对基可行解,如所有的检验系数λk≤0,k=m+1······n,那么X^(0)就是线性规划问题的最优解。
因为只有非基变量都是≤0的情况时,此时Z才能获得最大值。
(如果随以上步骤理解的话,这个定理就很明显了。

定理2

若某一个非基变量xk的检验系数为正,对应的列向量Pk=(a1k,a2k,······amk)所有的元素为非正,那么线性规划问题就没有最优解。

这个定理可以来判断无界解。

单纯形表

单纯形表的布局方式:
在这里插入图片描述

在这里插入图片描述
具体的计算步骤如下:
在这里插入图片描述

举个例子:
就以这篇文章开头的例子为题,用单纯形表来解的步骤如下:
在这里插入图片描述
在第一个表中,只是将初始的全部数据列出,需要计算的是最后一行检验系数和最后一列Θi的值.x1所在列对应的检验值由公式:μi=ci - ∑cjxi可得μ1=2 -(01+04+00)=2,那么x2所在列对应的检验值由公式就可得μ2=3 -(02+04+0*4)=3,选出最大的项是x2对应的3。
再计算最后一列Θi的值,第一行Θi的值:8➗2=4,第二行Θi的值:16➗0是不存在的,所以画一条横线,第三行Θi的值:12➗4=3,选取Θi的值最小的数为3,所以具体就对应到中间系数矩阵的第三行,第二列的数值4,说明x2为入基,x4为出基,此时将4所在位置的这一列化为单位向量,也就是这一列化成(0,0,1)T的形式。一定要以增广矩阵为整体来做初等行变换。
一直到所有的检验系数都是负数时停止换基迭代,此时对应的z值就是:z=∑ci✖️b。
每一步对应的基不同时,一定要记得变换,基的确定是在对增广矩阵做初等行变换后才确定的

http://www.xdnf.cn/news/20200.html

相关文章:

  • solidity的高阶语法2
  • AI工程师对于AI的突发奇想
  • Docker Desktop 安装 Linux(告别传统的虚拟机VMware)
  • Date、BigDecimal类型值转换
  • 残差去噪扩散模型
  • 字节跳动OmniHuman-1.5发布:单图+音频秒变超真实视频,AI数字人技术再升级
  • HOT100--Day13--104. 二叉树的最大深度,226. 翻转二叉树,101. 对称二叉树
  • Docker入门到精通:从零基础到生产部署
  • 如何在路由器上配置DHCP服务器?
  • 本体论中的公理与规则——从经典逻辑到神经符号融合的演进
  • Hive on Tez/Spark 执行引擎对比与优化
  • AI浪潮下,人类创造力的“危”与“机”
  • 2026届大数据毕业设计选题推荐-基于大数据旅游数据分析与推荐系统 爬虫数据可视化分析
  • JAVA基本文件操作
  • 【74页PPT】MES简介(附下载方式)
  • TensorFlow 面试题及详细答案 120道(101-110)-- 底层原理与扩展
  • C++笔记之软件设计原则总结
  • Lua > Mac Mini M4安装openresty
  • 基于Transformer 实现车辆检测与车牌识别(一)
  • disable CASCADE主键失败 ORA-2297 And ORA-2433
  • MCAP :机器人数据容器的全面实践指南
  • 区块链是什么
  • UE5 图表、函数与宏的区别与选择(蓝图折叠功能详解)
  • 【iOS】push 和 present
  • 什么时候用no,什么时候用non,什么时候用not?
  • 京东商品属性API数据解析:颜色、尺寸与材质
  • 【代码随想录算法训练营——Day4】链表——24.两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07.链表相交、142.环形链表II
  • 操作系统基本概念.1
  • Day 47 注意力热图可视化
  • 工作后的总结和反思4