一、前言

  优化模型主要有线性规划、非线性规划、动态规划和整数规划。而指派问题是整数规划中一类重要的问题:
有nnn项任务,由nnn个人来完成,每个人只能做一件,第iii个人完成第jjj项任务要cijc_{ij}cij​小时,如何合理安排时间才能使总用时最小?

二、 指派问题的数学模型

我们引入 0 - 1变量 xijx_{ij}xij​

xij={1,表示指派第i个人完成第j项工作0,表示不指派第i个人完成第j项工作x_{ij} = \begin{cases} 1, & \text{表示指派第i个人完成第j项工作} \\ 0, & \text{表示不指派第i个人完成第j项工作} \end{cases} xij​={1,0,​表示指派第i个人完成第j项工作表示不指派第i个人完成第j项工作​
用x_{ij}表示第i个人完成第j项工作所需要的资源数,称之为价值系数。因此指派问题的数学模型是:
minz=∑i=1n∑j=1ncijxijmin \ z = \sum_{i=1}^n\sum_{j=1}^nc_{ij} x_{ij} min z=i=1∑n​j=1∑n​cij​xij​

s.t={∑i=1nxij=1,i=1,2,⋅⋅⋅,n∑j=1nxij=1,j=1,2,⋅⋅⋅,nxij=0或1,i,j=1,2,⋅⋅⋅,ns.t = \begin{cases} \sum_{i=1}^n x_{ij}=1,\ \ \ \ \ i=1,2,···,n\\ \sum_{j=1}^n x_{ij}=1,\ \ \ \ \ j=1,2,···,n\\ x_{ij}=0或1,\ \ \ \ \ i,j = 1,2,···,n \end{cases} s.t=⎩⎪⎨⎪⎧​∑i=1n​xij​=1,     i=1,2,⋅⋅⋅,n∑j=1n​xij​=1,     j=1,2,⋅⋅⋅,nxij​=0或1,     i,j=1,2,⋅⋅⋅,n​

  • 第一个式子表示完成全部n项工作所消耗的总资源数要最少;
  • 第二个式子表示第i个人只完成一项工作;
  • 第三个式子表示第j项工作只能由一个人完成;
  • 第四个式子表示决策变量只能取0或者1。

指派问题可以看作0 - 1整数规划问题来求解,也可以用更简单的匈牙利算法来求解。

三、 0 - 1规划求解(Matlab)

我们先给出这样一个例题,图中数值为第i个人要完成第j个任务需要消耗的资源数xijx_{ij}xij​,求解:如何安排才能使的总资源消耗最少。

编程思路:
根据规划问题的要求:
每个人只能完成一个任务,每个任务只能由一个人完成。也正如第三部分中的第二个式子和第三个式子,当该4x4矩阵表示xijx_{ij}xij​,即指派第i个人完成第j个任务时,此时每一行相加的值和为1,每一列相加的值和为1。(xijx_{ij}xij​的值只能为0或者1)根据该思路,我们可以来进行Matlab变成。

c=[2,15,13,4,10,4,14,15,9,14,16,13,7,8,11,9]';
Aeq=[1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0;0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0;0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0;0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1;1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0;0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0;0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0;0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1];
beq=[1;1;1;1;1;1;1;1];
lb=zeros(16,1);
ub=ones(16,1);
[x,fval] = linprog(c,[],[],Aeq,beq,lb,ub)
x=reshape(x,[4,4])'

其中Aeq和beq代表的是等式约束,Aeq的前四行分别表示 4x4的xijx_{ij}xij​矩阵中四行中每行相加的值为1;Aeq的后四行分别表示4x4的xijx_{ij}xij​矩阵找那个的四列中每列相加的值为1。(实际上它就是将4x4的矩阵按照行进行展开成了1x16的矩阵)。
然后再调用linprog()线性规划的函数,输入相应参数进行求解。求解所得的x是16x1的矩阵,我们为了便于观察,最后将该矩阵转换成4x4的矩阵。

优化模型之指派问题(整数规划)相关推荐

  1. 数模国赛备赛(3)优化模型与历年国赛B题讲解

    常用的优化模型 什么是优化模型 三要素:决策变量.目标函数.约束条件 一个优化模型只要刻画好了这三部分,模型基本上就建立好了 按照变量的类型可以分为连续和离散 常见的优化模型 大部分模型在运筹学课程都 ...

  2. 数学建模代码速成~赛前一个月~matlab~代码模板~吐血总结~三大模型代码(预测模型、优化模型、评价模型)

    目录 一.预测模型 1.BP神经网络预测 2.灰色预测 3.拟合插值预测(线性回归) 4.时间序列预测 5.马尔科夫链预测 6.微分方程预测 7.Logistic 模型 二.优化模型 1.规划模型(目 ...

  3. 数学建模matlab 优化模型,数学建模实验中三种优化模型的分析

    1. 引言 在20世纪中期,数学建模 [1] 就在欧美国度首次被发现,而在中国的呈现稍晚些,但是大约在80年代初始咱们国家也就有了.它的核心即是创立数学模型 [2] ,使得问题获得最优化的解决.而数学 ...

  4. 补充1 设计区域网络配置的优化模型(工厂选址模型)——基于java和cplex的实现

    这一部分是第二部分的供应链网络的设计(二)供应链的网络设计第四部分设计区域网络配置的优化模型. 目录 一.所需输入 二.有能力约束的工厂选址模型 1.利用excel进行规划求解 2.利用java和cp ...

  5. 数学建模专栏 | 第五篇:MATLAB优化模型求解方法(上):标准模型

    最优化赛题是数学建模大赛中最常见的问题类型之一.一般说来,凡是寻求最大.最小.最远.最近.最经济.最丰富.最高效.最耗时的目标,都可以划入优化问题的范畴.MATLAB 优化工具箱和全局优化工具箱对多个 ...

  6. 数学建模优化模型简单例题_数学建模之优化模型:存储模型

    点击上方「蓝字」关注我们 最近,为申报市级精品课程,我为我校"数学建模与科学计算"课程录制了讲课视频,下面是3.1节优化模型的第一个例子:存储模型.敬请大家批评指正! 优化模型是数 ...

  7. unity 批量导入模型工具_零基础的Unity图形学笔记3:使用多模型UV与优化模型导出...

    前文所说,贴图多UV,直接命名对应贴图就可以. 模型的多套UV,则需要在3DMAX里编辑. 这篇文章主要解决两个问题: 如何正确使用多模型UV? 从3DMAX导出,到shader使用 如何优化模型导出 ...

  8. 数据中心 PUE 优化模型生成服务:AI 浪潮下的数据中心的省钱攻略,就用这几招

    文章目录 前言 一.数据中心节能能省一大笔钱 1.1.全联接世界推动数据中心市场持续高速发展 1.1.1.用户联接激增 1.1.2.全球数据中心基础设施高速发展 1.2.数据中心的增长带来超额的用电量 ...

  9. TVM:通过Python接口(AutoTVM)来编译和优化模型

    TVM:通过Python接口(AutoTVM)来编译和优化模型 上次我们已经介绍了如何从源码编译安装 tvm,本文我们将介绍在本机中使用 tvm Python 接口来编译优化模型的一个demo. TV ...

  10. 优化模型实验报告_BERT微调效果不佳?试试这种大规模预训练模型新范式

    BERT模型自发布至今已整整两年了,但是其余热仍未消减.从一经问世的轰动,简单应用/微调便可达到某个领域或者任务的SOTA效果:到如今的各种『被吊打』,BERT巨人肩膀上的新宠大致可以分为以下这么几类 ...

最新文章

  1. 某种密码(password.*)
  2. [scala-spark]6. 继承与特质trait
  3. 【ruoyi若依】为当前页添加显示事件
  4. Rethinking Design Patterns - from Jeff Atwood
  5. 【渝粤教育】广东开放大学 网络市场与预测 形成性考核 (23)
  6. VS2005 添加 Microsoft.Office.Tools.Word.dll 等引用
  7. “数”说系列洞察报告:30+女性专题——浪姐无价,又A又飒
  8. zookeeper3.4.6 使用研究
  9. 例3.4 二叉树遍历 - 九度教程第32题(二叉树)
  10. 领域(学科)知识图谱构建心得
  11. 典型相关分析(CCA)
  12. 如何从Oracle官网上下载JDK
  13. kernel - regulator
  14. 开发STM32MP1,离不开一个好开发板
  15. 解决Intellij IDEA 一直在indexing....,导致idea很卡,无法操作
  16. 用python开发一个炸金花小游戏,注意别玩上瘾了
  17. 微服务启动成功无法注册到服务注册中心
  18. Qt获取QTextEdit中的内容
  19. dhrystone测试前系统软件准备与计算
  20. 易飞ERP--电子表单派班中心异常Illegal EasyFlow Account !-resak001

热门文章

  1. 110报警声+单片机c语言,单片机实现消防车报警声音的设计
  2. Oracle项目管理系统之供应商筛选及资格预审
  3. 基于asp.net075丰田汽车4S店销售管理系统
  4. 【利用EXCEL进行数据爬虫】数据爬虫学习
  5. bootstarp怎么使盒子到最右边_基于Android血统的NAS+盒子共生体——零刻GS-king X 开箱初体验...
  6. 鸡兔同笼编程语言c,鸡兔同笼用c语言编程
  7. 支持html签名的邮箱app,在iPhone和iPad上创建使用丰富的HTML电子邮件签名 | MOS86
  8. 网络安全——钓鱼邮件和网站克隆
  9. xmlspy2014 安装与破解
  10. 多页TIF转PDF 【JAVA】