[发明专利]NFA到DFA的转换方法及装置有效
申请号: | 201911415263.8 | 申请日: | 2019-12-31 |
公开(公告)号: | CN111078963B | 公开(公告)日: | 2023-08-15 |
发明(设计)人: | 王彬;覃永靖;程诗尧;马江波 | 申请(专利权)人: | 奇安信科技集团股份有限公司;奇安信网神信息技术(北京)股份有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 苗晓静 |
地址: | 100088 北京市西城区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | nfa dfa 转换 方法 装置 | ||
1.一种NFA到DFA的转换方法,其特征在于,包括:
基于创建临时跳转闭包NFA状态编号数组的方式,确定与NFA状态集合对应的跳转NFA状态编号有序列表;所述临时跳转闭包NFA状态编号数组的长度为NFA状态集合中包含的NFA状态的总量,数组中的有效值为与NFA状态集合中的各个NFA状态对应的跳转闭包NFA状态编号;所述跳转NFA状态编号有序列表中包含有与NFA状态集合中的各个NFA状态对应的跳转闭包NFA状态编号;
根据所述跳转NFA状态编号有序列表创建DFA状态;
根据各DFA状态中包含的NFA状态之间的跳转关系,构建各DFA状态之间的跳转关系,完成NFA到DFA的转换,其中,所述构建各DFA状态之间的跳转关系,完成NFA到DFA的转换,具体包括:
当跳转边列表包含多个跳转边时,执行处理过程:
若开始字符等于倒数第二条跳转边的结束字符+1,且跳转的DFA状态与倒数第二条跳转边的DFA状态相同,则将倒数第二条跳转边的结束字符更新为结束字符;
若开始字符等于倒数第二条跳转边的结束字符+1,且跳转的DFA状态与倒数第二条跳转边的DFA状态不相同,则在跳转边列表的倒数第一个位置添加跳转边(开始字符,结束字符,跳转的DFA状态);
若开始字符不等于倒数第二条跳转边的结束字符+1,则在跳转边列表的倒数第一个位置添加跳转边(倒数第二条跳转边的结束字符+1,开始字符-1,null),以及,在跳转边列表的最后一个位置添加跳转边(开始字符,结束字符,跳转的DFA状态);
检测结束字符是否等于字符集最大索引,若等于,则将倒数第一条跳转边从跳转边列表中移除,若不等于,则将倒数第一条跳转边的开始字符修改为结束字符+1,或者
所述构建各DFA状态之间的跳转关系,完成NFA到DFA的转换,具体包括:
当跳转边列表仅包含一个跳转边时,执行处理过程:
若开始字符等于0且结束字符等于字符集最大索引,则清空跳转边列表,并向跳转边列表中添加一个跳转边(开始字符,结束字符,跳转的DFA状态);
若开始字符等于0且结束字符不等于字符集最大索引,则清空跳转边列表,并向跳转边列表中添加两个跳转边(开始字符,结束字符,跳转的DFA状态)和(结束字符+1,字符集最大索引,null);
若开始字符不等于0且结束字符等于字符集最大索引,则清空跳转边列表,并向跳转边列表中添加两个跳转边(0,开始字符-1,null)和(开始字符,结束字符,跳转的DFA状态);
若开始字符不等于0且结束字符不等于字符集最大索引,则清空跳转边列表,并向跳转边列表中添加三个跳转边(0,开始字符-1,null)、(开始字符,结束字符,跳转的DFA状态)和(结束字符+1,字符集最大索引)。
2.根据权利要求1所述的NFA到DFA的转换方法,其特征在于,所述基于创建临时跳转闭包NFA状态编号数组的方式,确定与NFA状态集合对应的跳转NFA状态编号有序列表,具体包括:
当NFA状态集合中包含多个NFA状态时,创建临时跳转闭包NFA状态编号数组;其中,所述数组的长度为所述NFA状态集合中包含的NFA状态总量;
在所述数组的基础上逐步叠加所述NFA状态集合中包含的多个NFA状态的跳转闭包NFA状态编号;
遍历所述数组中的有效值,得到与NFA状态集合对应的跳转NFA状态编号有序列表。
3.根据权利要求1所述的NFA到DFA的转换方法,其特征在于,所述根据所述跳转NFA状态编号有序列表创建DFA状态,具体包括:
采用Radix树检索跳转NFA状态编号有序列表,若不存在相同的DFA状态,则创建新的DFA状态,同时将跳转NFA状态编号有序列表和新建的DFA状态添加到Radix树。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇安信科技集团股份有限公司;奇安信网神信息技术(北京)股份有限公司,未经奇安信科技集团股份有限公司;奇安信网神信息技术(北京)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911415263.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:无水染色暨纱线整理机
- 下一篇:大肠杆菌发酵培养基及发酵培养方法