文章目录
- 0 赛题思路
- 1 模型描述
- 2 实例
- 2.1 问题描述
- 2.2 数学模型
- 2.2.1 模型流程
- 2.2.2 符号约定
- 2.2.3 求解模型
- 2.3 相关代码
- 2.4 模型求解结果
- 建模资料
0 赛题思路
(赛题出来以后第一时间在CSDN分享)
https://blog.csdn.net/dc_sinor?type=blog
最短时间生产计划模型
该模型出现在好几个竞赛赛题上,预测2023今年国赛也会与该模型相关。
1 模型描述
离散系统仿真在工业生产的工序安排中起到了相当重要的作用,如何就一些内部机制复杂的离散问题建立简单易行、可监测性强的数学模型一直是仿真技术的研究热点.
离散事件系统现有三种仿真建模策略,即:
- 事件调度法
- 活动扫描法
- 进程交互法.
该模型demo学长采用了其中的活动扫描法对生产中的一个实际例子进行了处理.
活动扫描法对于各事件之间相关性很强的系统有着很好的适用性.
2 实例
2.1 问题描述
在许多工厂生产过程中,由于设备的数量、产品加工的次序限制,往往不能简单地安排生产任务.我们设想,应用强大的数学软件配合简单易行的方法进行安排.
设某重型机械厂产品都是单件性的,其中有一车间共有4种不同设备,现接受6件产品的加工任务,每件产品接受的程序在指定的设备上加工,其工序与加工周期如下表
现在我们根据这一实际问题,寻求安排的方法.
要求:
1、每件产品必须按规定的工序加工,不得颠倒.
2、每台设备在同一时间只能担任一项任务(每件产品的每个工序为一个任务).
3、在尽可能短的时间里,完成所接受的全部任务.
为了节省电能,合理分配生产任务,厂方还要求:
1、做出每件产品的每个工序开工、完工时间表.
2、给出每台设备承担任务的时间表.
2.2 数学模型
2.2.1 模型流程
2.2.2 符号约定
2.2.3 求解模型
2.3 相关代码
clear clc seq=[3 1 2 3 4 0 0 0 %各产品加工时所用的设备的次序 1 4 2 3 0 0 0 0 3 4 1 2 1 0 0 0 2 3 4 1 4 3 0 0 4 2 3 4 1 3 4 0 1 2 1 3 4 1 3 1]; tim=[8 2 4 24 6 0 0 0 %加工对应使用的时间 4 5 3 4 0 0 0 0 3 7 15 20 8 0 0 0 7 6 21 1 16 3 0 0 10 4 8 4 12 6 1 0 1 4 7 3 5 2 5 8]; whole=[0 0 0 0]; for i=1:6 for j=1:8 if(seq(i,j)~=0) whole(seq(i,j))=whole(seq(i,j))+tim(i,j); end end end whole %生产各件产品所需的总时间 mes=cell(4,1); %记录各个设备的工作时间(对应于上面tim的位置) for k=1:4 mes{k,1}=zeros(6,8); for j=1:8 for i=1:6 if(seq(i,j)==k) mes{k,1}(i,j)=tim(i,j); else mes{k,1}(i,j)=100; end end end end turn=cell(5,100); %记录四个设备的开关时间及加工对象(on(i)) for i=1:4 for j=1:100 turn{i,j}='off'; end end for i=1:100 turn{5,i}=[num2str(i) '分']; end open=zeros(6,8); %记录6个产品的加工进度,0表示未进行,1表示已开始(或已结束),2表示可选,3表示没有这个程序 for i=1:6 open(i,1)=2; end for i=1:6 for j=1:8 if seq(i,j)==0 open(i,j)=3; end end end gongxu=zeros(6,1); dai=zeros(4,1); j=1; s=[1 1 1 1 1 3 3 3 1 1 1 1 3 3 3 3 1 1 1 1 1 3 3 3 1 1 1 1 1 1 3 3 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1]; while isequal(open,s)==0 on=[]; for i=1:4 if turn{i,j}=='off' %在turn矩阵中逐列搜索,若设备处于关机状态,则作记录(可用) on=[on i]; end end l1=length(on); for m=1:l1 %在整个生产计划中(对设备逐个)寻找能够选作操作的步骤 [x,y]=find(open==2); l2=length(x); a=[x(1) y(1)]; for k=1:l2 %对某个设备on(m),找出当前它能操作的步骤中耗时最小的一个 if mes{on(m)}(a(1),a(2))>mes{on(m)}(x(k),y(k)) a=[x(k) y(k)]; end end if turn{on(m),j}=='off' & mes{on(m)}(a(1),a(2))~=100 %若时间为100则意味着这个步骤不属于我们希望使用的那件设备 while tim(a(1),a(2))>0 turn{on(m),tim(a(1),a(2))+j-1}=a(1); tim(a(1),a(2))=tim(a(1),a(2))-1; end end end for i=1:4 if turn{i,j}~='off' dai(i)=turn{i,j}; end end for i=1:4 if turn{i,j}~='off' & turn{i,j+1}=='off' gongxu(turn{i,j})=gongxu(turn{i,j})+1; open(turn{i,j},gongxu(turn{i,j}))=1; end if gongxu(dai(i))<8 & open(dai(i),gongxu(dai(i))+1)~=3 & turn{i,j+1}=='off' open(dai(i),gongxu(dai(i))+1)=2; end end j=j+1; end
2.4 模型求解结果
每件产品的每个工序开工、完工时间表
每台设备承担任务的时间表
从结果中我们可以看到,使用这种方法,只需78个单位时间就可以完成所有的工序.而我们同时也可以在论文的开始部分看到,单就完成 就需耗费75个单位时间.可见这种方法得出的结果还是相当使人满意的,而且操作简单,可监测性强.
建模资料
资料分享: 最强建模资料
猜你喜欢
- 11天前(临沂 凯悦)临沂第一家凯悦嘉轩酒店开幕迎宾
- 11天前(屿见不一样是哪个酒店)屿见白纱,遇见自己 “佳能PhotoGirls屿见白纱”摄影派对玩转海岛
- 11天前(甘肃文旅项目)甘肃省文旅产业链招商引资推介会在天水成功举办
- 11天前(“为人民绽放——国家艺术基金优秀剧目展演”在合肥开幕)“为人民绽放——国家艺术基金优秀剧目展演”在合肥开幕
- 11天前(万豪旅享家活动2021)精彩上新,漫享夏日----跟随万豪旅享家新开酒店解锁夏日旅行灵感
- 11天前(美诺酒店集团旗下臻选品牌m collection)美诺酒店集团启动盛橡品牌战略焕新 开启全球扩张新篇章
- 11天前(新西兰旅游局×时差岛:黄觉的“长白云之乡”奇遇)新西兰旅游局×时差岛:黄觉的“长白云之乡”奇遇
- 11天前(携程租车加盟合作)携程租车加盟优势全解析:开启旅游出行市场新篇章
- 11天前(芜宣机场国际航班)新华丝路:芜宣机场开通至越南首都河内的国际货运航线
- 11天前(我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章