1.本发明属于重型装备生产智能调度技术领域,具体涉及一种基于头脑风暴机制的复杂重型装备生产优化调度方法。
背景技术:2.随着新工业革命的到来,智能制造为很多制造型企业提供了转型和发展的新思路。复杂重型装备生产是制造业中的重要组成部分,目前国内企业在该领域已实现了大规模、多批次、个性化定制生产,在实际生产环境中,环境较为复杂,机器资源有限,当生产企业同时接到多个订单需求时,若不能合理有效的对不同生产任务进行分配,会导致订单延期交货,影响企业效益。因此,如何对多个订单同时进行生产调度,提高生产效率,增强竞争力是重要的技术难题。
3.头脑风暴法是1939年美国创造学家a.f奥斯本首次提出的,又称智力激励法。头脑风暴优化算法(bso)是史玉回老师在2011年提出一种新的群智能优化算法,算法从智能体系统的角度出发,把进化算法中的个体当作一个有局部感知、竞争协作和自学习能力的智能体,通过智能体自身以及智能体之间的相互作用达到优化全局的目的。由于多智能体的自主性、分布性、协调性及自组织能力、学习能力和推理能力,使得它在解决实际问题时具有较强的可靠性和较高的求解效率,应用前景较好。
4.现如今的制造企业在同一阶段一般存在多个生产任务,且各任务的生产流程不同,生产工序复杂,调度排产困难。复杂重型装备的生产过程包含多道工序,其中有些工序存在多个可选机器进行生产,且不同机器的生产消耗时间不同,如何为各工序选择合适的加工机器,制定高效排产计划,对缩短订单生产周期,增强企业效益具有重要意义。
技术实现要素:5.本发明的目的是提供一种基于头脑风暴机制的复杂重型装备生产优化调度方法,解决了现有技术中对重型装备生产计划安排困难、过度依赖以往排产经验的问题。
6.本发明所采用的技术方案是,基于头脑风暴机制的复杂重型装备生产优化调度方法,包括以下步骤:
7.步骤1、对复杂重型装备生产过程进行简化,对生产工序进行预处理;
8.步骤2、构建基于头脑风暴机制的复杂重型装备生产调度模型,基于调度过程的约束条件,为个体进化制定对应规则;
9.步骤3、构建生产调度算法框架,对调度方案进行优化;
10.步骤4、对调度序列进行更新;
11.步骤5、判断算法终止进化条件,输出最优调度方案。
12.本发明的特征还在于,
13.步骤1具体按照以下步骤实施:
14.将相关生产工序流程转化为智能算法能够直接识别处理的进化个体,具体如下:
项目中的每一个体由两部分组成,包含工序信息和机器信息,即:
[0015][0016]
其中,o
ij
是表示第i个工件的j道工序,是订单中各个工序的生产顺序表;mk该任务顺序表中各工序所对应的生产机器,订单中的工序序列与生产机器序列是一一对应的。
[0017]
步骤2具体按照以下步骤实施:
[0018]
步骤2.1)确定复杂重型装备生产线的生产优化调度模型的目标函数:
[0019]
对n个不同的复杂重型装备生产订单换算成n个工件分配给k个不同类型的生产机器,具体描述如公式(2)所示:
[0020]
f=min(max(ci)),1≤i≤n
ꢀꢀꢀꢀ
(2)
[0021]
其中,ci代表i工件的生产完工时间,f代表最大完工时间的最小值;
[0022]
步骤2.2)确定复杂重型装备生产线的生产优化调度模型的约束条件:复杂重型装备生产线的约束条件分为不等式约束和等式约束;
[0023]
不等式约束条件如下:
[0024]si(j+1)-c
ij
≥0
ꢀꢀꢀꢀꢀꢀ
(3)
[0025]ci
≤c
max
ꢀꢀꢀꢀꢀꢀ
(4)
[0026]sij
+x
ijk
*c
ijk
≤c
ij
ꢀꢀꢀꢀꢀꢀ
(5)
[0027]
st
ij
≥0
ꢀꢀꢀꢀꢀꢀ
(6)
[0028]
sf
ij
≥0
ꢀꢀꢀꢀꢀꢀ
(7)
[0029]
式(3)表示同一工件的顺序约束,其中s
ij
表示工序o
ij
的加工开始时刻,c
ij
表示工序o
ij
的加工完成时刻;式(4)表示最大完工时间约束,其中ci表示i号工件的加工完成时间,0<i≤n,c
max
表示最大完工时间;式(5)表示工序的加工完成时刻约束,其中x
ijk
表示工序o
ij
是否在k号机器上加工,若工序o
ij
在k号机器上加工,x
ijk
=1,若工序o
ij
不在k号机器上加工,x
ijk
=0,c
ijk
表示工序o
ij
在k号机器上加工的消耗时间,c
ij
表示工序o
ij
的加工完成时刻;式(6)表示所有工件都可在零时刻开始加工;式(7)表示完工时间为非负数;
[0030]
等式约束条件如下:
[0031][0032]
公式(8)表示机器唯一性约束,表示每台设备只能同时加工一个工件,其中m
ijk
表示工序o
ij
选择的加工机器号k。
[0033]
步骤3具体按照以下步骤实施:
[0034]
3.1)初始化,
[0035]
初始化生产优化调度模型的种群个数、选择概率、突变概率、聚类个数,并设置迭代次数;
[0036]
3.2)个体信息翻译,
[0037]
首先明确所有的加工机器,将其放入一个集合中;然后确定各工序分别进行加工的机器号,并对其开始时刻和完成时刻进行排序,具体步骤为:
[0038]
step1:根据生成的编码序列确定所有的加工机器号,生成对应的加工机器集合
[0039]
step2:根据生成的工序编码序列,找到每个待加工工序,并根据调度算例,查找每台工序的加工机器及对应工序的生产消耗时间并与m
ij
集合中的机器号一一对应;
[0040]
step3:初始化各机器的开始加工时间和各时间的变化时间量,调度序号k=1;
[0041]
step4:找到工序码中的调度序号k对应的加工工序,并将其解码成实际的工件工序o
ij
,i表示工件号,j表示工序号;
[0042]
step5:判断j是否为1,若为1,则转入step6,否则,转入step7;
[0043]
step6:判断当前机器是否有工件正在加工,若没有,则直接在该机器进行安排加工;若有,则在当前工件加工时间结束后,安排o
ij
工序进行加工;
[0044]
step7:查找o
i(j-1)
工序的加工完成时间节点t1=c
i(j-1)
,并与当前机器的可开始加工时间节点t2进行比较,若t1≥t2,则o
ij
开始加工的时间节点为s
ij
=t1,否则开始加工时间节点为s
ij
=t2;
[0045]
step8:根据t
ij
时间表,可得到o
ij
的加工所需时间t
ij
,由式(9)可计算得到o
ij
的加工完成时间c
ij
,为下一道工序加工开始时间节点提供参考,即下一道工序加工开始时间节点在c
ij
之后;
[0046]cij
=s
ij
+t
ij
ꢀꢀꢀꢀꢀꢀ
(9)
[0047]
step9:判断最后一道工序是否已完成解码,若是,转入step10;否则,转step4;
[0048]
step10:查找所有工序的加工完成时间节点的最大值;
[0049]
3.3)建立评价函数
[0050]cmax
=max(ci)
ꢀꢀꢀꢀꢀꢀ
(10)
[0051]
其中,c
max
表示最大完工时间,ci表示i号工件最后一道工序的加工完成时间,利用式(10)计算得到重型装备所有订单的最终完工时间。
[0052]
步骤4具体按照以下步骤实施:
[0053]
4.1)自学习操作策略:
[0054]
step1:随机产生位置点p和距离l;
[0055]
step2:确定工序码中的p点处的编码,并将其向右移动l距离;
[0056]
step3:p点原对应的机器编号也在机器码中向右移动相应的距离;
[0057]
step4:工序码中的p点右侧原有信息均向左移动一位,机器码均移动相应距离;
[0058]
step5:判断工序移动后的新个体是否满足前后工序约束要求,若满足,则直接生成新个体;不满足,则转入step1,重新得到工序变异的新智能体。
[0059]
4.2)多智能体交叉操作策略:
[0060]
将被选择交叉的父代工序码区分为两个部分,父代编码区为:p1=[1,3,3,3,1,2,2,1,3];p2=[2,1,2,3,1,3,3,1,2];pa=[1];pb=[2];其中,pa和pb都是父代的子集,交叉过
程步骤如下:
[0061]
step1:复制父代p1中包含pa集中信息到子代h1中,且信息位置点固定;
[0062]
step2:将父代p2中删除pa集包含的信息放入子代h1中,依次插空放入;
[0063]
step3:复制p2中包含pb集中的信息到子代h2中,且信息的位置点固定;
[0064]
step4:将父代p1中删除pb集包含的信息放入子代h2中,依次插空放入;
[0065]
step5:判断工序移动后的新个体是否满足前后工序约束要求,若满足,则直接生成新智能体;不满足,则转入step1,重新进行个体交叉生成新智能体。
[0066]
4.3)机器码变异操作策略:
[0067]
step1:随机产生一个变异位置点e;
[0068]
step2:保持e点处的工序码中的编码信息不变;
[0069]
step3:在该工序可选择的所有机器中任意选择一台机器,然后替换原来该工序在机器编码段的机器号;
[0070]
step4:获得新的智能体。
[0071]
步骤5具体按照以下步骤实施:
[0072]
设定最大迭代次数,判断是否满足最大迭代次数,若满足,则输出最优调度方案;否则,算法继续进化。
[0073]
本发明的有益效果是:
[0074]
本发明方法对复杂重型装备生产过程进行分析,提取有效生产工序,结合多智能体进化算法,实现对复杂生产调度问题的求解。算法中的每个智能体对应调度问题中的一个调度序列,对调度序列的工序和机器分别进行编码,采用贪婪方法进行解码操作,各调度序列之间通过竞争、交叉、自学习等操作实现进化和更新。通过调整订单的调度计划,在满足工序约束和资源约束等的条件下,合理安排各时段各工作的可行调度,实现了实际场景下复杂重型装备生产车间的多任务智能调度排产,尽可能缩短订单完成周期,使调度计划达到最优。
附图说明
[0075]
图1是本发明基于头脑风暴机制的复杂重型装备生产优化调度方法的总体流程图;
[0076]
图2是本发明基于头脑风暴机制的复杂重型装备生产优化调度方法的调度方案生成结构简图。
具体实施方式
[0077]
下面结合附图和具体实施方式对本发明进行详细说明。
[0078]
本发明提供一种基于头脑风暴机制的复杂重型装备生产优化调度方法,如图1-2所示,包括以下步骤:
[0079]
步骤1、对复杂重型装备生产过程进行简化,对生产工序进行预处理,将相关工序转化为智能算法可以直接识别处理的进化个体;
[0080]
步骤1具体按照以下步骤实施:
[0081]
以辽宁忠旺125mn大型铝型材挤压生产线为例,其生产过程包含7道工序:铝锭加
热、挤压、淬火、拉伸、成品锯、定尺、包装,将相关生产工序流程转化为智能算法能够直接识别处理的进化个体,具体如下:项目中的每一个体由两部分组成,包含工序信息和机器信息,即:
[0082][0083]
其中,o
ij
是表示第i个工件的j道工序,是订单中各个工序的生产顺序表;mk该任务顺序表中各工序所对应的生产机器,订单中的工序序列与生产机器序列是一一对应的。
[0084]
步骤2、构建基于头脑风暴机制的复杂重型装备生产调度模型,基于调度过程的约束条件,为个体进化制定对应规则;
[0085]
步骤2具体按照以下步骤实施:
[0086]
步骤2.1)确定复杂重型装备铝型材挤压生产线的生产优化调度模型的目标函数:
[0087]
对n个不同的复杂重型装备挤压机生产订单换算成n个工件分配给k个不同类型的生产机器,每个工件需进行多道工序的生产加工,同一道工序在不同机器上的生产消耗时间和消耗功率可能各不相同,通过给不同类型机器合理分配生产工序,使得最大完工时间最小化,具体描述如公式(2)所示:
[0088]
f=min(max(ci)),1≤i≤n
ꢀꢀꢀꢀꢀꢀ
(2)
[0089]
其中,ci代表i工件的生产完工时间,f代表最大完工时间的最小值,f值越小,代表订单生产周期越短,企业生产效率越高;
[0090]
步骤2.2)确定复杂重型装备铝型材挤压生产线的生产优化调度模型的约束条件:
[0091]
复杂重型装备铝型材挤压生产线的约束条件分为不等式约束和等式约束;约束条件包括:一台机器某一时刻不能同时生产多道工序;工件加工时间有唯一性,某一时刻只能出现在一台机器上进行生产;某一工序一旦开始加工,中途不能停止,直至加工完成;属于同一工件的多个工序之间的生产存在先后顺序,下一工序的加工开始时间不能比上一工序的加工完成时间提前;工序在机器上的加工时间是固定的,不因机器磨损程度不同而变化;每个工件加工先后的重要程度是平等的,没有优劣之分,且各工件在初始时刻都能开始被加工;机器启动准备时间忽略不计,每台机器在0时刻都可开始加工;机器一旦开始加工,中途不能停止,直至一道工序加工完成;工序最终确定的加工机器具有唯一性;
[0092]
不等式约束条件如下:
[0093]si(j+1)-c
ij
≥0
ꢀꢀꢀꢀꢀꢀ
(3)
[0094]ci
≤c
max
ꢀꢀꢀꢀꢀꢀ
(4)
[0095]sij
+x
ijk
*c
ijk
≤c
ij
ꢀꢀꢀꢀꢀꢀ
(5)
[0096]
st
ij
≥0
ꢀꢀꢀꢀꢀꢀ
(6)
[0097]
sf
ij
≥0
ꢀꢀꢀꢀꢀꢀ
(7)
[0098]
式(3)表示同一工件的顺序约束,其中s
ij
表示工序o
ij
的加工开始时刻,c
ij
表示工序o
ij
的加工完成时刻;式(4)表示最大完工时间约束,其中ci表示i号工件的加工完成时间,0<i≤n,c
max
表示最大完工时间;式(5)表示工序的加工完成时刻约束,其中x
ijk
表示工序o
ij
是否在k号机器上加工,若工序o
ij
在k号机器上加工,x
ijk
=1,若工序o
ij
不在k号机器上加工,x
ijk
=0,c
ijk
表示工序o
ij
在k号机器上加工的消耗时间,c
ij
表示工序o
ij
的加工完成时刻;式(6)表示所有工件都可在零时刻开始加工;式(7)表示完工时间为非负数;
[0099]
等式约束条件如下:
[0100][0101]
公式(8)表示机器唯一性约束,表示每台设备只能同时加工一个工件,其中m
ijk
表示工序o
ij
选择的加工机器号k。
[0102]
步骤3、构建生产调度算法框架,对调度方案进行优化,优化主要分为两部分,第一部分是对各工序不同机器的选择优化,第二部分是对所有加工工序的生产路径的优化;
[0103]
步骤3具体按照以下步骤实施:
[0104]
如图2所示,本方法中,将重型装备生产调度排产过程构造为多智能体群体进化过程,每个智能体都代表一种调度方案,通过对智能体的迭代优化,最终得到满足要求的最优生产调度方案。
[0105]
3.1)初始化,
[0106]
初始化生产优化调度模型的种群个数、选择概率、突变概率、聚类个数,并设置迭代次数;
[0107]
在本发明中,种群个数设置为100,选择概率和突变概率设置为0~1以内,聚类个数设置为4,迭代次数设置为200代。
[0108]
3.2)个体信息翻译,
[0109]
本方法采用贪婪式方案将调度信息翻译为算法可执行的智能体信息。首先明确所有的加工机器,将其放入一个集合中;然后确定各工序分别进行加工的机器号,并对其开始时刻和完成时刻进行排序,具体步骤为:
[0110]
step1:根据生成的编码序列确定所有的加工机器号,生成对应的加工机器集合
[0111]
step2:根据生成的工序编码序列,找到每个待加工工序,并根据调度算例,查找每台工序的加工机器及对应工序的生产消耗时间并与m
ij
集合中的机器号一一对应;
[0112]
step3:初始化各机器的开始加工时间和各时间的变化时间量,调度序号k=1;
[0113]
step4:找到工序码中的调度序号k对应的加工工序,并将其解码成实际的工件工序o
ij
,i表示工件号,j表示工序号;
[0114]
step5:判断j是否为1,若为1,则转入step6,否则,转入step7;
[0115]
step6:判断当前机器是否有工件正在加工,若没有,则直接在该机器进行安排加工;若有,则在当前工件加工时间结束后,安排o
ij
工序进行加工;
[0116]
step7:查找o
i(j-1)
工序的加工完成时间节点t1=c
i(j-1)
,并与当前机器的可开始加工时间节点t2进行比较,若t1≥t2,则o
ij
开始加工的时间节点为s
ij
=t1,否则开始加工时间节点为s
ij
=t2;
[0117]
step8:根据t
ij
时间表,可得到o
ij
的加工所需时间t
ij
,由式(9)可计算得到o
ij
的加
工完成时间c
ij
,为下一道工序加工开始时间节点提供参考,即下一道工序加工开始时间节点在c
ij
之后;
[0118]cij
=s
ij
+t
ij
ꢀꢀꢀꢀꢀꢀ
(9)
[0119]
step9:判断最后一道工序是否已完成解码,若是,转入step10;否则,转step4;
[0120]
step10:查找所有工序的加工完成时间节点的最大值;
[0121]
3.3)建立评价函数
[0122]cmax
=max(ci)
ꢀꢀꢀꢀꢀꢀ
(10)
[0123]
其中,c
max
表示最大完工时间,ci表示i号工件最后一道工序的加工完成时间,利用式(10)计算得到重型装备所有订单的最终完工时间。
[0124]
步骤4、对调度序列进行更新,采用多智能体进化算法对调度序列进行更新,通过与其邻域个体的自学习、交叉、变异操作方式完成更新;
[0125]
步骤4具体按照以下步骤实施:
[0126]
采用多智能体进化算法对调度序列进行更新,通过与其邻域中方案的自学习、交叉、变异三种操作方式完成更新,
[0127]
4.1)自学习操作策略:
[0128]
step1:随机产生位置点p和距离l(p值、l值的大小均不超过总工序数);
[0129]
step2:确定工序码中的p点处的编码,并将其向右移动l距离;
[0130]
step3:p点原对应的机器编号也在机器码中向右移动相应的距离;
[0131]
step4:工序码中的p点右侧原有信息均向左移动一位,机器码均移动相应距离;
[0132]
step5:判断工序移动后的新个体是否满足前后工序约束要求,若满足,则直接生成新个体;不满足,则转入step1,重新得到工序变异的新智能体。
[0133]
4.2)多智能体交叉操作策略:
[0134]
将被选择交叉的父代工序码区分为两个部分,父代编码区为:p1=[1,3,3,3,1,2,2,1,3];p2=[2,1,2,3,1,3,3,1,2];pa=[1];pb=[2];其中,pa和pb都是父代的子集,交叉过程步骤如下:
[0135]
step1:复制父代p1中包含pa集中信息到子代h1中,且信息位置点固定;
[0136]
step2:将父代p2中删除pa集包含的信息放入子代h1中,依次插空放入;
[0137]
step3:复制p2中包含pb集中的信息到子代h2中,且信息的位置点固定;
[0138]
step4:将父代p1中删除pb集包含的信息放入子代h2中,依次插空放入;
[0139]
step5:判断工序移动后的新个体是否满足前后工序约束要求,若满足,则直接生成新智能体;不满足,则转入step1,重新进行个体交叉生成新智能体。
[0140]
4.3)机器码变异操作策略:
[0141]
step1:随机产生一个变异位置点e(e值大小不超过总工序数);
[0142]
step2:保持e点处的工序码中的编码信息不变;
[0143]
step3:在该工序可选择的所有机器中任意选择一台(需与原来加工机器号不同)机器,然后替换原来该工序在机器编码段的机器号;
[0144]
step4:获得新的智能体。
[0145]
步骤5、判断算法终止进化条件,输出最优调度方案;
[0146]
步骤5具体按照以下步骤实施:
[0147]
设定最大迭代次数(此处迭代次数需根据具体生产优化调度模型设计,在一定程度内迭代次数越多能得到更好的结果,但时间的开销随之增加),判断是否满足最大迭代次数,若满足,则输出最优调度方案;否则,算法继续进化。
[0148]
本发明方法具体优点包括以下方面:
[0149]
1)具有较强的智能性,能根据不同特点的生产任务自动生成调度序列,并根据订单目标要求自动调整序列,使得调度方案达到最优。
[0150]
2)实用性广泛,针对复杂重型装备生产问题,可以合理地调配资源使用量与工序加工顺序之间的关系,生成合理的调度方案。
[0151]
3)具有较强的普适应,不仅在复杂重型装备生产方面,还可适用于其他方面,例如新能源汽车生产加工、大型飞机零部件制造的调度问题,依然可以得到较优的排产调度方案。
[0152]
总之,本发明提出的智能生产调度方法,利用智能体进化方式对调度方案进行寻优,避免了因人工经验误差导致调度方案生成效率低的问题;引入头脑风暴算法对智能体更新进行自动搜索,维持了种群的多样性,简化了人工调度排产的复杂性,能显著提高复杂重型装备的生产调度效率。