matlab 启发式算法,CDS启发式算法及Matlab程序

本文介绍了用于解决n-job,m-machine流水作业调度问题的CDS启发式算法,该算法是Johnson算法的扩展。通过将m台机器分组,应用Johnson算法求解每个两台机器问题,最终选择最佳的加工顺序。文章提供了一个具体示例并展示了一个MATLAB程序来实现CDS算法,以求得最小加工时间(Makespan)。
摘要由CSDN通过智能技术生成

--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台机器上加工,时间数据如下(n行m列),试使用CDS方法获

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值