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

线性规划问题——单纯形算法

第一步:化“约束标准型”

在每个等式约束中至少有一个变量的系数为正,且这个变量只在该约束中出现。在每个约束方程中选择一个这样的变量称为基本变量

剩下变量称为非基本变量

一个简单的栗子

上图是一个约束标准型线性规划的例子。

等式1:x₁+3x₂-x₃+2x₅=7

x₁,x₂,x₅ 的系数为正,但是等式2和3中有 x₂,等式3中有 x₅;所以等式1的基本变量是 x₁。

等式2:x₄-2x₂+4x₃=12

x₄,x₃ 的系数为正,但是等式1和3中都有 x₃;所以等式1的基本变量是 x₄。

等式3:x₆-4x₂+3x₃+8x₅=10

x₆,x₃,x₅ 的系数为正,但是等式1和2中都有 x₃,等式1中有 x₅;所以等式1的基本变量是 x₆。

那么,x₁,x₄,x₆ 是基本变量;剩下的x₂,x₃,x₅ 是非基本变量。

————————简陋的分割线————————

如果我们让非基本变量 x₂,x₃,x₅ 都等于 0 呢?

式子就变成了下面介个样子。

maxz=0
x₁=7
x₄=12
x₆=10

其中x₁=7,x₄=12,x₆=10,x₂=0,x₃=0,x₅=0。

所以,将所有非基本变量置为 0,从约束方程式中解出满足约束的基本条件的值,即可求出一个基本可行解。当然,这个基本可行解未必是最优解。

而且,很明显,解等于该式子的常数部分。

————————简陋的分割线————————

单纯形算法的基本思想就是从一个基本可行解出发,进行一系列的基本可行解的变换。每次变换将一个非基本变量与一个基本变量互调位置,且保持当前的线性规划问题是一个与原问题完全等价的标准型线性规划问题。(不懂的话继续往下看就懂啦~)

第二步:列初始单纯形表

很明显,红色部分基本变量,蓝色部分非基本变量。 

 

 其中的 0,7,12,10 是常数项;剩下的是系数项。(很简单的填表不赘述了)

————————简陋的分割线————————

接下来是选择入基变量和离基变量

入基变量从非基本变量里选

红框里选正的,红框里选正的,红框里选正的。所以选 x₃为入基变量;

如果没有系数为正的,那么当前基本可行解为最优解。

 

离基变量从基本变量里选

在前面我们选择了唯一的正值元素3,它所在的列中有两个正元素,4和3。

我们算min{12/4,10/3}=3,所以选 x₄ 为离基变量。

如果3所在的列没有正元素,那么最优解无界,计算结束。

第三步:基变换直到找到最优解

然后做转轴变换,目的是将入基变量与离基变量互调位置。

x₄-2x₂+4x₃=12

x₃ , x₄ 变换。

x₃-x₂/2+x₄/4=3

代入x₁+3x₂-x₃+2x₅=7 和 x₆-4x₂+3x₃+8x₅=10 消去x₃。

x₁+5x₂/2+x₄/4+2x₅=10

x₆-5x₂/2-3x₄/4+8x₅=1

代入目标函数。

maxz=9+x₂/2-3x₄/4-2x₅

形成的新单纯形表如下

形成新的单纯形表,重复前面过程,直到所有非基本变量系数都变为负值为止。

http://www.lryc.cn/news/372532.html

相关文章:

  • ADS基础教程20 - 电磁仿真(EM)参数化
  • NAND flash测试-雷龙发展
  • CMake的学习之路
  • 算法体系-22 第二十二节:暴力递归到动态规划(四)
  • Docker:利用Docker搭建一个nginx服务
  • docker Pulling fs layer 含义
  • c#中上传超过30mb的文件,接口一直报404,小于30mb的却可以上传成功
  • VRRP跟踪接口及认证(华为)
  • 梯度提升树GBDT系列算法
  • 探索智慧农业系统架构的设计与应用
  • 【C语言】一篇文章带你深度理解函数
  • 荣耀手机删除系统APP
  • vue+elementui+springboot图片上传
  • 路由器怎么设置局域网?
  • Linux2(文件类型分类 基本命令2 重定向)
  • c->c++(一):部分KeyWord
  • 【iOS】YYModel源码阅读笔记
  • C++Qt做一个鼠标在按钮上悬浮3s显示一个悬浮窗口
  • sslh一键在一个端口上运行多个服务(KALI工具系列二十三)
  • Vue27-内置指令04:v-once指令
  • Pytorch环境配置的方法
  • 数字化制造案例分享以及数字化制造能力评估(34页PPT)
  • 搜维尔科技:特斯拉称工厂内有两台人形机器人开始自主工作
  • SIGMOD 2024 | 时空数据(Spatial-Temporal)和时间序列(Time Series)论文总结
  • 学习分享-分布式 NoSQL 数据库管理系统Cassandra以及它和redis的区别
  • Android 汉字转拼音(两行就够了)
  • JVM
  • MySQL锁机制和事务管理:如何处理并发和隔离性
  • 特别名词Test Paper7
  • 2的n次方表格