数学建模 匈牙利算法求解整数规划基本原理与编程实现

投资问题(0-1规划)

匈牙利算法求解0-1规划问题
在这里插入图片描述
解答:
项目之间是互斥关系,所以使用x1+x2+x3=1;
项目5是以项目1为先验条件,所以x5<=x1,意味着x1=1时,x5=1或0 ,但x1=0时,x5=0
在这里插入图片描述

案例- 互斥约束问题

1)当两个约束条件是互斥时,新建立一个约束条件y(0-1)
2)如果M取无穷大的数,此时就能让其中一项约束失去作用
3)这道题是说存在一个约束 4x1+5x2<=200和另一个约束3x1+5x2<=180,这两个约束互斥,所以引入一个新的约束M
在这里插入图片描述
互斥约束的推广
p-q=yi相加:在p个约束条件中选择q个
在这里插入图片描述

案例-固定费用问题

在这里插入图片描述
解答:
可变成本就是成本,利润=售价-可变成本
在这里插入图片描述
在这里插入图片描述
最终:
这里还存在一个问题:如果不租用每个产品对应的生产线,则不能够生产相应的产品
所以要引入M1(无穷大的数),检验x1,x2,x3是否有生产
在这里插入图片描述

案例-指派问题

在这里插入图片描述
解答:
1)因为每一个人可以选择四项工作中的一个,共有四个人,则一共有4*4=16项
所以,要使用二维数组的样式xij来表示第i个人是否做第j项工作
在这里插入图片描述

指派问题标准形式

在这里插入图片描述
数学模型
在这里插入图片描述

非标准形式的指派问题

增加新的约束或新的约束条件
1)
最大化指派问题:不是成本和时间最小化指派问题,而是利润最大化
使用最大元素-所有的值=新的指派系数
2)
人数和工作数不等,代价为0,xii的值为0
3)
一个人可做多件工作,几个相同的人,不做任何限制
4)
某工作一定不能由某人做,若x13=0,则设x13<=0
在这里插入图片描述

指派问题的匈牙利解法的一般步骤

1)系数矩阵:每个人做每项工作所需要付出的代价
2)aij->bij
变为所有的行和所有的列只有一个1,其余元素全为0,意味着整个矩阵的秩=4
第一步:
在这里插入图片描述
第二步:
1)独立0元素:行和列都不相等的0元素
2)
只有一个0元素的行,划掉所在列
只有一个0元素的列,划掉所在行
在这里插入图片描述
1)
如果还有0元素没有画圈,就找到最少的0元素的行或列
2)
画圈数目=矩阵的阶,指派问题的最优解已找到

在这里插入图片描述
第三步:
在这里插入图片描述
直线数l=画圈的数目m
在这里插入图片描述
第四步:
行减去min,列加上min,之后再回到第二步,去重复过程
在这里插入图片描述

匈牙利解法的实例1

在这里插入图片描述

解答:
第一步
在这里插入图片描述
第二步:
记住反复做
在这里插入图片描述
最后:
输出的矩阵:圈为1,其余为0
最优解=1所对应的原始矩阵元素相加
在这里插入图片描述

匈牙利解法的实例2

在这里插入图片描述

解答:
第一步和第二步:
在这里插入图片描述

第三步:

在这里插入图片描述

第四步:
加减最小得到新的指派矩阵,再重复第二步
在这里插入图片描述
重复第二步:
最优解=2+4+1+8=15
在这里插入图片描述

指派问题的matlab程序

1)向量方便后期计算
2)for循环,使所有的行取值为1,所有的列取值为1
在这里插入图片描述

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

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

相关文章

Ubuntu通过可视化界面配置 查找IP地址不存在的解决办法

命令行用ifconfig eno0 up&#xff0c;启用网卡&#xff0c;没有问题&#xff0c;硬件ok&#xff0c;但是配置里面还是找不到。之前修改了 /etc/network/interfaces&#xff0c;去掉配置。由于图形界面使用的是 network-manager&#xff0c;所以需要修改重启sudo service netwo…

数学建模 非线性规划原理的应用与编程实现

