本发明涉及计算机执行制造系统领域,具体涉及用算法解决作业车间调度的组合优化问题。
背景技术:
作业车间调度问题(Job-Shop Scheduling Problem)是制造执行系统研究的核心和重点之一,它的研究不仅具有重大的现实意义,而且具有深远的理论意义。作业车间调度问题(JSP),就是根据产品制造需求合理分配产品制造资源,进而达到合理利用产品制造资源、提高企业经济效益的目的。JSP是产品制造行业中共存的问题,它与计算机集成制造系统(Computer Integrated Manufacturing Systems,简称CIMS)的工厂管理、产品制造层次紧密相关,是CIMS领域中研究的重要课题。JSP是一个典型的NP-hard问题,它的研究必然会对NP问题的研究起到有意义的影响。
过去的几十年,各种算法被应用来解决作业车间调度问题。其中不乏有遗传算法、粒子群算法、蚁群算法等。
遗传算法作为一种全局优化算法,得到了广泛的应用,但经典遗传算法存在收敛速度慢,容易早熟等问题。自适应遗传算法(Adaptive Genetic Algorithm,简称AGA)是对基本遗传算法的一种改进,它通过对遗传参数的自适应调整,大大提高了遗传算法的收敛精度,加快了收敛速度。但AGA仍然面临算法前期收敛速度快,后期由于缺少反馈而收敛速度降低的问题。
蚁群优化算法(Ant Colony Optimization Algorithm,简称ACO)是一种源于自然现象的算法,主要思想来源于群体中各个个体之间的间接交流方法,主要是模仿蚂蚁通过释放和跟随信息素的方式来达到整体的交流和行为上的涌现现象。ACO算法前期由于信息素的短缺和随机性导致收敛速度较低,而后期收敛速度显著升高。
技术实现要素:
针对上述的AGA算法前期收敛速度快,后期由于缺少反馈而收敛速度降低,ACO算法前期由于信息素的短缺和随机性导致收敛速度较低,而后期收敛速度显著升高,本发明提出了自适应遗传算法和蚁群优化算法(Adaptive Genetic Algorithm and Ant Colony OptimizationAlgorithm,AGA-ACO),采取动态链接策略,结合自适应遗传算法与蚁群优化算法来创建混合优化算法。
本发明针对上述不足,所采用的技术方案是:一种基于优先权编码的混合遗传算法解业车间调度问题。该技术方案的执行步骤如下:
步骤1、设置自适应遗传算法和蚁群算法的相关参数和优先权矩阵编码规则;
步骤2、随机生成初始种群p(g),根据事先设置的目标函数和适应度函数计算每个个体的适应度;
步骤3、选择交叉、变异遗传算子操作,更新优先权矩阵,生成下一子代p(g+1),并计算此时每个个体的适应度,保留此时的精英个体;
步骤4、根据设置的最大迭代次数Gmax和迭代终止条件Gdie判断是否终止迭代进化。迭代终止则执行步骤6,否则执行步骤5;
步骤5、改变交叉、变异的概率,返回步骤3;
步骤6、根据生成的一组优化方案转化成信息素的初始分布;
步骤7、将m个蚂蚁置于初始节点0,计算每个蚂蚁选择下一节点移动的概率
步骤8、改变蚂蚁经过路径上的信息素并计算路径上总的信息素,计算并保留精英蚂蚁,判断是否达到终止条件,满足条件输出最终结果,否则返回步骤7。
本发明的有益效果是:该发明结合AGA与ACO两个算法各自的优势,避免了搜索陷入局部最优解和执行时间过长的问题,弥补了各自的不足,增强了算法的性能。且本发明采用基于优先权矩阵的编码方式,产生的每个染色体本身就具有两种要素,正好对应着作业车间调度问题编码时需要考虑的工件以及工件的工序,不需要额外的解码操作去计算相应的信息,再利用每个矩阵元素的值表示对应工件对应工序的加工优先权,这样每个染色体就能完整的表示一个调度方案。
附图说明
图1:表示本发明的详细流程图
图2:表示JSP析取图示例
图3:表示遗传算法(GA)和蚁群算法(AA)的V—T曲线图
图4:表示遗传算法的初始解产生过程示例
具体实施方式
本发明将自适应遗传算法与改进的蚁群算法混合,该发明首先利用自适应遗传算法初始化信息素分布,然后执行改进的蚁群算法。该算法结合了两个算法的优点,避免搜索陷入局部最优解和执行时间过长的问题,克服了它们各自的缺点。且混合算法的性能优于之前的,且随着JSP规模越大,算法性能越好。
下面结合附图1-图3和实施例对本发明详细说明。
作业车间调度问题指分配n个工件到m台设备上加工的时序分发问题。有多种不同形式可以用来描述JSP,如线性规划模型和析取图模型。本发明用析取图G=(N,A,E)表示JSP,结合图2析取图示例可表述如下:N表示所有工序节点集,增加两个虚拟节点0和N+1,节点0表示开始,节点N+1表示结束。A表示同一工件相邻工序的单向弧集,E表示同一设备相邻工序的双向析取弧集。
目标函数定义为最小化最大完工时间,目标函数如下:
其中Ci(i=1,2,......,n)表示完成第i次工序的时间。
本发明的目的在于让作业车间调度中完工时间最小,遗传算法(GA)与蚁群算法(AA)结合图3V-T曲线图可看出:t0-ta阶段遗传算法的收敛速度很高,但ta之后遗传算法由于缺少反馈而收敛速度降低。t0-ta阶段蚁群算法由于信息素的短缺和随机性导致收敛速度较低,但ta之后收敛速度显著升高。因此本混合算法将ta之前信息素的分布通过AGA收集,ta之后由ACO生成最佳方案。
下面结合附图对该混合算法详细说明。
一、遗传算法:
1、遗传编码:基于优先权矩阵的编码方式
在基于优先权矩阵编码方法中一条染色体对应一个矩阵,由于矩阵是二维的,具有行和列之分,所以采用基于优先权矩阵编码产生的每个染色体本身就具有两种要素,正好对应着车间作业调度问题编码时需要考虑的工件以及工件的工序,不需要额外的解码操作去计算相应的信息,再利用每个矩阵元素的值表示对应工件对应工序的加工优先权,这样每个染色体就能完整的表示一个调度方案。编码时,令矩阵每一行代表一个工件,每一列代表一个工序,元素eij表示第i个工件的第j道工序在所有工序中的加工优先权,如有n个工件,每个工件有m道工序,因此对应的优先权值为1到n×m的自然数,即矩阵各元素的值也为1到n×m的自然数。例如有以下矩阵:
E1表示各工件工序的加工顺序,顺序为:o11,o21,o13,o32,o22,o31,o23,o12,o33。oij
表示第i个工件的第j道工序的优先权值。
2、产生初始解
初始解的构造结合图4示例图,可描述如下:各工件应该按照工序的先后顺序加工,首先应该加工的是各工件的第一道工序,所以在各工件的第一道工序{o11,o21,o31}中随机选择一个,令其优先权值为1,如随机选择了工序o31,则令染色体矩阵元素e31=1,o31已经设置优先权值,所以工件3的下一道加工工序为o32,然后在可选工序集{o11,o21,o32}中随机选择一个令其优先权值为2,如随机选择了工序o11,则令e11=2依此类推,直到所有工序的优先权值均被确定。
3、适应度函数:Cmax i表示第i个个体的目标函数值。
4、交叉操作:为了确保产生的某些基因不被破坏的同时,另外一些基因发生改变以达到进化效果,交叉时交换两个染色体中同一工件对应各优先权值,然后统计出其它工件工序中缺少和重复的优先权值,并用缺少的优先权值代替重复的优先权值,最后把各工件对应的优先权值按从小到大重新排列。这样已经产生的某些优良基因就有很大的概率得以遗传到下一代,同时还能保证其它设备上的工件调度方案发生改变,达到进化效果。
5、变异操作:随机选择同一个染色体的两个不同工件,然后再分别随机选择一个工序的优先权值并将其交换,并对这两个工件的优先权值按从小到大排序。如果在同一个工件对应的优先权值中选择两个交换,调整为可行解后则与变异前相同。
6、自适应遗传策略:遗传算子是优化遗传算法的主要方法。典型的遗传算法中,交叉概率和变异概率是稳定的。本发明,交叉概率和变异概率可以根据最佳染色体的适应度的变化而自适应变化。
(1)、交叉概率如下:运行交叉算子前设置最好染色体的适应度为fc1,当交叉概率为pc时运行交叉算子后的最好染色体的适应度为fc2,然后交叉概率为pc,交叉概率如下:
(2)、变异概率如下:运行变异算子前设置最好染色体的适应度为fm1,当变异概率为pm时运行变异算子后的最好染色体的适应度为fm2,变异概率如下:
7、精英池策略:在进化过程采用“精英策略”,即把每代中的最优个体定义为“精英”并保留到下一代,以加快算法的收敛速度。适应度值最大的个体为“精英”个体。
二、蚁群算法
1、更新信息素的规则:本发明采用蚁周(Ant-Cycle,AC)系统模型。蚂蚁k循环一周需要n步,在路径(i,j)上的信息素按如下规则调整。
Lk表示本次循环中蚂蚁k所用时间,Q是个常数
蚂蚁完成所有n个元素的遍历后,信息素按如下规则进行调整:
2、目标节点的选择概率:蚂蚁遍历所有的节点,蚂蚁k从节点i到节点j的概率如下:
allowedk表示蚂蚁可选的节点集
3、改善目标节点的选择策略:蚁群算法有两个问题:1)搜索陷入局部最优解。每一个个体得到的所有解决方案是相同的,以至于最好的解决方案不能被发现。2)收敛至得到全局最优解的时间很长。结果在局部最优解和全局最优解之间摇摆。为扩大高收敛速度解的空间,蚂蚁k用以下策略选择目标节点j。
随机选择w,w∈N,q0是一个常数,0<q0<1,q∈(0,1),当选择目标节点时生成q,
低信息素增加了跳出局部最优解选择实体的概率。
4、精英池策略:在搜索过程采用“精英策略”,即把每代中的最优个体定义为“精英”并保留到下一代,并利用精英蚂蚁更新其他蚂蚁的位置信息,以加快算法的收敛速度。τmaxi=max(τi1,τi2,......τij),蚂蚁i则为精英蚂蚁。
本发明针对JSP的自适应遗传算法(AGA)与蚁群算法(ACO),将AGA与ACO采取动态链接策略,如下:
(1)设置动态结合的时间:最大迭代次数Gmax,终止迭代速率Gdie小于子代进化中最佳的进化速率Gmin-ratio;
(2)利用遗传算法的初始分布,设置蚁群算法的初始信息素分布:路径(i,j)上的信息素按如下定义:
指路径(i,j)上的信息素常量,指遗传算法结果集对应的信息素;
(3)转换遗传算法的结果集为信息素。
上述结合附图对本发明的实施例作了详细描述,应该理解上述只是示例性的,因此,本发明的保护范围应当由所附的权利要求书的内容确定。