
本发明涉及柔性作业车间生产调度控制技术领域,具体涉及一种柔性作业车间人员配置及作业排序方法。
背景技术:
一般柔性作业车间调度问题,很大一部分只是单纯的解决系统中和设备相关的调度问题,却忽略了车间中的人员配置问题。生产过程中的任务分配不协调或者工人加工能力与其岗位需求不匹配,会极大地浪费生产线,提高生产成本。因此,在柔性作业车间调度问题中考虑人员配置问题就显得尤为重要。合理的人员配置不仅可以降低人力资源成本还能使工人保持良好的工作状态。
在柔性作业车间中,已有很多单一算法进行了不同的尝试,但同时对设备选择和作业排序问题均未得到很好的解决。蚁群算法适应工序设备选择问题的求解特征,但不适合求解作业排序方案,并且存在前期没有指导,导致收敛过慢,后期收敛过快的缺点。而作业排序优劣与遗传算法逐个按基因位进化(解码)后由整体适应值指引求解过程相似,但遗传算法并不适合求解设备选择问题,并且存在容易产生不可行解,使算法运行得出最优解的速度过慢的缺点。
技术实现要素:
本发明的目的是为了解决上述问题,提供一种基于蚁群-遗传双层算法的柔性作业车间人员配置及作业排序方法。
本发明为实现上述目的所采用的技术方案是:
一种柔性作业车间人员配置及作业排序方法,使用上层蚁群算法求解资源配置问题,下层遗传算法求解既定资源配置方案下的作业排序问题,包括以下步骤:
第一步、设计无工艺约束的蚂蚁游历地图;
将待加工工序看成蚂蚁要游历的结点,结点间两两互联,形成蚂蚁游历地图,为便于蚂蚁搜索的开始与终止,在蚂蚁游历地图中加入虚拟起始结点和虚拟终止结点,分别表示蚂蚁游历开始的起点和游历完所有结点后结束游历的终点;并按式(8)得到蚂蚁游历地图路径上结点间的信息素τxy,ij;
τxy,ij=rand*(τmax-τmin)+τmin)(8)
式中,rand表示(0,1)之间的随机数,τmax,τmin分别表示信息素浓度上限和下限,设τmax=10,τmin=0.1;
第二步、局部启发式规则信息设计,并由此确定资源配置方案;
局部启发式规则信息dxy,ij包含历史和当前两类启发式信息,其中,历史启发式信息既总结了已游历任务结点对各设备和人员能力的占用情况,又反映了接收新任务时各设备和人员上的繁忙或拥挤程度,包括设备已承载负荷人员已承载负荷设备已承载工序个数nm和人员已承载工序个数nw;当前启发式信息反映当前可游历结点的设备工时和人员作业效率,包括设备的工序加工加工时间tijm和人员操作设备的效率pwm;其次,利用设备已承载符合与人员已承载符合之积最小化的规则,同时选定工序(i,j)的加工设备和操作员工时确定工序的实际加工时间tijm′w′;最后,根据式(14)得到蚂蚁从结点(x,y)到结点(i,j)的局部启发式信息;
其中m′表示从可选加工设备中选出的一个特定加工设备,w′表示从可选操作中选出的一个特定操作人员;
第三步、蚂蚁选择下一个结点的游历方式设计;
蚂蚁选择蚂蚁游历地图中的结点时既要依据全局信息τxy,ij,又要依据结点间局部启发式信息dxy,ij,按式(15)选择下一步游历的结点,
其中,pxy,ij表示蚂蚁游历到地图中结点(x,y)时,下一步选择游历结点(i,j)的概率;ωxy为地图上与结点(x,y)相连且未被游历的结点集合;τxy,ij由下层遗传算法求解的任务总执行时间t进行更新,(xy,ij)表示蚂蚁游历路径la上的结点对;
第四步、下层遗传算法进行基于工序的编码及实数解码过程;
下层遗传染色体采用基于工序的编码方式;染色体长度cl为所有工件工序数量之和,即染色体中基因代表工序,包含工件编号i、工序编号j、设备编号m、人员编号w、在工序执行人员和加工设备选定情况下的实际工时tijm′w′、开始加工时间结束加工时间工序优先权值qij与工序相关信息;其中,工件编码和工序编号(i,j)共同作为基因标识,开始加工时间和结束加工时间在解码过程中得出,而工序优先权值qij取实数,通过取(0,1)随机数方式赋值,既代表解码过程中工序被加工的次序,又是遗传操作的对象;
第五步、下层遗传算法求解工序的开始加工时间和结束加工时间,并确定作业排序方案;
依据公式(17),计算工序(i,j)的开始加工时间
其中,etij为工件i的第j道工序可开工最早时间,mtm为加工设备m的可用时间,wtw为操作人员的可用时间;
通过该工件i的第j道工序的结束加工时间分别更新该工件i的下道工序j+1的可开工最早时间,加工设备m的可用时间和操作人员w的可用时间;
第六步、下层遗传算法采用交叉算子、突变算子及精英保留策略得到新种群;
在进行交叉和变异前,要依据染色解码后任务执行时间倒数作为适应值,采用轮赌法选择进行繁殖的父代个体,
1)交叉算子
首先任意选择不同的两个父代个体pa1和pa2;然后将pa1的优先权值赋予pa2,将pa2的优先权值赋予pa1;
2)突变算子
首先随机选择子代个体中的一个或多个基因位;然后对已选出基因位的优先权值重新从(0,1)之间进行赋值;
3)采用父子排序精英保留策略;
将染色体解码后子代个体与父代个体按适应值排序后,保留与遗传种群规模相当的优秀个体作为子代种群形成新种群;
第七步、下层遗传算法依据上层蚁群算法的既定资源配置方案,对人员和设备上的任务进行排序,求出任务总时间,并将总时间的倒数作为适应值,将求得的适应值反馈给上层蚁群算法,以指导蚂蚁以后的游历过程。
本发明的有益效果是:
第一.充分搜索工序选择加工设备及操作人员的匹配方案;
第二.平衡每个加工设备和每名操作人员的负荷,使算法运行过程中工序确定加工设备及操作人员的过程更加合理;
第三.减少蚁群算法运行过程中的随机性;
第四.简化了编码和解码过程;
第五.提高作业排序方案的产生效率;
第六.避免了算法运行过程中产生不可行解;
第七.使遗传算法进化快速、稳定收敛;
第八.提高了算法运行过程中,工序确定加工设备及操作人员的速度,并增加算法稳定性。
本发明用上层蚁群算法求解资源配置问题,下层遗传算法求解既定资源配置方案下的作业排序问题。在上层蚁群算法中,为便于蚂蚁游历过程中配置工序的加工设备和操作人员,设计了一种新的蚂蚁游历地图、蚂蚁游历方式,以及局部启发式规则信息。在下层遗传算法中,采用基于工序的编码和实数解码方式,以及促进算法收敛的父子排序精英保留策略,并将求得的适应值反馈给上层蚁群算法,以指导蚂蚁以后的游历过程。
附图说明
图1表示柔性作业车间人员配置问题示例;
图2表示人员可操作的设备及工作效率示例;
图3表示蚂蚁游历地图;
图4表示遗传染色体结构;
图5表示蚁群-遗传算法结构;
图6表示解决柔性作业车间人员配置和作业排序的算法流程。
具体实施方式
本发明柔性作业车间人员配置及作业排序问题描述:
加工系统有w个操作人员、m台设备和n个工件,每个人员可以操作多种设备,但效率有所不同,这从图1和图2的示例中可以看出(图1中的“*”表示该机器无法加工此工序,图2中的“*”表示该机器不可被此加工人员操作),每个工件包含多道工序,工序顺序是预先确定的,并可在多台不同设备上加工,且加工时间随设备性能的不同而变化。
本发明预先建立了一些约束条件:(1)所有工件具有相同的优先级;(2)每台设备、人员同一时间内只能执行一道工序;(3)同一工件的工序之间有先后约束,不同工件的工序之间没有先后约束;(4)工件加工过程不能中断;(5)工件首工序及人员、设备资源在零时刻可用。为说明本发明提出的解决此问题的算法,设计了以下数学模型来具体展现实现过程(表1为模型符号定义)
表1
(1)建立0-1整数规划
(2)约束函数
tijwm=tijm/pwm(3)
其中:公式(1)表示所求解的最小任务总执行时间等于最小化所有工序中最晚完工时间;公式(2)表示工序(i,j)在设备m上由工人w加工的结束时间等于该工序的开始时间加上工人的实际时间,且加工过程不能中断;公式(3)表示标准的设备加工时间tijm和人员的作业效率pwm决定了实际的加工执行时间tijwm;公式(4)表示同一工件不同工序的时序约束,即工件i的工序j的完工时间早于该工件下道工序(j+1)的开始时间;公式(5)表示设备m上加工的不同工序(i,j)和(x,y)的加工时间不能重叠;公式(6)表示同一时刻工序(i,j)只能在同一台机器上加工;公式(7)表示同一时刻工人w只能操作一台机器。
本发明柔性作业车间人员配置及作业排序方法(简称方法,参见图5),包括以下步骤:
第一步、设计无工艺约束的蚂蚁游历地图;
蚂蚁游历地图(参见图3)中结点表示待加工工序,结点间彼此两两互联,同时,为便于蚂蚁搜索的开始与终止,在蚂蚁游历地图中加入虚拟起始结点和虚拟终止结点,分别表示蚂蚁游历开始的起点和游历完所有结点后结束游历的终点;并按式(8)得到蚂蚁游历地图路径上结点间的信息素τxy,ij;
τxy,ij=rand*(τmax-τmin)+τmin)(8)
式中,rand表示(0,1)之间的随机数,τmax,τmin分别表示信息素浓度上限和下限,设τmax=10,τmin=0.1;
第二步、局部启发式规则信息设计,并由此确定资源配置方案;
首先,局部启发式规则信息dxy,ij包含历史(已游历)和当前(预游历)两类启发式信息。其中,历史启发式信息既总结了已游历任务结点对各设备和人员能力的占用情况,又反映了接收新任务时各设备和人员上的繁忙(或拥挤)程度,包括设备已承载负荷人员已承载负荷设备已承载工序个数nm和人员已承载工序个数nw;当前启发式信息反映当前可游历结点的设备工时和人员作业效率,包括设备的工序加工加工时间tijm和人员操作设备的效率pwm;其次,利用设备已承载符合与人员已承载符合之积最小化的规则,同时选定工序(i,j)的加工设备和操作员工时确定工序的实际加工时间tijm′w′;最后,根据式(14)得到蚂蚁从结点(x,y)到结点(i,j)的局部启发式信息;
1)计算设备已承载负荷
2)计算人员已承载负荷
3)计算设备已承载工序个数
nm=∑hijwm(ij)∈ωij,hijwm=1,i=1,…,n,j=1,…ji,w=1,…,w(11)
4)计算人员已承载工序个数
nw=∑hijwm(ij)∈ωij,hijwm=1,i=1,…,n,j=1,…ji,w=1,…,w(12)
5)计算工序的实际加工时间
6)计算蚂蚁从结点(x,y)到结点(i,j)的局部启发式信息
其中m′表示从可选加工设备中选出的一个特定加工设备,w′表示从可选操作中选出的一个特定操作人员。
第三步、蚂蚁选择下一个结点的游历方式设计;
蚂蚁选择蚂蚁游历地图中的结点时既要依据全局信息τxy,ij,又要依据结点间局部启发式信息dxy,ij,按式(15)选择下一步游历的结点,
其中,pxy,ij表示蚂蚁游历到地图中结点(x,y)时,下一步选择游历结点(i,j)的概率;ωxy为地图上与结点(x,y)相连且未被游历的结点集合;
由下层遗传算法求解的任务总执行时间t按式(16)进行更新全局信息τxy,ij,其中,(xy,ij)表示蚂蚁游历路径la上的结点对。
第四步、下层遗传算法进行基于工序的编码及实数解码过程;
下层遗传染色体采用基于工序的编码方式;染色体长度cl为所有工件工序数量之和,即如图4所示,染色体中基因代表工序,包含工件编号i、工序编号j、设备编号m、人员编号w、实际工时tijm′w′、开始加工时间结束加工时间工序优先权值qij等与工序相关信息。其中,工件编码和工序编号(i,j)共同作为基因标识,人员编号w和设备编号m代表由上层蚂蚁游历后选定的工序执行人员和加工设备,实际工时tijwm是在工序执行人员和加工设备选定情况下依据公式(3)计算得到,开始加工时间和结束加工时间在解码过程中得出,而工序优先权值qij取实数,通过取(0,1)随机数方式赋值,既代表解码过程中工序被加工的次序,又是遗传操作的对象。
第五步、下层遗传算法求解工序的开始加工时间和结束加工时间,并确定作业排序方案;
依据公式(17),计算工序(i,j)的开始加工时间并进一步由公式(2)计算该工序(i,j)的结束加工时间更新该工件i下道工序可开工最早时间,加工设备m和操作人员w可用时间,即
其中,etij为工件i的j工序可开工最早时间,mtm为加工设备m的可用时间,wtw为操作人员的可用时间;
第六步、下层遗传算法采用交叉算子和突变算子及精英保留策略得到新种群;
在进行交叉和变异前,要依据染色解码后任务执行时间倒数作为适应值,采用轮赌法选择进行繁殖的父代个体
1).交叉算子
1.任意选择不同的两个父代个体pa1和pa2;
2.将pa1的优先权值赋予pa2,将pa2的优先权值赋予pa1。
2).突变算子
1.以一定的概率随机选择子代个体中的一个或多个基因位;
2.对已选出基因位的优先权值重新从(0,1)之间进行赋值。
3)采用新的父子排序精英保留策略;
将解码后子代个体与父代个体按适应值排序后,保留与遗传种群规模相当的优秀个体作为子代种群。
第七步、下层遗传算法依据上层蚁群算法的既定资源配置方案,将求得的适应值反馈给上层蚁群算法,以指导蚂蚁以后的游历过程。
在上层蚁群算法求得的既定设备-人员-工序方案下,由下层遗传计算任务执行总时间,并以时间的倒数作为适应值,选出最优适应值更新蚂蚁a的适应值,即令蚂蚁a的适应值等于最优适应值。若优于蚁群当前适应值,则令蚁群当前适应值等于更新后的蚂蚁a的适应值。
本发明方法的具体执行过程是:
运行前初始化参数:蚂蚁种群规模qa、遗传种群规模qc、上层种群进化代数na、下层种群进化代数nc、信息素挥发率ρ为0.9、遗传算法的交叉概率pc为0.8、变异概率pm为0.1。之后进入以下过程:
步骤1:生成一只蚂蚁a,令蚂蚁计数器r=r+1。
步骤2:利用公式(14)计算各可游历结点局部启发式信息,并确定该局部启发式信息取值所对应的设备及人员为该工序当前选定的加工设备m和操作人员w,进一步依据公式(3)计算该工序的实际加工时间tijwm。
步骤3:利用公式(15)结点间转移概率,蚂蚁a选定下一步游历的结点,令结点计数器g=g+1。若g=cl,表示所有结点均游历完成,进入步骤4;否则,令,转入步骤2.
步骤4:下层遗传染色体进化,生成蚂蚁a游历路径la选定的人员-设备-任务匹配方案的任务总执行时间t。
步骤4.1:初始化遗传染色体种群。只针对工序优先权值qij用(0,1)间随机数赋值。
步骤4.2:选择可解码工序集合中优先权值最小的工序(0,1),并令可解码工序集合φ是由所有工件的上道工序已经解码的工序或首道工序组成的工序集合。
步骤4.3:依据公式(17),计算工序(i,j)的开始加工时间并进一步由公式(2)计算该工序(i,j)的结束加工时间更新该工件i下道工序可开工最早时间,加工设备m和操作人员w可用时间,
步骤4.4:若为空,表示所有工序均已解码,计算任务的最小化最大完工时间,否则,转入步骤4.4.1。
步骤4.4.1:选择:依据染色体解码后任务总执行时间倒数作为适应值,即采用赌轮法选择进行繁殖的父代个体。
步骤4.4.2:交叉:任意选择不相同的两个父代个体pa1和pa2,以基因中工序优先权值qij为交叉操作对象利用公式(18)形成子代个体ch。其中,pc为交叉概率,rnd∈(0,1)的随机数。
步骤4.4.3:变异:对新生成的子代个体ch各基因位,以概率pm利用公式(19)进行变异。其中,α∈(0,1)。
步骤4.4.4:计算染色体适应值若该适应值优于当前种群最优适应值即则令
步骤4.5:将解码后子代个体与父代个体按适应值排序后,再保留优秀的前qc个个体作为子代种群形成新种群。
步骤4.6:令d=d+1。若则令若d>nc,则遗传进化结束,转入步骤5;否则,转入步骤4.5。d为遗传进化计数器。
步骤4.7:遗传进化生成子代种群,转入步骤4.2。
步骤5:用下层遗传染色体种群的最优适应值更新蚂蚁a的适应值,即若优于蚁群当前适应值即则若r≥qa,则转入步骤6,否则,转入步骤步骤6:令u=u+1。若则r=0,转入步骤1;否则,转入步骤7。u为蚂蚁进化计数器。
步骤7:若u>na,则算法结束;否则按公式(20)更新蚂蚁地图信息素,令r=0,转入步骤1。
其中,为最优路径,ρ为信息素挥发率,公式(20)含义是只对最优路径上结点间信息素增加,其他结点间均减少(挥发)。信息素更新后,设定最大、最小信息素值分别为所以若则若则
本发明未述及之处适用于现有技术。