非线性规划模型NP 包含非线性函数:不是直线而是曲线、曲面、或不确定的属性,叫非线性。 如:x^2 线性函数:一次函数,axb 列1-投资决策问题 解答: 设置决策变量: 1)投资某个项目达到收益最高,使用比值法(更直观) 收益/投资花费 取值范围 1)*非线性规划中常用 限制xi0或1(在编…

C++ STL list添加(插入)元素方法详解

C STL list添加&#xff08;插入&#xff09;元素方法详解主要内容主要内容 参考链接

数学建模1 赛前准备 赛题选择 查找文献

了解国赛 生成了MD5码之后就不能再碰文件&#xff0c;打开都不行 软件安装 其他 ABC赛题特点 一般选择B,C题 赛题选择 1.排除背景都看不懂的题 定题 1.少数服从多数 2.选择资料多的题 搜索技巧 1.双引号–“CT参数标定”&#xff08;内容或标题一致&#xff09; 2…

剑指offer 第一章 面试的流程

面试的流程 面试的三种形式 电话面试&#xff1a;形象化语言讲解细节&#xff1b;如果没有听清楚和听懂问题&#xff0c;不要不懂装懂&#xff0c;答非所问共享桌面&#xff0c;远程面试&#xff1a;编程习惯和调试能力。1&#xff0c;思考清楚再开始编码&#xff0c;先想思路…

数学建模2 数据预处理

注意 题目给出的数据不能直接使用&#xff0c;要对数据进行异常处理 缺失值 1.缺失值太多就要把该项指标删除&#xff08;40%相当大&#xff09; 2.处理&#xff1a;对精度不高 定量数据&#xff0c;使用均值 定性数据&#xff0c;使用众数 3.对数据精度有要求 但对导数没有…

n个整数,其中有两个数是重复的,要求找出这两个重复的整数

n个整数&#xff0c;其中有两个数是重复的&#xff0c;要求找出这两个重复的整数方法一方法二方法三空间复杂度的计算常量空间线性空间二维空间递归空间方法一 使用set集合 将每一个元素放到set集合中&#xff0c;加入的时候判断集合中是否存在此元素&#xff0c;如果if判断找…

数学建模3 论文排版注意点

注意事项 1&#xff09;论文标题不超过三级 5 5.1 5.1.1 2&#xff09;不要留有大片空白 3&#xff09;表格&#xff1a;三线表&#xff0c;只有三条横线&#xff0c;没有竖线&#xff0c;表的标题放在表的上方 4&#xff09;图名放在图的下方&#xff0c;图1 xxx 5)重要…

修改ubuntu的IP地址,静态IP地址

师姐&#xff0c;配置ip地址 当时你给服务器安装系统&#xff0c;然后配置IP地址 sudo ifconfig eth0 172.27.100.110 netmask 255.255.0.0

数学建模4 论文写作排版和技巧

文字 标题一&#xff1a;四号黑体 标题二、三&#xff1a;小四号黑体 正文&#xff1a;宋体小四 行距1.5 标题前后空0.5行 英文和数字使用Times New Roman 小四&#xff08;包括表格中的内 表头在表格上方&#xff0c;需写成“表1 什么什么表”黑体小五加粗、居中 图名在图下…

哈希表和有序表的简单介绍

哈希表的简单介绍 哈希表是一种集合结构 包含map和set如果只有key&#xff0c;没有伴随数据value&#xff0c;可以使用HashSet结构(C stl set)如果拥有key&#xff0c;拥有伴随数据value&#xff0c;可以使用HashMap结构(C stl map)有无伴随数据是Hashmap和Hashset的唯一区别…

中科大 计算机网络1 课程主要内容大概介绍

B站课程 课程主要内容 1&#xff09; 支撑Web应用的http协议 支撑FTP应用的ftp协议 电子邮件发送协议主要是SMTP,收件协议主要是POP3和IMAP 传输层协议&#xff1a;UDP&#xff08;用户数据包协议&#xff09;&#xff0c;TCP&#xff08;传输控制协议&#xff09; 2&#x…

算法题 如何找到数组中重复的数字

面试题3 数组中重复的数字 题 目 &#xff1a;找出数组中重复的数字。在一个长度为n的数组里的所有数字都在0 ~ n-1的范围内。数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如&…

数学建模5 代码论文降重 Excel表处理数据

代码降重 1&#xff09;在代码中加入自己的注释 2&#xff09;替换变量名&#xff0c;a->jude 3&#xff09;代码中英文使用很小的字母&#xff0c;再颜色透明化&#xff08;慎用&#xff09; 文章降重 1&#xff09;模型介绍&#xff0c;优缺点等网上容易查到的内容自己…

C++ Map简单介绍 ,比如添加元素、删除元素和打印元素

介绍 map是一种键值对容器&#xff0c;第一个数值为关键字&#xff08;key&#xff09;&#xff0c;第二个数值为该元素对应的出现的次数。如果是map&#xff0c;key只会出现一次&#xff0c;如果是unordered_map&#xff0c;无此限制。此外&#xff0c;map会对元素进行排序&a…

Python学习1 基础语法 数据类型 计算机基础

Python的重要性 python就业方向 Python的历史 python创造于1989年&#xff0c;荷兰人吉多.范罗苏姆 现在是Python3版本 09 Python的特点 1&#xff09;跨平台 2&#xff09;解释型语言 3&#xff09;交互式 4&#xff09;面向对象&#xff1a;一切皆对象 5&#xff09;具有一…

算法考题 替换空格

参考链接 letcode官网题目地址 题目要求&#xff1a; 请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成"%20"。示例 1&#xff1a; 输入&#xff1a;s "We are happy." 输出&#xff1a;"We%20are%20happy." 来源&#xff1a;力扣&a…

Python学习2 条件判断语句if,循环语句for while

顺序&#xff0c;分支&#xff0c;循环结构 条件判断语句if 1&#xff09;if…else… 2) if…elif…else 注意&#xff1a; 1&#xff09;python中不支持switch…case语句 2&#xff09;注意缩进&#xff01; 3&#xff09;区间范围内允许连续比较&#xff1a; if 1<2<…

使用VS2019创建项目,添加文件和库地址

1&#xff0c;创建项目的类型很重要&#xff0c;fisherman服务器密码机使用C语言进行开发&#xff0c;只可以使用控制台应用 将需要的头文件拷贝到新建的工程里面 然后&#xff0c;打开解决方案资源管理器&#xff0c;点击添加&#xff0c;添加现有项&#xff0c;选中拷贝的头…

java -web html5学习1

基础标签 <!--html5声明--> <!DOCTYPE html> <!--html标签--> <html lang"en"> <!--文档头--> <head> <!--告知浏览器此页面属于什么字符编码格式,--><meta charset"UTF-8"> <!-- 用于标识当前网页的…