利索能及
我要发布
收藏
专利号: 202311250447X
申请人: 南通大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-11-13
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.基于Petri网和神经网络的柔性制造系统的无死锁调度方法,其特征在于,包括以下步骤:S1、基于可视化柔性制造系统内部工件的加工工序以及各工件之间的机器占用情况,构建能够表达离散并行系统的Petri网模型(N,M0)及其关联矩阵A;并定义如下符号:N:一个由圆形结点、方形结点和有向弧组成的Petri网N=(P,T,F),代表由m台机器组成且能加工n类工件的柔性制造系统;

P:库所集 j表示工件的第j个操作)∪Pr,其中Pi0=Pis∪Pif代表闲置库所集,Pis为上传缓冲区,Pif为卸载缓冲区,Pij代表操作库所集,Pr代表资源库所集;

T:变迁集,由N中所有的方形结点组成,每个变迁t表示上一道工序的结束和下一道工序的开始,也表示对上一道工序所使用资源的释放和下一道工序所使用资源的申请;

F:有向弧集,代表每个工件在系统中的加工流动情况及在加工过程中每个加工工序对资源的需求和释放情况;

M:P→N为标识,N为非负整数集,表示系统的加工状态,标识的每个数字表示各库所中所含的工件数或资源数;其中M0为初始标识,表示系统未开始加工,工件位于上传缓冲区,资源未被占用;

A:关联矩阵,表示N中各变迁下每个库所托肯数的变化规律,是一个|T|行和|P|列的矩阵;

针对不含关键资源的柔性制造系统,在满足工序约束、资源约束和控制约束即无死锁的前提下,以最小化最大完工时间为系统调度的目标函数,即:F=min{max{Ck}}

Makespan=max{Ck}

其中,Ck为第k个工件的最后一道工序的完工时间,k=1,2,…,p,p为工件总数,Makespan为工序序列的最大完工时间;

S2、生成神经网络数据集:利用遗传算法获得神经网络数据集,数据集的属性特征为标识M、已加工时间g以及预计剩余时间h;

S3、搭建前向神经网络模型:对比获得最佳的隐藏层层数以及输入层、隐藏层、输出层各层的神经元个数,确定激活函数、损失函数、学习率参数,利用步骤S2获得的数据集,对前向神经网络进行训练,并利用测试集检验神经网络的训练完成度,获得Petri网标识M和已加工时间g与预计剩余时间h之间的函数关系;

S4、搜索最优调度序列:在训练完前向神经网络后,采用基于神经网络的二分搜索法,对Petri网模型的可达树进行有选择的扩展,每次只选择半数质量更优的树枝进行扩展,减小可达树规模,进而找到从初始结点到目标结点的最短路径,即该Petri网的最优调度序列;

所述步骤S2包括以下步骤:

S2.1、编码与解码:编码是将加工顺序以染色体的形式表达;染色体由路径序列和工序序列组成;其中,路径序列表示各工件选择的路径,长度为p,p为工件总数,路径序列中第i个基因位的数字l表示第i个工件选择第l条加工路径;工序序列表示所有工件的加工顺序,数字i对应第i个工件,数字i的第x次出现表示第i个工件的第x个操作,序列长度为所有工件加工工序的总数;解码是将编码得到的染色体转化成变迁序列,工序序列中数字i的第x次出现,对应第i个工件加工路径上第x个变迁;

S2.2、随机生成初始种群:根据步骤S2.1,随机生成100条染色体,构成初始种群;

S2.3、检测与修复:对每条染色体进行检测与修复,保证最终输出的加工序列是无死锁的;S2.4、计算单个染色体对应工序序列的最大完工时间和适应度值;

S2.5、输出最优个体:输出种群中最优染色体的变迁序列以及对应工序序列的最大完工时间Makespan;

S2.6、判断是否满足终止条件gen>Maxgen,其中gen为当前种群的迭代次数,Maxgen为最大迭代次数;若满足终止条件则输出最优个体,不满足则执行遗传操作;

S2.7、遗传操作:对当前种群进行选择、交叉、变异这三步遗传操作,从而获得新一代的种群,执行步骤S2.3至步骤S2.6;

S2.8、数据处理:计算每一代最优的变迁序列中每个变迁对应的标识M、标识对应的已加工时间g以及预计剩余时间h作为数据集,其中预计剩余时间h通过Makespan减去已加工时间g得到,并以8:2的比例作为训练集与测试集;

所述步骤S2.3包括以下步骤:

S2.3.1、设置u=1,记录当前检测的变迁序号;

S2.3.2、判断u是否大于变迁序列长度,若满足条件则完成对基因序列的修复,否则令变迁序列中第u个变迁为tα,执行步骤S2.3.3;

S2.3.3、检查变迁tα在当前标识下是否使能,若使能则执行步骤S2.3.4,否则从tα之后随机选择一个使能变迁放在其之前,并更新tα;

S2.3.4、采用一步向前看方法判断变迁tα是否允许引发,若不允许引发则选择tα之后任一使能的变迁放在该变迁前面,并更新tα,重新执行步骤S2.3.4;否则引发tα,更新当前标识,令u=u+1,执行步骤S2.3.2;

所述步骤S2.4包括以下步骤:

S2.4.1、计算加工时间:确定当前工序所用到机器的空闲时间,将其与工序对应工件的上一步工序的预估完成时间比较,取两者较大值为当前工序的开始时间,该时间也是上一步工序所占用资源的释放时间和上一步工序的实际完成时间,开始时间加上当前工序的操作时间即为当前工序的预估完成时间;计算完所有工序后,系统最后一道工序的完成时间,即为整个工序序列的最大完工时间Makespan;

S2.4.2、计算适应度值:计算适应度值Adapt,计算公式如下,

其中,Maxspan为当前种群的染色体中最大的完工时间,Minspan为当前种群的染色体中最小的完工时间,Makespan为当前染色体对应工序序列的最大完工时间,k为常数;

所述步骤S3中确定前向神经网络的输入层神经元以及隐藏层层数,具体步骤如下:

步骤S3.1、确定输入层神经元个数:根据目标函数,使用神经网络来拟合Petri网标识M、已加工时间g与预计剩余时间h的函数关系,神经网络的输入层神经元个数为Petri网库所总数加1,输入内容对应为Petri网各库所中托肯的数量以及已加工时间g;

步骤S3.2、确定隐藏层层数:采用控制变量法,确定输入特征数并改变隐藏层层数,从一层至八层递增,以神经网络的输出和当前状态到目标状态的耗时作比较,得到平均误差最小的隐藏层层数;

所述步骤S4中利用基于神经网络的二分搜索法缩小可达树的规模,找出最短路径,具体步骤如下:步骤S4.1、初始化状态列表X0=(M0,g0,h0,f0),其中m0表示初始标识,已加工时间g0=0,预计剩余时间h0=+∞,预计完工时间f0=g0+h0;

步骤S4.2、建立LIST表,将初始状态X0存入LIST中;建立OPEN表,用于存放初始状态到新状态的变迁序列;

步骤S4.3、从LIST中取一个结点作为Xk,并从LIST表去除该结点,通过一步向前看方法计算Xk状态下允许使能的变迁集合Ek+1={ek+1∈T};

步骤S4.4、在状态Xk下逐个引发集合Ek+1中的变迁,产生各变迁对应的新状态Xk+1,分别计算标识Mk+1、已加工时间gk+1,通过神经网络获得新状态Xk+1的hk+1,进而计算预计完工时间fk+1;将得到的这些完工时间按数值大小进行升序排列,然后将前一半数值对应的新状态添加至LIST表中,并将OPEN表中Xk的变迁序列加上ek+1,存入OPEN表中作为初始状态X0到新状态Xk+1的变迁序列;

步骤S4.5、若LIST表为空,则查找OPEN表中所有长度与工件加工序列相同的变迁序列,并计算加工时间,输出加工时间最小的变迁序列,否则执行步骤S4.3。