欢迎来到天天文库
浏览记录
ID:13120270
大小:45.00 KB
页数:3页
时间:2018-07-20
《流水作业调度问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、流水作业调度问题描述:N个作业{1,2,………,n}要在由两台机器M1和M2组成的流水线上完成加工。每个作业加工的顺序都是先在M1上加工,然后在M2上加工。M1和M2加工作业i所需的时间分别为ai和bi,1≤i≤n。流水作业高度问题要求确定这n个作业的最优加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在机器M2上加工完成所需的时间最少。可以假定任何任务一旦开始加工,就不允许被中断,直到该任务被完成,即非优先调度。输入:输入包含若干个用例,第一行为一个正整数K(1<=K<=1000),表示用例个数,接下来K个用例,每个用例第一个为作业数N(1<=N<=1000),接下来
2、N行,每行两个非负整数,分别表示在第一台机器和第二台机器上加工时间。输出:每个用例用一行输出采用最优调度所用的总时间,即从第一台机器开始到第二台机器结束的时间。样例输入:145612241487样例输出:33假定直接按顺序进行完成,则机器1可以不用考虑,因为作业1完成后就可以完成作业2,直到作业n,需要的时间为所有作业在机器1上的时间总和。但是,机器2上完成的时间呢?机器2上完成的时间显示除了作业在机器2上完成的时间总和,还要加上等待时间,即要求先在机器1上完成后,才能在机器2上开始。例如56122两个作业,顺序如下:按顺序,则在机器1上进行作业1需要5小时,后进行作业2,需要12小
3、时,和为17小时;机器2上,作业1只能从第5小时开始,第11小时完成,等待了5小时,等到作业2在机器1上完成后(已经是第17时),再完成2小时,共19小时。机器2的等待时间总计为11小时。逆序,在机器1上进行作业2需要12小时,后进行作业1需要5小时,和为17小时,和前面一样;机器2上,作业2完成后开始,等待了12小时,然后再等3小时开始作业1的6小时,共计21小时,共等待了15小时。图如下:512625651262123从刚才的分析可知,主要考虑机器2的等待时间,越少越好!如何做到呢???仔细分析可知,在机器1上需要的时间越少的,应该越早开始进行,这样才能保证机器2尽早开始。但真是
4、这样吗?如:5642按顺序需要共13小时,等待5小时;逆序需要共15小时,等待7小时。那怎么办呢???根据相关解题思路及教材上Johnson法则,在此采用的方法简述如下:在机器1上需要时间比在机器2是需要时间少的先开始,且按时间从小到大开始进行;在机器1上需要时间比在机器2上需要时间多的后开始,按按时间从大到小开始进行;解题思路(简略版):a与b分别表示在第一台机器和第二台机器所用时间a51248b62147d为一结构体,key为短时间,job为是否可先做,index为作业号key5247job1010index0123对d依时间排序key2457job0110index1203能安
5、排的先安排,不能安排的置最后key4572job1100index2031得到顺序为2031顺序,即先安排第3个工作,再安排第1个,再安排第4个,最后安排第2个。总时间:4145687122第一台结束时间491729第二台结束时间18243133
此文档下载收益归作者所有