置换流水车间调度问题(permutation flow-shop scheduling problem, PFSP)是广泛受到研究的一种组合优化问题,属于NP−hard问题。PFSP的搜索空间中存在诸多局部最优解,且问题复杂度越高,越容易局部最优化,因此许多学者针对PFSP特性不断对求解PFSP的算法进行优化。求解PFSP的算法可分为精确算法和近似算法,精确算法虽能求出最优解,但时间复杂性较高,随着问题的规模增大将变得不可行。近似算法对于较大规模的问题能在可行时间内求出近优解,是研究PFSP问题的重要方法。近似算法包括遗传算法[1]、蚁群算法[2]、模拟退火算法[3]等。
遗传算法(genetic algorithm, GA)通过选择、交叉和变异等操作搜索解空间的最优解,已经成功应用于解决旅行商问题、车辆路径问题和车间调度问题等不同领域的组合问题。但是遗传算法的局部搜索能力较差,在实际应用中容易产生早熟收敛的问题。怎么运用遗传算法既能保留优良个体,又能维持群体的多样性,一直是遗传算法中较难解决的问题。近年来针对PFSP,不少学者为提高遗传算法的有效性,将遗传算法与其他算法相结合对该问题进行求解,取得了不错的效果。Benbouzid等[4]针对PFSP提出VacGA(introduces vaccination into the field of GAs),将遗传算法和免疫算法相结合,遗传算法执行全局搜索,人工免疫系统执行局部搜索,以克服演化过程中遗传算法局部搜索能力不足的问题。Chen等[5]将遗传算法与广义邻域搜索相结合,提出一种新型混合遗传算法求解PFSP。Bessedik等[6]提出一种基于免疫的遗传算法,这种算法分为两种形式:1)将接种引入到基于免疫理论的遗传算法;2)从免疫网络理论得到启发,并将其运用到遗传算法中。Ganguly等[7]将贪婪局部搜索算子引入到遗传算法,有效地解决大范围的排序和调度离散优化问题。齐学梅等[8]为求解PFSP问题,将变邻域搜索算法与遗传算法相结合,加快了收敛速度。吴秀丽等[9]将变邻域搜索算法和遗传算法相结合提出了一种变邻域改进遗传算法求解混合流水车间调度问题,增强了遗传算法的局部搜索能力。
Chang等[10]针对置换流水车间调度问题,提出一种基于区块的遗传算法(puzzle-based artificial chromosome genetic algorithm,p-ACGA),将遗传算法和蚁群算法相结合,通过简单遗传算法的交叉、突变等操作产生精英群体,针对这些精英群体,利用蚁群算法的信息素浓度对工件与工件的关系进行统计分析,进而建立信息素相依矩阵并根据矩阵挖掘区块,利用区块和非区块重组形成人工染色体,然后将其注入到进化过程中。虽然p-ACGA能够避免局部最优问题,一定程度上改善了解的质量,加快了进化速度,但是算法在初始化、信息素分布统计等方面还存在一些不足。因此本文提出一种改进区块遗传算法(puzzle-based improved artificial chromosome genetic algorithm,p-IACGA)。该算法在种群初始化时引入反向学习的思想,并对其进行了改进,将其与随机机制相结合产生初始解,大大提高了初始解的多样性和质量;为进一步描述信息素在路径上的分布情况,算法考虑了信息素在节点上的分布情况,即工件与所在解序列位置的关系,并将其与p-ACGA中的统计分析工件与工件的相邻关系相结合,以全面地描述解的空间分布情况。然后,根据这两种关系建立相依信息素矩阵和位置信息素矩阵,进而挖掘区块以组合人工染色体。最后,引入染色体重组机制,进一步提高解的质量。
1 置换流水车间生产调度问题描述PFSP生产调度问题可以描述为:有
$C({{\textit{π}} _1},1) = P({{\textit{π}} _1},1)$ |
$C({{\textit{π}} _i},1) = C({{\textit{π}} _{i - 1}},1)P({{\textit{π}} _i},1)$ |
$C({{\textit{π}} _1},j) = C({{\textit{π}} _1},j - 1) + P({{\textit{π}} _1},j)$ |
$C({{\textit{π}} _i},j) = \max \{ C({{\textit{π}}_{i - 1}},j),C({{\textit{π}} _i},j - 1)\} + p({{\textit{π}} _i},j)$ |
式中:
最大完工时间:
适应度为:
p-IACGA主要分为5部分:产生初始解、挖掘区块、构建人工染色体、染色体重组和保留优势解。p-IACGA流程如图1所示,因为染色体携带的较优信息是逐代积累的,所以为了挖掘出较优人工染色体,每执行
Download:
|
|
1)反向学习法
反向学习法(opposition-based learning,OBL)[11]的主要思想是同时考虑原始解序列和它的反向解序列,以获得当前候选解中的最优解。假设X =
①在
②求出初始解的适应度
③如果
通过同时评估这两个解可以获得更好的结果。
2)应用改进反向学习法进行种群初始化
初始化过程采用随机机制和改进反向学习机制相结合的方式,以兼顾初始解的多样性和质量。本研究对反向学习法作了改进以减少优秀解的丢失,基本思路就是将所有原始解和所有反向解混合在一起形成混合群体,然后从混合群体中选出适应度较高的解,如图2所示。首先利用随机方式产生
Download:
|
|
在遗传算法中,进化若干代后,大部分染色体都会携带与较优解相似的一些信息,这些信息具有相似性并且这些相似性在大规模的种群中具有一定的可靠性[12]。在p-IACGA中,使用蚁群优化算法(ant colony optimization,ACO)中的蚂蚁信息素浓度来识别染色体中较好的相似序列并通过区块的方式将它们挖掘出来。
1)建立信息素矩阵
本研究使用相依信息素矩阵和位置信息素矩阵来记录蚂蚁经过的路径信息,其中位置信息素矩阵记录每个节点(工件在解序列中的位置)的信息素浓度信息,相依信息素矩阵记录两节点间的路径(两工件间的相邻关系)的信息素浓度信息。矩阵建立过程如下:
①对信息素矩阵进行初始化
从第
${\tau _0} = \frac{1}{L}$ | (1) |
式中
Download:
|
|
Download:
|
|
②更新信息素矩阵
由遗传算法产生的最新一代的前30%适应度较高的染色体更新信息素矩阵,更新过程如图5,更新公式如式(2):
$\begin{array}{c} {\tau _{ij}}(t + 1) = (1 - \rho ) \times {\tau _{ij}}(t) + \rho \Delta {\tau _{ij}}(t + 1)\\ \Delta {\tau _{ij}}(t + 1) = \left\{ {\begin{array}{*{20}{l}} {1/L{\rm{ , }\quad}\text{若蚂蚁经过路径}(i,j)}\\ {0,{\rm{ }\quad}\text{其他} } \end{array}} \right. \end{array}$ | (2) |
式中:
Download:
|
|
同理,得到更新的位置信息素矩阵如图6。更新公式如式(3):
$\begin{array}{c} {\tau '_{mi}}(t + 1) = (1 - \rho ) \times {\tau '_{mi}}(t) + \rho \Delta {\tau '_{mi}}(t + 1)\\ \Delta {\tau '_{mi}}(t + 1) = \left\{ {\begin{array}{*{20}{l}} \!\!\!\!{1/L{\rm{ , }\quad}\text{若蚂蚁经过的第}m\text{个节点为节点}i}\\ \!\!\!\!{0,{\rm{ }\quad}\text{其他} } \end{array}} \right. \end{array}$ | (3) |
式中:
Download:
|
|
2)构建区块
区块是简短的染色体片段,本研究通过学习链接关系[13]构建区块。首先确定区块的最小长度,然后随机选择起始位置,最后为各位置选择工序。在区块最小长度内,起始位置采用位置信息素矩阵中的信息选择工序,如图7,假设
Download:
|
|
Download:
|
|
当出现两个或多个较大值时随机选择。位置信息素浓度概率计算公式为
${P'_{im}} = \frac{\tau '_{mi}}{{\sum\limits_{i \in uns} {\tau '_{mi}}}}i,\quad m = 1,2, \cdots ,n$ | (4) |
相依信息素浓度概率计算公式为
${P_{ij}} = \frac{{{\tau _{ij}}}}{{\sum\limits_{i \in uns} {{\tau _{ij}}} }},\quad i,j = 1,2, \cdots ,n$ | (5) |
合并概率计算公式
${{{CP}}_i} = (W \times {P_{ij}}) + (W' \times {P'_{im}}),\quad i,j,m = 1,2, \cdots ,n$ | (6) |
式中:
对最小长度外的位置进行工序选择时设立合并概率最小阈值[15],作为筛选条件。当工件的合并概率大于最小阈值时,选择该工件,否则停止选择工件,本区块完成挖掘,如图9所示。因为当区块包含的工件越多总体概率越低,组合错误的概率越大,区块阈值将会保证区块的质量,同时也将会导致挖掘出的区块长度也有所不同。挖掘的区块均存放在区块资料库中。
Download:
|
|
3)区块竞争
区块竞争[16]就是去除有重复信息的区块。将区块资料库中的区块的工序与位置进行比对,如果区块之间出现重复的工序或涵盖的位置重复,则通过比较平均概率的方式进行选择,平均概率较大者保留至区块资料库,较小者则删除,举例如图10。平均概率的计算公式为
Download:
|
|
$P_{{B^l}}^{\rm{AVG}} = \frac{{P_{B_l^i}^{\rm{dom}} + \sum\limits_{i = 2}^n {{{{{\rm{CP}}}}_{B_l^i}}} }}{n},\quad l = 1,2, \cdots ,n$ | (7) |
式中:
本研究利用新建区块资料库中的区块和非区块资料库中的工件组合出较优染色体。先将区块资料库中的所有区块复制到确定长度的空白染色体对应位置,对于尚未放入工序的空位置依照其位置顺序(由左到右),利用RWS方法根据合并概率从剩余的工件中选择合适工件放入其中。例如图11区块资料库中有2个区块,非区块资料库有2个工件,合并概率
Download:
|
|
为了进一步提高算法搜索到最优解的机会,对每一代染色体进行重组。首先随机选择
Download:
|
|
Download:
|
|
将重组后的GA最新子代
Download:
|
|
为了评估所提出的算法的性能,本研究将通过对不同实例进行测试,使用误差率(ER)作为对比指标,与其他算法进行比较。误差率是指测试中算法所得最优解与实例已知最优解的差值占实例已知最优解的比例,ER计算公式为
${\rm{ER}}{_i} = \frac{{{C_{\max }} - {U_i}}}{{{U_i}}} \times 100{\text{%}} $ | (8) |
式中:
本文所提算法由C++语言编写,程序的运行环境为:处理器Intel(R) Core(TM) i5-4005U CPU @ 3.40 GHz,内存为4.0 GB的计算机。在本文中,选择了29个调度问题进行比较,其中21个Reeves实例和8个Taillard实例,每个实例独立运行30次,并求出ER的平均值。为了达到性能评价的目的,在SGA[18]、ACGA[19]、p-ACGA[10]、BBEDA[18]、LMBBEA[20]、p-IACGA的参数设置上选择了最佳的、相同的参数配置以保证了算法的可比性。
以SGA、ACGA、p-ACGA、BBEDA、LMBBEA和p-IACGA计算Taillard实例,结果如表1所示。从表1可以看出,ta005、ta010、ta020、ta030、ta070和 ta080这6个实例中的ER值均为0,即找到了6个与实例已知解相同的解,多于其他算法所能找到的个数。尽管在 ta050实例中,BBEDA和LMBBEA的 ER值为0.85,p-IACGA的ER值为0.97,前两者的结果优于p-IACGA,但是p-IACGA的平均值ER为0.32%,均低于其他算法,表明p-IACGA的整体求解问题的性能优于其他算法。同理,用这些算法计算Reeves实例,结果如表2。通过对Reeves的21个实例测试,发现p-IACGA在
为了更直观地比较算法性能,图15给出了关于p-ACGA和p-IACGA两个算法测试部分Taillard实例的收敛图。从图15中可以看出,在相同的最大迭代次数下,p-IACGA的收敛速度比p-ACGA更快。在进化初期,算法通过优化初始方法提高初始解的质量,保证进化过程中解的质量;采用节点信息浓度和路径信息度相结合的方式生成矩阵,提高了区块质量。在进化的后期,应用二元竞赛法来寻找具有更优适应值的解,加快了进化速度。
Download:
|
|
通过实验数据分析,对于求解PFSP,本文提出的p-IACGA相较于SGA、ACGA、p-ACGA、BBEDA、LMBBEA和p-IACGA具有较优的求解性能。
4 结束语本文针对置换流水车间调度问题,通过对p-ACGA改进,提出了p-IACGA。该算法初始化采用随机机制和改进反向学习机制相结合的方式,提高了初始种群的多样性和质量。进一步考虑了工件与所在解序列的位置关系,对节点信息素浓度进行了分析,通过位置信息素矩阵和相依信息素矩阵挖掘区块加快了收敛速度,提高了最终解的质量。该算法保留了传统GA的交叉、变异等操作,通过若干代的GA进化过程产生精英群体,不断更新区块,提高了人工染色体的质量和更新速度。实验中,通过Taillard和Reeves实例进行测试,以误差率作为比较指标,将结果与其他算法比较,验证了p-IACGA的有效性。
未来研究方向可以将所提出的p-IACGA应用于其他组合优化问题,如旅行商问题、车辆路径问题等。也可以通过改进该算法对PFSP的最小化流程时间、最小化延迟时间等其他一个或多个目标进行研究。
[1] | 周明, 孙树栋. 遗传算法原理及应用[M]. 北京: 国防工业出版社, 1999: 6. (0) |
[2] |
夏小云, 周育人. 蚁群优化算法的理论研究进展[J]. 智能系统学报, 2016, 11(1): 27-36. XIA Xiaoyun, ZHOU Yuren. Advances in theoretical research of ant colony optimization[J]. CAAI transactions on intelligent systems, 2016, 11(1): 27-36. (0) |
[3] |
李金忠, 夏洁武, 曾小荟, 等. 多目标模拟退火算法及其应用研究进展[J]. 计算机工程与科学, 2013, 35(8): 77-88. LI Jinzhong, XIA Jiewu, ZENG Xiaohui, et al. Survey of multi-objective simulated annealing algorithm and its applications[J]. Computer engineering and science, 2013, 35(8): 77-88. DOI:10.3969/j.issn.1007-130X.2013.08.013 (0) |
[4] | TAYEB F B S, BESSEDIK M, BENBOUZID M, et al. Research on permutation flow-shop scheduling problem based on improved genetic immune algorithm with vaccinated offspring[J]. Procedia computer science, 2017, 112: 427-436. DOI:10.1016/j.procs.2017.08.055 (0) |
[5] | CHEN Rongchang, CHEN J, CHEN T S, et al. Synergy of genetic algorithm with extensive neighborhood search for the permutation flowshop scheduling problem[J]. Mathematical problems in engineering, 2017, 2017: 3630869. (0) |
[6] | BESSEDIK M, TAYEB F B S, CHEURFI H, et al. An immunity-based hybrid genetic algorithms for permutation flowshop scheduling problems[J]. International journal of advanced manufacturing technology, 2016, 85(9/10/11/12): 2459-2469. (0) |
[7] | GANGULY S, MUKHERJEE S, BASU D, et al. A novel strategy adaptive genetic algorithm with greedy local search for the permutation flowshop scheduling problem[M]//Swarm, Evolutionary, and Memetic Computing. Berlin, Heidelberg: Springer, 2012: 687–696. (0) |
[8] |
齐学梅, 王宏涛, 陈付龙, 等. 求解多目标PFSP的改进遗传算法[J]. 计算机工程与应用, 2015, 51(11): 242-247. QI Xuemei, WANG Hongtao, CHEN Fulong, et al. Improved genetic algorithm for multi-objective of PFSP[J]. Computer engineering and applications, 2015, 51(11): 242-247. DOI:10.3778/j.issn.1002-8331.1310-0197 (0) |
[9] |
崔琪, 吴秀丽, 余建军. 变邻域改进遗传算法求解混合流水车间调度问题[J]. 计算机集成制造系统, 2017, 23(9): 1917-1927. CUI Qi, WU Xiuli, YU Jianjun. Improved genetic algorithm variable neighborhood search for solving hybrid flow shop scheduling problem[J]. Computer integrated manufacturing systems, 2017, 23(9): 1917-1927. (0) |
[10] | CHANG P C, HUANG W H, WU J L, et al. A block mining and re-combination enhanced genetic algorithm for the permutation flowshop scheduling problem[J]. International journal of production economics, 2013, 141(1): 45-55. DOI:10.1016/j.ijpe.2012.06.007 (0) |
[11] | JIN Jian. A hybrid discrete biogeography-based optimization for the permutation flow shop scheduling problem[J]. International journal of production research, 2016, 54(16): 4805-4814. DOI:10.1080/00207543.2015.1094584 (0) |
[12] | DORIGO M, GAMBARDELLA L M. Ant colony system: a cooperative learning approach to the traveling salesman problem[J]. IEEE transactions on evolutionary computation, 1997, 1(1): 53-66. DOI:10.1109/4235.585892 (0) |
[13] |
陈慧芬. 基于链结学习的子群体进化算法求解多目标调度问题[D]. 天津: 天津理工大学, 2017. CHEN Huifen. Sub-population evolutionary algorithm based on linkage learning for multi-objective scheduling problem[D]. Tianjin: Tianjin University of Technology, 2017. (0) |
[14] |
裴小兵, 陈慧芬, 张百栈, 等. 改善式BVEDA求解多目标调度问题[J]. 山东大学学报(工学版), 2017, 47(4): 25-30. PEI Xiaobing, CHEN Huifen, ZHANG Baizhan, et al. Improved bi-variables estimation of distribution algorithms for multi-objective permutation flow shop scheduling problem[J]. Journal of Shandong University (engineering science), 2017, 47(4): 25-30. (0) |
[15] |
裴小兵, 赵衡. 基于二元分布估计算法的置换流水车间调度方法[J]. 中国机械工程, 2017, 28(22): 2752-2759. PEI Xiaobing, ZHAO Heng. Permutation flow shop scheduling problem based on hybrid binary distribution estimation algorithm[J]. China mechanical engineering, 2017, 28(22): 2752-2759. DOI:10.3969/j.issn.1004-132X.2017.22.016 (0) |
[16] |
张敏, 汪洋, 方侃. 基于改进区块进化算法求解置换流水车间问题[J]. 计算机集成制造系统, 2018, 24(5): 1207-1216. ZHANG Min, WANG Yang, FANG Kan. Improved block-based evolutionary algorithm for solving permutation flowshop scheduling problem[J]. Computer integrated manufacturing systems, 2018, 24(5): 1207-1216. (0) |
[17] | CHANG P C, CHEN Menghui. A block based estimation of distribution algorithm using bivariate model for scheduling problems[J]. Soft computing, 2014, 18(6): 1177-1188. DOI:10.1007/s00500-013-1136-1 (0) |
[18] | MILLER B L, GOLDBERG D E. Genetic algorithms, tournament selection, and the effects of noise[J]. Complex systems, 1995, 9(3): 193-212. (0) |
[19] | CHANG P C, CHEN S H, FAN C Y, et al. Generating artificial chromosomes with probability control in genetic algorithm for machine scheduling problems[J]. Annals of operations research, 2010, 180(1): 197-211. DOI:10.1007/s10479-008-0489-9 (0) |
[20] | HSU C Y, CHANG P C, CHEN M H. A linkage mining in block-based evolutionary algorithm for permutation flowshop scheduling problem[J]. Computers & industrial engineering, 2015, 83: 159-171. (0) |