[发明专利]一种基于GPU并行计算的自动制造系统Petri网状态生成方法有效
| 申请号: | 201910261540.8 | 申请日: | 2019-04-02 |
| 公开(公告)号: | CN110059378B | 公开(公告)日: | 2022-09-06 |
| 发明(设计)人: | 黄波;郭宇斌;丁高瞻;俞翀;裴焱栋;蔡志成 | 申请(专利权)人: | 南京理工大学 |
| 主分类号: | G06F30/22 | 分类号: | G06F30/22 |
| 代理公司: | 南京理工大学专利中心 32203 | 代理人: | 马鲁晋 |
| 地址: | 210094 江*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 gpu 并行 计算 自动 制造 系统 petri 网状 生成 方法 | ||
1.一种基于GPU并行计算的自动制造系统Petri网状态生成方法,其特征在于,包括以下步骤:
步骤1、将待求解的Petri网模型、Petri网系统初始状态M0转化为输入文件;
步骤2、初始化一个普通数组或链表结构的表,用于表示新产生的状态集合OPEN;初始化一个红黑树结构的表,用于表示已生成的状态集合CLOSED;
步骤3、从Petri网系统初始状态M0开始,搜索Petri网所有的可达状态构成可达状态集;具体为:
步骤3-1、将Petri网系统初始状态M0加入OPEN集合与CLOSED集合;
步骤3-2、为GPU分配显存并将OPEN集合拷贝至显存;为OPEN集合中每一个状态的每个变迁分配线程;
步骤3-3、在GPU中使用搜索策略并行地扩展新的状态,获得新扩展状态集;所述搜索策略具体采用宽度优先搜索策略;所述扩展新的状态,具体为:
OPEN集合中每一个状态的每个变迁均由一个GPU线程处理,具体包括以下过程:
步骤3-3-1、判断某一状态M的某个变迁是否使能,若使能,发射该变迁,执行步骤3-3-2;其中,判断变迁是否使能,具体为:若变迁t满足M(p)≥W(p,t),则变迁t使能,·t表示变迁t的前置库所,M(p)表示库所p中托肯的数量,W(p,t)表示库所p和变迁t之间弧的权重;
步骤3-3-2、计算发射该变迁后状态M扩展出的新状态M',所用公式为:
M'=M+[N](·,t)
式中,[N](·,t)为变迁t对应的关联矩阵列向量;
步骤3-4、将步骤3-3获得的新扩展状态集移出显存并加入OPEN集合,释放显存空间;
步骤3-5、将OPEN集合与CLOSED集合进行比较,去除重复状态,即去除OPEN集合中已经在CLOSED集合中的状态;之后将OPEN集合中的状态加入至CLOSED集合中;所述去除重复状态,具体为:
对于OPEN集合中每个状态M,从根节点开始查找用红黑树表示的CLOSED集合,若找到相同的状态M,则从OPEN集合中删除该状态;若没有找到,则将该状态插入至红黑树中;
步骤3-6、判断OPEN集合是否为空,若为空,终止搜索,获得所有可达状态;反之返回步骤3-2;
步骤4、输出可达状态集中每个可达状态的状态标号、状态向量、该状态具体由哪些状态通过发射哪些变迁获得。
2.根据权利要求1所述的基于GPU并行计算的自动制造系统Petri网状态生成方法,其特征在于,步骤1所述输入文件的格式为:
将自定义的用于Petri网模型演化的关联矩阵、初始状态序列储存在不同的文件中;其中,
(1)关联矩阵为一个n行m列的整数矩阵N,采用如下公式生成:
N={Nij|如果存在一条弧由变迁j指向库所i,则Nij=1;如果存在一条弧由库所i指向变迁j,则Nij=-1;否则Nij=0}
式中,Nij为矩阵N中第i行j列的元素,1≤i≤n,1≤j≤m,n为Petri网中的库所数,m为变迁数;
(2)初始状态序列为一个整数数列S={Si|1≤i≤n},其中Si表示初始状态M0中第i个库所托肯的个数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910261540.8/1.html,转载请声明来源钻瓜专利网。





