当前位置: 首页 > 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₅

形成的新单纯形表如下

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

相关文章:

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

第一步:化“约束标准型” 在每个等式约束中至少有一个变量的系数为正,且这个变量只在该约束中出现。在每个约束方程中选择一个这样的变量称为基本变量。 剩下变量称为非基本变量。 一个简单的栗子 上图是一个约束标准型线性规划的例子。 等式1&#x…...

ADS基础教程20 - 电磁仿真(EM)参数化

EM介绍 一、引言二、参数化设置1.参数定义2.参数赋值3.创建EM模型和符号 四、总结 一、引言 参数化EM仿真,是在Layout环境下创建参数,相当于在原理图中声明变量。 二、参数化设置 1.参数定义 1)在Layout视图,菜单栏中选中EM&g…...

NAND flash测试-雷龙发展

文章目录 一、简介 二、速度测试 最近比较忙,也一直没空发什么文章,这算是新年第一篇吧,正好最近收到了一个雷龙的flash芯片,先拿来玩一下吧。 有兴趣的小伙伴可以去雷龙官网找小姐姐领取一个免费试用。 一、简介 大概样子就是上面…...

CMake的学习之路

目录 一、基础命令 二、编译选项和设置 三、文件和目录操作 四、控制流命令 五、其他命令 六、CMake构建级别 CMake是一个跨平台的自动化建构系统,它使用一种人类可读的配置文件(CMakeLists.txt)来控制软件编译过程。以下是CMake中的一些…...

算法体系-22 第二十二节:暴力递归到动态规划(四)

一 最小距离累加和 1.1 描述 给定一个二维数组matrix,一个人必须从左上角出发,最后到达右下角 沿途只可以向下或者向右走,沿途的数字都累加就是距离累加和 返回最小距离累加和 1.2 分析...

Docker:利用Docker搭建一个nginx服务

文章目录 搭建一个nginx服务认识nginx服务Web服务器反向代理服务器高性能特点 安装nginx启动nginx停止nginx查找nginx镜像拉取nginx镜像,启动nginx站点其他方式拉取nginx镜像信息通过 DIGEST 拉取镜像 搭建一个nginx服务 首先先认识一下nginx服务: NGI…...

docker Pulling fs layer 含义

在使用Docker时,当你执行 docker pull 命令来获取一个新的镜像,控制台输出中可能会出现 "Pulling fs layer" 的信息。这是Docker拉取镜像过程中的一个步骤,下面是对这一过程的解释: Docker 镜像是由一系列的层&#xf…...

c#中上传超过30mb的文件,接口一直报404,小于30mb的却可以上传成功

在一次前端实现上传视频文件时,超过30mb的文件上传,访问接口一直报404,但是在Swagger中直接访问接口确是正常的,且在后端控制器中添加了限制特性,如下 但是却仍然报404,在apifox中请求接口也是报404, 网上说: 在ASP.NET Core中,配置请求过来的文件上传的大小限制通常…...

VRRP跟踪接口及认证(华为)

#交换设备 VRRP跟踪接口及认证 一、相关概念 1.VRRP跟踪接口 当 VRRP 的 Master 设备的上行接口出现问题, 而 Master 设备一直保持 Active 状态,那么就会导致网络出现中断,所以必须要使得 VRRP 的运行状态和上行接口能够关联。在配置了 VRRP 元余的网…...

梯度提升树GBDT系列算法

Boosting方法的基本元素与基本流程💫 在Boosting集成算法当中,我们逐一建立多个弱评估器(基本是决策树),并且下一个弱评估器的建立方式依赖于上一个弱评估器的评估结果,最终综合多个弱评估器的结果进行输出…...

探索智慧农业系统架构的设计与应用

随着科技的不断进步和农业现代化的推进,智慧农业正逐渐成为农业发展的重要趋势。智慧农业系统架构的设计与应用,将农业生产与信息技术相结合,为农业生产提供了新的思路和解决方案。本文将深入探讨智慧农业系统架构的设计与应用,从…...

