双机流水作业调度问题的Johnson算法
n个作业要在由两台机器M1和M2组成的流水线上完成加工. 每个作业i必须先在M1上然后在M2上加工, 时间分别为ai和bi
确定这n个作业的加工顺序, 使得从第一个任务开始在M1上加工到最后一个任务在M2上加工完成的总时间尽量小.流水线作业调度问题要求确定这n个作业的最佳加工顺序,使得从第一个作业在机器M1上开始加工,到最后一个作业在M2加工完成所需的时间最少。
Johnson算法.
设N1为a<b的作业集合, N2为a>=b的作业集合, 将N1的作业按a非减序排序, N2中的作业按照b非增序排序, 则N1作业接N2作业构成最优顺序.
设 n = 4,(a1,a2,a3,a4)=(3,4,8,10),(b1,b2,b3,b4)=(6,2,9,15)
我们先构造一个三元组
struct Job{
int node; //加工顺序