基于matlab编程的线性规划整数解问题求解

news2024/11/29 5:50:27

背景:

自己读研期间曾经用matlab做过一些小项目和实验,自己的毕业论文实验仿真也是用的matlab,最近打算更换电脑,在翻阅电脑磁盘的时候找到了一些和matlab相关的代码和文档,简单整理和分享一下。

说明:

Matlab是一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。本文主要使用matlab来实现运筹学中线性规划问题的求解。

案列:

某饭店24小时中需要服务员数量如下表,如果每个服务员连续工作8小时,试问在2点、6点、10点、14点、18点、22点开始上班的服务员为多少时,一天所需服务员人数最少?

时间          2-6      6-10     10-14   14-18   18-22    22-2
最少服务员       4       8         10      7      12        4

建模思路: 

1.设在2点、6点、10点、14点、18点、22点开始上班的服务员分别为 x1,x2,x3,x4,x5,x6

2. 根据题目中所给条件建立目标函数和约束条件方程组

3. 目标函数是: Max    x1+x2+x3+x4+x5+x6    

4. 约束条件是:

st      x1+x6>=4

        x1+x2>=8

        x2+x3>=10

        x3+x4>=7

        x4+x5>=12

        x5+x6>=4

 编程:

clc;
clear;
c=[1 1 1 1 1 1];
A=[-1 0 0 0 0 -1;-1 -1 0 0 0 0;0 -1 -1 0 0 0;0 0 -1 -1 0 0;0 0 0 -1 -1 0; 0 0 0 0 -1 -1 ];
b=[-4; -8; -10; -7; -12; -4];
vlb=[0;0;0;0;0;0];
vub=[];
Aeq=[];
beq=[];
[x,fval]=linprog(c,A,b,Aeq,beq,vlb,vub);

运行结果:

 求出结果为 fval=26 ,即总人数为26人。得到了目标函数的值,需要查看各个时间段的人数:

x =

    2.7154
    6.9396
    3.0604
    6.4597
    5.5403
    1.2846

由题意可知,人数不可能为小数,这是一个线性的整数规划问题,于是我们尝试用lindo软件:

输入
Min x1+x2+x3+x4+x5+x6
st
x1+x6>=4
x1+x2>=8
x2+x3>=10
x3+x4>=7
x4+x5>=12
x5+x6>=4
end
gin 6

得到结果为

1) 26.00000

VARIABLE VALUE REDUCED COST
X1 0.000000 1.000000
X2 8.000000 1.000000
X3 2.000000 1.000000
X4 12.000000 1.000000
X5 0.000000 1.000000
X6 4.000000 1.000000


所以在2点,6点,10点,14点,18点,22点开始上班的服务员分别为 0 ,8 ,2,12, 0, 4 一共26人,将所得结果与matlab结果对比检验,总人数都为26人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/524041.html

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

相关文章

Dubbo——微服务框架(单体式->分布式->微服务)

是什么? Dubbo是阿里巴巴开源的基于Java的高性能RPC(一种远程调用)分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案,它提供了三大核心能力:面向接口的远程…

别让你的云端“瘫痪”——教你如何优化云平台性能测试

目录 引言 目的 测试指标 系统性能指标 资源指标 中间件指标 数据库指标 稳定性指标 批量处理指标 可扩展性指标 可靠性指标 性能测试的过程 测试计划 性能测试项目检测与控制 测试分析 测试设计 测试执行 测试完成 性能分析 性能分析的前提 性能分析的流…

一篇文章让你轻松通过佛科院的电子线路CAD考试——Altium Designer 14原理图设计与PCB设计(叶林朋著)

第一章 考试大纲 通过多次作业练习,我得出了完成一个完整的考试流程: 首先先创建PCB工程,查找一下元件,看一下哪些元件需要我们自己画创建元件集成库,画原理图元件和封装导入所有元件后,按照题目所给的图进…

Springboot源码:自动装配流程解析

前言 前面在写业务框架后,由于项目依赖的Spring IOC,单将该项目install后,在其它项目引入时,会找不到所依赖的Bean。所以利用Springboot的自动转配,在项目启动时加载Bean,并注册到IOC容器中。 Springboot…

node笔记_连接mysql编写js脚本的crud

文章目录 ⭐前言⭐mysql的api依赖库⭐建立数据库连接⭐query执行sql语句💖 create 新增table数据库表💖 insert 插入表数据插入单条数据插入多条数据 💖 select 查询数据💖 delete 删除表数据删除单条数据删除多条数据 ⭐ 结束 ⭐…

prometheus实战之五:飞书通知告警

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《prometheus实战》系列链接 prometheus实战之一:用ansible部署prometheus实战之二:使用常见指标prometheus实战之三:告警…

Day968.如何开启一个遗留系统现代化项目? -遗留系统现代化实战

