1.一种基于改进遗传算法的柔性作业车间调度方法,其特征在于,包括以下步骤:步骤1、建立柔性作业车间调度的模型;
步骤2、确定模型的约束条件;
步骤3、按照先验知识进行种群初始化,采用并行双链式编码,根据柔性作业车间调度的两个子问题:机器选择和工序排列,进行编码;
步骤4、使用最优插入法对每个个体进行适应度计算,通过锦标赛选择法选择出要进行后续操作的种群;
步骤5、对工序编码层采用IPOX交叉法,对机器选择编码层采用多点交叉法;
步骤6、对工序编码层进行局部搜索,对机器选择编码层进行多重变异操作;
步骤7、对新一代的种群根据适应度进行排序,保留当代的最优解;
步骤8、判断是否满足终止条件,终止条件为是否达到最大迭代次数gen,若满足执行步骤九,否则,返回步骤4;
步骤9、输出最优结果,并给出相关的收敛曲线和调度甘特图。
2.根据权利要求1所述的一种基于改进遗传算法的柔性作业车间调度方法,其特征在于:在步骤1中,建立柔性作业车间调度的模型,具体步骤如下:步骤1.1、建立数学模型,以最大完成时间最小为目标函数:f=min{max Ci},其中Ci表示工件i的完成时间,i=1,2,3,...,n;n是待加工工件的数量。
3.根据权利要求1所述的一种基于改进遗传算法的柔性作业车间调度方法,其特征在于:在步骤2中,包含工序约束、机器约束和时间约束;
定义下列数学符号:
Ω:所有工件集;
n:工件总数;
m:机器总数;
hi:工件i工序总数;
i:工件序号索引 i=1,2,...,n;
j:工序序号索引 j=1,2,...,hi;
k:机器序号索引 k=1,2,...,m;
Oij:工件i的第j道工序;
Pij:Oij的可选加工机器集;
Oijk:Oij在机器k上加工;
Tijk:Oij在机器k上加工的时间;
PS:所有工件工序之和;
Ci:工件i的完工时间;
Sij:Oij的开始时间;
Cij:Oij的开始时间;
柔性作业车间问题的约束条件如下:Sij+Xijk×Tijk≤Cij (1)Ci(j‑1)≤Sij (2)Cij≤Cmax (3)Sij+Tijk≤Sxy+H(1‑Yijxyk) (4)Ci(j‑1)≤Sij+H(1‑Yijxyk) (5)Sij≥0,Cij≥0 (7)式(1)和式(2)表示同一工件的工序必须按照顺序逐步加工;式(3)表示任意工序的完工时间都不得超过最大完工时间;式(4)和式(5)表示任一时刻的任一机器只允许同时处理一道工序,其中H是一个很大的数;式(6)表示在某一时刻一道工序只能同时由一台机器加工;式(7)表示任意工序的开始时间和完成时间均为非负的,且任意工件都可从0时刻开始加工。
4.根据权利要求1所述的一种基于改进遗传算法的柔性作业车间调度方法,其特征在于:在步骤3中,按照先验知识进行种群初始化,采用并行双链式编码,根据柔性作业车间调度的两个子问题:机器选择和工序排列,进行编码;具体步骤如下:步骤3.1:工序层上每一个数字表示一道工序,机器层上的每一个数字表示对应工序的选择机器;
步骤3.2、对机器选择部分的编码按照启发式规则进行初始化以代替随机初始化,分别是完全加工时间最小机器选择、部分加工时间最小机器选择和随机加工时间机器选择;
步骤3.3、设置改进遗传算法求解柔性作业车间调度问题的相关参数,包括种群规模pop,交叉概率pc,变异概率pm,最大迭代次数gen;
步骤3.4、算法的终止条件为是否达到最大迭代次数。
5.根据权利要求1所述的一种基于改进遗传算法的柔性作业车间调度方法,其特征在于:在步骤4中,使用最优插入法对每个个体进行适应度计算,通过锦标赛选择法选择出要进行后续操作的种群,具体步骤如下:随着工件加工数量的积累,各机器上会出现加工空闲,造成机器负载率的降低的同时,也加大了最大完成时间,故而采用最优插入法来提高求解质量;
步骤4.1、在满足机器约束和工件约束的情况下,将当前加工工序插入到一个与它加工时间最接近的空闲时间段里;
通过锦标赛选择法选出后续操作的种群,其步骤如下:步骤4.2、从当前种群中随机选择若干个个体;
步骤4.3、对选择的个体进行适应度计算,将适应度最高的个体插入到新种群中;
步骤4.4、重复上述步骤直到新种群中的个体数量等于旧种群。
6.根据权利要求1所述的一种基于改进遗传算法的柔性作业车间调度方法,其特征在于:在步骤5中,对工序编码层采用IPOX交叉法,对机器选择编码层采用多点交叉法,具体步骤如下:
编码为双层编码,进行交叉操作时分别对各层进行交叉,确保没有非法解产生,使后续的操作仍然可行;
对工序编码层的IPOX交叉步骤如下:步骤5.1、从父代种群中随机选取两个个体father1和father2;
步骤5.2、判断是否满足交叉概率pc,若满足则执行步骤5.3,否则返回步骤5.1;
步骤5.3、将n个工件随机分为两个工件集Ω1和Ω2;
步骤5.4、将father1中包含在工件集Ω1中的工序号保留相对位置复制到子代个体child1中,将father2中包含在Ω2中的工序号保留相对位置复制到子代个体child2中;
步骤5.5、将father2中包含在工件集Ω2中的工序号按照顺序插入到child1空白位置,将father1中包含在工件集Ω1中的工序号按照顺序插入到child2的空白位置;
步骤5.6、将child1和child2放入到子代种群中;
步骤5.7、判断终止条件,如果子代种群个体数等于父代种群则终止,否则,返回步骤
5.1;
机器选择部分的交叉步骤操作如下:步骤5.8、随机选择两个父代个体father1和father2;
步骤5.9、判断是否满足交叉概率,若满足,执行步骤5.10,否则,返回步骤5.8;
步骤5.10、随机产生一组0、1数组L;
步骤5.11、子代个体child1继承father1对应L数组为1位置的基因,子代个体child2继承father2对应L数组为1位置的基因;
步骤5.12、将father2中剩余未被复制的基因按照顺序插入到child1的空白位置,将father1中剩余未被复制的基因按照顺序插入到child2的空白位置;
步骤5.13、将child1和child2放入到子代种群中步骤5.14、判断终止条件,如果子代种群个体数等于父代种群则终止,否则,返回步骤
5.8。
7.根据权利要求1所述的一种基于改进遗传算法的柔性作业车间调度方法,其特征在于:在步骤6中,对工序编码层进行局部搜索,对机器选择编码层进行多重变异操作;具体步骤如下:
对机器选择编码层进行多重变异操作步骤如下:步骤6.1、随机选择一个父代个体father1;
步骤6.2、随机从n个工件中选择若干个工件步骤6.3、从被选中的每一个工件随机选择一道工序;
步骤6.4、未被选中的father1基因保持原位不动,对选中的部分进行枚举排序,得到一组新染色体;
步骤6.5、对新得出的染色体组进行适应度计算,如果存在适应度大于father1的新个体child1,则替换father1;否则,不做任何操作。
对工序编码层进行局部搜索步骤如下:步骤6.6、随机选择一个父代个体father1;
步骤6.7、判断是否满足变异概率,如果满足,执行步骤6.8,否则,返回步骤6.6;
步骤6.8、随机选择一个与当前机器不同的机器加工,如果只有一台机器可供选择,则不执行任何操作;
步骤6.9、father1中与数组L为1对应位置的工序选择加工时间最短的机器进行加工;
步骤6.10、将得到的子代个体child1替换种群的father1。