一种存在新工件插入的模糊柔性作业车间调度方法与流程

专利2022-06-29  63


本发明涉及一种生产技术,尤其是一种柔性制造车间的调度技术,具体地说是一种存在新工件插入的模糊柔性作业车间调度方法。



背景技术:

车间生产调度是制造系统的基础,生产调度的优化是先进制造技术和现代管理技术的核心。模糊柔性作业车间调度问题是柔性作业车间调度问题的衍生问题,其除了需要为加工工序选择相应的机器以及完成工序间的排序,还需要考虑到工序加工时间不能完全确定的问题。与柔性作业车间调度问题相比,模糊柔性作业车间调度问题显然更符合实际的要求,也更能满足企业的生产需要。

但是在实际加工情况下,机器在正对工件进行加工的过程中,有时会出现某些特殊情况,比如:机器损坏、新工件插入等等。面对这种情况,之前的调度方案已经不再适用,必须在原有调度方案的基础上进行重调度操作。对于该问题,需要合理地为插入工件的工序以及剩余还未加工的工序指派合适的加工机器,并安排它们在各台机器上的加工顺序,使得一个或多个调度目标得到优化。

近年来,大多数研究者对该问题进行研究中,均未考虑到模糊调度状态下工序的实际完工时间对重调度问题的影响。本发明基于工序的实际完工时间和新工序插入时间提供了一种求解存在新工件插入的模糊柔性作业车间调度问题的算法框架。



技术实现要素:

本发明的目的是针对现有的大部分处理模糊作业车间调度问题重调度算法均未考虑到工序的实际完工时间对重调度方案的影响,这会造成重调度方案不够优秀,不符合实际加工需求的情况,提供一种存在新工件插入的模糊柔性作业车间调度方法,该方法基于已完工工序的完工时间和工件插入时间的算法框架,该算法框架以改进遗传算法为其求解模块,可有效提高重调度方案的求解质量。

本发明的技术方案是:

一种存在新工件插入的模糊柔性作业车间调度方法,其特征在于它包括以下步骤:

步骤1:调用信息输入模块,系统输入工件的加工信息,机器信息等。

步骤2:调用改进遗传算法模块,并以此获得最佳调度方案,按照该方案安排生产。

步骤3:判断是否所有工件已经加工完毕,如果加工完毕,则退出循环,结束;如果没有加工完毕,则继续。

步骤4:判断是否需要主动退出重调度进程,如果选择是,则退出循环,结束;如果选择否,则继续。。

步骤5:输入有工序完工或新工件插入的时刻t。

步骤6:提取当前时刻完工的工序对应的工件号,以-1结尾。

步骤7:判断输入参数是否符合要求,若不符合,返回步骤5。

步骤8:调用初始化模块,更新初始化参数。

步骤9:判断是否成功初始化,若不成功,返回步骤5;若成功,则继续。

步骤10:输入参数,判断是否有新插入工件。如果有进入步骤11,否则进入步骤12。

步骤11:调用信息输入模块,将新插入工件的数据信息插入其中,同时调用遗传算法模块生成新的调度方案。

步骤12:调用染色体修改模块,根据初始化参数,对染色体进行更新操作。

步骤13:调用可视化模块,根据当前的染色体,生成以甘特图为代表的可视化调度方案,并让工件的生成方式按照该调度方案安排生成。

步骤14:返回步骤3。

优选地,所述的改进遗传算法模块包括以下内容:

(1)该遗传算法中保留了该问题的初始条件。即:正在加工工序的开始加工时间和结束加工时间,所选择的机器,当前时间点,各工件等待调度的工序的数量。

(2)该遗传算法中所用的染色体由工序序列和机器序列组成,其仅仅保留等待调度工序的加工信息。

(3)该遗传算法对于相应染色体的解码方式如下所示:

步骤1建立一个包含所有机器的甘特图。

步骤2.获取初始条件,并将其插入到甘特图中。

步骤3.从工序序列中获得下一道工序,从机器序列中找到对应的所用的机器,从案例信息中获得该工序在该机器下的加工时间。

步骤4.将该工序在不影响机器上已经插入工序的情况下,尽量将该工序向前插入。

步骤5.判断是否所有工序已经被插入,如果没有,则返回步骤3。

(4)该遗传算法的流程可以为下列所述:

步骤1随机生成一定大小的种群。

步骤2对种群进行交叉操作。

步骤3对种群进行变异操作。

步骤4对种群中每个个体均进行解码操作,以获取器目标函数值。

步骤4对种群进行选择操作。

步骤5判断算法是否满足终止条件,若满足,输出种群中的最优染色体;否则,返回步骤2。

优选地,下面将对初始条件更新模块进行说明。

假设正在加工的某道工序结束时间或新工件的插入时间为t,当另一台机器上正在加工工序的完工时间为(c1,c2,c3),依照以下规则进行处理完工时间。

如果t≤c1,此时另一道工序仍处于正在加工的状态,因此其完工时间依然为(c1,c2,c3)。

如果t>c1,t≤c2,此时另一道工序下仍处于正在加工状态,由于该道工序此时已经不可能在t时刻前完成加工,因此,其完工时间变化为(t,c2,c3)。

如果t>c2,,t≤c3,此时另一道工序仍处于正在加工状态,由于该道工序的最有可能完工时间已经不可能超过t,因此,该完工时间变化为(t,t,c3)。

如果t>c3,此时另一道工序不可能仍处于正在加工状态,这种情况不在讨论范围中。

优选地,所述的染色体裁剪模块所具备的功能及操作如下所示:

由于本发明所用的染色体保存的均为可进行调度的工序,因此当某道工序完工,同时又没有必要使用算法模块重新生成新的调度方案时,需要将已经完工的工序对应的基因从染色体中删除掉。

优选地,所述的数据输入模块,其特征如下:

在该模块下可直接输入调度案例的相关信息,比如各工件的各工序在不同机器上加工所需时间,新增加的工件等信息。

优选地,所述的可视化模块,其特征如下:

由于每一次正在加工工序时间的确定以及新工件的插入均会对原来的甘特图产生一定的影响,因此,有必要重新设立这样的一个模块,以便随时更新调度方案,用于指导生产。

本发明的有益效果是:

本发明具有重调度方案调度效果好,求解质量高的优点。

附图说明

图1为一种求解存在新工件插入的模糊柔性作业车间调度问题的调度方法的实现流程图。

图2为所给案例在不考虑工件插入情况下的最佳调度方案。

图3为所给案例在新工件插入前甘特图变化情况。

图4为所给案例在新工件插入后经过改进遗传算法重新获得的调度方案。

具体实施方式

下面结构附图和实施例对本发明作进一步的说明。

如图1-4所示。

一种存在新工件插入的模糊柔性作业车间调度方法,它包括以下步骤:

步骤1:调用信息输入模块,系统输入工件的加工信息,机器信息等。

步骤2:调用改进遗传算法模块,并以此获得最佳调度方案,按照该方案安排生产。

步骤3:判断是否所有工件已经加工完毕,如果加工完毕,则退出循环,结束;如果没有加工完毕,则继续。

步骤4:判断是否需要主动退出重调度进程,如果选择是,则退出循环,结束;如果选择否,则继续。

步骤5:输入有工序完工或新工件插入的时刻t。

步骤6:提取当前时刻完工的工序对应的工件号,以-1结尾。

步骤7:判断输入参数是否符合要求,若不符合,返回步骤5。

步骤8:调用初始化模块,更新初始化参数。

步骤9:判断是否成功初始化,若不成功,返回步骤5;若成功,则继续。

步骤10:输入参数,判断是否有新插入工件。如果有进入步骤11,否则进入步骤12。

步骤11:调用信息输入模块,将新插入工件的数据信息插入其中,同时调用遗传算法模块生成新的调度方案。

步骤12:调用染色体修改模块,根据初始化参数,对染色体进行更新操作。

步骤13:调用可视化模块,根据当前的染色体,生成以甘特图为代表的可视化调度方案,并让工件的生成方式按照该调度方案安排生成。

步骤14:返回步骤3。

所述的改进遗传算法模块包括以下内容:

(1)该遗传算法中保留了该问题的初始条件。即:正在加工工序的开始加工时间和结束加工时间,所选择的机器,当前时间点,各工件等待调度的工序的数量。

(2)该遗传算法中所用的染色体由工序序列和机器序列组成,其仅仅保留等待调度工序的加工信息。

(3)该遗传算法对于相应染色体的解码方式如下所示:

步骤1建立一个包含所有机器的甘特图。

步骤2.获取初始条件,并将其插入到甘特图中。

步骤3.从工序序列中获得下一道工序,从机器序列中找到对应的所用的机器,从案例信息中获得该工序在该机器下的加工时间。

步骤4.将该工序在不影响机器上已经插入工序的情况下,尽量将该工序向前插入。

步骤5.判断是否所有工序已经被插入,如果没有,则返回步骤3。

(4)该遗传算法的流程可以为下列所述:

步骤1随机生成一定大小的种群。

步骤2对种群进行交叉操作。

步骤3对种群进行变异操作。

步骤4对种群中每个个体均进行解码操作,以获取器目标函数值。

步骤4对种群进行选择操作。

步骤5判断算法是否满足终止条件,若满足,输出种群中的最优染色体;否则,返回步骤2。

在改进算法模块中,由于每个工序的加工时间均是模糊的,这里使用一个三角模糊数来代表该时间其分别代表了工序oi,j在机器k上加工所需的最小时间、最有可能的时间、最大时间。由于工序的加工时间是有三角模糊数所代表的,因此某道工序的完工时间也可以将是由三角模糊数代表,例如其分别代表了工序oi,j完工的最小时间、最有可能时间、最大时间。

在对染色体的解码阶段,涉及到对三角模糊数进行操作,具体包括三角模糊数的取大操作、比较操作、相加操作,下面将对这几种操作进行具体说明。

假设存在这样的两个三角模糊数则其相加操作如下所示:

三角模糊数间的比较规则按如下步骤:

步骤1.将一个三角模糊数的最大期望值作为比较两个三角模糊数大小的第一标准。即:

步骤2若两个三角模糊数有同样的f1,则使用三角模糊数的最大可能性指标作为比较两个三角模糊数的第二标准。即:

步骤3若两个三角模糊数有同样的f1和f2,则使用三角模糊数的离散度指标作为比较两个三角模糊数的第三标准。即:

三角模糊数的取大操作规则如下:

如果否则

某道工序的加工时间是使用三角模糊数来表示的,但在实际加工中,随着该道工序完工时间的确定,这会导致该三角模糊数会退化成一个固定的数值,同时其他正在加工的工序的预计完工时间也会受到该因素的影响。上述变化会对存在新工件插入的模糊柔性作业车间调度问题产生较为重大的影响。这种影响在本发明中的体现是通过初始化条件更新模块来实现的。

下面将对初始条件更新模块进行说明。

假设正在加工的某道工序结束时间或新工件的插入时间为t,当另一台机器上正在加工工序的完工时间为(c1,c2,c3),依照以下规则进行处理完工时间。

如果t≤c1,此时另一道工序仍处于正在加工的状态,因此其完工时间依然为(c1,c2,c3)。

如果t>c1,t≤c2,此时另一道工序下仍处于正在加工状态,由于该道工序此时已经不可能在t时刻前完成加工,因此,其完工时间变化为(t,c2,c3)。

如果t>c2,,t≤c3,此时另一道工序仍处于正在加工状态,由于该道工序的最有可能完工时间已经不可能超过t,因此,该完工时间变化为(t,t,c3)。

如果t>c3,此时另一道工序不可能仍处于正在加工状态,这种情况不在讨论范围中。

所述的染色体裁剪模块所具备的功能及操作如下所示:

由于本发明所用的染色体保存的均为可进行调度的工序,因此当某道工序完工,同时又没有必要使用算法模块重新生成新的调度方案时,需要将已经完工的工序对应的基因从染色体中删除掉。

所述的数据输入模块可直接输入调度案例的相关信息,比如各工件的各工序在不同机器上加工所需时间,新增加的工件等信息。

所述的可视化模块的作用是:由于每一次正在加工工序时间的确定以及新工件的插入均会对原来的甘特图产生一定的影响,因此,有必要重新设立这样的一个模块,以便随时更新调度方案,用于指导生产。

实例。

下面以一个10台机器10个工件的模糊柔性作业车间调度案例为例加以说明,其相关加工数据如下表1所示,表中m1、m2…..m10分别表示为10台机器的机器号,job1、job2…..job10分别表示10个工件的工件号,每个工件均有4道工序,可选择不同的机器进行加工,且在各台机器上的加工时间均以三角模糊数来代替。其中表中的三个值分别代表某道工序在对应机器上加工所需的最小时间、最有可能时间和最大时间。

针对该案例可获得的最优调度方案所对应的最大工件完工时间为(21,28,37),其对应的甘特图如图2所示。

按照以上调度方案安排生产时,在时刻10前有以下工序完工:在时间点2处,工序o2.1完工;在时间点4处,工序o10.1完工;在时间点6时,工序o8.1、o2.1、o5.1、o6.1、o3.1、o1.1、o9.1、o4.1完工;在时间点9处,工序o8.2和o10.2完工。此时,受到已完工工序的影响,最大工件完工时间变化为(22,28,39),其对应的甘特图变化如图3所示。

在时刻10有新工件j11插入,该工件的相关加工数据如下表2所示:

在新工件插入后,经过改进遗传算法重新调度后,新的调度方案如图4所示,其对应的最大工件完工时间为(22,29,40)。

本发明未涉及部分与现有技术相同或可采用现有技术加以实现。


技术特征:

1.一种存在新工件插入的模糊柔性作业车间调度方法,其特征在于它包括以下步骤:

步骤1:调用信息输入模块,读取工件的加工信息,机器信息;

步骤2:调用改进遗传算法模块,并以此获得最佳调度方案,按照该方案安排生产;

步骤3:判断是否所有工件已经加工完毕,如果加工完毕,则退出循环,结束;如果没有加工完毕,则继续;

