1.基于深度学习的含中心资源柔性制造系统的无死锁调度方法,其特征在于,包括以下步骤:
S1、建模:建立含中心资源柔性制造系统的Petri网模型(N,M0)及其关联矩阵A,N=(PU,T,F),PU为库所集,T为变迁集,F为有向弧集;M0为初始标识,表示系统未开始加工,工件位于上传缓冲区,资源未被占用;
S2、生成神经网络数据集:遗传算法全局寻优获得制造系统的调度序列集合,搜索次优解的同时,为后续神经网络的训练提供数据集,具体步骤如下:S2‑1、随机生成初始种群:编码是用数字对各工件和工序进行编号,得到染色体对应的数字串,由路径序列和工序序列组成;解码是根据Petri网模型,将染色体对应的数字串转化成变迁序列;通过编码与解码,随机生成一定数量的染色体,构成初始种群;
S2‑2、检测与修复:针对含中心资源的柔性制造系统,采用两步向前看的死锁避免策略对每条染色体进行检测与修复,保证最终输出的工序序列是无死锁的;
S2‑3、输出种群最优个体:计算种群中每条染色体对应工序序列的最大完工时间Makespan及其适应度值,并输出种群中适应度值最高的染色体及其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网的部分可达标识,直至扩展至目标标识,找出满足目标函数的最短路径作为系统的最优调度序列;
所述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是否是死锁标识;若M1是死锁标识,则tα不允许引发,从排在tα后的变迁中找一个新的使能变迁放在tα之前,并更新tα,重新执行S2‑2‑4;若M1不是死锁标识,则引发M1下任一使能变迁,得到新标识M2;若M2是死锁标识,则不允许引发tα,从排在tα后的变迁中找一个新的使能变迁放在tα之前,并更新tα,重新执行S2‑2‑4;若M2不是死锁标识,则引发tα,更新当前标识为M,令u=u+1,重新执行S2‑2‑2至S2‑2‑4;
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。