一、问题分析
使用m台相同机器对n个独立作业进行加工处理。每个作业均可在任何一 台机器上加工处理,但不可间断、拆分。多机调度问题要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。
作业需要随机生成,计算最短时间。
二、求解方案
1.算法选择
贪心算法求解多机调度问题的贪心策略是最长处理时间的作业优先,即把处理时间最长的作业分配给最先空闲的机器,这样可以保证处理时间长的作业优先处理,从而在整体上获得尽可能短的处理时间。
2.设计思路
作业的个数为n,机器的数目为m
A:n<m,这种情况很简单,将n个作业分配给m个机器中的n个就可以了。
B:n>m,设5个独立作业{1, 2, 3, 4, 5}由3台机器{x, y, z}加工处理,各作业所需的处理时间分别为{1, 3, 2, 7, 4}。
第1步:将5个作业按其所需处理时间从大到小排列,将排完序的前三个作业分配给3个机器;
第2步:将3个机器按照工作时长从小到大排列;
第3步:将“耗时最长的作业”分配给“最先空闲的机器”,增加该机器的工作时长。
重复第二步和第三步,直到所有作业都被处理。这种情况下,累加耗时最长的机器的工作时长就是所求的最短时间。
如图所示:
表格如下: