数学建模 匈牙利算法求解整数规划基本原理与编程实现
投资问题(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
数学建模 匈牙利算法求解整数规划基本原理与编程实现相关推荐
- 数学建模 割平面算法求解整数规划基本原理与编程实现
基本思想 松弛问题:线性规划 割掉一块全部都是小数的区域(这一部分取不到整数) 案例 1)横坐标x1,纵坐标x2 2)蓝色小三角形的区域:x2:(1,7/4) x1:(0,3/4) 这块区域,x1与x ...
- 数学建模 分支限界算法求解整数规划原理以及编程实现
引入 线性规划问题(松弛问题) 图解法: 使用图解法求出最优解,再使用四舍五入求出的整数解不满足条件 完全枚举法(穷举法):找出集合内所有满足条件的整数点,再带入不等式中,看是否有最优解 分支限界法 ...
- 数学建模——差分算法(求解偏微分方程)
差分算法(求解偏微分方程) 差分算法是数学建模比赛中的一种十分常见的代码,在2018A题和2020A中均用到一维热传导模型,模型的求解用的就是差分算法,具体如何解可以自己去查看相关论文. 定义 差分方 ...
- 【数学建模】算法模型(一)|线性规划 整数规划 非线性规划 层次分析模型 灰色关联分析
文章目录 1.线性规划 Linear Programming (LP) 1.1线性规划的matlab标准形式及软件求解 1.2 投资的收益和风险 2. 整数规划 2.1 整数规划和线性规划的关系 2. ...
- 数学建模之减肥计划 matlab编程,数学建模matlab算法大全第02章整数规划.pdf
数学建模matlab算法大全第02章整数规划 第二章 整数规划 §1 概论 1.1 定义 规划中的变量(部分或全部)限制为整数时,称为整数规划.若在线性规划模型中, 变量限制为整数,则称为整数线性规划 ...
- 数学建模图论算法学习总结
数学建模图论算法学习总结 图论基本知识 B站视频: https://www.bilibili.com/video/av18374161/?p=35 https://www.bilibili.com/v ...
- 数学建模、运筹学之整数规划(原理、例题、代码)
数学建模.运筹学之整数规划(原理.例题.代码) 一.何为整数规划? 二.整数规划与线性规划 三.分枝定界法 四.0-1整数规划 一.何为整数规划? 整数规划具有深远的实际应用价值,因为现实生活中的规划 ...
- 数学建模基本算法模型Chapter1--线性规划
数学建模基本算法模型Charpter1–线性规划(LP) By 进栈需检票 一.线性规划基本概念 1.Linear Programming (LP问题) 列出方程组不等式求解(基本形式) 包含目标函数 ...
- 数学建模–模拟退火算法
文章目录 数学建模--智能算法 1.简介 模拟退火算法 1. 简介 2.数学建模中的模拟退火算法原理 3.模拟退火算法流程及应用 1.Metropolis采样算法 2. 退火过程实现算法 3.举个栗子 ...
最新文章
- html 动画div右侧消失,使用animate.css时,动画一开始不隐藏,如何解决呢?
- 浅析Hibernate映射(一)——基本映射
- win7系统如何开启udma功能
- Android开源库集锦
- AB Test 是什么
- win和mac系统Sublime Text 3配置编译c和c++
- ES6_Promise
- Horizon View 7 发布Win10桌面三:链接克隆桌面池配置
- matlab论坛真不活跃,MATLAB中文论坛常见问题归纳
- 数能一体化物联网感知层路由协议研究
- 图书馆借阅系统(应用)的设计与实现
- lbj学习日记 06 一维数组和二维数组刷题课
- Android studio常用设置和快捷键
- 华为ME909s-821a开启LED状态指示灯
- 了解 Qt 绘图设备QPixmap、QBitmap、QImage和 QPicture
- mysql去重汇总_Mysql常用SQL汇总
- 加拿大各省接受公立教育的初始年龄汇总 — 供携子女赴加的访学、博后参考
- 【元器件】电容选型指南
- 正交矩阵的保范性:正交变换不改变向量的长度(范数)
- systemctl 设置 frpc 开机自启
热门文章
- 第七节:WebApi与Unity整合进行依赖注入和AOP的实现
- linux ( )含义,Linux的shell中$()、$[] 、${}分别是什么意思?
- idea+JRebel实现项目热部署
- Hive优化(再一遍系统复习)
- 【JS 逆向百例】网洛者反爬练习平台第六题:JS 加密,环境模拟检测
- 执行 redis-dump 报错:ERROR (Errno::ENOENT): No such file or directory - ps -o rss= -p xxxxx
- Maven超详细配置
- 安卓手机挂载Linux,android 挂载NFS教程
- 计算机作文叙事,电脑争夺战叙事作文
- 【LeetCode - 1047】删除字符串中的所有相邻重复项(栈)