CDS启发式算法及Matlab程序
--Campbell H,Dudek R, Simth M. A heuristic algorithm for the n-job m-machinesequencing problem.
用于求解n-job,m-machine的流水作业调度问题;即n项作业都需要顺序进行m个工序,m个工序中,每道工序仅有一台机器,如何安排n项作业的加工先后关系。
CDS(Campbell-Dudek-Simth):是Johnson算法的扩展,被认为是好的具有鲁棒性的启发式算法;
算法步骤:将m台机器分组,产生m-1个两台机器问题的集合;
然后利用Johnson算法获得m-1个加工顺序(每个两台机器问题获得一个加工顺序);
选取这m-1个加工顺序中考核指标最好(一般为Makespan最短)的加工顺序作为近似最优调度解;
分组及每组组合加工时间示意表
阶段i模拟的两台机器组合加工时间
组1组2t'(i,1)t'(i,2)
11mt(i,1)t(i,m)
21,2m,m-1t(i,1)+ t(i,2)t(i,m)+ t(i,m-1)
31,2,3m,m-1,m-2t(i,1)+ t(i,2)+ t(i,3)t(i,m)+ t(i,m-1)+ t(i,m-2)
......
m-11,2,...,m-1m,m-1,...,2t(i,1)+ t(i,2)+ ...+ t(i,m-1)t(i,m)+ t(i,m-1)+ ...+t(i,2)
示例:
现在有四项作业需要在6台机器上加工,时间