【C语言】一篇文章带你深度理解函数

目录 1. 函数的概念 2. 库函数 2.1 标准库和头文件 2.2 库函数的使用方法 2.2.1 举例 sqrt 2.2.2 库函数文档的一般格式 3. 自定义函数 3.1 函数的语法形式 3.2 函数的举例 4. 形参和实参 4.1 实参 4.2 形参 4.3 实参和形参的关系 5. …...

荣耀手机删除系统APP

1、打开开发者模式 设置–系统–关于手机–快速多次点击手机的版本号,即可进入开发者模式。 然后进入开发人员选项,开启USB调试,如下图。 2、数据线连接电脑,检查设备连接情况 按键盘winR键,在弹窗中输入cmd&#…...

vue+elementui+springboot图片上传

1、前端代码 <template><div><el-uploadclass"avatar-uploader"action"http://localhost:8081/ch06/demo/uploadAvatar":show-file-list"false":on-success"handleAvatarSuccess":before-upload"beforeAvatarUpl…...

路由器怎么设置局域网?

局域网&#xff08;Local Area Network&#xff0c;LAN&#xff09;是指在一个相对较小的地理范围内&#xff0c;如家庭、办公室或学校等&#xff0c;通过路由器等设备连接起来的计算机网络。设置局域网可以方便地实现内部资源共享和信息交流。本文将介绍如何设置局域网以及一个…...

Linux2(文件类型分类 基本命令2 重定向)

目录 一、文件类型分类 二、基本命令2 1. find 帮助查询 2. stat 查看文件的信息 3. wc 统计文本 4. 查看文本内容 4.1 cat 4.2 more 4.3 less 4.4 head 4.5 tail 5. cal 显示日历 6. date 显示时间 7. du 文件大小 8. ln 链接 软链接 硬链接 区别 9. histo…...

c->c++(一):部分KeyWord

本文主要探讨c相关关键字的使用。 char char默认是unsigned/signed取决平台,wchar_t宽字符:用于Unicode编码(超过一个字节),用wcin和wcout输入输出,字符串为wstring char8_t(20),char16_t(11起),char32_t(11):指定占用字节数且是无符号,字符串类u8string,u16s…...

【iOS】YYModel源码阅读笔记

文章目录 前言一、JSON转换库对比二、YYModel性能优化三、YYModel的使用四、架构分析YYClassInfo 剖析 五、流程剖析转换前准备工作 – 将JSON统一成NSDictionary将NSDictionary 转换为Model对象提取Model信息使用NSDictionary的数据填充Model 总结 前言 先前写了JSONModel的源…...

C++Qt做一个鼠标在按钮上悬浮3s显示一个悬浮窗口

当你想要在 Qt 中创建一个自定义按钮并添加悬浮窗口的功能时&#xff0c;你可以通过继承 QPushButton 类来实现。下面是一个示例代码&#xff0c;演示了如何创建一个自定义按钮类 HoverButton&#xff0c;并在鼠标悬浮在按钮上 3 秒后显示一个悬浮窗口&#xff0c;窗口包含图片…...

sslh一键在一个端口上运行多个服务(KALI工具系列二十三)

目录 1、KALI LINUX 简介 2、sslh工具简介 3、信息收集 3.1 目标主机IP&#xff08;win&#xff09; 3.2 KALI的IP 4、操作示例 4.1 监听特定端口 4.2 配置SSH 4.3 配置apache 4.4 配置sshl 4.5 验证配置 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功能强大、…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考

目录 lua脚本 记录流水 记录流水的作用 流水什么时候删除 我们在做库存扣减的时候&#xff0c;显示基于Lua脚本和Redis实现的预扣减 这样可以在秒杀扣减的时候保证操作的原子性和高效性 lua脚本 // ... 已有代码 ...Overridepublic InventoryResponse decrease(Inventor…...