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

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

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

剩下变量称为非基本变量

一个简单的栗子

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

等式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.mzph.cn/diannao/27387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理解查准率P、查全率R及Fβ度量怎么得来的

如果得到的是一组样本在两个算法上的一次预测结果,其中每个样本都被赋予了一个为正样本的概率(例如,通过逻辑回归或朴素贝叶斯分类器得到的概率估计),那么可以通过改变不同的阈值点来利用这些预测结果画出PR曲线。 如果…

blender

通用设置: 仅显示/取消隐藏:数字键盘/移动视角:shift+鼠标中键Blender如何给场景添加参考图片-百度经验 (baidu.com)进入编辑模式:Tab编辑模式:点-线-面 反选:ctrl+按键重新计算面朝向:shift+n水密:+修改器:焊接连选的区别: 视窗设置 两个视图 …

Pytorch环境配置的方法

Pytorch虚拟环境配置全流程 以安装pytorch1.9.1为例 1. 创建虚拟环境 安装Anaconda3,打开 PowerShell 创建虚拟环境并进入: conda create -n torch1.9.1 python3.8 conda activate torch1.9.1 conda create -n torch1.9.1 python3.8 conda activate to…

错题记录(小测)

单选 错题1 错题2 错题3 代码题 反转链表 链表的回文结构

【LeetCode】4,寻找两个正序数组中的中位数

题目地址 B站那个官方解答视频实在看不懂,我就根据他那个代码和自己的理解写一篇文章 1. 基本思路 在只有一个有序数组的时候,中位数把数组分割成两个部分。中位数的定义:中位数,又称中点数,中值。中位数是按顺序排列…

消息队列的应用场景有哪些

通常来说,使用消息队列主要能为我们的系统带来下面三点好处: 异步处理 削峰/限流 降低系统耦合性 除了这三点之外,消息队列还有其他的一些应用场景,例如实现分布式事务、顺序保证和数据流处理。 异步处理 通过异步处理提高系…

计算机网络:网络层 - IPv4数据报 ICMP协议

计算机网络:网络层 - IPv4数据报 & ICMP协议 IPv4数据报[版本 : 首部长度 : 区分服务 : 总长度][标识 : 标志 : 片偏移][生存时间 : 协议 : 首部检验和][可变部分 : 填充字段] ICMP协议 IPv4数据报 一个IPv4数据报,由首部和数据两部分组成&#xff…

Python 越来越火爆

Python 越来越火爆 Python 在诞生之初,因为其功能不好,运转功率低,不支持多核,根本没有并发性可言,在计算功能不那么好的年代,一直没有火爆起来,甚至很多人根本不知道有这门语言。 随着时代的…

递归解析 LXML 树并避免重复进入某个节点

1、问题背景 我们在使用 LXML 库解析 MathML 表达式时,可能会遇到这样一个问题:在递归解析过程中,我们可能会重复进入同一个节点,导致解析结果不正确。例如,我们希望将以下 MathML 表达式解析为 Python 表达式&#x…

【数据结构初阶】--- 栈和队列

栈 栈的定义 栈:只允许在一端进行插入或删除的操作 事实上,线性表和链表都可以实现栈,但栈的特点更符合用顺序表实现 顺序表的队尾相当于栈顶,对栈放入数据,相当于顺序表的下标arr[index] x,而栈弹出数…

什么是无头浏览器以及其工作原理?

如果您对这个概念还不熟悉,那么使用无头网络浏览器的想法可能会让您感到不知所措。无头浏览器本质上与您熟悉的网络浏览器相同,但有一个关键区别:它们没有图形用户界面 (GUI)。这意味着没有按钮、选项卡、地址栏或视觉显示。 相反&#xff0c…

硬盘几个关键指标你一定要知道!

硬盘是数据中心中存储数据的重要部件,其关键指标影响硬盘的性能、可靠性和适用性。以下是一些常见的硬盘关键指标,并附上详细解释和举例: 容量(Capacity) 解释:硬盘的容量指其能存储数据的总量,…

CPN Tools学习——时间和队列【重要】

-Timed Color Sets 时间颜色集 -Token Stamps 令牌时间戳 -Event Clock 全局/事件/模拟时钟 -Time Delays on Transitions过渡的时间延迟 - List Color Set列表颜色集 - Queue排队 1.时间颜色集 在定时CPN模型令牌中有: (1)象征性的颜…

银河麒麟系统项目部署

使用服务器信息 软件:VMware Workstation Pro 虚拟机:ubtun 内存:20G 虚拟机连接工具: MobaXterm Redis连接工具: RedisDesktopManager 镜像:F:\Kylin-Server-10-8.2-Release-Build09-20211104-X86_64…

js: 百度云BOS 分片上传

百度云BOS存储后怎么查看或下载呢? // 1) 查看登录到百度智能云控制台 – 对象存储BOS”服务–选择一个Bucket,进入后可以查看该Bucket下的所有文件和文件夹。 2)下载OS浏览器端不支持批量下载,可以通过以下方式下载文件(使用BOS桌…

WindTerm使用SSH密钥连接阿里云实例,服务器设置SSH密钥登录

安装Windterm 地址https://github.com/kingToolbox/WindTerm/releases 下载完放到文件夹就可以打开 阿里云开启密钥对 打开阿里云ecs控制台 https://ecs.console.aliyun.com/keyPair/region/cn-wulanchabu 网络与安全->密钥对,创建密钥对,创建成…

记一次 .NET某工控视觉自动化系统 卡死分析

一:背景 1. 讲故事 今天分享的dump是训练营里一位学员的,从一个啥也不会到现在分析的有模有样,真的是看他成长起来的,调试技术学会了就是真真实实自己的,话不多说,上windbg说话。 二:WinDbg …

hbase安装部署

1,下载依赖包 最近的版本下载镜像 https://mirrors.aliyun.com/apache/hbase/ 比较旧的版本下载 https://archive.apache.org/dist/hbase 2,解压压缩包 3,更改配置 3-1 修改hbase-env.sh 必须加 JAVA_HOME export JAVA_HOME/usr/jdk64/jdk…

前端技术回顾系列 11|TS 中一些实用概念

在微信中阅读,关注公众号:CodeFit。 创作不易,如果你觉得这篇文章对您有帮助,请不要忘了 点赞、分享 和 关注 我的公众号:CodeFit,为我的持续创作提供动力。 上文回顾:泛型在类和接口中的应用 上一篇文章我们回顾了 泛型 在 类 和 接口 中的应用。 通过使用泛型,我们…

动态规划-简单多状态dp问题 -- 按摩师

动态规划-简单多状态dp问题 – 按摩师 文章目录 动态规划-简单多状态dp问题 -- 按摩师题目重现算法流程示例代码 题目重现 题目链接:按摩师 - 力扣 一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时…