遗传算法在车间调度问题中应用的matlab源码。
代码简介
典型JOB SHOP调度问题(FT10) :工序编码的遗传算法。
在上面典型JOB SHOP调度问题中,每个工件加工的时候可以选择多台机器加工。 使用工序编码的遗传算法。
典型JOB SHOP调度问题过程简介(工序调度)
1)族群 60,循环500次,交叉0。8 变异 0。6 代沟0。9
2)初始化群:
基于调度优先级的编码方法:每个基因对应一道工序,代表该工序在进行调度操作时的处理优先级。
例如一个3!3问题,则染色体用1-3的整数表示为: [1 3 2 1 1 3 3 2 2]
基因与工序的对应关系如下:
P11 P31 P21 P12 P13 P32 P33 P22 P23
[1 3 2 1 1 3 3 2 2 ]
其中Pij表示第i个零件的第j道工序
3)计算适应值:解码成工序序列,计算时间
P(i)=S(i)*10+temp(S(i));
temp(S(i))=temp(S(i))+1;
4)选择:在原族群中,按轮盘法选择出 60*0。9(代沟)=54个个体组成 新族群。
5)交叉: 对选择出来的新族群进行交叉,在新族群中,随机选择2个个体(选择过的个体将不在选择,保证所有个体都选择),随机生成有一个数,如果大于交叉概率,就进行2点交叉。2点交叉位置每次都是随机的
比如 1、3、2、1、1、3、3、2、2
1、1、3、