投资问题(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. 数学建模 割平面算法求解整数规划基本原理与编程实现

    基本思想 松弛问题:线性规划 割掉一块全部都是小数的区域(这一部分取不到整数) 案例 1)横坐标x1,纵坐标x2 2)蓝色小三角形的区域:x2:(1,7/4) x1:(0,3/4) 这块区域,x1与x ...

  2. 数学建模 分支限界算法求解整数规划原理以及编程实现

    引入 线性规划问题(松弛问题) 图解法: 使用图解法求出最优解,再使用四舍五入求出的整数解不满足条件 完全枚举法(穷举法):找出集合内所有满足条件的整数点,再带入不等式中,看是否有最优解 分支限界法 ...

  3. 数学建模——差分算法(求解偏微分方程)

    差分算法(求解偏微分方程) 差分算法是数学建模比赛中的一种十分常见的代码,在2018A题和2020A中均用到一维热传导模型,模型的求解用的就是差分算法,具体如何解可以自己去查看相关论文. 定义 差分方 ...

  4. 【数学建模】算法模型(一)|线性规划 整数规划 非线性规划 层次分析模型 灰色关联分析

    文章目录 1.线性规划 Linear Programming (LP) 1.1线性规划的matlab标准形式及软件求解 1.2 投资的收益和风险 2. 整数规划 2.1 整数规划和线性规划的关系 2. ...

  5. 数学建模之减肥计划 matlab编程,数学建模matlab算法大全第02章整数规划.pdf

    数学建模matlab算法大全第02章整数规划 第二章 整数规划 §1 概论 1.1 定义 规划中的变量(部分或全部)限制为整数时,称为整数规划.若在线性规划模型中, 变量限制为整数,则称为整数线性规划 ...

  6. 数学建模图论算法学习总结

    数学建模图论算法学习总结 图论基本知识 B站视频: https://www.bilibili.com/video/av18374161/?p=35 https://www.bilibili.com/v ...

  7. 数学建模、运筹学之整数规划(原理、例题、代码)

    数学建模.运筹学之整数规划(原理.例题.代码) 一.何为整数规划? 二.整数规划与线性规划 三.分枝定界法 四.0-1整数规划 一.何为整数规划? 整数规划具有深远的实际应用价值,因为现实生活中的规划 ...

  8. 数学建模基本算法模型Chapter1--线性规划

    数学建模基本算法模型Charpter1–线性规划(LP) By 进栈需检票 一.线性规划基本概念 1.Linear Programming (LP问题) 列出方程组不等式求解(基本形式) 包含目标函数 ...

  9. 数学建模–模拟退火算法

    文章目录 数学建模--智能算法 1.简介 模拟退火算法 1. 简介 2.数学建模中的模拟退火算法原理 3.模拟退火算法流程及应用 1.Metropolis采样算法 2. 退火过程实现算法 3.举个栗子 ...

最新文章

  1. html 动画div右侧消失,使用animate.css时,动画一开始不隐藏,如何解决呢?
  2. 浅析Hibernate映射(一)——基本映射
  3. win7系统如何开启udma功能
  4. Android开源库集锦
  5. AB Test 是什么
  6. win和mac系统Sublime Text 3配置编译c和c++
  7. ES6_Promise
  8. Horizon View 7 发布Win10桌面三:链接克隆桌面池配置
  9. matlab论坛真不活跃,MATLAB中文论坛常见问题归纳
  10. 数能一体化物联网感知层路由协议研究
  11. 图书馆借阅系统(应用)的设计与实现
  12. lbj学习日记 06 一维数组和二维数组刷题课
  13. Android studio常用设置和快捷键
  14. 华为ME909s-821a开启LED状态指示灯
  15. 了解 Qt 绘图设备QPixmap、QBitmap、QImage和 QPicture
  16. mysql去重汇总_Mysql常用SQL汇总
  17. 加拿大各省接受公立教育的初始年龄汇总 — 供携子女赴加的访学、博后参考
  18. 【元器件】电容选型指南
  19. 正交矩阵的保范性:正交变换不改变向量的长度(范数)
  20. systemctl 设置 frpc 开机自启

热门文章

  1. 第七节:WebApi与Unity整合进行依赖注入和AOP的实现
  2. linux ( )含义,Linux的shell中$()、$[] 、${}分别是什么意思?
  3. idea+JRebel实现项目热部署
  4. Hive优化(再一遍系统复习)
  5. 【JS 逆向百例】网洛者反爬练习平台第六题:JS 加密,环境模拟检测
  6. 执行 redis-dump 报错:ERROR (Errno::ENOENT): No such file or directory - ps -o rss= -p xxxxx
  7. Maven超详细配置
  8. 安卓手机挂载Linux,android 挂载NFS教程
  9. 计算机作文叙事,电脑争夺战叙事作文
  10. 【LeetCode - 1047】删除字符串中的所有相邻重复项(栈)