流水线车间生产调度的遗传算法MATLAB源代码
个任务在流水线上进行m个阶段的加工,每一阶段至少有一台机器且至少有一个阶段存在多台机器,并且同一阶段上各机器的处理性能相同,在每一阶段各任务均要完成一道工序,各任务的每道工序可以在相应阶段上的任意一台机器上加工,已知任务各道工序的处理时间,要求确定所有任务的排序以及每一阶段上机器的分配情况,使得调度指标一般求Makespa
最小。
fu
ctio
ZpY1pY2pY3pXpLC1LC2JSPGAMNPmTP
流水线型车间作业调度遗传算法
Gree
Sim团队专业级算法设计代写程序
欢迎访问Gree
Sim团队主页宀输入参数列表
M
遗传进化迭代次数
N
种群规模取偶数
Pm
变异概率
Tmx
的矩阵,存储m个工件
个工序的加工时间
P1x
的向量,
个工序中,每一个工序所具有的机床数目
输出参数列表
Zp
最优的Makespa
值
Y1p
最优方案中,各工件各工序的开始时刻,可根据它绘出甘特图
Y2p
最优方案中,各工件各工序的结束时刻,可根据它绘出甘特图
Y3p
最优方案中,各工件各工序使用的机器编号
Xp最优决策变量的值,决策变量是一个实数编码的
mx
矩阵
LC1
收敛曲线1,各代最优个体适应值的记录
LC2
收敛曲线2,各代群体平均适应值的记录
最后,程序还将绘出三副图片:两条收敛曲线图和甘特图各工件的调度时序图第一步:变量初
始化
m
sizeTm是总工件数,
是总工序数
Xpzerosm
最优决策变量LC1zeros1M收敛曲线1LC2zeros1N收敛曲线2第二步:随机产生初始种群farmcell1N采用细胞结构存储种群fork1N
Xzerosm
forj1
fori1mXij1Pjepsra
d
e
d
e
d
ffarmkXe
dcou
ter0设置迭代计数器
whilecou
terM停止条件为达到最大迭代次数
ewfarmcell1N
交叉产生的新种群存在其中
Serra
dpermN
fori12N1
AfarmSeri
父代个体
Ma
eru
idr
d2
随机选择交叉方式
ifMa
er1
第三步:交叉
e
d
fcpu
idr
dm1随机选择交叉点双亲双子单点交叉aA1cpBcp1m子代个体bB1cpAcp1melsecpu
idr
d
1随机选择交叉点bB1cpAcp1
e
d
ewfarmia交叉后的子代存入
ewfarm
ewfarmi1be
d新旧种群合并FARMfarm
ewfarm第四步:选择复制FITNESSzeros12Nfit
esszeros1Nplotif0fori12NXFARMiZCOSTXTPplotif调用计算费用的子函数FITNESSiZe
d选择复制采取两两随机配对竞争的方式,具有保留最优个体的能力Serra
dperm2Nfori1Nr