1.一种基于改进遗传算法的混流制造车间调度方法,其特征在于:
包括以下步骤:
S1:根据实际车间生产情况建立Petri网模型;
S2:在所述Petri网模型基础上,将车间调度方案用染色体编码算法编码为染色体;
S3:采用改进遗传算法对所述染色体进行运算,求解适应度最大的染色体;
其中,所述步骤S3,所述适应度最大的染色体代表完成加工所需时间最短的车间调度方案,即所述改进遗传算法的最优解;
所述步骤S3中,所述改进遗传算法需要进行若干次遗传迭代,进行一次遗传迭代即依次进行交叉操作、变异操作、邻域搜索;进行一次遗传迭代所生成的染色体为一代染色体;
所述Petri网模型包括:基本参数、路径集合、作业集合和时间函数;所述路径集合、作业集合和时间函数均由所述基本参数构成;
S1.1:定义基本参数:所述基本参数表达式为M(P,T,I,O,D,C,Θ);其中,P是Petri网模型中库所place的有限集合,所有的同类并行机用库所place来表示;T是转运transaction的集合,代表转运,工件从一个库所place转移到另一个库所place都会经过一个转运;I/O函数:是一个向量集合,从库所place指向转运transaction为输出O;从转运transaction指向库所place为输入I;C函数用于为任意库所pi设定容量的大小,C(pi):代表库所place pi的容量,即同类并行机的数量;Θ是工件token的有限类型的集合,Θ(θ)={COLOR},COLOR∈{c1,c2,…,cμ};D是各种不同类型的工件token在库所place中停留的加工时间矩阵,D(pi、θ):表示工件θ在库所place pi上加工的时间;加工订单Order是工件token的集合;
S1.2:定义路径集合:所述路径集合W(M)是Petri网模型中工件加工从库所p0到pl的路径所组成的向量集合;r为路径向量的编号;W(M)r表示W(M)中的第r个路径;
S1.3:定义作业集合:所述作业集合 是表
示工件θ选择了路径W(M)r完成所有操作所产生的作业集合;对于一个工件而言,在一个库所place进行的加工为一个作业,完成一个作业即一道工序;
S1.4:定义时间函数:所述时间函数s((θ,pi))、c((θ,pi))分别表示操作(θ,pi)进入库所的时间与离开库所的时间,且s((θ,pi))‑c((θ,pi))≥D(Θ(θ),pi);一个完整订单Order的所有作业的s((θ,pi))、c((θ,pi))最终会写入时间报表schedule table中进行统一汇报;
所述步骤S2中,所述染色体包括选择段与安排段;所述选择段在所述染色体编码算法下能够生成唯一的安排段,从而实现选择段与染色体一一对应,在进入遗传算法时以染色体选择段代替完整染色体与适应度进行关联,降低了运算负担;
所述染色体以基因为单位,所述基因用数字表达;
所述选择段的基因的数量与工件数量一致,所述选择段第θ位基因上的数字r代表工件θ选择的路径的编号r;
所述安排段包括若干分段genestringx,所述分段的数量与工序的数量一致;所述分段均设置有编号x,所述编号x与所述工序的顺序对应;所述分段的基因的数量与工件数量一致;
所述步骤S2中,所述染色体编码算法包括预编码算法和安排段编码算法;所述预编码算法能够得到一个初始的染色体,为进行安排段编码算法做准备;
所述预编码算法步骤为:
S2.1:若选择段空白则随机编码染色体的选择段genestring0;确定每个工件θ的路径r;
若选择段已经填充,则执行步骤S2.2;
S2.2:根据所得的选择段对安排段进行预编码:
S2.2.1:令x=1,从安排段的第一个分段genestring1开始;
S2.2.2:把genestringx进行切割;genestringx按照其所代表的工序中所包含的库所place数量切割,并把切割的份数赋值给变量N;
S2.2.3:编排genestringx的N个子块,通过Petri网调度机制进行填充,每个子块中工件token顺序代表对应库所place内作业的顺序;
S2.2.4:x=x+1;如果x>工序数量,则完成了对安排段的预编码,结束预编码算法,否则执行步骤S2.2.2;
所述安排段编码算法,输入为选择段genestring0、最大编码迭代次数DN,输出为染色体及其对应时间报表的二元关系
所述安排段编码算法步骤为:
S2.3:定义变量编码迭代次数a,并令a=1;
S2.4:生成染色体Chromosome:如果当前编码迭代次数a等于1,采用染色体的预编码算法,执行步骤S2.1到S2.2.4,生成初始的染色体;如果当前编码迭代次数a不等于1,保留上一次编码迭代得到的新的安排段的第一个分段,并采用Petri网调度机制重新编码安排段的其他分段,生成完整的染色体Chromosome;
S2.5:通过Chromosome输入Petri网模型生成schedule table并记录本次生成的二元关系
S2.6:取出记录中最近的二元关系
S2.6.2:定义变量k,并令k←1;
S2.6.3:从二元关系的时间表schedule table中取出倒数第k个完成的工件tokenθx的最后一个作业S2.6.4:根据作业 更新 和 和 是 的两个搜索方向: 代表同在库所place pi但先于 执行的前一个作业; 代表工件tokenθx当前作业前一个工序的作业;对于 查找作业 与 之间是否存在空闲,若不存在空闲,则若存在空闲,则 然后循环执行S2.6.4,直到 所在的库所place pi在第1道工序为止;
S2.6.5:判断作业 的加工库所pi容量,如果小于或等于1即没有调整的余地则执行步骤S2.6.6,否则执行步骤S2.7;
S2.6.6:k←k+1,如果k大于订单Order中的工件token数量则结束安排段编码算法并输出二元关系
S2.7:从库所pi中获得开始时间早于且最接近于操作 开始时间的操作Q′;将代表操作 的基因与代表操作Q′的基因在安排段的第一个分段genestring1段找出并进行交换,得到新的安排段的第一个分段;
S2.8:令a=a+1,判断编码迭代次数a是否大于最大编码迭代次数DN,如果是结束安排段编码算法并输出二元关系
2.根据权利要求1所述的一种基于改进遗传算法的混流制造车间调度方法,其特征在于:所述步骤S2.2.3中,所述Petri网调度机制为:到达时间最快的先加工;若同时到达,加工时间最短的先加工;若同时到达且加工时间相同,编号θ最小的先加工;
所述二元关系
3.根据权利要求2所述的一种基于改进遗传算法的混流制造车间调度方法,其特征在于:所述交叉操作添加了粒子群机制;所述粒子群机制能够提高交叉操作的收敛性;所述粒子群机制包括学习因子K1和学习因子K2;
所述交叉操作的步骤为:
S3.1:使用当前遗传迭代所得的最优解作为引导染色体G1,并随机抽出两个父代染色体P1,P2;
S3.2:以P1为基础,学习L/2×K1个G1的基因,学习方式为直接将选中的基因覆盖在P1上,然后再学习L/2×K2个P2的基因,学习方式为直接将选中的基因覆盖在P1上,但不可以选之前在G1中选中的位置,由此生成后代O1;
S3.3:以P2为基础,学习L/2×K1个G1的基因,学习方式为直接将选中的基因覆盖在P2上,然后再学习L/2×K2个P1的基因,学习方式为直接将选中的基因覆盖在P2上,但不可以选之前在G1中选中的位置,由此生成后代O2。
4.根据权利要求3所述的一种基于改进遗传算法的混流制造车间调度方法,其特征在于:所述变异操作添加了退火速率模块;所述退火速率模块能够避免搜索结果陷于局部,同时保证算法收敛性;
所述变异操作的步骤:
S3.4:在当前遗传迭代所得的染色体中随机选择一个位置;
S3.5:在选择的位置上,通过突变趋势函数和所得出的可选基因元素的概率分布,从中按概率选取一个基因值替换原基因;
S3.6:通过接受概率模块判断算法是否接受该变异所得的染色体;
S3.7:当代种群中的所有染色体都执行过变异后,执行退火速率模块,改变温度,影响下一次算法遗传迭代的接受概率。
5.根据权利要求4所述的一种基于改进遗传算法的混流制造车间调度方法,其特征在于:所述突变趋势函数、接受概率模块和退火速率模块定义如下:
(1)突变趋势函数:该函数将对每次遗传迭代后出现在染色体上每个位置的值进行计数,并获得在每个位置突变为不同值的相应概率,从而影响染色体变异的倾向;
其中θ∈{Token},rn∈{Path},Y∈|Path|,Y为Path的可选路径数量,rn为其中第n条路径,n∈[1…Y],G为当前的种群代数,G0是开始的种群代数,fS(rn,θ,g)表示在第g代中的所有染色体在某个位置上选择了某个基因值的频率,即工件θ选择路径rn的频率;
(2)接受概率模块:
其中Fitness(i)表示原染色体的适应度;Fitness(j)代表新生成的染色体的适应度;T代表当前温度;
(3)退火速率模块:该模块与接受概率模块之间的相互作用会影响算法对局域解的搜索;
退火速率模块如下:
判断最优染色体是否经tc次遗传迭代都未改变,如果是执行tn次退火;所述退火即执行公式T=K*T;其中,tc表示最优解恒定不变时的最大遗传迭代数;tn代表达到冷却条件后的冷却次数;K代表冷却常数。
6.根据权利要求5所述的一种基于改进遗传算法的混流制造车间调度方法,其特征在于:所述邻域搜索操作步骤为:
S3.8:选取当代最优解;
S3.9:对所述当代最优解进行操作,获得所有与所述当代最优解相差一个基因的染色体,即邻域集合;
S3.10:从所述邻域集合中取出适应度最大的,即完成加工所需时间最短的一个,如适应度最大的染色体有多个,就在多个中选择各个工件在相应库所上加工的时间求和所得最小的一个。