专利名称:一种基于多种群协同进化的柔性作业车间调度方法
技术领域:
本发明属于车间调度领域,具体涉及一种柔性作业车间调度方法,用于车间生产 过程的调度管理与优化。
背景技术:
车间生产调度是制造系统的基础,生产调度的优化是先进制造技术和现代管理技 术的核心。有关资料表明,制造过程中95%的时间消耗在非切削过程中,因此科学地制定生 产调度方案,对于缩短产品生产周期,控制车间的在制品库存,提高产品交货期满足率和提 高企业生产率起着至关重要的作用,对于实现先进制造企业的现代化具有重要的理论价值 和实际意义。传统车间调度模型中,假设工序加工所需要的资源是不具有柔性的,但是随着大 批量连续生产时代正逐渐被适应市场动态变化的多品种、小批量离散生产所替代,一个制 造企业的生存能力和竞争能力在很大程度上取决于它是否能在较短的生产周期内,生产出 低成本、高质量的多品种产品的能力。随着柔性制造系统和数控加工中心等一些柔性生产 系统的出现。以往作业车间调度的研究成果,无法适应新的制造模式。柔性作业车间调度 问题也就成为了研究重点,它是作业车间调度问题的一种扩展,工件的每道工序可以在多 台机器上进行加工,加工时间不一定相同。工件的每道工序可以在多台机器上加工的情况 在实际生产中有明显的优点(1)提高设备的利用率,机床一旦空闲就可以安排工件进行 加工,减少设备闲置和等待的时间;(2)具有维持生产稳定的能力,当一台或多台机器发生 故障时,工序可以绕过故障机器,在其它机器上进行加工,生产得以继续,保证生产的稳定;提高产品质量和缩短生产周期,同一工件的多个工序可以在同一台机床上连续进行加 工,减少了中间装卸和搬运等造成时间的消耗。从以上的描述可以看出,柔性作业车间调度 问题包含两个子问题确定各工件的加工机器(机器选择子问题)和确定各个机器上的加 工先后顺序(工序排序子问题)。另一方面,柔性作业车间调度问题是典型的NP-hard问 题,一直吸引着学者的广泛关注,是制造系统领域的研究热点之一。柔性作业车间调度问题在1990年被首次提出,典型的求解方法主要有整数规 划、混合整数规划、拉格朗日松弛法、分解方法、分枝定界法和启发式规则等。这些方法只能 求解小规模的柔性作业车间调度问题,无法应用于实际生产。近年来随着计算智能方法的 发展,在该领域出现了如禁忌搜索、模拟退火、蚁群算法、遗传算法、粒子群优化算法、人工 免疫算法等新方法,这些新方法能够较好地兼顾求解速度和质量,能够在合理的时间内找 到问题尽可能好的解。基于遗传算法的柔性作业车间调度方法是模拟达尔文主义的自然选择和生物遗 传机制构造的随机搜索方法。遗传算法具有较强的全局搜索能力,然而在求解柔性作业车 间调度问题时还存在如下问题柔性作业车间调度问题包含两个子问题(机器选择子问题 和工序排序子问题),这两个子问题具有不同的特性,如果将两者一起优化,问题的解空间 较复杂,算法的性能无法得到充分的发挥,也难以找到高质量的调度方案。
发明内容
本发明的目的在于克服基于遗传算法的柔性作业车间调度方法性能得不到充分 发挥的不足,提供一种基于多种群协同进化的柔性作业车间调度方法,以获得高质量的适 合车间实际生产的调度方案,缩短生产时间。为实现上述目的,本发明的技术方案具体为一种基于多种群协同进化的柔性作业车间调度方法,用于获得适合车间实际生产 的调度方案,实现车间生产过程的调度管理与优化,该方法具体包括如下步骤(1)假设工件个数为N,则设置N+1个种群,其中包括N个机器选择子问题的种群 和1个工序排序子问题的种群;(2)根据各种群的编码方式,随机初始化上述N+1个种群;(3)评价上述经初始化后的种群,并令迭代次数Gen = 1 ;计算经初始化后的各个种群中每个染色体的适应度值,即针对每个种群的每个染 色体,从N个合作种群的每一个中都随机选择一个染色体,这N+1个染色体组成一个完整 解,计算该完整解的适应度,以作为当前染色体的适应度值;进而,获得种群中染色体的最 佳适应度值fbest及其对应的组成完整解的染色体组;(4)设种群编号为q,初始化q= 1,对上述N+1个种群进行多种群协同进化,具体 过程为(4. 1)基于锦标赛选择算子在种群q中选择两个染色体作为父代执行交叉操作, 生成两个子代染色体;其中;(4. 2)计算上述父代和子代染色体的适应度值,其中父代和子代染色体具有相同 的合作染色体,从这四个染色体中选择两个适应度值较优的染色体进入下一代种群中;(4. 3)在种群q中随机选择一个父代染色体执行变异操作,生成一个子代,用该子 代取代该父代进入下一代种群中;(4. 4)计算种群q的染色体适应度值针对种群q的每个染色体,从该种群q的N个合作种群的每一个中都随机选择一 个染色体,与种群q的该染色体组成一个完整解,计算该完整解的适应度,以作为当前染色 体的适应度值;进而,从种群q的多个染色体获得的多个适应度中选择最佳的适应度值以 更新所述最佳适应度值fbest,同时更新该适应度值所对应的组成完整解的染色体组;(4. 5)令q = q+1,若q彡N+1,则跳转到步骤(4. 1)进行下一代种群的处理,否则 进入步骤(5);(5)判断迭代次数Gen是否达到规定的阈值maxGen,若是,则算法结束,输出最后 得到的最佳适应度值ftest及其对应的组成完整解的染色体组,否则令Gen = Gen+Ι,并跳转 到步骤(4)继续处理。作为本发明的进一步改进,所述的机器选择子问题的种群编码方式为该种群的 染色体长度为对应工件的工序总数,每个基因位用整数表示,依次按照该工件工序的顺序 进行排列,每个整数表示当前工序选择的加工机器在可选机器集中的顺序编号。作为本发明的进一步改进,所述工序排序子问题的种群编码方式基于工序的编码 方法实现,具体为该种群的染色体长度等于所有工件的工序数之和,每一个基因用工件号直接编码,工件号出现的顺序表示该工件工序间的先后加工顺序,并且工件号的出现次数 等于该工件的工序总数。作为本发明的进一步改进,针对所述机器选择子问题的交叉操作为均勻交叉操作。作为本发明的进一步改进,针对工序排序子问题的种群的交叉操作采用基于工 序编码的交叉算子Ρ0Χ,具体为首先将工件集U1, J2, ..., JnI随机划分为两个工件集 Jobsetl和Jobset2 ;然后复制父代染色体Parentl和Parent2中包含在工件集Jobsetl 和Jobset2中的工件到Offspringl和Offspring2,保持它们的位置和顺序;最后将将 Parentl和Parent2中不包含在工件集Jobsetl和Jobset2中的工件复制到Offspring2和 Offspr ingl,保持它们的顺序不变。作为本发明的进一步改进,针对机器选择子问题的种群的变异操作采用如下的变 异算子,即首先在变异染色体中随机选择多个位置,依次选择每一个位置,对每一个位置的 机器设置为当前工序可选机器集中加工时间最短的机器。作为本发明的进一步改进,针对工序排序子问题的种群的变异操作,采用基于邻 域搜索变异操作,即首先在变异染色体中随机选择多个不同基因,并生成其排序的所有邻 域,然后评价所有邻域的适应值,选出最佳染色体作为子代。本发明具有下列区别于传统方法的显著优势(1)本发明由于引入多种群协同进化,使得柔性作业车间调度问题的两个子问题 (机器选择子问题和工序排序子问题)能够进行分开优化,这避免了将两者集成优化,问题 解空间过于复杂,算法性能无法得到充分的发挥的缺点。本发明将柔性作业车间调度问题 分解成两个子问题进行多种群协同优化,每个种群所处理问题的解空间较简单,算法更容 易找到高质量的解。(2)本发明由于引入了记忆染色体,并在算法运行过程中各种群的染色体在寻找 其他各种群的合作染色体时,采用的是随机选择的方法,这样能很好的保持各种群的多样 性,使得算法能更好地寻找到全局最优解。
图1本发明的实现流程图;图2本发明的多种群协同进化图。
具体实施例方式下面结合附图和具体实施例对本发明作进一步说明。参照图1和图2,一种基于多种群协同进化的柔性作业车间调度方法,包括如下步 骤步骤1,参数设置假设工件个数为N,则本方法包含N+1个子种群,其中N个机器选择子问题的种群, 1个工序排序子问题的种群规模。设置算法循环迭代的次数阈值maxGen,机器选择子问题 的种群规模P1,锦标赛选择因子ki,交叉概率为Pca,变异概率为Pml,锦标赛选择因子k2,工 序排序子问题的种群规模为p2,交叉概率p。2,变异概率pm2。
步骤2,初始化种群按照设定的编码方式,随机初始化N个规模为P1的机器选择子问题的种群,初始 化1个规模为P2的工序排序子问题的种群;本实施例中,针对机器选择子问题的编码方式为该部分染色体长度为对应工件 的工序总数。每个基因位用整数表示,依次按照该工件工序的顺序进行排列,每个整数表示 当前工序选择的加工机器在可选机器集中的顺序编号(注意这个编号不是对应的机器编 号)。该编码方式首先能保证后续交叉、变异等操作后产生的解仍然是可行解,其次对工序 可选机器个数的多少没有要求,长度确定,操作方便;针对工序排序子问题的编码方式从柔性作业车间调度问题的定义可知,当所有 工件的工序所对应的机器确定后,其和作业车间调度问题的工序排序问题一样,所以,针对 工序排序子问题的编码方式为基于工序的编码方法。其染色体长度等于所有工件的工序数 之和,每一个基因用工件号直接编码,工件号出现的顺序表示该工件工序间的先后加工顺 序,即对染色体从左到右进行编译,对于第j次出现的工件号,表示该工件i的第j道工序 Oij,并且工件号的出现次数等于该工件的工序总数。该编码柔性很高,可满足调度规模变 化、工件工序数不定等各种复杂情况,而且任意置换染色体中的顺序后总能得到可行调度, 在解码过程中可以产生活动调度。步骤3,评价初始化种群计算各个种群中每个染色体的适应度值即从其他各合作种群中随机选择一个染 色体来组成一个完整解并计算其适应度,作为当前染色体的适应度值(如图2所示),并记 录最佳适应度值fbest (最佳适应度值即为当前种群中使得评价函数最优的值)及其各组成 染色体,设置迭代次数Gen = 1。步骤4 多种群协同进化(种群编号为q,取值范围内为从1到N+1的整数,初始化 q = 1,如图2所示)对各子种群中的染色体进化操作包括交叉操作和变异操作两个步骤,由于机器选 择子问题和工序排序子问题属于两个不同的问题,在编码方式上也不一样,所以在交叉和 变异操作上也是不一样的。步骤4. 1 基于锦标赛选择算子在q种群中选择两个染色体作为父代执行交叉操 作,生成两个子代染色体;针对机器选择子问题的交叉操作为了保证每位基因的先后顺序保持不变,采用 均勻交叉操作;针对工序排序子问题的交叉操作为了得到较好的搜索效果,采用一种基于工序 编码的交叉算子POX (Precedence Operation Crossover),它能很好地继承父代优良特征。 首先将工件集U1, J2, ... , Jj随机划分为两个工件集Jobsetl和Jobset2 ;然后复制父代 染色体Parentl和Parent2中包含在工件集Jobsetl和Jobset2中的工件到Offspringl 和Offspring〗,保持它们的位置和顺序;最后将将Parentl和Parent2中不包含在工件集 Jobsetl和Jobset2中的工件复制到Offspring2和Offspringl,保持它们的顺序不变。步骤4. 2 计算父代和子代染色体的适应度值(选择和父代染色体相同的合作染 色体),从这四个染色体(包括两个父代染色体和两个子代染色体,即Parentl、Parent2, Offspringl和Offspring〗)中选择两个较优的染色体进入下一代种群中,其中,较优的染
7色体指适应度值较优的染色体,即能够使目标函数更优的适应度值。步骤4. 3 在q种群中随机选择一个父代染色体执行变异操作,生成一个子代,用 子代取代父代进入下一代种群中;针对机器选择子问题的变异操作为保证能够较好的保持优良染色体的信息和机 器顺序不被破坏,设计如下的变异算子。首先在变异染色体中随机选择r个位置(本实例 中r为当前工件工序数的一半取整);依次选择每一个位置,对每一个位置的机器设置为当 前工序可选机器集中加工时间最短的机器;针对工序排序子问题的变异操作采用基于邻域搜索变异操作,可以更好地通过 局部范围内的搜索找到适合的工序排序,改善子代性能。首先在变异染色体中随机选择1 个不同基因(一般的1 = 3),并生成其排序的所有邻域;然后评价所有邻域的适应值,选出 最佳染色体作为子代。步骤4. 4 染色体适应度值的计算从其他各合作种群中随机选择一个合作染色 体来组成一个完整解并计算适应度,更新最佳适应度值及其各组成染色体。步骤4. 5 设置q = q+Ι ;若q彡N+1,则跳转到第4. 1步;否则跳转到第5步。步骤5 判断方法结束准则是否已经达到(Gen ( maxGen ?),若满足,则算法结 束,输出最佳适应度值fbest及其各组成染色体,否则Gen = Gen+Ι,并跳转到第4步。本发明的效果可以通过以下仿真实验进一步说明(1)仿真实验所采用的标准测试数据集采用以下2组柔性作业车间调度问题的标准实例集来检验本发明的有效性a) 10个由Brandimarte提出的实例(Bdata)。10个问题由工件数从10到20,机 器数从4到15,每组问题的工序数从5到15 ;b) 21个由Barnes和Chambers提出的实例(BCdata)。21个实例问题主要对经典 作业车间调度问题中最困难的三个问题(mtlO,la24, la40)通过一定的原则构造而来。工 件数从10到15,机器数从11到18。(2)仿真实验参数设置算法循环迭代的次数阈值maxGen = 200,机器选择子问题的种群规模P1,锦标赛 选择因子& = 2,交叉概率为Pel = 0. 9,变异概率为Pml = 0. 1,锦标赛选择因子k2 = 2,工 序排序子问题的种群规模为P2,交叉概率P。2 = 0. 9,变异概率Pm2 = 0. 1 ;由于问题规模、复 杂程度的不等,在种群规模上也有所不同,经过对每个问题的多次运算而得到每个问题的 较佳的种群规模,一般从100到500不等,P1和P2在仿真结果表中给出。(3)仿真实验环境本发明采用C++语言编程实现,程序运行环境为P4CPU,主频2. 4G,内存为1GB。(4)仿真内容本发明与其他算法的性能比较该实验将本发明的多种群协同进化方法(Multi-Population Cooperative EvolutionaryAlgorithm, MPCEA)与其他算法进行性能比较验证本发明的有效性。为了尽 量消除由于算法的随机性而带来的计算误差,使得计算结果更具有有效性和一般性,对每 个问题实例连续运行10次。其中,nXm表示问题的工件数和机器数,LB和UB分别表示到 目前为止已知的最优下界和最优上界,Cfflax表示算法取得的最优值,其表示最大完工时间的 最优解,Aver.表示10次运行的平均结果,本发明的计算结果已标出。
注N/A表示该方法没有提供该数据表1比较了 MPCEA与LEGA的调度性能。LEGA是Ho等将机器学习机制和遗传算法 进行混合提出的方法。从表1中可以看出本发明在所有10个问题上都取得了比较好的结 果。和LEGA的最优值相比,MPCEA在其中在8个问题上优于LEGA得到的最优值,2个问题 是一样的,其中本发明的Aver.值也比LEGA的小,即表示本发明具有良好的稳定性。表2MPCEA针对BCdata的运行结果
问题
nxm (LB, UB)
M&G 算法 MPCEA
CmaxAver.Pi=P2CmaxAver.mtlOcl10><11(655,927)928928200927927mtlOcc10><12(655,914)910910200910910mtlOx10><11(655,929)918918200918918mtlOxx10><12(655,929)918918200918918mt IOxxx10><13(655,936)918918500918918mtlOxy10><12(655,913)906906500905905mt IOxyz10><13(655,849)847850500847849setb4c915><11(857,924)919919.2500914914setb4cc15><12(857,909)909911.6500909910setb4x15><11(846,937)925925500925925setb4xx15><12(847,930)925926.4500925925setb4xxx15><13(846,925)925925500925925setb4xy15><12(845,924)916916500910912setb4xyz15><13(838,914)905908.2500905909seti5cl215><16(1027, 1185)11741174.250011741174seti5cc15><17(955,1136)11361136.450011361138seti5x15><16(955,1218)12011203.650012011204seti5xx15><17(955,1204)11991200.650012041204seti5xxx15><18(955,1213)11971198.450012001204seti5xy15><17(955,1148)11361136.450011361136seti5xyz15><18(955,1127)11251126.650011251127表2比较了 MPCEA与M&G算法的调度性能。M&G算法是Mastrolilli和 Gambardella利用禁忌搜索求解柔性作业车间调度的方法。从表2中可以看出本发明在21 个问题上有19个问题取得了比较好的结果。和M&G算法的最优值相比,MPCEA在其中的4 个问题上优于M&G算法得到的最优值,15个问题是一样的,2个问题较M&G算法差。其中本 发明的大部分Aver.值也比M&G算法的小,即表示本发明具有较好的稳定性。通过以上的2组柔性作业车间调度问题的标准实例集的测试结果来看,本发明在 绝大部分问题的求解结果上都优于其他方法,这说明本发明在求解柔性作业车间调度问题 上具有优越的性能,同时也具有较好的稳定性。
权利要求
一种基于多种群协同进化的柔性作业车间调度方法,用于获得适合车间实际生产的调度方案,实现车间生产过程的调度管理与优化,该方法具体包括如下步骤(1)假设工件个数为N,则设置N+1个种群,其中包括N个机器选择子问题的种群和1个工序排序子问题的种群;(2)根据各种群的编码方式,随机初始化上述N+1个种群;(3)评价上述经初始化后的种群,并令迭代次数Gen=1;计算经初始化后的各个种群中每个染色体的适应度值,即针对每个种群的每个染色体,从N个合作种群的每一个中都随机选择一个染色体,这N+1个染色体组成一个完整解,计算该完整解的适应度,以作为当前染色体的适应度值;进而,获得种群中染色体的最佳适应度值fbest及其对应的组成完整解的染色体组;(4)设种群编号为q,初始化q=1,对上述N+1个种群进行多种群协同进化,具体过程为(4.1)基于锦标赛选择算子在种群q中选择两个染色体作为父代执行交叉操作,生成两个子代染色体;其中;(4.2)计算上述父代和子代染色体的适应度值,其中父代和子代染色体具有相同的合作染色体,从这四个染色体中选择两个适应度值较优的染色体进入下一代种群中;(4.3)在种群q中随机选择一个父代染色体执行变异操作,生成一个子代,用该子代取代该父代进入下一代种群中;(4.4)计算种群q的染色体适应度值针对种群q的每个染色体,从该种群q的N个合作种群的每一个中都随机选择一个染色体,与种群q的该染色体组成一个完整解,计算该完整解的适应度,以作为当前染色体的适应度值;进而,从种群q的多个染色体获得的多个适应度中选择最佳的适应度值以更新所述最佳适应度值fbest,同时更新该适应度值所对应的组成完整解的染色体组;(4.5)令q=q+1,若q≤N+1,则跳转到步骤(4.1)进行下一代种群的处理,否则进入步骤(5);(5)判断迭代次数Gen是否达到规定的阈值maxGen,若是,则算法结束,输出最后得到的最佳适应度值fbest及其对应的组成完整解的染色体组,否则令Gen=Gen+1,并跳转到步骤(4)继续处理。
2.根据权利要求1所述的一种基于多种群协同进化的柔性作业车间调度方法,其特征 在于,所述的机器选择子问题的种群编码方式为该种群的染色体长度为对应工件的工序 总数,每个基因位用整数表示,依次按照该工件工序的顺序进行排列,每个整数表示当前工 序选择的加工机器在可选机器集中的顺序编号。
3.根据权利要求1或2所述的一种基于多种群协同进化的柔性作业车间调度方法,其 特征在于,所述工序排序子问题的种群编码方式基于工序的编码方法实现,具体为该种群 的染色体长度等于所有工件的工序数之和,每一个基因用工件号直接编码,工件号出现的 顺序表示该工件工序间的先后加工顺序,并且工件号的出现次数等于该工件的工序总数。
4.根据权利要求1-3之一所述的一种基于多种群协同进化的柔性作业车间调度方法, 其特征在于,针对所述机器选择子问题的交叉操作为均勻交叉操作。
5.根据权利要求1-4之一所述的一种基于多种群协同进化的柔性作业车间调度方法,2其特征在于,针对工序排序子问题的种群的交叉操作采用基于工序编码的交叉算子Ρ0Χ, 具体为首先将工件集U1, J2, ... , Jj随机划分为两个工件集Jobsetl和Jobset2 ;然 后复制父代染色体Parentl和Parent2中包含在工件集Jobsetl和Jobset2中的工件到 Offspringl和0ffspring2,保持它们的位置和顺序;最后将将Parentl和Parent2中不包 含在工件集Jobsetl和Jobset2中的工件复制到Offspring2和Offspringl,保持它们的顺 序不变。
6.根据权利要求1-5之一所述的一种基于多种群协同进化的柔性作业车间调度方法, 其特征在于,针对机器选择子问题的种群的变异操作采用如下的变异算子,即首先在变异 染色体中随机选择多个位置,依次选择每一个位置,对每一个位置的机器设置为当前工序 可选机器集中加工时间最短的机器。
7.根据权利要求1-6之一所述的一种基于多种群协同进化的柔性作业车间调度方法, 其特征在于,针对工序排序子问题的种群的变异操作,采用基于邻域搜索变异操作,即首先 在变异染色体中随机选择多个不同基因,并生成其排序的所有邻域,然后评价所有邻域的 适应值,选出最佳染色体作为子代。
全文摘要
本发明提供了一种基于多种群协同进化的柔性作业车间调度方法,它属于车间调度领域,主要克服基于遗传算法的柔性作业车间调度方法性能得不到充分发挥的不足。其主要步骤包括(1)参数设置;(2)按照设定的编码方式初始化种群;(3)按照设定的方法计算各个种群中每个染色体的适应度值,并记录最佳适应度值及其各组成染色体;(4)多种群协同进化对各子种群中的染色体进行交叉和变异的进化操作,并对新染色体进行评价;(5)判断方法终止准则是否达到,若满足,则方法结束,输出最佳适应度值及其各组成染色体;否则跳转到步骤4。本发明可以获得高质量的适合车间实际生产的调度方案,缩短生产时间,可用于车间生产过程的调度管理与优化。
文档编号G06Q10/00GK101901425SQ201010226408
公开日2010年12月1日 申请日期2010年7月15日 优先权日2010年7月15日
发明者张利平, 李新宇, 王晓娟, 邵新宇, 高亮 申请人:华中科技大学