专利名称:基于多种群混合粒子群算法的流水车间调度方法
技术领域:
本发明属于计算机领域,更进一步涉及人工智能技术领域中提供一种采用进化算法处理流水车间调度问题的方法,具体是一种基于多种群混合粒子群算法的流水车间调度方法。该方法可用于物流、交通、流水线生产等领域,确定每项操作在生产过程的优先顺序, 控制生产流程,以减少生产系统完成所有工作序列的时间,提高生产效率。
背景技术:
流水车间调度是一个无等待的车间调度问题。在生产实践的环节中,每一个工作序列包含若干个工作,每一个工作包含若干个工序。每个工作在不同的机器上完成,在同一台机器上,不同的工作的完成顺序相同,在同一台机器上一个工序完成后无等待的进行下一个工序。流水车间调度中所有工作的最长完工时间的最小化,可以促使总生产运营的最小化、稳定的资源利用、快速的作业周转和在制品库存的最小化。流水车间调度问题的研究最初集中在启发式优化方法上,但这些方法并不理想。 启发式方法时间复杂度高,在计算时间内只能找出高质量的解,但不是最优解。近几年,人工智能技术快速发展,出现了遗传算法、蚁群算法、粒子群算法(PSO)等,使用这类算法解决调度问题的方法能够在合理的时间内找到尽可能好的解。PSO是受鸟群和鱼池社会和认知行为启发而提出来的,其具有模型简单、参数少和易实现等优点,因此受到学者们的关注。但是PSO在解决流水车间调度问题上,仍然存在缺陷。首先,PSO在运行初期收敛速度比较快,但在运行后期容易因缺乏拓展能力而陷入局部最优。其次,PSO虽然具有比较好的全局搜索能力,但是在搜索的过程中没有充分利用种群中获得的关于流水车间调度问题解空间的知识来指导粒子位置的更新,因此局部搜索能力较差。基于以上缺点,学者们提出了混合算法以改进该算法的缺陷。混合算法可以看作是进化算法和局部搜索算子结合而形成的优化工具,其兼具进化算法和局部搜索算子的优点,更具有有效性。Bo Liu等人发表的“An Effective PSO-Based Memetic Algorithm for Flow Shop Scheduling,,, 2007 年 IEEE transaction on system,Man and cybernetics,提出了一种基于密母的混合粒子群方法。该方法使用粒子群算法为全局搜索方法,同时使用一种局部搜索方法在一定程度上加强粒子群算法的局部搜索能力。但是因为种群的个体数目较小,且PSO进化速度快,同时只使用一种局部搜索算子,大大降低了种群的多样性,最终无法避免算法陷入局部最优。其次,算法中并没有使用任何策略共享关于流水车间调度的解空间的知识。因此,该方法也不能克服PSO解决流水车间调度问题局部搜索能力差,容易陷入局部最优的缺陷。Hongcheng Liu等人发表的 “k hybrid particle swarm optimization with estimation of distribution algorithm for solving permutation flow shop scheduling problem,,,2010 年 Expert System,提出了一种基于统计学习的混合粒子群算法,该方法同样面临局部搜索能力较差,算法早熟, 最终不能得到最优的调度方案。
发明内容
本发明的目的在于克服上述已有技术的不足,针对上述算法提前收敛和容易陷入局部最优的问题,提出一种能够合理安排工作序列,提高流水车间生产效率的基于多种群混合粒子群算法的流水车间调度方法。基于多种群混合粒子群的流水车间调度方法,具体步骤包括有步骤一设定参数程序运行最大迭代次数tmax、调度的工作数目η、机器数目m、子种群个数S、粒子位置的最大值Xmax和最小值Iin、模拟退火算法的初始温度Ttl、退火系数d、 局部搜索算子1使用概率rl、局部搜索算子2使用概率r2、定义粒子A的适应度值fitness =T,其中T为粒子A的位置向量解码后所对应的调度方案的调度时间,初始化子种群的标记 i = 1 ;步骤二 产生初始种群Q,将初始种群Q平均分为S个子种群,分别为Qi、Q2.....
Qs;步骤三程序运行迭代次数t = t+ι,判断是否达到最大迭代次数tmax ;如果t
<tmax,执行步骤四;如果t = tmax,则执行步骤十;步骤四使用粒子群算法将子种群A、A......A进化为G!/、%' .....Qs';步骤五对进化后的子种群使用局部搜索算子优化;计算优化后所有个体的适应度值,得到适应度值最小的工作序列Hgi,适应度值最大的工作序列Hgi‘ ;i = +1 ;判断 i = S是否成立;若成立,则令i = 1,执行步骤六,否则执行步骤五;步骤六对步骤五得到的S个子种群的最优序列JI gl、JI g2.....JIgs进行统计得到
最优工作序列的概率模型;通过概率模型,产生S个新的工作序列JI i、JI......JIs;步骤七计算新的工作序列^、JI2.....JIs的适应度值,得到fitness (JI1)、
fitness (Ji2), ...、fitness (Jis);对第 i(i = 1,...,S)个子种群,如果 fitness ( π ^
<fitness O gi'),贝 Ij Jigi' =Jii;步骤八计算所有子种群的粒子的适应度值,得到适应度值最小的工作序列为 Htest,使用基于模拟退火算法的局部搜索算子优化Htest ;步骤九将S个子种群的粒子重新组合为一个种群Q,将种群Q随机平均分为S个子种群仏、A.....1,返回步骤三;步骤十输出最优工作序列。本发明设置参数并产生S个子种群;判断终止条件是否满足,如果满足则输出当前获得的最优调度方案,否则继续对每个子种群中的粒子使用粒子群算法进行位置的更新,然后以概率使用局部搜索算子进行搜索,得到每个子种群的最优调度序列;使用基于统计的概率模型,共享每个子种群得到的最优调度序列的信息;使用基于模拟退火算法的局部搜索算子对全局最优工作序列优化。本发明的技术方案是采用多种群策略,且对不同的子种群使用不同的局部搜索算子以克服已有算法提前收敛和容易陷入局部最优的缺陷。在种群进化过程中,通过对最优工作序列的统计学习所建立的模型来产生新个体,来达到子种群的最优序列信息的共享, 以加快算法的收敛速度,也就是进化速度。本发明的实现还在于步骤五所采用的局部搜索算子按照子种群A脚标的奇偶不同而不同其中当i为奇数时,子种群的所有个体以概率rl使用局部搜索算子1 ;其中当i为偶数时,子种群的所有个体以概率r2使用局部搜索算子2。采用两种不同的局部搜索算子可以克服使用单一局部搜索算子导致种群多样性差,算法局部搜索能力差,和最终陷入局部最优的问题。本发明的实现还在于步骤五所采用的对第奇数个子种群使用的IIS局部搜索算子即局部搜索算子1进行局部搜索,其过程如下3. 1)将当前粒子的位置向量使用Ranked-Order-Value(ROV)转化准则转化为工作序列η ;ROV转化准则如下假设& = [Xi,1; Xi,2, Xi, J代表当前粒子的位置向量,将 Xi,^ Xi,2. . .,Xi, η按照每个值的递增顺序进行排序,得到每维位置值的等级,即是所对应的工作序列的编号,得到工作序列η ;3. 2)计算工作序列π的适应度值fitness (Ji);3. 3)在当前工作序列π中,任意选择位置j (j = 1,. . .,η)处的工作π j与位置 i(i = 1,...,j-1,j+1,...,n)位置处的工作、,交换、与、,得到一个新的工作序列 jinew。计算 Jinew 的适应度值,得到 fitness (Jinew);如果 fitness ( π new) < fitness ( π ),则替换当前的工作序列η =3. 4)对步骤3. 2) _3. 3)进行循环操作η次,得到最优的工作序列η。IIS局部搜索能力强,能够有效的克服PSO算法局部搜索能力差的缺陷,得到更好的调度方案。本发明的实现还在于步骤五所采用的对第偶数个子种群使用的VNS局部搜索算子即局部搜索算子2进行局部搜索,其过程如下4. 1)使用ROV转化准则将当前解& = [Xi,1; xij2. . .,xijn]转化为工作序列π =;4. 2)计算 π 的适应度值 fitness (Ji);4. 3)在当前工作序列π中,任意选择位置j (j = 1,. . .,η)处的工作π j与位置 i(i = 1,...,j-1, j+1,... ,η)位置处的工作、,交换、与、,得到一个新的工作序列 π ‘,在序列 π ‘中再任意选择第 Ρ(Ρ = 1,. . .,η)和 q(q = 1,. . .,p_l,p+1, . . .,η)位置处的工作%和η,,将\插入到位置P之前的任一位置y,得到了新的序列如果fitness (Ji new) < fitness (Ji),则替换当前的工作序列 Ji = Ji new ;4. 4)对步骤4. 2) -4. 3)循环操作η次,得到最优的工作序列η。VNS局部搜索算法为变邻域的局部搜索算法,比单邻域局部搜索算法具有更好的局部搜索能力,能够得到更好的调度方案。本发明的实现还在于步骤六所采用的建立概率模型和产生新个体的步骤如下5. 1)对π gl、Ji g2.....Jigs进行以下参数统计η jk:在S个最优的工作序列中,工作j(j = 1,...,n)出现在位置k或者是在位置k(k= l,...,n)之前的次数;μ J^1]在S个最优的序列中,工作j出现在位置k_l之后的次数;5. 2)通过以上统计的两个参数,得到下面的概率模型
权利要求
1.一种基于多种群混合粒子群算法的流水车间调度方法,包括如下步骤步骤一设定参数程序运行最大迭代次数tmax、调度的工作数目η、机器数目m、子种群个数S、粒子位置的最大值Xmax和最小值Iin、模拟退火算法的初始温度Ttl、退火系数d、局部搜索算子1使用概率rl、局部搜索算子2使用概率r2、定义粒子A的适应度值fitness = T,其中T为粒子A的位置向量解码后所对应的调度方案的调度时间,初始化子种群的标记 i = l;步骤二 产生初始种群Q,将初始种群Q平均分为S个子种群,分别为Qp %.....Qs;步骤三程序运行迭代次数t = t+Ι,判断是否达到最大迭代次数tmax ;如果t < tmax,执行步骤四;如果t = tmax,则执行步骤十;步骤四使用粒子群算法将子种群仏、A......A进化为(V、(V ...>QS';步骤五对进化后的子种群使用局部搜索算子优化;计算优化后所有个体的适应度值,得到适应度值最小的工作序列η gi,适应度值最大的工作序列η gi‘ ;i = i+1 ;判断i = S是否成立;若成立,则令i = 1,执行步骤六,否则执行步骤五;步骤六对步骤五得到的S个子种群的最优序列π gl、π g2.....Jigs进行统计得到最优工作序列的概率模型;通过概率模型,产生S个新的工作序列π ρ π ......Jis;步骤七计算新的工作序列^、Ji2.....Jis的适应度值,得到fitnesM^)、fitness (Ji2), ...、fitness (Jis);对第 i(i = 1,...,S)个子种群,如果 fitness ( π ^ < fitness O gi'),贝 Ij Jigi' =Jii;步骤八计算所有子种群的粒子的适应度值,得到适应度值最小的工作序列为nbest, 使用基于模拟退火算法的局部搜索算子优化步骤九将S个子种群的粒子重新组合为一个种群Q,将种群Q随机平均分为S个子种 Q1^Q2.....Qs,返回步骤三;步骤十输出最优工作序列。
2.根据权利要求1所述的基于多种群混合粒子群算法的流水车间调度方法,其中步骤五所采用的局部搜索算子按照A的脚标i奇偶不同而不同;其中当i为奇数时,子种群的所有个体以概率rl使用局部搜索算子1 ;其中当i为偶数时,子种群的所有个体以概率r2 使用局部搜索算子2。
3.根据权利要求2所述的对第奇数个子种群使用的局部搜索算子1是^dividual Improvement Scheme (IIS),其过禾呈如下3. 1)将当前粒子的位置向量使用ranked-order-value (ROV)转化准则转化为工作序列π ;ROV转化准则如下假设Xi = [Xi,1; Xi,2,...,Xi,J代表当前粒子的位置向量,将Xiil, Xi,2... , Xi,η按照每个值的递增顺序进行排序,得到每维位置值的等级,即是所对应的工作序列的编号,得到工作序列η ;3.2)计算工作序列π的适应度值fUness(Ji);3. 3)在当前工作序列π中,任意选择位置j (j = 1,. . .,η)处的工作π j与位置i (i = l,...,j-l,j+l,...,n)位置处的工作^,交换、与η i,得到一个新的工作序列\ev。 计算π new的适应度值,得到fitness ( π new);如果fitness ( π new) < fitness ( π ),则替换当前的工作序列η =(3.4)对步骤3. 2)-3. 3)进行循环操作η次,得到最优的工作序列η。
4.根据权利要求2所述的对第偶数个子种群使用的局部搜索算子2即Variable Neighborhood karch (VNS),其过程如下(4.1)使用ROV转化准则将当前解[Xia,Xi,2...,Xi,n]转化为工作序列π= [Ji1,(31 2' · · · ‘ jiJ ;((4. 3)在当前工作序列π中,任意选择位置j (j = 1,. . .,η)处的工作π j与位置i (i =1,...,j-1,j+1,...,η)位置处的工作^,交换、与η i,得到一个新的工作序列 π ‘,在序列 π ‘中再任意选择第 Ρ(Ρ = 1,. . .,η)和 q(q = 1,. . .,p_l,p+1, . . .,η)位置处的工作%和η,,将\插入到位置P之前的任一位置y,得到了新的序列;如果 fitness (Jinew) < fitness (Ji),则替换当前的工作序列 ji = Jinew ;(4.4)对步骤4. 2)-4. 3)循环操作η次,得到最优的工作序列η。
5.根据权利要求1或2或3或4所述的基于多种群混合粒子群算法的流水车间调度方法,其中步骤六所述的建立概率模型和产生新工作序列的步骤如下(5. 1)对、ρ η g2.....JI gs进行以下参数统计η Jk 在S个最优的工作序列中,工作j (j = 1,. . .,η)出现在位置k或者是在位置k (k =l,...,n)之前的次数;μ Jtk-!]在s个最优的序列中,工作j出现在位置k-i之后的次数; 5. 2)通过以上统计的两个参数,得到下面的概率模型PikJ)= ^ ‘1 ^ ^(7^xAV1])Qk 在位置k之前还没有调度的工作的集合; P (k,j)工作j安排在位置k处的概率;5.3)通过这个概率模型对于每个位置k从Qk中选择一个被安排在此处概率最大的工作,依次得到一个工作序列;按照上述方式,产生S个新的工作序列^、Ji2.....Jiso
6.根据权利要求5所述的基于多种群混合粒子群算法的流水车间调度方法,其中步骤八所述的基于模拟退火算法的局部搜索算子,其搜索过程如下(6. 1)初始温度Ttl和退火常数d ;(6.2)计算当前工作序列的适应度值fitness(Jibest);(6.3)在当前工作序列Jibest中,任意选择位置j(j= 1,...,η)处的工作、与位置 i(i = 1,..., j-1, j+1,..., η)处的工作 π i ;(6.4)产生随机数r,如果r<=0.5,交换、和Jii,产生新的工作序列;如果r> 0.5,则将工作L插入到j位置之前的任一位置,产生新的工作序列Jinrat;(6. 5)计算两个工作序列的完成时间,得到计算完成时间fitness ( π best)和 fitness (Jinew);如果 fitness (Jinew) < = fitness ( π best),则 Jibest= π new ;否则,产生随机数r e
,如果r < -(月—J广邮J则沉^ = π 改变温度T0 = T0X d ; 6.6)对步骤6. 2)-6. 5)进行循环操作nX(n-l)次,得到最优的工作序列ntest。
全文摘要
本发明属计算机领域,公开一种基于多种群混合粒子群算法的流水车间调度方法,解决了混合粒子群算法的流水车间调度方法易提前收敛和陷入局部最优的问题。步骤包括设置参数并产生S个子种群;判断终止条件是否满足,如满足则输出当前所获最优调度方案,否则再对每个子种群中的粒子使用粒子群算法进行位置更新,对奇、偶子种群分别使用搜索算子1和2进行局部搜索,得到每个子种群的最优调度序列;使用基于统计的概率模型,共享得到的最优调度序列的信息;使用模拟退火算法优化最优工作序列。本发明增加了多个种群,使用不同的搜索算子进行局部搜索,获得好的流水车间调度方案,缩短生产时间,可用于对作业车间调度方案的选择。
文档编号G06N3/12GK102222268SQ201110148498
公开日2011年10月19日 申请日期2011年6月2日 优先权日2011年6月2日
发明者公茂果, 刘若辰, 唐丽娜, 朱虎明, 李阳阳, 焦李成, 王爽, 马文萍 申请人:西安电子科技大学