您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 求解车间调度问题的自适应混合粒子群算法-计算机学报
《计算机学报》2009年11期,2009,32(11)1求解车间调度问题的自适应混合粒子群算法张长胜孙吉贵欧阳丹彤张永刚(吉林大学计算机学院,符号计算与知识工程教育部重点实验室,长春,130012,中国)摘要:针对最小完工时间的流水车间作业调度问题,提出了一种自适应混合粒子群进化算法-AHPSO,将遗传操作有效的结合到粒子群算法中。定义了粒子相似度及粒子能量,粒子相似度阈值随迭代次数动态自适应变化,而粒子能量阈值与群体进化程度及其自身进化速度相关。此外,针对算法运行后期进化速度慢的缺点,提出了一种基于邻域的随机贪心策略进一步提高算法的性能。最后将此算法在不同规模的实例上进行了测试,并与其他几种最近提出的具有代表性的算法进行了比较,实验结果表明,无论是在求解质量还是稳定性方面都优于其他几种算法,并且能够有效求解大规模车间作业问题关键词:粒子群算法;车间调度;粒子相似度;粒子能量;贪心策略1.引言调度问题是很多实际流水线生产调度问题的简化模型,因此其研究具有极高的理论价值和实践价值。本文研究的置换流水车间作业调度问题是在满足工件约束和机器约束条件下,使得最小完工时间尽可能小。工件约束指每个工件在每台机器上恰好加工一次,每个工件在每个机器上的加工顺序相同;机器约束指每台机器在任何时刻至多加工一个工件,每台机器加工的各工件的顺序相同.该问题一般可以描述为:n个待加工的作业J1,,nJJ,需要在m台机器上加工M1,,mMM,每个作业包含m道工序miiiiOOOJ,2,1,,,,其中kiO,代表作业i在机器k上的加工时间为ikt,1in,1jm的工序。作业jJ的完工时间jC为其最后一个工序完成时间即jjmCC。求解目标是求得一个可行调度,使得加工完所有作业所花的时间maxC尽可能少.该问题可用如下的数学模型表示:1111Ct11112,,jjjCCtjn11112,,kkkCCtkm1,1max,2,,,2,,jjjjkkkkCCCtjnkmmaxmaxjCC其中jkC表示工序jkO的完工时间。此问题已被证明是NP难度问题[1],因此,精确方法[2]在合理的时间内只能求解小规模问题,其求解时间随着问题规模成指数倍增长。而启发式算法能够在可接受的时间内,使用较少的存储空间求得问题近似最优解或最优解,主要分为构造启发式[3]和元启发式两种[4]:构造启发式方法虽可以在较短时间内获得调度问题的解,但其在构造调度的过程中依赖根据问题局部信息设计的调度规则,所获得的调度一般为局部最优解;元启发式方法,是基于仿生学机理的调度算法能够在可行时间内以较大概率获得该类问题的最优解或近似最优解,成为求解各种车间调度问题的有效算法,正受到研究者的广泛关注。粒子群算法(PSO)是受鸟群觅食启发提出的一种进化计算方法,其收敛速度快、易于实现,被成功应用在多个领域中[5]。目前,应用PSO算法求解调度问题的研究还很少,实验表明,在求解调度问题时,它们较GA算法更为有效。但已提出的算法都存在早熟收敛,易陷入局部最优、进化后期算法收敛速度明显下降等缺点[6,7]。主要由于进化过程中粒子能量不断下降,导致粒子进化停滞不前,群体多样性过低造成的。为了克服这些不足,本文提出了一种混合元启发式算法-AHPSO,将PSO算法与GA算法[8]结合在一起,利用遗传操作不断引入新的信息指导群体的进化。定义了粒子相似度及粒子能量,粒子相似度阈值随迭代次数动态自适应变化,而粒子能量阈值与群体进化程度及其自身进化速度相关。使用排序策略保持群体的多样性,当相邻的两个粒子的相似度大于其当前的相似度阈值时,对其中的一个粒子执行变异操作。设计了一种基于遍历矩阵的快速计算最小完工时间方法。此外,针对进化后期进化速度慢得缺点,提出了一种基于邻域的随机基金项目:国家自然科学基金重大项目基金(60496320,60496321),国家自然科学基金资助项目(60773097,60873148),新世纪优秀人才支持计划项目基金、吉林省科技发展计划项目基金(20060532,20080107),吉林省青年科研基金项目(20080107,20080617),东北师范大学自然科学青年基金(20081003)《计算机学报》2009年11期,2009,32(11)2贪心策略进一步提高算法的性能。最后,分析了算法的复杂度及收敛性,并通过实验对比证明了算法的有效性。2AHPSO算法为了使用PSO算法求解调度问题,Rameshkumar提出了一种置换离散粒子群算法[7],粒子在更新过程中只交换相应位置的元素,而不引入新元素。受其启发,我们将置换的思想引入到所提出的算法中。对于一个含有n个作业的流水调度问题,粒子i的位置及速度均被表示为一个满足“alldifferent”约束[9]的n维向量,即所有作业的一个全排列,然后结合GA算法中的交叉及变异操作不断更新粒子的位置及速度。2.1算法进化模型在PSO算法中,每个粒子的行为主要受其当前动量项、个体认知部分及群体认知部分的影响。因此,传统的粒子速度公式可通过将粒子的当前速度与其个体最优解及当前的群体最优解分别进行交叉来取代,粒子的位置更新也相应的变为将粒子当前位置与当前速度交叉求得。粒子速度及位置更新公式可表示如下:(1)()iigbestibestVkVkPP(2.1)(1)()(1)iiiXkXkVk(2.2)其中符号表示交叉操作。由上面的公式可以看出,每个粒子追随其当前个体最优解及全局最优解运动。与传统的PSO算法一样,它具有快速收敛,计算简单等优点。但是,进化过程中粒子的速度会迅速逼近零,即粒子的当前速度和其当前位置相同,使算法易于陷入局部最优解,如实验部分的AHPSO-S-A算法所示。为此,本文引入了粒子能量及粒子能量阈值的概念。粒子能量阈值随着迭代次数粒子的进化速度动态自适应调整,使算法在进化初期具有较强的全局搜索能力,在后期则侧重局部精化能力。定义1:给定粒子Pi,其当前位置和速度分别为Xi、Vi,当前的个体最优位置和群体最优位置分别为Pibest、Pgbest。此粒子的当前所具有能量可计算如下:110.6*(),()1.4*(),()2*dimdimibestgbestiijkisamePjPjsameXkVkenergyPdim,其中0,1ifxysamexyifxy。粒子能量用于刻画粒子的搜索能力,与粒子当前状态及群体当前最优位置相关。易见[0,1]ienergyP。定义2:设当前迭代次数为currGen,最大迭代次数MAXGEN。eIni与eFin分别代表粒子能量的上界及下界,则对于给定的粒子Pi,其能量阈值定义如下:(*(()))()*()eiiMAXGENcurGenspeedPcurGenenergyThresholdPeInieFineFinMAXGEN其中(())()(1)iibestibestspeedPkPkPk,e为预先指定的常量,用于控制粒子能量阈值的变化趋势。粒子能量阈值与群体进化程度及粒子进化速度相关。可以看出,算法运行过程中粒子能量不断变化,当粒子能量小于它当前的能量阈值时,对其当前速度及位置执行变异操作如公式(2.3-2.4)所示,以此引入新的信息增加粒子能量,扩大其能够到达的搜索范围。()(())iiVkmutationVk(2.3)()(())iiXkmutationXk(2.4)以上模型在迭代过程中群体多样性会不断减少,全局搜索能力不断下降,影响群体的进化质量,如实验中AHPSO-S算法所示。由此,我们定义了粒子相似度及粒子相似度阈值,采用排序策略保持群体的多样性。粒子相似度用于度量两个粒子的相近程度,根据相邻两个粒子的个体最优位置的距离定义。《计算机学报》2009年11期,2009,32(11)3定义3:给定粒子Pi、Pj,它们的相似度计算如下:1(),()(,)dimibestjbestkijsamePkPksimilarityPPdim其中,dim表示待加工的作业数量。定义4:设最大迭代次数MAXGEN,粒子相似度阈值的取值范围为[sIni,sFin],则当迭代次数为currGen时粒子相似度阈值定义如下:(*()*()sMAXGENcurGensimiThresholdcurGensInisFinsFinMAXGEN其中s为一常量,用于控制粒子相似度阈值每次变化的幅度。粒子相似度阈值设定当前群体中粒子之间距离的下界,它随迭代次数动态自适应变化。在算法运行的初始阶段,粒子相似度阈值取值较大,使得粒子在搜索空间中分布均匀,扩大搜索范围;随着群体的不断进化,相似度阈值不断减小,使得粒子之间能够逐渐聚合到当前的全局最优位置,加强搜索最优位置的邻域,进一步提高最优解的精度。为了保持群体的多样性,在进化过程中,根据适应度值对群体中的所有粒子进行排序,当两个相邻的粒子的相似度小于当前的粒子相似度阈值时,对较差粒子的历史最优解执行变异操作,如公式(2.5)所示。(1)((1))ibestibestPkmutationPk(2.5)通过变异操作能够在群体中重新引入新的有用信息,指导粒子搜索那些未曾搜索过的区域,进一步抑制算法的早熟收敛。2.2适应度计算为了提高算法的速度,我们设计了一种基于遍历矩阵的快速计算粒子适应度的方法。对于给定的n个待加工作业,每个作业包含m道工序,我们将调度12,,,nSsss的加工时间矩阵T定义为1212121,1,1,2,2,2,,,,nnnssssssmsmsmsttttttTttt其中isJ,jkt表示作业j在第k台处理机上的加工时间,1in,1jm。算法中粒子的适应度值由最小完工时间表示,根据以上定义,通过对问题数学模型的分析,给定的调度S对应的最小完工时间,可通过按照如下公式遍历矩阵T求得。1,11,111,1,1,1,,1,,1,1,1,,11,11,11,1jjiiijijijijijijijijijtifijttifijttifijtttifttttiftt遍历完成后,新计算出的,mnt的值就是调度S的最小完工时间。2.3算法描述及分析在我们的AHPSO算法中,群体的初始化采用随机的方式,即在搜索空间中随机的产生粒子的初始位置《计算机学报》2009年11期,2009,32(11)4和初始速度,将每个粒子的历史最优位置设置为其当前位置,并计算每个粒子当前位置所代表调度的最小完工时间,将其作为粒子的适应度值。根据算法的进化模型,AHPSO算法可描述如下:AlgorithmAHPSObegininitialize(pop);currGen:=0;whilecurrGenMAXGENdoforj:=1topopNumdopop[j].v[currGen+1]:=pop[j].v[currGen]gBestpop[j].pBest;pop[j].x[currGen+1]:=pop[j].x[currGen]pop[j].v[currGen+1];pop[j].fitness:=Cmax(pop[j].current);ifpop[j].fitnessCmax(pop[j].pBest)thenpop[j].pBest:=pop[j].current;endififpop[j].fitnessCmax(gBest)thengBest:=pop[j].current;endif.c:=j;whilepop[c].fitnesspop[c-1]&&c!=1doswap(pop[c],pop[c-1]);c:=c-1;endwhileendforfork:=1topopNumdoparticleEnergy:=particleEnergyC
本文标题:求解车间调度问题的自适应混合粒子群算法-计算机学报
链接地址:https://www.777doc.com/doc-1381973 .html