CN117852825A - 基于深度学习的含中心资源柔性制造系统的无死锁调度方法 - Google Patents
基于深度学习的含中心资源柔性制造系统的无死锁调度方法 Download PDFInfo
- Publication number
- CN117852825A CN117852825A CN202410034945.9A CN202410034945A CN117852825A CN 117852825 A CN117852825 A CN 117852825A CN 202410034945 A CN202410034945 A CN 202410034945A CN 117852825 A CN117852825 A CN 117852825A
- Authority
- CN
- China
- Prior art keywords
- transition
- sequence
- neural network
- time
- deadlock
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004519 manufacturing process Methods 0.000 title claims abstract description 50
- 238000013135 deep learning Methods 0.000 title claims abstract description 11
- 238000013528 artificial neural network Methods 0.000 claims abstract description 63
- 238000012549 training Methods 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims abstract description 23
- 238000012360 testing method Methods 0.000 claims abstract description 16
- 230000002068 genetic effect Effects 0.000 claims abstract description 14
- 238000005457 optimization Methods 0.000 claims abstract description 7
- 230000007704 transition Effects 0.000 claims description 93
- 238000012545 processing Methods 0.000 claims description 45
- 210000000349 chromosome Anatomy 0.000 claims description 42
- 210000002569 neuron Anatomy 0.000 claims description 19
- 230000035772 mutation Effects 0.000 claims description 15
- 230000000977 initiatory effect Effects 0.000 claims description 12
- 230000008439 repair process Effects 0.000 claims description 8
- 238000010353 genetic engineering Methods 0.000 claims description 6
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 claims description 3
- 230000004913 activation Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000003062 neural network model Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 12
- 108090000623 proteins and genes Proteins 0.000 description 6
- 238000005498 polishing Methods 0.000 description 5
- 238000005520 cutting process Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及智能制造生产调度技术领域,尤其涉及基于深度学习的含中心资源柔性制造系统的无死锁调度方法。本发明方法包括:针对含关键资源柔性制造系统的生产工序,建立Petri网模型;以最小化最大完工时间作为系统调度的目标函数;通过遗传算法全局寻优,获得一组较有的调度序列,作为前向神经网络的训练集与测试集;建立前向神经网络模型,训练并测试网络拟合精度,获得拟合函数;基于神经网络的改进Dijkstra算法,迭代生成Petri网的部分可达标识,通过神经网络对每个子结点拟合预计完工时间,约束可达树向较优的路径扩展,直至找出目标标识,输出满足目标函数的最短路径作为柔性制造系统的调度序列。
Description
技术领域
本发明涉及智能制造生产调度技术领域,尤其涉及基于深度学习的含中心资源柔性制造系统的无死锁调度方法。
背景技术
柔性制造在当今追求多品种、小批量的生产中具有相当重要的地位。为了生存和发展,越来越多的现代化企业把柔性制造作为提高他们竞争能力的有效手段。柔性制造系统由统一的信息控制系统、物料储运系统和一组数字控制加工设备组成,是一种能适应加工对象不断变换的自动制造系统(Flexible Manufacturing System,FMS)。柔性制造系统包含一组按次序排列的机器,这些生产机器与负责装卸传送的机器经计算机系统连接并集成一体。待加工零件在传输系统上传送,零件在一台机器上加工完毕后传到下一台机器。每台机器接受操作指令,自动加工对应零件,无需人工参与。柔性制造系统有着较高的设备利用率,运行灵活性高,能够减少设备投资。柔性制造系统在零件加工业以及与加工和装配相关的领域都有广泛的应用。
Petri网是描述系统状态变化的图形化数学建模工具,通过Petri网模型,可以揭示被描述系统的结构和行为特征。Dijkstra算法是一种从一个顶点到其余顶点的最短路径算法,解决的是加权有向图中最短路径问题。基于前向神经网络改进Dijkstra算法,在每个可达标识下判断下一个引发变迁,不断扩展直至找到目标标识,在很短的时间内找到好的调度方案。
文献1(Iterative Widen Heuristic Beam SearchAlgorithm for SchedulingProblem ofFlexible Assembly)中Li等人提出了一种基于估计资源平均处理时间的启发式评价函数,来评估每一层生成的状态,用于减小可达树的规模。虽然采用时间平均法去估计了状态的预计完成时间,但该方法不论灵活性还是准确性,都低于神经网络方法。文献2(基于Petri网和神经网络的机械臂调度方法)中采用可达树搜索小规模Petri网,得到数据集对神经网络进行训练,再将训练好的神经网络用于大规模实例预测。但用小规模数据训练的神经网络去预测大规模网络模型,准确性有待考证。
发明内容
本发明的目的在于克服现有技术的缺点,针对含中心资源的柔性制造系统提供一种在生产过程中能有效避免死锁的优化调度方法,能较快地寻找出满足要求的调度序列,提高调度速度,增加生产数量。
本发明为实现上述发明目的,采取的技术方案如下:
基于深度学习的含中心资源柔性制造系统的无死锁调度方法,包括以下步骤:
S1、建模:建立含中心资源柔性制造系统的Petri网模型(N,M0)及其关联矩阵A,其中Petri网N=(PU,T,F),PU为库所集,T为变迁集,F为有向弧集;M0为初始标识,表示系统未开始加工,工件位于上传缓冲区,资源未被占用;
S2、生成神经网络数据集:遗传算法全局寻优获得制造系统的调度序列集合,搜索次优解的同时,为后续神经网络的训练提供数据集,具体步骤如下:
S2-1、随机生成初始种群:编码是用数字对各工件和工序进行编号,得到染色体对应的数字串,由路径序列和工序序列组成;解码是根据Petri网模型,将染色体对应的数字串转化成变迁序列;通过编码与解码,随机生成一定数量的染色体,构成初始种群;
S2-2、检测与修复:针对含中心资源的柔性制造系统,采用两步向前看的死锁避免策略对每条染色体进行检测与修复,保证最终输出的工序序列是无死锁的;
S2-3、输出种群最优个体:计算种群中每条染色体对应工序序列的最大完工时间Makesp an及其适应度值,并输出种群中适应度值最高的染色体及其Makespan,适应度值计算公式如下:
其中,Maxspan为当前种群的染色体中最大的完工时间,Minspan为当前种群的染色体中最小的完工时间,Makespan为当前染色体的最大完工时间,k为常数;
S2-4、判断是否满足终止条件gen>Maxgen,其中gen为当前种群的迭代次数,Maxgen为最大迭代次数;若满足终止条件则输出最优个体,不满足则执行遗传操作;
S2-5、遗传操作:对当前种群进行选择、交叉、变异这三步遗传操作,从而获得新一代的种群,执行S2-3至S2-4;
S2-6、数据处理:计算每一代最优的变迁序列中每个变迁对应的标识M、标识对应的已加工时间g以及预计剩余时间h作为数据集,其中预计剩余时间h通过Makespan减去已加工时间g得到,并以8:2的比例作为训练集与测试集;
S3、获得神经网络拟合函数:搭建前向神经网络,确定网络结构,设定相关参数,通过S2遗传算法获得的数据集对前向神经网络进行训练,并测试其训练完成度,获得Petri网标识M和已加工时间g与预计完工时间h的函数关系,具体步骤如下:
S3-1、确定输入层和输出层神经元个数:使用神经网络来拟合标识M、已加工时间g与预计剩余时间h的函数关系,神经网络的输入层神经元个数为Petri网库所总数加1,输入量为Petri网各库所中托肯的数量以及已加工时间g,输出层神经元个数为1,输出量为预计剩余时间h;
S3-2、确定隐含层层数和各层神经元个数:采用构造法,隐含层从一至八层递增,以相同的数据集对不同隐含层层数的神经网络进行训练,对比不同隐含层层数的神经网络的均方误差,选择误差最小的隐含层层数;隐含层神经元个数逐层减少,相邻两层神经元个数的差值公式为:
其中,nd为相邻两层神经元个数的差值,n为前一层神经元个数,no为输出层神经元个数,α为[1,6]区间内的经验常数;
S3-3、定义神经网络结构,在Sequential()中搭建网络结构,逐层描述输入层、隐含层以及输出层,激活函数选择ReLU函数;优化器选择Adam算法,其中权值、学习率等相关参数选择默认值,损失函数算为MSE;
S3-4、使用训练集训练神经网络,训练次数1000次,并使用测试集对训练完的神经网络进行测试;
S4、搜索最优调度序列:得到训练好的前向神经网络后,采用改进的Dijkstra算法,迭代生成Petri网的部分可达标识,直至扩展至目标标识,找出满足目标函数的最短路径作为系统的最优调度序列。
作为本发明的优选技术方案,所述S2-2中采用两步向前看的死锁避免策略,具体步骤如下:S2-2-1、设置u=1,记录当前检测的变迁序号;S2-2-2、判断u是否大于变迁序列长度,若满足条件则完成对变迁序列的修复,否则令变迁序列中第u个变迁为tα,执行S2-2-3;S2-2-3、判断变迁tα在当前标识下是否使能,若使能则执行S2-2-4,反之则从tα之后随机选择一个使能变迁放在其之前,并更新tα;S2-2-4、采用两步向前看的死锁避免策略,判断tα在当前标识下是否允许引发;首先在当前标识M下引发变迁tα,即M[tα>M1,判断M1是否是死锁标识;如果是,则tα不允许引发,从排在tα后的变迁中找一个新的使能变迁放在tα之前,并更新tα,重新执行S2-2-4;反之,则引发M1下任一使能变迁,得到新标识M2;若M2是死锁标识,则不允许引发tα,从排在tα后的变迁中找一个新的使能变迁放在tα之前,并更新tα,重新执行S2-2-4;反之则引发tα,更新当前标识为M,令u=u+1,执行S2-2-2。
作为本发明的优选技术方案,所述S4中利用基于前向神经网络的改进Dijkstra算法进行路径规划,找出最短工序序列,具体步骤如下:
S4-1、初始化状态列表X0=(M0,g0,h0,f0),其中M0表示初始标识,已加工时间g0=0,预计剩余时间h0=+∞,预计完工时间f0=g0+h0;
S4-2、建立NEW表,将初始状态X0存入NEW表中;建立OLD表,用于存放已被收录的状态;建立TL表,用于存放初始状态到新状态的变迁序列;
S4-3、对NEW表中的所有状态,计算各状态标识M和已加工时间g,通过神经网络训练各状态的预计剩余时间h,进而计算出预计完成时间f;选取表中f最小的状态记为Xk存入OLD表中,并将TL表中Xk-1的变迁序列加上ek,存入TL表中作为初始状态X0到状态Xk的变迁序列,并清空NEW表;
S4-4、通过两步向前看计算Xk状态下允许使能的变迁集合Ek+1={ek+1∈T},并逐个引发集合Ek+1中的变迁,产生各变迁对应的新状态Xk+1,并将所有新状态存入NEW表中;
S4-5、若NEW表中存在目标状态,则计算TL表中对应变迁序列的加工时间,该变迁序列即为加工时间最小的变迁序列,否则执行S4-3。
本发明所述的基于深度学习的含中心资源柔性制造系统的无死锁调度方法,采用以上技术方案与现有技术相比,具有以下技术效果:
(1)本发明针对含中心资源的柔性制造系统,提供两步向前看的死锁避免策略,有效避免调度过程中出现的死锁状态。
(2)本发明采用基于前向神经网络的改进Dijkstra算法判断生产状态的加工时间,选择最优生产状态进行扩展,能较快地寻找出满足要求的调度序列,提高生产效率。
附图说明
图1为本发明涉及的基于深度学习的含中心资源柔性制造系统的无死锁调度方法的流程图;
图2为本发明实施例中刀具加工车间的Petri网模型;
图3为本发明遗传操作中交叉操作示意图;
图4为本发明遗传操作中工序变异操作示意图;
图5为本发明遗传操作中路径变异操作示意图。
具体实施方式
为了使本技术领域的人员更好的理解本申请实施例中的技术方案,首先对本申请实施例中的部分符号进行解释说明,以便于本领域技术人员理解。
如图1所示,本发明实施例为基于深度学习的含中心资源柔性制造系统的无死锁调度方法在刀具加工车间的应用。刀具加工车间是利用切割机床、搬运机器人和打磨机床来生产三种类型的刀具;不同的刀具加工排序编码对应着不同的最大完工时间,其调度策略的优化目标是实现对调度序列最大完工时间的快速寻优,最小化最大完工时间,具体步骤如下:
步骤1)(建模):建立该刀具加工车间的Petri网模型:刀具加工车间制造系统是由三种机器——切割机床、搬运机器人和打磨机床组成;系统能够加工三种类型的刀具,第一类刀具的加工顺序为搬运、打磨、搬运,第二类刀具的加工顺序为搬运、切割、搬运、打磨、搬运,第三类刀具的加工顺序为搬运、打磨、搬运、切割、搬运,其中第二类刀具具有两条加工路径,对于同类型的加工工序可选择不同的机器进行加工,以下标的方式区分其两条加工路径。七台机器r1,r2,r3,r4,r5,r6,r7的加工容量分别为1,1,1,1,1,1,1,在所需加工的三种类型的刀具数分别为3,3,3,每类刀具毛坯品经过上传缓冲区进入生产线,进行切割和打磨,加工完毕后通过卸载缓冲区离开。其中机器r3作为搬运资源,三种刀具均会用到,即为该制造系统的中心资源。该系统对应的Petri网模型如图2所示,
Pi0(i=1,2,3)为闲置库所集,表示存储第i类刀具的缓冲区,刀具毛坯品从上传缓冲区Pis上传至加工车间进行加工,完成所有加工序列后进入卸载缓冲区Pif,Pi0中黑点的数目表示该类工件待加工的毛胚品数目(当数目较大时,黑点用数字代替);
P={pij,i=1,2,3;j=1,2,3,4,5}为操作库所集,其中pij表示第i类刀具的第j个操作过程,pij中黑点的数目表示当前处于该操作的刀具数,pij外面的数字表示刀具完成该操作所需时间;
Pr={rk,k=1,2,3,4,5,6,7}为资源库所集,其中rk表示第k个机器,rk中黑点的数目表示该机器的最大容量;
T={tij,i=1,2,3;j=1,2,3,4,5,6}为变迁集,其中tij表示第i类刀具第j个操作的开始,tij+1表示第i类刀具第j个操作的结束和第j+1个操作的开始。
具体的,t11表示第一类刀具毛胚品从上传缓冲区P1s进入到生产线中,p11表示第一类刀具的第一个操作过程——搬运,该过程由搬运机器人r3完成(由r3到t11、t11到p11的两条弧表示开始,由p11到t12、t12到r3的两条弧表示完成),p11旁边标注的数字8表示该操作所需时间为8个时间单位;图2中的p1s、p2s、p3s中的数字分别表示三类刀具的毛胚品数量为3、3、3,r1,r2,r3,r4,r5,r6,r7中的黑点分表表示其加工容量分别为1,1,1,1,1,1,1;其它操作库所没有黑点,表示在初始状态下其它操作都没有开始,这些黑点数构成初始标识M0=3p1s+3p2s+3p3s+r1+r2+r3+r4+r5+r6+r7。图2中每个符号的具体含义如表1所示。
表1刀具加工车间Petri网模型中库所和变迁的含义
附图2所示Petri网也能用如下所示的关联矩阵A表示:
步骤2)(通过遗传算法生成调度序列):遗传算法全局寻优获得制造系统的调度序列集合,搜索次优解的同时,为后续神经网络的训练提供数据集,具体步骤如下:
步骤2-1)(编码与解码):编码是将加工顺序以染色体的形式表达。染色体由路径序列和工序序列组成。其中,路径序列表示各工件选择的路径,长度为p(p为工件总数),路径序列中第i个基因位的数字l表示第i个工件选择第l条加工路径;工序序列表示所有工件的加工顺序,数字i对应第i个工件,数字i的第x次出现表示第i个工件的第x个操作,序列长度为所有工件加工工序的总数。解码是将编码得到的染色体转化成变迁序列,工序序列中数字i的第x次出现,对应第i个工件加工路径上第x个变迁。
根据图2所示模型,一个可能的编码为π=(1,1,1,1,1,2,1,1,1,6,3,3,6,6,6,6,5,3,5,4,6,9,9,8,3,2,2,9,9,8,2,2,1,1,1,1,5,4,9,7,5,8,7,8,4,9,5,8,4,7,7,8,7,7,5,4,4);
该编码的前9个数字为路径选择序列,代表9个刀具选择的是第几条加工路径,随后为工序序列,工序序列中数字代表工件编号,其中数字1、2、3为第一类工件,数字4、5、6为第二类工件,数字7、8、9为第三类工件。数字6为第二类工件。
工序序列中第一个6的出现意味着毛胚品6的第一个操作开始,即t21引发,第二个6的出现代表着毛坯品6的第二个操作引发,而根据路径选择序列第6个序号可知,毛坯品6选择的第二条加工路径,即对应引发的变迁为t23,依次类推π可解码为如下变迁序列:a=t21-t11-t12-t23-t25-t27-t29-t21-t13-t22-t21-t20-t31-t32-t31-t14-t11-t12-t33-t34-t32-t13-t14-t11-t12-t13-t14-t24-t22-t35-t31-t26-t33-t32-t34-t24-t36-t28-t35-t26-t33-t34-t36-t35-t36-t20-t28-t20。
步骤2-2)(随机生成初始种群):根据步骤2-1)编码与解码的要求,随机生成100条染色体,构成初始种群。
步骤2-3)(检测与修复):针对含中心资源的柔性制造系统,采用两步向前看的死锁避免策略对每条染色体进行检测与修复,保证最终输出的加工序列是无死锁的,具体步骤如下:
步骤2-3-1):设置u=1,记录当前检测的变迁序号;
步骤2-3-2):判断u是否大于变迁序列长度,若满足条件则完成对基因序列的修复,否则令变迁序列中第u个变迁为tα,执行步骤2-3-3);
步骤2-3-3):判断变迁tα在当前标识下是否使能,若使能则执行步骤2-3-4),反之则从tα之后随机选择一个使能变迁放在其之前,并更新tα;
步骤2-3-4):采用两步向前看的死锁避免策略,判断tα在当前标识下是否允许引发。首先在当前标识M下引发变迁tα,即M[tα>M1,判断M1是否是死锁标识;如果是,则tα不允许引发,从排在tα后的变迁中找一个新的使能变迁放在tα之前,并更新tα,重新执行步骤2-3-4);反之,则引发M1下任一使能变迁,得到新标识M2;若M2是死锁标识,则不允许引发tα,从排在tα后的变迁中找一个新的使能变迁放在tα之前,并更新tα,重新执行步骤2-3-4);反之则引发tα,更新当前标识为M;
令u=u+1,执行步骤2-3-2),具体流程如下:选择一条染色体对应的变迁序列π=t21-t31-t32-t33-t11-t12-t23-t25-t27-t29-t21-t13-t22-t21-t20-t31-t14-t11-t12-t34-t32-t13-t14-t11-t12-t13-t14-t24-t22-t35-t31-t26-t33-t32-t34-t24-t36-t28-t35-t26-t33-t34-t36-t35-t36-t20-t28-t20。
初始标识M0=3p10+3p20+3p30+r1+r2+r3+r4+r5+r6+r7,判断完变迁t21-t31-t32后,即M0[t21 t31t32>M1,其中M1=3p10+2p20+p21+2p30+p32+r1+r2+r3+r5+r7。现在判断变迁t33是否允许引发,变迁t33的前置操作库所p32中有一个托肯,前置资源库所r3中也含有托肯,则变迁t33使能,在M1下引发t33,即M1[t33>M2,判断M2=3p10+2p20+p21+2p30+p33+r1+r2+r5+r6+r7不是死锁标识,则计算M2下的使能变迁集合Ek={t22,t23,t34,t31},分别引发Ek中的变迁,得到标识M3=3p10+2p20+p22+2p30+p33+r2+r4+r5+r6+r7,M4=3p10+2p20+p23+2p30+p33+r1+r2+r4+r6+r7,M5=3p10+2p20+p21+2p30+p34+r1+r2+r3+r6+r7,M6=3p10+2p20+p21+p30+p31+p33+r1+r2+r5+r6,其中M4=3p10+2p20+p23+2p30+p33+r1+r2+r4+r6+r7为死锁标识,则变迁t33不允许在标识M1下引发,需要从后面的变迁中选择能引发的变迁放到t33之前,判断该变迁是否允许引发。重复上述步骤,即可完成染色体的检测与修复。
步骤2-4):计算完工时间和适应度值。
算法以甘特图的时间分配原则计算柔性制造系统的加工时间,确定当前工序所用到机器的空闲时间,将其与工序对应工件的上一步工序的预估完成时间比较,取两者较大值为当前工序的开始时间,该时间也是上一步工序所占用资源的释放时间和上一步工序的实际完成时间,开始时间加上当前工序的操作时间即为当前工序的预估完成时间。计算完所有工序后,系统最后一道工序的完成时间,即为整个工序序列的最大完工时间Makespan。
适应度值Adapt的计算公式如下,
其中,Maxspan为当前种群的染色体中最大的完工时间,Minspan为当前种群的染色体中最小的完工时间,Makespan为当前染色体对应工序序列的最大完工时间,k为常数。
步骤2-5)(输出最优个体):输出当前种群中最优染色体的变迁序列及其工序序列的最大完工时间Makespan;
步骤2-6):判断是否满足终止条件gen>Maxgen,其中gen为当前种群的迭代次数,Maxgen为最大迭代次数。若满足终止条件则输出最优个体,不满足则执行遗传操作;
步骤2-7)(遗传操作):对当前种群进行选择、交叉、变异这三步遗传操作,从而获得新一代的种群,执行步骤2-3)至步骤2-6),具体步骤如下:
步骤2-7-1):选择操作是将种群中的染色体按照适应度值从大到小的顺序排列,选择前Selectnum×Popsize数目的染色体直接加入下一代,这里的Selectnum为选择因子,Popsize为种群大小,本例中Selectnum为0.05,Popsize为100;
步骤2-7-2):交叉操作,首先从选择操作的个体中随机挑选一条染色体,然后从其余染色体中再随机挑选一条,随机选择两个插入点,将插入点之间两条染色体的片段进行交换。将原染色体中插入点之间的片段移动到工序序列的最前面,随后从前往后依次删除与插入的片段基因相同的基因,具体过程如图3所示。重复执行交叉操作,直到产生出完整的新一代种群;
步骤2-7-3):变异操作,为避免优秀染色体变异导致种群整体质量下降,采用自适应变异算子,通过设置变异率与适应度值成反比,以判定不同染色体对算法进化的不同贡献,保证优良的染色体可以遗传到下一代,变异率表达式如下:
其中,fd为对应的归一化适应度值,α为变异率比例系数。
随机选择一条父代染色体,生成1个(0,1)之间的随机数,若其小于自适应变异率,则对该个体实施变异操作,操作如下:在染色体中随机选择一个变异点,然后随机确定一个变异长度,若变异的位置在工序序列中,则将变异点前后变异长度的基因进行对调,具体过程如图4所示,变异长度为2;若变异位置在路径选择序列中,则令变异点后变异长度的路径基因片段更改为可更改的其他路径,具体过程如图5所示,变异长度为2。
对于步骤2),设置100次迭代次数,每次迭代输出一次当前最优染色体,组成100组数据集,计算每条染色体的变迁序列中每个变迁对应的标识M、标识对应的已加工时间g以及预计剩余时间h作为数据集,其中预计剩余时间h通过Makespan减去已加工时间g得到,并以8:2的比例作为训练集与测试集作为前向神经网络的数据集。
步骤3):获得神经网络拟合函数,具体步骤如下:
步骤3-1):导入相关模块,如torch,numpy等模块,导入步骤2)中得到的数据集,以8:2的比例作为训练集与测试集;
步骤3-2):根据目标函数,神经网络需要拟合Petri网标识M、已加工时间g与预计剩余时间h的函数关系,因此神经网络的输入层神经元个数为Petri网库所总数加1,输入量为Petri网各库所中托肯的数量以及已加工时间g,输出期望值为预计剩余时间h,其中h为Makespan与g的差值。
步骤3-3):确定神经网络隐含层的层数。采用构造法,以相同的实验数据对具有不同隐含层的神经网络进行训练,比较神经网络的输出和当前状态到目标状态的消耗时间,计算不同深度神经网络的拟合误差,可知对于本例Petri网,8层隐含层的神经网络能学习到更多的特征,确定神经网络的隐含层层数为8层。
步骤3-3):定义神经网络结构,在Sequential()中搭建网络结构,逐层描述输入层、隐含层以及输出层,激活函数选择ReLU函数。优化器选择Adam算法,其中权值、学利率等相关参数选择默认值,损失函数算为MSE。
步骤3-4):使用训练集训练神经网络,训练次数1000次,并使用测试集对训练完的神经网络进行测试。
步骤4):基于训练好的前向神经网络,对Dijkstra算法进行改进,迭代生成Petri网的部分可达标识,直至扩展至目标标识,找出满足目标函数的最短路径作为Petri网的最优调度序列,具体步骤如下:
步骤4-1):初始化状态列表X0=(M0,g0,h0,f0),其中M0表示初始标识,已加工时间g0=0,预计剩余时间h0=+∞,预计完工时间f0=g0+h0;
步骤4-2):建立NEW表,将初始状态X0存入NEW表中;建立OLD表,用于存放已被收录的状态;建立TL表,用于存放初始状态到新状态的变迁序列;
步骤4-3):对NEW表中的所有状态,计算各状态标识M和已加工时间g,通过神经网络训练各状态的预计剩余时间h,进而计算出预计完成时间f。选取表中f最小的状态记为Xk存入OLD表中,并将TL表中Xk-1的变迁序列加上ek,存入TL表中作为初始状态X0到状态Xk的变迁序列,并清空NEW表;
步骤4-4):通过两步向前看计算Xk状态下允许使能的变迁集合Ek+1={ek+1∈T},并逐个引发集合Ek+1中的变迁,产生各变迁对应的新状态Xk+1,并将所有新状态存入NEW表中;
步骤4-5):若NEW表中存在目标状态,则计算TL表中对应变迁序列的加工时间,该变迁序列即为加工时间最小的变迁序列,否则执行步骤4-3)。
具体过程如下:当前NEW表中存在状态X0=(M0,g0,h0,f0),计算其标识M0=3p10+3p20+3p30+r1+r2+r3+r4+r5+r6+r7和已加工时间g(0)=0,并通过神经网络拟合出预计剩余时间h0=+∞,继而计算预计完工时间f0=+∞。因为NEW表中只有一个状态,因此选择其进行扩展,将其存入OLD表中并清空NEW表。通过两步向前看方法判断该状态下有3个变迁允许引发,分别为t11、t21、t31,分别引发这三个变迁获得新的状态X1,X2,X3,并将新状态存入NEW表中。
对NEW表中的三个新状态,分别计算其标识为M1=2p10+p11+3p20+3p30+r1+r2+r4+r5+r6+r7,M2=3p10+2p20+p21+3p30+r1+r2+r3+r5+r6+r7,M3=3p10+3p20+2p30+p31+r1+r2+r3+r4+r5+r6,已加工时间g(1)=8,g(2)=4,g(3)=5,接着将每个可达标识M及其已加工时间g输入到神经网络中,获得预计剩余时间h(1)=236,h(2)=250,h(3)=245,计算得f(1)=244,f(2)=254,f(3)=250,选取M1作为待扩展的结点放入OLD表中,对应变迁t11放入TL表中并清空NEW表。通过两步向前看找出状态X1下允许引发的变迁集合再次寻找新的标识放入NEW表中。重复上述步骤直至NEW表中出现目标状态,即完成最优调度序列的寻找。
输出最优的工序序列:π=(1,1,1,2,1,1,1,1,1,3,4,3,4,4,5,4,4,3,5,6,4,8,8,7,3,2,2,8,7,8,2,2,1,1,1,1,5,9,5,7,6,8,7,9,6,8,7,5,6,9,9,5,6,7,9,9,6),变迁序列:a=t11-t21-t12-t23-t25-t21-t27-t29-t13-t22-t21-t20-t31-t32-t31-t14-t11-t12-t33-t32-t34-t13-t14-t11-t12-t13-t14-t24-t31-t26-t33-t22-t35-t34-t32-t24-t36-t35-t28-t26-t33-t34-t20-t28-t36-t35-t36-t20,对应的Makespan=230。
本发明方法包括:针对含关键资源柔性制造系统的生产工序,建立Petri网模型;以最小化最大完工时间作为系统调度的目标函数;通过遗传算法全局寻优,获得一组较有的调度序列,作为前向神经网络的训练集与测试集;建立前向神经网络模型,训练并测试网络拟合精度,获得拟合函数;基于神经网络的改进Dijkstra算法,迭代生成Petri网的部分可达标识,通过神经网络对每个子结点拟合预计完工时间,约束可达树向较优的路径扩展,直至找出目标标识,输出满足目标函数的最短路径作为柔性制造系统的调度序列。
以上所述的具体实施方案,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施方案而已,并非用以限定本发明的范围,任何本领域的技术人员,在不脱离本发明的构思和原则的前提下所做出的等同变化与修改,均应属于本发明保护的范围。
Claims (3)
1.基于深度学习的含中心资源柔性制造系统的无死锁调度方法,其特征在于,包括以下步骤:
S1、建模:建立含中心资源柔性制造系统的Petri网模型(N,M0)及其关联矩阵A,其中Petri网N=(PU,T,F),PU为库所集,T为变迁集,F为有向弧集;M0为初始标识,表示系统未开始加工,工件位于上传缓冲区,资源未被占用;
S2、生成神经网络数据集:遗传算法全局寻优获得制造系统的调度序列集合,搜索次优解的同时,为后续神经网络的训练提供数据集,具体步骤如下:
S2-1、随机生成初始种群:编码是用数字对各工件和工序进行编号,得到染色体对应的数字串,由路径序列和工序序列组成;解码是根据Petri网模型,将染色体对应的数字串转化成变迁序列;通过编码与解码,随机生成一定数量的染色体,构成初始种群;
S2-2、检测与修复:针对含中心资源的柔性制造系统,采用两步向前看的死锁避免策略对每条染色体进行检测与修复,保证最终输出的工序序列是无死锁的;
S2-3、输出种群最优个体:计算种群中每条染色体对应工序序列的最大完工时间Makesp an及其适应度值,并输出种群中适应度值最高的染色体及其Makespan,适应度值计算公式如下:
其中,Maxspan为当前种群的染色体中最大的完工时间,Minspan为当前种群的染色体中最小的完工时间,Makespan为当前染色体的最大完工时间,k为常数;
S2-4、判断是否满足终止条件gen>Maxgen,其中gen为当前种群的迭代次数,Maxgen为最大迭代次数;若满足终止条件则输出最优个体,不满足则执行遗传操作;
S2-5、遗传操作:对当前种群进行选择、交叉、变异这三步遗传操作,从而获得新一代的种群,执行S2-2至S2-4;
S2-6、数据处理:计算每一代最优的变迁序列中每个变迁对应的标识M、标识对应的已加工时间g以及预计剩余时间h作为数据集,其中预计剩余时间h通过Makespan减去已加工时间g得到,并以8:2的比例作为训练集与测试集;
S3、获得神经网络拟合函数:搭建前向神经网络,确定网络结构,设定相关参数,通过S2遗传算法获得的数据集对前向神经网络进行训练,并测试其训练完成度,获得Petri网标识M和已加工时间g与预计完工时间h的函数关系,具体步骤如下:
S3-1、确定输入层和输出层神经元个数:使用神经网络来拟合标识M、已加工时间g与预计剩余时间h的函数关系,神经网络的输入层神经元个数为Petri网库所总数加1,输入量为Petri网各库所中托肯的数量以及已加工时间g,输出层神经元个数为1,输出量为预计剩余时间h;
S3-2、确定隐含层层数和各层神经元个数:采用构造法,隐含层从一至八层递增,以相同的数据集对不同隐含层层数的神经网络进行训练,对比不同隐含层层数的神经网络的均方误差,选择误差最小的隐含层层数;隐含层神经元个数逐层减少,相邻两层神经元个数的差值公式为:
其中,nd为相邻两层神经元个数的差值,n为前一层神经元个数,no为输出层神经元个数,α为[1,6]区间内的经验常数;
S3-3、定义神经网络结构,在Sequential()中搭建网络结构,逐层描述输入层、隐含层以及输出层,激活函数选择ReLU函数;优化器选择Adam算法,其中权值、学习率等相关参数选择默认值,损失函数算为MSE;
S3-4、使用训练集训练神经网络,训练次数1000次,并使用测试集对训练完的神经网络进行测试;
S4、搜索最优调度序列:得到训练好的前向神经网络后,采用改进的Dijkstra算法,迭代生成Petri网的部分可达标识,直至扩展至目标标识,找出满足目标函数的最短路径作为系统的最优调度序列。
2.根据权利要求1所述的基于深度学习的含中心资源柔性制造系统的无死锁调度方法,其特征在于,所述S2-2中采用两步向前看的死锁避免策略,具体步骤如下:
S2-2-1、设置u=1,记录当前检测的变迁序号;
S2-2-2、判断u是否大于变迁序列长度,若满足条件则完成对变迁序列的修复,否则令变迁序列中第u个变迁为tα,执行S2-2-3;
S2-2-3、判断变迁tα在当前标识下是否使能,若使能则执行S2-2-4,反之则从tα之后随机选择一个使能变迁放在其之前,并更新tα;
S2-2-4、采用两步向前看的死锁避免策略,判断tα在当前标识下是否允许引发;首先在当前标识M下引发变迁tα,即M[tα>M1,判断M1是否是死锁标识;如果是,则tα不允许引发,从排在tα后的变迁中找一个新的使能变迁放在tα之前,并更新tα,重新执行S2-2-4;反之,则引发M1下任一使能变迁,得到新标识M2;若M2是死锁标识,则不允许引发tα,从排在tα后的变迁中找一个新的使能变迁放在tα之前,并更新tα,重新执行S2-2-4;反之则引发tα,更新当前标识为M,令u=u+1,执行S2-2-2。
3.根据权利要求2所述的基于深度学习的含中心资源柔性制造系统的无死锁调度方法,其特征在于,所述S4中利用基于前向神经网络的改进Dijkstra算法进行路径规划,找出最短工序序列,具体步骤如下:
S4-1、初始化状态列表X0=(M0,g0,h0,f0),其中M0表示初始标识,已加工时间g0=0,预计剩余时间h0=+∞,预计完工时间f0=g0+h0;
S4-2、建立NEW表,将初始状态X0存入NEW表中;建立OLD表,用于存放已被收录的状态;建立TL表,用于存放初始状态到新状态的变迁序列;
S4-3、对NEW表中的所有状态,计算各状态标识M和已加工时间g,通过神经网络训练各状态的预计剩余时间h,进而计算出预计完成时间f;选取表中f最小的状态记为Xk存入OLD表中,并将TL表中Xk-1的变迁序列加上ek,存入TL表中作为初始状态X0到状态Xk的变迁序列,并清空NEW表;
S4-4、通过两步向前看计算Xk状态下允许使能的变迁集合Ek+1={ek+1∈T},并逐个引发集合Ek+1中的变迁,产生各变迁对应的新状态Xk+1,并将所有新状态存入NEW表中;
S4-5、若NEW表中存在目标状态,则计算TL表中对应变迁序列的加工时间,该变迁序列即为加工时间最小的变迁序列,否则执行S4-3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410034945.9A CN117852825A (zh) | 2024-01-10 | 2024-01-10 | 基于深度学习的含中心资源柔性制造系统的无死锁调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410034945.9A CN117852825A (zh) | 2024-01-10 | 2024-01-10 | 基于深度学习的含中心资源柔性制造系统的无死锁调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117852825A true CN117852825A (zh) | 2024-04-09 |
Family
ID=90543501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410034945.9A Pending CN117852825A (zh) | 2024-01-10 | 2024-01-10 | 基于深度学习的含中心资源柔性制造系统的无死锁调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117852825A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11259333A (ja) * | 1998-03-06 | 1999-09-24 | Fujitsu Ltd | 論理検証用入力時系列の生成装置およびその生成方法およびそのプログラムを記憶した記憶媒体 |
CN110334837A (zh) * | 2019-04-11 | 2019-10-15 | 浙江同筑科技有限公司 | 一种基于petri网分解的多AGV调度方法 |
CN111563336A (zh) * | 2020-04-30 | 2020-08-21 | 南通大学 | 一种基于改进遗传算法的柔性制造系统无死锁调度方法 |
CN117314078A (zh) * | 2023-09-26 | 2023-12-29 | 南通大学 | 基于Petri网和神经网络的柔性制造系统的无死锁调度方法 |
-
2024
- 2024-01-10 CN CN202410034945.9A patent/CN117852825A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11259333A (ja) * | 1998-03-06 | 1999-09-24 | Fujitsu Ltd | 論理検証用入力時系列の生成装置およびその生成方法およびそのプログラムを記憶した記憶媒体 |
CN110334837A (zh) * | 2019-04-11 | 2019-10-15 | 浙江同筑科技有限公司 | 一种基于petri网分解的多AGV调度方法 |
CN111563336A (zh) * | 2020-04-30 | 2020-08-21 | 南通大学 | 一种基于改进遗传算法的柔性制造系统无死锁调度方法 |
CN117314078A (zh) * | 2023-09-26 | 2023-12-29 | 南通大学 | 基于Petri网和神经网络的柔性制造系统的无死锁调度方法 |
Non-Patent Citations (1)
Title |
---|
邹岷强 等: "一种Petri网最优控制序列的高效设计方法", 《西安电子科技大学学报》, vol. 49, 30 June 2022 (2022-06-30), pages 199 - 205 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111966050B (zh) | 基于ammas-ga嵌套算法的双资源模具作业车间调度优化方法 | |
CN111242503B (zh) | 一种基于两层遗传算法的多目标柔性作业车间调度方法 | |
CN110738365B (zh) | 一种基于粒子群算法的柔性作业车间生产调度方法 | |
CN113379087A (zh) | 一种基于改进遗传算法的生产制造排产优化方法 | |
CN113341889B (zh) | 带装配阶段和能耗的分布式阻塞流水车间调度方法及系统 | |
CN112561225B (zh) | 一种基于标杆协同进化算法的柔性作业车间调度方法 | |
CN112085368A (zh) | 一种基于免疫遗传算法的设备产能配置与布局优化方法 | |
CN117314078B (zh) | 基于Petri网和神经网络的柔性制造系统的无死锁调度方法 | |
CN113610233A (zh) | 一种基于改进遗传算法的柔性作业车间调度方法 | |
CN106611275A (zh) | 针对作业车间生产问题的排产算法 | |
CN111382915A (zh) | 一种共融agv的柔性作业车间调度方法 | |
CN113988396A (zh) | 一种基于nsga-iii算法的工序排序多目标优化方法 | |
CN112381273A (zh) | 一种基于u-nsga-iii算法的多目标作业车间节能优化方法 | |
CN116466659A (zh) | 一种基于深度强化学习的分布式装配流水车间调度方法 | |
CN116560313A (zh) | 一种多目标柔性作业车间问题的遗传算法优化调度方法 | |
CN114611379A (zh) | 一种基于数据驱动的加工工艺节能规划方法 | |
CN115454005A (zh) | 一种面向有限运输资源场景的制造车间动态智能调度方法及装置 | |
CN115730799A (zh) | 一种柔性装配作业车间生产任务调度方法、系统及设备 | |
CN117035364A (zh) | 基于改进混合模因算法的分布式异构流水车间调度方法 | |
CN113762811B (zh) | 一种考虑加班的无拖期Job Shop调度问题求解方法及系统 | |
CN115249113A (zh) | 一种带准备时间分布式零等待流水车间调度方法与系统 | |
CN117077975A (zh) | 基于混合初始化模因算法的分布式异构流水车间调度方法 | |
Rifai et al. | Multi-operator hybrid genetic algorithm-simulated annealing for reentrant permutation flow-shop scheduling | |
CN117852825A (zh) | 基于深度学习的含中心资源柔性制造系统的无死锁调度方法 | |
CN116774657A (zh) | 一种基于鲁棒优化的再制造车间动态调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |