一种求解多目标柔性作业车间调度问题的优化方法

文档序号:36264414发布日期:2023-12-06 05:24阅读:22来源:国知局
一种求解多目标柔性作业车间调度问题的优化方法

本发明涉及一种求解多目标柔性作业车间调度问题的优化方法。


背景技术:

1、作为生产调度和组合优化问题的一部分,作业车间调度问题(job-shopscheduling problem,jsp)在近几十年来吸引了越来越多的各行各业(如机械工程、数学和计算机软件工程)的研究人员。柔性作业车间调度问题flexible job-shop schedulingproblem(fjsp)继承了jsp的特点,其中每个工序允许由给定集合中的任何机器而不是指定的机器处理,并且已经证明fjsp是强np-难。fjsp由两个子问题组成:一个是路由子问题,每个工序分配给一组机器中的一个机器,另一个是调度问题,即通过在所有机器上对分配的工序进行排序来获得一个可用的调度。因此,fjsp比经典jsp更难解决,因为它需要确定相关机器中的工序分配。

2、fjsp(so-fjsp)的单目标优化已得到广泛研究,通常会最小化完成所有工件所需的时间。然而,许多行业(例如,飞机、半导体制造和电子产品)在其调度问题中存在权衡,在这些问题中需要考虑多个目标以优化系统的整体性能。因此,mo-fjsp可能更接近现实的生产环境,需要进一步研究。近年来,mo-fjsp引起了越来越多领域研究人员的兴趣,并提出了许多算法。与so-fjsp相比,mo-fjsp有两个问题需要处理:目标之间的不可通约性和目标之间的矛盾(即优化单个目标通常会导致另一个目标的恶化)。

3、对上述研究表明,nsgaii算法以其优化复杂问题的效率高和能够获得广泛的pareto最优解等优点,已被广泛用于求解mo-fjsp。而具有两阶段优化方案的算法也被广泛研究以解决mofjsp,因为它可以充分挖掘各种元启发式算法的优化潜力。但是,nsga-ii算法存在早熟收敛到本地解的缺点,并且该算法采用两阶段优化方案存在无法在第一阶段获得稳定优质的初始种群的缺点。


技术实现思路

1、为了解决上述技术问题,本发明提供一种算法简单、快速有效的求解多目标柔性作业车间调度问题的优化方法。

2、本发明解决上述问题的技术方案是:一种求解多目标柔性作业车间调度问题的优化方法,包括以下步骤:

3、步骤1:建立柔性作业车间调度问题的两个子问题;一个是路由子问题,将一组可用机器中的每个工序分配给一台机器;另一个是调度子问题,将所有机器上分配的工序排序,以获得优化某个目标函数的可行调度;

4、步骤2:建立目标函数,用于最小化三个目标,三个目标分别为机器的最大完成时间、负载最大的机器的工作负载、所有机器的总工作量;

5、步骤3:确定调度的约束条件;

6、步骤4:进行第一阶段:初始化种群,采用迭代次数为t的nsga-ii算法得到初始种群n;初始种群由三部分组成,随迭代次数变化;

7、步骤5:进行第二阶段:使用具有gen迭代次数的nsga-ii算法来获得pareto最优解;

8、步骤6:选出精英子代,作业执行完毕,调度结束。

9、上述求解多目标柔性作业车间调度问题的优化方法,所述步骤1中,fjsp定义如下,有一组n个工件和一组m台机器,i表示第i个工件,i∈{1,2,…,n},k表示第k台机器,k∈{1,2,…,m},oij表示工件i的第j道工序,j∈{1,2,…,ni},ni是工件i的工序总数,mij表示工序oij的可选机器,pijk表示工序oij在机器k上的处理时间,tijk表示工序oij在机器上k的开始时间,cij表示工序oij的完成时间;fjsp由两个子问题组成:分配的路由子问题,将每个工序分配给一组可用机器中的一台机器;调度子问题,将分配的工序在所有机器上排序,以获得优化某个目标函数的可行调度。

10、上述求解多目标柔性作业车间调度问题的优化方法,所述步骤2中,建立的目标函数为:

11、

12、其中ck表示机器k的完成时间,wk表示机器k的工作负载。

13、上述求解多目标柔性作业车间调度问题的优化方法,所述步骤3中,每个工序在处理过程中不能被中断、每台机器在任何时候最多只能处理一道工序、一道工序不能由多台机器同时处理、工序之间的移动时间和机器的设置时间忽略不计、机器彼此独立、工件是相互独立的;

14、约束函数为:不等式(2)保证了运算优先约束,xijk为一变量;

15、

16、不等式(3)确保每台机器每次只处理一道工序作;等式(4)表明可从可用的机器中选择一台机器来进行操作;

17、[(chg-cij-thgk)xhgkxijk≥0]

18、

19、

20、根据是否选择机器k加工步骤oij,使用等式(5)确定xijk的值;

21、

22、上述求解多目标柔性作业车间调度问题的优化方法,所述步骤4的具体步骤为:

23、step1:在第一阶段中,采用基于工序的表示方法,由工件编号组成;种群中每个初始个体的工序作序列向量是按照随机编码原理生成的,随机生成n个个体作为初始种群,设当前迭代次数t=1;

24、step2:根据目标1、目标2、目标3计算个体的适应度值;然后分别选出适应度最好的个体分别作为女王1、女王2、女王3;如果t>1,比较父代蜂王和子代蜂王的适应度值,相应地选出最好的作为新的蜂王;

25、step3:使用轮盘赌方法根据目标1、目标2和目标3的适合度值选择p个体;

26、step4:随机生成r个体,并将这些个体分别与step3生成的p个体组合;α为迭代次数比;

27、

28、step5:计算自适应交叉、变异概率;工序序列向量采用随机选择单点交叉spx或多点交叉mpx算子;机器分配向量采用两点交叉tpx作为交叉算子;以概率pm随机选择一个交换变异或反向变异算子作为工序序列向量,并为机器分配向量选择多点变异mpm算子;步骤step2选出的新蜂王与步骤step4产生的其他相应个体进行交叉变异,分别产生子代种群1、子代种群2和子代种群3;

29、step6:将三个子代种群组合成一个组合种群;

30、step7:快速非支配排序和拥塞计算;

31、step8:选择最好的n′个体作为后代种群;

32、step9:令t=t+1;如果t>t,继续下一步;否则返回第step2步,种群由选定的个体代替。

33、上述求解多目标柔性作业车间调度问题的优化方法,所述步骤5的具体步骤为:

34、step10:在第二阶段中,选择s杰出个体作为精英个体,s杰出个体来自n的个人;

35、x′+s+0.5n≥n (7)

36、step11:计算自适应交叉、变异概率;工序序列向量采用优先工序交叉pox或基于工件的交叉jbx,机器分配向量采用两点交叉tpx;使用二元锦标赛选择方法从后代种群中选择交叉个体,即选择的n个体;公式(8)中,d(i,j)表示的是一个差度函数,用于计算将要交叉的两条染色体,即染色体i与染色体j之间的相似性,其中l为染色体的长度,ail为染色体i中的第l段基因;使用优先工序交叉;否则,使用基于工件的交叉;公式(9)中,u表示的是一个设置为0.7的参数。随着u的减少,染色体倾向于选择多点保存交叉;

37、

38、d(i,j)≤u,precedenceoperation crossover

39、d(i,j)>u,job-based crosspover (9)

40、step12:如果个体处于pareto最前沿,则选择交换变异;否则为工序序列向量选择二次结合变异tbm或反向变异;机器分配向量也选择mpm算子,当概率pm<=0.1的情况下,当后代等级=1时,则选择交换变异;若后代等级≠1时,选择两次结合变异或反向变异;当概率pm>0.1的情况下,种群不会发生变异;

41、step13:随机产生新的r′个体;α′为新的迭代次数比;

42、

43、

44、step14:组合从step10、step12和step13获得的三部分个体;

45、step15:用step7处理结合种群产生后代种群;

46、step16:如果t>gen,输出结果;否则,t=t+1,返回step10。

47、上述求解多目标柔性作业车间调度问题的优化方法,在染色体编码与解码阶段,对于工序顺序向量方面,采用基于工序的表示方法,由工件编号组成,表示使用了一个从1到n的不间断整数数组,每个整数出现oni次,其中oni是工件i的工序总数;因此,初始工序序列种群的长度等于通过从左到右扫描工序顺序,工件号的第j次出现表示该工件的第j次工序;种群中每个初始个体的工序序列向量是按照随机编码原理生成的,通过使用这些表示特征,将工序序列向量的任何排列解码为可行的解决方案;

48、机器分配向量表示所选的机器,这些机器被分配给所有工件的相应工序;它包含n部分,第i部分的长度是oni,因此这个向量的长度也等于这个向量的第i部分表示第i个工件的机器分配集;假设一个机器集sih={mih1,mih2,…,mihcih}被选中来处理工件i的第h道工序,mihcih表示第cih个机器加工工件i的第h道工序;一个生成集{gi1,gi2,…gih,……,gicni}表示机器分配向量的第i部分,gih是1到cih之间的整数,gicni表示机器分配向量的第cni部分,这意味着工件i的第h道工序由来自sih的第gih机器mihgih处理,通过对每个工件的每个工序随机选择可用的机器,生成种群中每个初始个体的机器分配向量。

49、上述求解多目标柔性作业车间调度问题的优化方法,当染色体表示被解码时,每道工序都将按照优先级和机器约束进行可能的工序;使用这种解码方法生成的调度保证是活动调度;解码过程如下实现:

50、1)根据机器分配向量识别所有工序的机器;

51、2)确定用于处理每个工件的机器集;

52、3)确定每台机器的工序集合;

53、4)确定工序的允许启动时间;asij=ci(j-1),其中asij表示工序oij的允许开始时间,而ci(j-1)是相同工件的工序oij的完成时间;

54、5)计算工序oij在机器上的空闲时间,并得到空闲区域[t_start,t_end],其中t_start是这段空闲区域的开始时间,t_end是这段空闲区域的结束时间;从左到右扫描这些区域,如果max(asij,t_start)+tijk≤t_end,则最早开始时间为sij=t_start;否则sij=max(asij,ci(j-1));

55、6)计算每道工序的完成时间:cij=sij+tijk;

56、7)为每个工件的每个工序生成开始时间和完成时间的集合;

57、通过上述过程,得到了一个fjsp计划。

58、上述求解多目标柔性作业车间调度问题的优化方法,所述步骤step5中,工序序列向量采用随机选择单点交叉spx或多点交叉mpx算子;机器分配向量采用两点交叉tpx作为交叉算子;

59、spx的过程描述如下,o1和o2用来表示两个后代;

60、1-1)生成满足不等式0<b<g的随机参数b,确定交叉位置;

61、1-2)g1中从1到b的元素在相同位置上复制到o1;g2中从1到b的元素在相同位置上复制到o2;

62、1-3)计算每个元素的总数;

63、1-4)g2中的元素从左到右被追加到o1中剩余的空位置上,直到o1中每个元素的总数等于o1中每个元素的总数;g1中的元素从左到右被附加到o2中剩余的空位置上,直到o2中的每个元素的总数等于p2中的每个元素的总数;

64、mpx的过程描述如下,g1和g2用来表示两个父母:

65、2-1)生成满足不等式0<b1<b2<p以及b1≠b2的两个随机参数b1和b2来确定交叉的位置;

66、2-2)p1中b1到b2的元素被加到o1最左边的位置上;g2中b1到b2的元素被加到o2最左边的位置上;

67、2-3)计算每个元素的总数;

68、2-4)g2中的元素从左到右被追加到o1中剩余的空位置,直到o1中的每个元素的总数等于g1中的每个元素的总数;g1中的元素从左到右被附加到o2中剩余的空位置,直到o2中每个元素的总数等于g2中的每个元素的总数;

69、tpx的过程描述如下:

70、3-1)生成满足不等式0<b1<b2<p以及b1≠b2的两个随机参数b1和b2来确定交叉的位置;

71、3-2)将g2中b1到b2位置之间的元素附加到o1中相同的位置上,将g1中b1和b2位置之后的元素附加到o1中相同的位置上,用同样的方法生成o2;

72、交换变异算子的过程描述如下:

73、4-1)在g1中随机选择两个位置;

74、4-2)交换选中位置的元素,生成o1;

75、反向变异算子的过程描述如下:

76、5-1)在g1中随机选择两个位置;

77、5-2)反转所选两个位置之间的数字以生成o1;

78、mpm算子的过程描述如下:

79、6-1)随机选择g1中l'位置,l'等于机器分配向量长度的一半;

80、6-2)根据选择的可选机器组来改变这些选择的位置的值,以处理相应的操作。

81、10.根据权利要求9所述的求解多目标柔性作业车间调度问题的优化方法,其特征在于,所述步骤step11中,pox的过程描述如下:

82、7-1)工件集合被随机分为两个子集:jobset1和jobset2;

83、7-2)将g1中属于jobset1的元素被附加到o1中相同的位置并在g1中删除;g2中属于jobset2的元素被附加到o2中相同的位置并在g2中删除;

84、7-3)将g1中剩余的元素从左到右追加到o2中剩余的空位置;并将g2中剩余的元素从左到右追加到o1中剩余的空位置;

85、jbx的过程描述如下:

86、8-1)工件集合被随机分为两个子集:jobset1和jobset2;

87、8-2)将g1中属于jobset1的元素追加到o1中相同的位置;并且在g2中属于jobset2的元素被附加到o2中的相同位置;

88、8-3)g2中属于jobset2的元素从左到右被附加到o1中剩余的空位置上;g1中属于jobset1的元素从左到右被附加到o2中剩余的空位置;

89、步骤step12中,tbm的过程描述如下:

90、9-1)在g1中生成一个随机参数a,a<工序序列向量的长度减去3;

91、9-2)将g1中的元素a换成a+3,将a+1换成a+2,得到o1。

92、本发明的有益效果在于:

93、1、本发明包括两个阶段:第一阶段中使用具有t迭代次数nsga-ii算法来获得初始种群,并提出了一种进化引导方案来更广泛地利用解空间;第二阶段中再次使用具有gen迭代次数的nsga-ii算法来获得pareto最优解,为了增强算法的搜索能力,避免早熟收敛,在该阶段引入了更新机制;最后通过将实验结果与已有的一些知名算法的结果进行比较,验证了该算法的有效性;本发明能够快速有效地得到较优的调度方案,最小化最大完工时间、最大负荷机器的工作量和所有机器的总工作量。

94、2、本发明提出的算法beg-nsga-ii可以在mo-fjsp的大多数基准测试中获得更多不同的pareto最优解,而且时间更短。因此,它可以提供更多的方案供生产经理在进行调度决策时进行选择。所提出的计算智能方法(beg-nsga-ii)可广泛应用于柔性作业车间调度问题,尤其是调度领域的多目标优化问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1