步骤4:判断是否需要主动退出重调度进程,如果选择是,则退出循环,结束;如果选择否,则继续;

步骤5:输入有工序完工或新工件插入的时刻t;

步骤6:提取当前时刻完工的工序对应的工件号,以-1结尾;

步骤7:判断输入参数是否符合要求,若不符合,返回步骤5;若符合,则继续;

步骤8:调用初始化条件更新模块,更新初始化参数;

步骤9:判断是否成功初始化,若不成功,返回步骤5;若成功,则继续;

步骤10:输入参数,判断是否有新插入工件;如果有新插入工件,则执行步骤11,否则执行步骤12;

步骤11:调用信息输入模块,将新插入工件的数据信息输入到系统中,同时调用改进遗传算法模块生成新的调度方案;

步骤12:调用染色体修改模块,根据初始化参数,对染色体进行更新操作;

步骤13:调用可视化模块,根据当前的染色体,生成以甘特图为代表的可视化调度方案,并让工件的生产方式按照该调度方案安排生产;

步骤14:返回步骤3。

2.根据权利要求1所述的方法,其特征是所述的改进遗传算法模块能针对存在初始条件的染色体进行编码和解码操作,(1)所述改进遗传算法模块保留了问题的初始条件,即:正在加工工序的开始加工时间和结束加工时间,所选择的机器,当前时间点,各工件等待调度的工序的数量;(2)所述改进遗传算法模块中所用的染色体由工序序列和机器序列组成,其仅仅保留等待调度工序的加工信息;(3)所述改进遗传算法模块对于相应染色体的解码方式如下所示:

步骤1建立一个包含所有机器的甘特图;

步骤2.获取初始条件,并将正在加工的工序插入到甘特图中;

步骤3.从工序序列中获得下一道工序,从机器序列中找到对应的所用的机器,从案例信息中获得该工序在该机器下的加工时间;

步骤4.将该工序在不影响机器上已经插入工序的情况下,尽量将该工序向前插入;

步骤5.判断是否所有工序已经被插入,如果没有,则返回步骤3。

3.根据权利要求1所述的方法,其特征是所述的初始化条件更新模块是在每一次发生工序完工,或者是新工件插入的情况,算法的初始参数均会发生变化,因此需要按照如下规则更新初始参数,以满足算法要求:

假设正在加工的某道工序结束时间或新工件插入的时间为t,当另一台机器上正在加工工序的完工时间为(c1,c2,c3),其分别代表了工序oi,j完工的最小时间、最有可能时间、最大时间;

依照以下规则进行处理其完工时间;

如果t≤c1,此时另一道工序仍处于正在加工的状态,因此其完工时间依然为(c1,c2,c3);

如果t≥c1,t<c2,此时另一道工序下仍处于正在加工状态,由于该道工序此时已经不可能在t时刻前完成加工,因此,其完工时间变化为(t,c2,c3);

如果t>c2,,t≥c3,此时另一道工序仍处于正在加工状态,由于该道工序此时已经不可能在c2前完成加工,因此,该完工时间变化为(t,t,c3);

如果t>c3,此时另一道工序不可能仍处于正在加工状态,这种情况不在讨论范围中。

4.按照要求1所述的方法,其特征是所述的染色体修改模块用于将已经完工的工序对应的基因从染色体中删除掉,这是由于在遗传算法中所用的染色体保存的均为可进行调度的工序,因此当某道工序完工,同时又没有必要使用算法模块重新生成新的调度方案时,需要将已经完工的工序对应的基因从染色体中删除掉。

5.按照要求1所述的方法,其特征是所述的信息输入模块能直接输入调度案例的相关信息,它包括各工件的各工序在不同机器上加工所需时间,新增加工件的加工时间。

6.按照要求1所述的方法,其特征是所述的可视化模块用于随时更新调度方案,指导生产;由于每一次正在加工工序时间的确定以及新工件的插入均会对原来的甘特图产生影响,因此,需要重新设立一个可视化模块解决这一问题。

技术总结
本发明涉及一种存在新工件插入的模糊柔性作业车间调度方法,其中所述方法包括:分析了具体工件完工时间对车间插入问题的模糊柔性作业车间调度问题的影响;提供了一种求解存在初始条件的模糊作业车间调度问题的改进遗传算法;以该改进遗传算法为基础提供了一种求解存在新工件插入的模糊柔性作业车间调度问题的算法框架,最后,达到了重调度方案调度效果好,求解质量高的程度。

技术研发人员:张立果;黎向锋;唐浩;左敦稳;张丽萍;陆开胜;王建明;叶磊;王子旋;刘晋川;刘安旭
受保护的技术使用者:南京航空航天大学
技术研发日:2020.01.21
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-51455.html

最新回复(0)