1.基于改进遗传算法的带有缓存约束的作业车间调度方法,其特征在于,具体为:步骤一:建立带有缓存约束的作业车间调度数学模型;
设有n个独立的、无抢占式的作业必须在m台机器上加工,以最小化完工时间作为优化目标建立目标数学模型:式中:C表示所有工件的最大完工时间,Cj表示工件j的完工时间,j表示工件索引,n表示工件数量;
约束条件:
Pijk>0,i=1,2,...pj;j=1,2,...,n;k=1,2,.....,m (2)式(2)表示工件的每道工序加工时间非负约束;其中Pijk为工件j的第i道工序在机器Mk上的加工时间,m表示机器数量,k表示机器索引,M表示机器集合,Mk表示机器k,Mk∈M,pj表示工件j的工序数,i表示工件j在指定加工路线上的工序索引;
式(3)表示不同工件的工序之间无优先级关系,同一工件要满足工序间的工艺关系;式中hijk表示工件j的第i道工序是否在在机器Mk上,如果是则hijk=1,否则hijk=0;Sijk表示工件j的第i道工序在机器Mk上的开始加工时间;
式(4)表示工件同一时刻只能在一台机器上加工;
式(5)表示一台机器在同一时刻只能加工一个工件;
式(6)表示有限缓存约束,不包括每个作业的工艺路线中的最后一道工序,工件最后一道工序加工完成则视为离开生产系统不再占用资源;在这种情况下,在工件j的第i道工序Oij完成之后,其在机器对应缓存区中的离开时间必须等于其同一工件后一道工序Oi+1,j的开始时间;式中βijk表示工序Oij在机器Mk上加工完成后是否需要进入对应的缓存,如果是则βijk=1表示,否则βijk=0;Bijk表示工件j的第i道工序加工完成后在机器Mk上的阻塞时间,STijk表示工件j的第i道工序加工完成后在机器缓存中的存放时间;
式(7)表示阻塞约束,缓存不足的情况下会造成机器阻塞,不包括每个作业的工艺路线中的最后一道工序;在这种情况下,在Oij完成之后,Mk可能由于对应的缓存被占满而被阻塞;式中αijk表示机器Mk对应的缓存容量是否充足,如果缓存容量不够则αijk=1,否则αijk=
0;
步骤二:改进遗传算法优化求解,改进遗传算法优化求解步骤如下:
步骤1:初始化参数:设置种群大小PopSize,代沟OPT,交叉概率为Pc1、Pc2,变异概率为Pm1、Pm2,最大迭代次数为Gmax;
步骤2:初始化种群:采用实数编码随机产生工序排序生成初始种群Initial_Pop;
步骤3:计算种群适应度函数值:根据公式(1)计算目标函数值再将目标函数值转化为适应度值;
步骤4:选择操作:根据适应度值和代沟OPT选择个体,采用轮盘赌方式进行选择;
步骤5:交叉操作:根据选择后的种群进行良种交叉与整数交叉相结合,根据个体适应度值和公式(8)确定是否交叉;良种交叉是用种群的精英个体和选择后的适应度值较差的部分个体进行交叉操作;选择操作后,除了进行良种交叉个体外的其余个体进行洗牌交叉;
式中:fmax表示表示种群中个体最大适应度值,favg表示表示种群平均适应度值,f’表示两个交叉个体中较大的适应度值,f表示表示变异个体适应度值,Pc1、Pc2分别表示最大、最小交叉概率;
步骤6:变异操作:根据个体适应度值和公式(9)采用两点变异,随机交换两个不同工件的工序位置进行变异;
式中:Pm1、Pm2:表示最大、最小变异概率;
步骤7:种群合并:采用精英保留策略,根据父代和子代个体适应度值保留前10%的精英个体,剩下的个体用遗传操作后的个体替换父代中的个体;
步骤8:判断是否满足最大迭代次数,满足则输出结果,不满足则返回步骤2。
2.根据权利要求1所述的基于改进遗传算法的带有缓存约束的作业车间调度方法,其特征在于,所述步骤3中需要进行解码操作,具体步骤如下:S1:根据工序排序进行解码,找到当前解码Oij在机器Mk上的最早开始加工时间Sijk;
S2:如果Oij为工件第一道工序,即i=1,则返回步骤S1继续解码下一个工序,否则转到步骤S3;
S3:根据工序Oij的开始加工时间Sijk与前一道工序Oi-1,j的结束时间Ci-1,j,k’进行判断,如果Ci-1,j,k’=Sijk转到步骤S4,否则转到步骤S5;
S4:更新机器加工时间、缓存时间、阻塞时间,判断工序Oij是否为工件最后一道工序,如果是则转到步骤S6,否则转到步骤S1;
S5:判断时间段[Ci-1,j,k’,Sijk]内前一道工序Oi-1,j加工机器Mk’对应的输出缓存是否可用,如果可用则转到步骤S4,否则转到步骤S7;
S6:判断所有工件是否均已完成解码,如果是则结束,否则转到步骤S1;
S7:缓存不可用的情况下判断时间段[Ci-1,j,k’,Sijk]前一道工序Oi-1,j对应的机器Mk’上是否已安排其他工件加工,如果没有安排其他工序则转到步骤S4,否则转到步骤S8;
S8:找到时间段[Ci-1,j,k’,Sijk]内机器Mk’缓存可用的时刻,判断从前一道工序完成到缓存可用时刻机器上有无其他已安排的工序且从缓存可用时刻到本工序开始时刻缓存都能满足,如果阻塞时间段无其他已安排工序且缓存时间段缓存可用则转到步骤S4,否则转到步骤S9;
S9:根据时间段[Ci-1,j,k’,Sijk]的冲突点对前一道工序Oi-1,j进行调整,直到该工件所有已解码工序之间没有冲突为止,否则转到步骤S4。
3.根据权利要求2所述的基于改进遗传算法的带有缓存约束的作业车间调度方法,其特征在于,所述步骤S9中对工序调整具体为:S91找到工序Oi-1,j在机器阻塞时间段或者缓存时间段内的冲突点,根据冲突点重新调整工序Oi-1,j的最早开始加工时间和结束时间;
S92判断调整后的Ci-1,j,k’与Oij的开始加工时间Sijk之间的关系,如果Ci-1,j,k’=Sijk则转到S93,如果Ci-1,j,k’
S93判断工序Oi-1,j是否存在前置工序,如果不存在则结束调整,否则转到步骤S96;
S94判断Oij与Oi-1,j是否存在冲突,如果存在则返回步骤S91继续调整Oi-1,j,否则转到步骤S93;
S95根据调整后的Ci-1,j,k’重新调整工序Oij的开始加工时间Sijk,再判断Oij与Oi-1,j是否存在冲突,如果存在则返回步骤S91续调整Oi-1,j,否则判断Oij是否存在已解码的后置工序,如果有则转到步骤S97,否则转到步骤S93;
S96判断工序Oi-2,j与Oi-1,j之间是否存在冲突,如果存在则令i=i-1返回步骤S91,否则结束调整;
S97判断工序Oij与Oi+,j之间是否存在冲突,如果存在则令i=i+1返回步骤S91,否则转到步骤S93。