[发明专利]NFA到DFA的转换方法及装置有效

专利信息
申请号: 201911415263.8 申请日: 2019-12-31
公开(公告)号: CN111078963B 公开(公告)日: 2023-08-15
发明(设计)人: 王彬;覃永靖;程诗尧;马江波 申请(专利权)人: 奇安信科技集团股份有限公司;奇安信网神信息技术(北京)股份有限公司
主分类号: G06F16/903 分类号: G06F16/903
代理公司: 北京路浩知识产权代理有限公司 11002 代理人: 苗晓静
地址: 100088 北京市西城区*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: nfa dfa 转换 方法 装置
【说明书】:

发明实施例提供一种NFA到DFA的转换方法及装置,所述方法包括:基于创建临时跳转闭包NFA状态编号数组的方式,确定与NFA状态集合对应的跳转NFA状态编号有序列表;根据所述跳转NFA状态编号有序列表创建DFA状态;构建各DFA状态之间的跳转关系,完成NFA到DFA的转换。本发明实施例由于采用基于创建临时跳转闭包NFA状态编号数组的方式确定与NFA状态集合对应的跳转NFA状态编号有序列表,因此,相对于传统的基于Map数据结构的处理方式,本发明实施例具有“无须计算哈希值”和“无须比较多次”的优点,因此,能够节省CPU资源,减少NFA转DFA的执行时间,进而可以提升正则表达式匹配的整体性能。

技术领域

本发明涉及计算机技术领域,尤其涉及一种NFA到DFA的转换方法及装置。

背景技术

现有的正则表达式匹配引擎,先将正则表达式编译为NFA(非确定有穷自动机,Non-deterministic finite automaton)。然后,使用“子集构造法”将NFA转换为DFA(确定有穷自动机,Deterministic finite automaton)。最后,采用DFA执行匹配任务。

目前在使用“子集构造法”将NFA转换为DFA时,一般基于Map数据结构的处理方式,但是这种处理方式的缺点是:NFA转换为DFA的执行时间较长,不仅浪费了CPU资源,而且降低了正则表达式匹配引擎的整体性能。

发明内容

针对现有技术中的问题,本发明实施例提供一种NFA到DFA的转换方法及装置。

具体地,本发明实施例提供了以下技术方案:

第一方面,本发明实施例提供了一种NFA到DFA的转换方法,包括:

基于创建临时跳转闭包NFA状态编号数组的方式,确定与NFA状态集合对应的跳转NFA状态编号有序列表;所述临时跳转闭包NFA状态编号数组的长度为NFA状态集合中包含的NFA状态的总量,数组中的有效值为与NFA状态集合中的各个NFA状态对应的跳转闭包NFA状态编号;所述跳转NFA状态编号有序列表中包含有与NFA状态集合中的各个NFA状态对应的跳转闭包NFA状态编号;

根据所述跳转NFA状态编号有序列表创建DFA状态;

根据各DFA状态中包含的NFA状态之间的跳转关系,构建各DFA状态之间的跳转关系,完成NFA到DFA的转换。

进一步地,所述基于创建临时跳转闭包NFA状态编号数组的方式,确定与NFA状态集合对应的跳转NFA状态编号有序列表,具体包括:

当NFA状态集合中包含多个NFA状态时,创建临时跳转闭包NFA状态编号数组;其中,所述数组的长度为所述NFA状态集合中包含的NFA状态总量;

在所述数组的基础上逐步叠加所述NFA状态集合中包含的多个NFA状态的跳转闭包NFA状态编号;

遍历所述数组中的有效值,得到与NFA状态集合对应的跳转NFA状态编号有序列表。

进一步地,所述根据所述跳转NFA状态编号有序列表创建DFA状态,具体包括:

采用Radix树检索跳转NFA状态编号有序列表,若不存在相同的DFA状态,则创建新的DFA状态,同时将跳转NFA状态编号有序列表和新建的DFA状态添加到Radix树。

进一步地,所述采用Radix树检索跳转NFA状态编号有序列表,若不存在相同的DFA状态,则创建新的DFA状态,同时将跳转NFA状态编号有序列表和新建的DFA状态添加到Radix树,具体包括:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奇安信科技集团股份有限公司;奇安信网神信息技术(北京)股份有限公司,未经奇安信科技集团股份有限公司;奇安信网神信息技术(北京)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911415263.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top