如何开启一个遗留系统现代化项目? Hi,我是阿昌,今天学习记录的是关于如何开启一个遗留系统现代化项目?的内容。那如何启动一个遗留系统现代化项目。 一、项目背景 说来有点唏嘘,国内遗留系统的重灾区,恰恰…

MongoDB概念和操作

一、相关概念 在mongodb中最基本的概念为:文档、集合、数据库 SQL术语/概念MongoDB术语/概念解释/说明databasedatabase数据库tablecollection数据库表/集合rowdocument数据记录行/文档columnfield数据字段/域indexindex索引table joins表连接,MongoDB不支持prima…

Cordova webapp实战开发:(5)如何写一个Andorid下自动更新的插件?

在 《Cordova webapp实战开发:(4)Android环境搭建》中我们搭建好了开发环境,也给大家布置了调用插件的预习作业,做得如何了呢?今天我们来学一下如何自己从头建立一个Andorid下的cordova插件。 本次练习你能…

【大腹太卷】一篇文章带你了解校招的神秘面纱

校招求职复盘 写在前面方向确定前置工作就业信息获取简历制作简历投递 笔面试工作测评笔试面试八股文自我介绍项目相关HR面试反问环节 Offer选择写在后面 写在前面 2023届应届生,去年的时候参加了校招,一路走来,感慨良多,特此记录…

蚊香液、蚊香片、蚊香盘的优缺点

夏天来了,蚊子也出来活动了,又到了消灭蚊子的季节。     蚊子是凭借人所呼出的二氧化碳和带气味的气体,来定位人的位置,进而叮咬人的皮肤。     蚊子吸人血,主要是利用血液里的胆固醇、B族维生素,促进蚊…

OSPF综合实验(第一部分)

目录 要求 确定广播域的个数 分配网段 配置路由器IP地址-优先公网配通 配置MGRE部分 拓扑结构: 要求 1、R4为ISP,其上只能配置IP地址,R4与其他所有直连设备间使用公有IP 2、R3~R5/6/7为MGRE环境,R3为中心站点 3、整个OSPF环境I…

《编程思维与实践》1072.下一位妙数

《编程思维与实践》1072.下一位妙数 题目 思路 思路与最小不重复数基本一致,从最高位开始找到第一个出现9的位置,让其加1,后面全变为0即可. 只需要再加一个判定条件:不能被9整除. 由数学知识,一个数不能被9整除当且仅当各位数之和不能被9整除. 这里给出简单的证明: 不妨以三位…

Linux-初学者系列7_shell编程

在进行服务器集群管理时,需要编写shell程序来进行服务器管理。 shell是一个命令行解释器,他会为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户用shell启动、挂起、停止和编写一些程序。 Linux-初学者系列7_shell编程…

简单记录一下spi的四种mode

0 前言 最近在学习SPI&#xff0c;刚开始接触四种mode的时候&#xff0c;还有点懵&#xff0c;也是搜了好几个博客&#xff0c;才算搞懂&#xff0c;特此记录下&#xff0c;防止下次又要翻好几篇博客才找到答案 >_< 1 四种mode的组成单元 这四种mode是由时钟极性和时钟…

Leetcode刷题之反转链表Ⅱ

业精于勤而荒于嬉&#xff0c;行成于思而毁于随。 ——韩愈目录 前言&#xff1a; &#x1f341;一.反转链表Ⅱ &#x1f352;1.left和right中间链表反转&#xff0c;再把反转链表和剩下的链接起来 &#x1f5fc;2.left和right中间链表头插 题目描述…

「实验记录」MIT 6.824 Raft Lab2A Leader Election

#Lab2A - Leader Election I. SourceII. My CodeIII. MotivationIV. SolutionS1 - 角色转换S2 - 发起 RequestVote 拉票请求S3 - 收到 RequestVote 的不同反应S4 - 发送 AppendEntries 心跳包S5 - 收到 AppendEntries 的不同反应S6 - defs.go约定俗成和GetState() V. Result I.…

The service already exists!

文章目录 项目场景&#xff1a;原因分析&#xff1a;解决方案&#xff1a; 项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 在给一位同学安装MySQL时报了这个错&#xff0c;我知道是她之前安装过但是没删干净的原因 但是我把Everything和注册表都查…

五、RGB实验(正点原子达芬奇Pro代码>>ZYNQ 7020代码移植)

RGB实验(正点原子达芬奇Pro代码&#xff1e;&#xff1e;ZYNQ 7020代码移植) 文章目录 RGB实验(正点原子达芬奇Pro代码&#xff1e;&#xff1e;ZYNQ 7020代码移植)前言一、本文目标二、移植步骤1.建立文件2.建立v文件1.lcd_rgb_colorbar2.lcd_driver3.rd_id4.clk_div5.lcd_dis…

单调队列算法模板及应用

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/algorithms-notes 】或者公众号【AIShareLab】回复 算法笔记 也可获取。 文章目录 队列算法模板例题&#xff1a;滑动窗口code 队列算法模板 // hh 表示队头&#xff0c;tt表示队尾 int q[N], hh 0…