基于改进粒子群算法作业车间调度问题的优化
Optimization of job shop scheduling based on improved particle swarm optimization algorithm
通讯作者:
收稿日期: 2018-12-18
基金资助: |
|
Received: 2018-12-18
Fund supported: |
|
作者简介 About authors
刘洪铭(1998—),男,山东临沂人,主要研究方向为测控技术与仪器、智能算法.E-mail:
针对作业车间调度问题,提出一种基于自适应权重和混沌的改进粒子群优化算法。构建以机器加工时间最短为优化目标的多约束作业车间调度模型,采用基于工序排列的编码方式得到粒子参数与工序序列的映射关系;基于自适应权重改进粒子群算法中的惯性系数和加速因子,使得算法可以根据适应度值动态调整参数因子;采用反向学习策略改善种群初始解的质量;引入莱维飞行、变邻域搜索、混沌,增强了算法的搜索能力,避免陷入局部最优解。试验结果表明:改进粒子群算法可以有效地提高粒子利用率,平衡全局搜索与局部搜索能力,改善传统粒子群算法易早熟的缺点,得到更优的解。
关键词:
An improved particle swarm optimization algorithm was proposed based on adaptive weights and chaos aiming at the job shop scheduling. A multiple constrained job shop scheduling model was built with the shortest machining time as the optimization goal. The mapping relationship between particle parameters and operation sequences was obtained by coding method based on ranked order value. The inertial coefficient and acceleration factor in the particle swarm optimization algorithm were improved based on the adaptive weights, so that the algorithm could dynamically adjust parameters based on the fitness value. The reverse learning was used to improve the quality of initial solution. Considering the problem of local optimum, some measures were used to enhance the search of algorithm, such as Lévy flight, variable neighborhood search and chaos. The results showed that improved particle swarm optimization could effectively improve utilization of particles, balance the global search and local search, avoid the premature convergence of the traditional particle swarm optimization algorithm, and get better results.
Keywords:
本文引用格式
刘洪铭, 曾鸿雁, 周伟, 王涛.
LIU Hongming, ZENG Hongyan, ZHOU Wei, WANG Tao.
0 引言
作业车间调度问题(job shop scheduling problem, JSP)是许多现实工程生产的简化模型,因此研究JSP问题具有很强的工程生产背景,用智能算法对JSP的优化求解也成了企业提高生产效率的关键。目前的智能算法或多或少都存在着局限性。比如,遗传算法[1-2]拥有较强的全局搜索能力但稳定性差、模拟退火算法[3-4]拥有跳出局部最优解的能力但收敛速度慢,蚁群算法[5-6]全局搜索能力强但存在汉明悬崖问题。部分学者倾向于将粒子群算法(particle swarm optimization, PSO)与其他算法混合以增强PSO全局搜索能力,但少有对PSO本身机理的研究,因此PSO在求解JSP问题上并无较大进展。例如,以求解JSP问题为例,文献[7]将遗传算子与PSO结合求解模糊作业车间调度问题,用粒子交叉变异公式取代了PSO的速度更新公式,但失去了PSO收敛速度快的优势;文献[8]将人工免疫算法与PSO结合求解装配车间作业调度问题,但是其参数根据经验选取,无法根据环境动态调整,限制了算法适应性;文献[9]将模拟退火与PSO结合求解周期作业车间调度问题,但是并未提出选取参数的方法,因而算法的全局搜索能力差。
本研究针对传统PSO种群初始解的质量差和全局搜索能力弱的缺点,使用改进粒子群算法(improved particle swarm optimization, IPSO)求解JSP问题。采用基于工序升序排列(ranked order value, ROV)的编码方式,得到粒子参数与工序序列的映射关系;在速度位置更新公式中采用自适应权重[10],动态调整惯性系数和学习因子;在初始化种群中采用混沌映射[11]和反向学习[12]策略,提高种群初始解的质量;在算法迭代过程中引入莱维飞行[13]和变邻域搜索[14]策略,避免陷入局部最优解;在种群丧失多样性进化停滞时,采取混沌弹射机制激活个体,提高粒子利用率;通过试验验证IPSO的有效性。
1 作业车间调度问题的描述及数学模型
1.1 作业车间调度问题的描述
JSP问题定义如下:存在n个工件,需要在m台机器上进行加工,每个工件需加工m道工序,每个工件的加工顺序和加工时间不同,已知每个工件的加工顺序和相应的加工时间,在满足工件约束和机器约束两个约束条件的情况下,寻求一种最理想的加工顺序方案,使得加工完成这个工件的加工时间最短。
对应的已知条件描述如下:
(1)工件加工工序集为O=[O1 O2 … Oi … On]T, Oi表示第i个工件包含的所有加工工序集, Oi=[Oi1 Oi2 … Oik … Oim], Oik表示第i个工件的第k道加工工序, i=1, 2, …, n, k=1, 2, …, m;
(2)机器加工工序集为M=[M1 M2 … Mj … Mm]T, Mj表示第j台机器所需加工的工件集, Mj=[Mj1 Mj2 … Mjh … Mjn], Mjh表示第j台机器上所加工的第h个工件, j=1, 2, …, m。h=1, 2, …, n;
(3)工件加工时间集OT=[OT1 OT2 … OTi … OTn]T, OTi表示加工第i个工件所花费的总时间, OTi=[OTi1 OTi2 … OTik … OTim], OTik表示第i个工件在第k台机器上加工完成的时间, i=1, 2, …, n, k=1, 2, …, m;
(4)机器加工时间集MT=[MT1 MT2 … MTj … MTm]T, MTj表示第j台机器加工所花费的总时间, MTj=[MTj1 MTj2 … MTjh … MTjn], MTjh表示第j台机器上第h个工件加工完成的时间, j=1, 2, …, m, h=1, 2, …, n。
在加工过程中满足的约束条件如下:
(1)每时刻每工机器只能加工一个工件,且过程不能被打断;
(2)各工件在规定的机器上的加工时间是已知的、固定的和一一对应的;
(3)各工件在每个加工机器上只加工一次;
(4)各工件有各自特定的工艺加工路线,且加工路线是事先确定的、不能更改的。
1.2 作业车间调度问题的数学模型
作业车间调度问题数学模型的目标函数如下:
式中:f*为求最短加工时间的目标函数。
作业车间调度问题数学模型的约束条件如下:
式中:tMPjh为第j台机器上第h个工件加工的起始时间; tPMik为第i个工件在第k台机器加工的起始时间。
2 改进粒子群算法求解模型
由于粒子群算法中的“全局最优解”与普通意义的优化命题里的“全局最优解”有部分差异,为不引起歧义,本研究定义粒子群算法中的“全局最优解”为“当前全局最优解”,相对于目标搜索空间中真实存在的“理想全局最优解”,算法在当前时刻找寻到的已知的最优解为“当前全局最优解”,该解的质量低于或等于“理想全局最优解”。
传统的粒子群算法建立在一个抽象的D维目标搜索空间中,有n个粒子组成一个种群,第i个粒子在每次迭代进化过程中依据个体历史最优值Pi=[Pi1 Pi2 … Pid … PiD]和当前全局最优值G=[G1 G2 … Gd … GD]进行种群间的信息交流来实现自身的位置xi=[xi1 xi2 … xid … xiD]和速度vi=[vi1 vi2 … vid … viD]的更新,从而整个种群不断地向当前全局最优解靠近[15],其中, i=1, 2, …, n, d=1, 2, …, D。具体更新公式如下:
式中:s表示当前迭代次数; vids表示第s次迭代中第i个粒子在第d维度的速度分量; xids表示第s次迭代中第i个粒子在第d维度的位置分量; ω表示惯性系数; c1、c2表示学习因子; r1、r2表示随机数; Pids表示截止到第s次迭代为止,第i个粒子在第d个维度位置分量的个体历史最优值; Gds表示截止到第s次迭代为止,第d个维度位置分量的全局历史最优值。
为克服传统粒子群早熟收敛的问题,改进粒子群算法将引入自适应策略、混沌序列、莱维飞行和变邻域搜索,以平衡全局和局部搜索能力。
2.1 编码与解码
由于编码内容要反映JSP问题的工件加工序列,所以本研究使用基于工序的编码方式,通过ROV规则[16]建立粒子D维位置分量的连续参数与加工序列的离散值的映射关系,即每个粒子的位置分量便代表了一种加工顺序方案。以研究作业车间调度问题为例,对于n个工件m台机器的问题,建立有n×m道加工序列的二维向量编码和D维的粒子位置分量,其中D=n×m。
2.2 适应度函数设计
JSP问题以求解最短最大完工时间为最终目标,因此本研究设计改进粒子群算法的适应度函数
式中Tpro(i)为第i个粒子的加工方案所决定的加工时间。
2.3 改进粒子群算法求解作业车间调度
2.3.1 粒子群初始化
(1)混沌初始化
式中:zk表示混沌序列; rand表示随机数。
由于混沌系统对初值具有极敏感性,所以首先产生一个随机数rand作为混沌序列的初始种子。根据式(5)产生n×D个混沌映射值,根据式(7)得到第i个粒子位置维度,并编码得到相应的加工序列。
(2)反向学习策略
反向学习[12]策略即利用原解产生原解的反向解,在比较两个解的优劣后最终保留优势解。在本研究中,利用混沌映射产生初始群体后,产生反向解公式如下:
式中:xid*表示第i个粒子第d维的位置维度的反向解; xid为第i个粒子第d维的位置维度值; a, b分别为xid取值范围的上下限。
式中:xi*表达第i个反向粒子。
根据式(9)产生n个反向粒子组成种群大小与原种群相等的反向种群,再由式(4)计算的适应度值,最后将两个种群合并后排序,选取适应度值高的前50%作为最终起始粒子群。
2.3.2 粒子群速度、位置更新机制
(1)自适应策略
本研究基于自适应策略[10],考虑到既需要增强粒子的全局搜索能力又要兼顾局部搜索能力,根据各个粒子的适应度不同,设置了动态调整各粒子的自适应权重如下:
式中:α可表示惯性系数ω或学习因子c, Tavg表示所有粒子的平均加工时间, Tmin表示所有粒子的最小加工时间; Fitavg表示所有粒子的平均适应度。
当粒子适应度值较群体平均适应度值低时,粒子有较强的全局搜索能力,即较大的α;当粒子跨过平均值门槛时,粒子拥有较强的局部搜索能力,即较小的α;而当粒子接近当前全局最优解时,粒子拥有较强的全局搜索能力以跳出局部最优解,即较大的α。
(2)莱维飞行
(3)改进的速度位置更新公式
因此,综上所述,本研究改进的速度位置更新公式如下:
式中:ωis、c1is和c2is分别为第s次迭代中第i个粒子的自适应惯性系数、自适应个体学习因子和自适应全局学习因子。
2.3.3 粒子激活策略
(1)混沌弹射机制
当粒子到达当前全局最优点时,对该粒子采取混沌初始化的方式,重置该粒子的位置维度值,使粒子在空间其他不确定的位置出现,类似于将粒子从最优点的位置“弹射”出去。
式中:Fitbest表示所有粒子的当前全局最优值; Chaos函数表示根据第2.3.1节的混沌原理将第i个粒子的D维位置维度重新初始化。
由于混沌映射的遍历性和非重复性,扩展粒子的搜索空间,提高算法中粒子的利用率,比目前的变异机制更有效果。
(2)变邻域搜索
①交换。在D道加工序列中随机交换两不同工序的位置,结果如下:
②插入。在D道加工序列中随机选择某一加工序列插入到另一位置较小的前面,结果如下:
③倒序。在D道加工序列中随机选择一段加工序列进行倒序操作,结果如下:
式中:o为原加工序列, o*为执行变邻域操作后的新加工序列。
2.3.4 改进粒子群算法流程
基于上述的改进粒子群算法,下面叙述算法解决JSP问题的步骤及流程图(如图1所示)。
图1
步骤1 根据混沌及反向学习策略,初始化粒子群的位置与速度;
步骤2 计算各粒子的适应度值,并记录个体与当前全局的历史最优,同时计算粒子适应度平均值;
步骤3 基于自适应学习策略,确定各个粒子的自适应惯性系数与学习因子;
步骤4 基于莱维飞行策略更新各个粒子的位置与速度,并更新个体与当前全局的历史最优;
步骤5 判断有无粒子到达当前全局最优点,若有则根据混沌弹射机制重置粒子,该粒子返回步骤2;
步骤6 对当前全局最优点执行变邻域搜索,更新当前全局最优解;
步骤7 若满足结束条件,则输出最终结果,否则返回步骤2。
3 实例验证及分析
3.1 参数设定
算法采用MATLAB编程,在2.40 GHz处理器的Windows10系统下运行。本研究的改进粒子群算法设置迭代次数200次,粒子数量为200, ωmax和ωmin分别为0.8和0.6, cmax和cin的取值分别为1.2和0.8,变邻域搜索迭代次数50次;传统粒子群算法设置迭代次数200,粒子数量为200, ω、c设为1。每种算法每个算例连续独立运行20次。
3.2 运行结果及性能分析
由表1可以看出,虽然IPSO算法仅找到了FT06的已知最优值,但是IPSO算法相较于PSO算法,大大提高了找到LA01、LA06、LA11算例的已知最优值的寻优成功率,并且在平均值可以看出改进算法相较传统算法稳定性更强,有更强的鲁棒性。在最小值提升率和平均值提升率中也可以看出改进的算法比传统的粒子群算法更有优势。
表1 IPSO与PSO算法测试结果对比表
Table 1
实例 | 问题规模 | 已知最优解/s | IPSO | PSO | 最小值提升率/% | 平均值提升率/% | |||||
最小值/ s | 平均值/ s | 寻优成功率/% | 最小值/ s | 平均值/ s | 寻优成功率/% | ||||||
FT06 | 6×6 | 55 | 55 | 55 | 100 | 56 | 58 | 0 | 1.79 | 5.17 | |
FT10 | 10×10 | 930 | 975 | 1 027 | 0 | 1 075 | 1 196 | 0 | 9.30 | 14.13 | |
FT20 | 20×5 | 1 165 | 1 206 | 1 222 | 0 | 1 429 | 1 526 | 0 | 15.6 | 19.92 | |
LA01 | 10×5 | 666 | 666 | 666 | 100 | 666 | 709 | 5 | 0 | 4.58 | |
LA06 | 15×5 | 926 | 926 | 926 | 100 | 926 | 938 | 35 | 0 | 1.28 | |
LA11 | 20×5 | 1 222 | 1 222 | 1 222 | 100 | 1 222 | 1 259 | 15 | 0 | 2.94 | |
LA16 | 10×10 | 945 | 973 | 1 011 | 0 | 1 043 | 1 118 | 0 | 9.40 | 9.57 |
由图2可以看出,在求解FT10问题和FT20问题时,虽然两种算法有相同解,但IPSO算法拥有更强的跳出局部最优解的能力;在求解LA01问题时,虽然两种算法都找到了目前已知最优解,但IPSO算法效率更高、速度更快;在求解LA16问题时, IPSO算法拥有质量更优的种群初始解和更强的跳出局部最优解的能力。所以,相较于传统的PSO算法, IPSO算法提高了传统算法的全局搜索能力,且增强了粒子群摆脱局部最优解的能力,丰富了种群在迭代后期的多样性,找到了更优的解,相较传统算法来说拥有更强的鲁棒性和实用性。
图2
4 结论
本研究针对JSP问题,对传统粒子群算法的不足进行改进。首先提出基于自适应策略的惯性系数和加速因子,使得粒子群算法的系数得以随适应度值进行动态调整,平衡了算法在不同环境中的全局搜索和局部搜索能力;还引入混沌映射及反向学习机制优化了群体初始的适应度值,提升了算法的求解效率;又引入莱维飞行、变邻域搜索和混沌弹射机制增强了算法跳出局部最优解的能力,有效地缓解了早熟收敛的问题。
仿真试验结果表明,改进粒子群算法的粒子利用率高、效率高,搜寻能力强,能在不同规模的问题中找到更好的解,算法的鲁棒性更强,在求解JSP问题上拥有更大的优势,为粒子群算法的改进方向提供了研究思路,并且对实际工程生产也有一定的指导作用。对于FT10以上规模的问题,本研究算法暂时未能找到更优解,因此提高改进粒子群算法对于大规模JSP问题的适应性将是未来研究的重要方向。
参考文献
Convergence analysis of canonical genetic algorithms
[J]. ,DOI:10.1109/72.265964 [本文引用: 2]
Material flow optimization of flexible manufacturing system using real coded genetic algorithm(RCGA)
[J]. ,DOI:10.1016/j.matpr.2017.11.381 [本文引用: 2]
Accelerated simulated annealing algorithm applied to the flexible job shop scheduling problem
[J]. ,DOI:10.1111/itor.2017.24.issue-5 [本文引用: 1]
Simulated annealing
[J]. ,DOI:10.1214/ss/1177011077 [本文引用: 1]
基于蚁群算法的不确定条件下的Job Shop调度
[J]. ,DOI:10.3969/j.issn.1672-3961.2005.04.018 [本文引用: 1]
Job shop scheduling with uncertain processing time based on ant colony system
[J].DOI:10.3969/j.issn.1672-3961.2005.04.018 [本文引用: 1]
Ant colony optimization
[J]. ,
Particle swarm optimization combined with genetic operators for job shop scheduling problem with fuzzy processing time
[J]. ,DOI:10.1016/j.amc.2008.05.086 [本文引用: 1]
A hybrid algorithm based on particle swarm optimization and artificial immune for an assembly job shop scheduling problem
[J]. ,
A hybrid algorithm based on particle swarm optimization and simulated annealing for a periodic job shop scheduling problem
[J]. ,
Opposition-based particle swarm optimization with adaptive mutation strategy
[J]. ,DOI:10.1007/s00500-016-2102-5 [本文引用: 2]
Simple mathematical models with very complicated dynamics
[J]. ,DOI:10.1038/261459a0 [本文引用: 2]
Enhancing particle swarm optimization using generalized opposition-based learning
[J]. ,DOI:10.1016/j.ins.2011.03.016 [本文引用: 2]
基于莱维飞行的改进粒子群算法
[J]. ,
Improved particle swarm optimization based on Lévy flights
[J].
猫群优化算法求解柔性作业车间调度问题
[J]. ,DOI:10.3778/j.issn.1002-8331.1708-0297 [本文引用: 1]
Cat swarm optimization for solving flexible job shop scheduling problem
[J].DOI:10.3778/j.issn.1002-8331.1708-0297 [本文引用: 1]
Self-organizing hierarchical particle swarm optimizer with time-varying acceleration coefficients
[J]. ,
Genetic algorithms and random keys for sequencing and optimization
[J]. ,DOI:10.1287/ijoc.6.2.154 [本文引用: 1]
基于混沌粒子群算法的车间作业调度优化
[J]. ,
Optimization of job shop scheduling problem based on chaos particle swarm optimization algorithm
[J].
Chaos and adaptive control in two prey, one predator system with nonlinear feedback
[J]. ,
A novel discrete cuckoo search algorithm for spherical traveling salesman problem
[J]. ,
Flower pollination algorithm: a novel approach for multiobjective optimization
[J]. ,DOI:10.1080/0305215X.2013.832237 [本文引用: 1]
Variable neighborhood search: principles and applications
[J]. ,DOI:10.1016/S0377-2217(00)00100-4 [本文引用: 1]
基于粒子群优化和变邻域搜索的混合调度算法
[J]. ,DOI:10.3969/j.issn.1006-5911.2007.02.019 [本文引用: 1]
Hybrid heuristics based on particle swarm optimization and variable neighborhood search for job shop scheduling
[J].DOI:10.3969/j.issn.1006-5911.2007.02.019 [本文引用: 1]
求解作业车间调度问题的变邻域动态烟花算法
[J]. ,DOI:10.3969/j.issn.1006-7167.2018.01.006 [本文引用: 1]
Dynamic fireworks algorithm based on variable neighborhood search for job shop scheduling problem
[J].DOI:10.3969/j.issn.1006-7167.2018.01.006 [本文引用: 1]
求解作业车间调度问题的改进混合灰狼优化算法
[J]. ,DOI:10.3969/j.issn.1001-3695.2018.05.007 [本文引用: 1]
Solving job shop scheduling problem using improved hybrid grey wolf optimizer
[J].DOI:10.3969/j.issn.1001-3695.2018.05.007 [本文引用: 1]
/
〈 | 〉 |