[发明专利]有限状态自动机生成方法、关键字匹配方法及装置和设备无效
| 申请号: | 201010289023.0 | 申请日: | 2010-09-20 |
| 公开(公告)号: | CN101944121A | 公开(公告)日: | 2011-01-12 |
| 发明(设计)人: | 黄凯明 | 申请(专利权)人: | 北京星网锐捷网络技术有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
| 地址: | 100036 北京市海*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 有限 状态 自动机 生成 方法 关键字 匹配 装置 设备 | ||
1.一种有限状态自动机的生成方法,其特征在于,包括:
针对待生成的有限状态自动机DFA的每个状态,在为该状态分配的内存空间中为该状态生成第一状态对应表,所述第一状态对应表用于记录向所述待生成的DFA输入ASCII字符表的每个字符时,所述待生成的DFA的下一状态的值为0或者为非0;
针对所述待生成的DFA的每个状态,在为该状态分配的内存空间中为该状态生成第二状态对应表,所述第二状态对应表用于记录所述第一状态对应表记录的下一状态的值为非0时该下一状态的值;
将所有状态的第一状态对应表和第二状态对应表作为所述待生成的DFA。
2.如权利要求1所述的方法,其特征在于,所述生成第一对应表,包括:
针对所述待生成的DFA的每个状态,将为该状态分配的存储空间起始的N个比特分别记录为第一标识位或第二标识位;其中,第n+1个比特记录的第一标识位用于指示在该状态下,向所述待生成的DFA输入ASCII字符表中十进制为n的字符时所述待生成的DFA的下一个状态的值为0;第n+1个比特位记录的第二标识位用于指示在该状态下,向所述待生成的DFA输入ASCII字符表中十进制为n的字符时所述待生成的DFA的下一个状态的值为非0;所述n的取值范围为[0,N-1],所述N等于ASCII字符表的字符总数;
将所述N个比特位的记录作为第一对应表。
3.如权利要求1或2所述的方法,其特征在于,生成第二状态对应表,包括:
针对所述待生成的DFA的每个状态,按照每个下一状态的值为非0的记录在第一状态对应表中的先后顺序,将为该状态分配的存储空间起始的N个比特之后的M个字节分别记录为与所述每个下一状态为非0的记录对应的下一状态的值;所述M等于第一状态对应表中所有下一状态为非0的记录的总数;
将所述M个字节的记录作为第二状态对应表。
4.一种使用有限状态自动机进行关键字匹配的方法,其特征在于,包括:
在当前状态下,接收输入的待查询的关键字中的一个字符;
在当前状态的第一状态对应表中查询与该字符对应的有限状态自动机DFA下一状态的记录;
若查询到的记录为下一状态的值为0,则跳转至状态0,等待接收所述待查询的关键字中的下一个字符;
若查询到的记录为下一状态的值为非0,在当前状态的第二状态对应表中查询该字符对应的下一个状态的值,根据查询的结果跳转至相应的下一状态,等待接收所述待查询的关键字中的下一个字符;
输出所述待查询的关键字的匹配结果。
5.如权利要求4所述的方法,其特征在于,在当前状态的第一状态对应表中查询该字符对应的下一状态的记录,包括:
确定该字符在ASCII字符表中对应的十进制的字符n;所述n的取值范围为[0,N-1],所述N为ASCII字符表的字符总数;
从所述第一状态对应表中,获取第n+1个比特位记录的第一标识位或第二标识位;所述第一标识位用于指示向所述DFA输入ASCII字符表中十进制为n的字符时所述DFA的下一个状态的值为0;所述第二标识位用于指示向所述DFA输入ASCII字符表中十进制为n的字符时所述DFA的下一个状态的值为非0。
6.如权利要求4或5所述的方法,其特征在于,所述在当前状态的第二状态对应表中查询该字符对应的下一个状态的值,包括:
确定该字符对应的DFA的下一个状态的记录在所述第一状态对应表中所有DFA下一状态的值为非0的记录中的位序;
在所述第二状态对应表中,获取相同位序的字节记录的该字符对应的DFA的下一个状态的值。
7.一种有限状态自动机的生成装置,其特征在于,包括:
第一状态对应表生成单元,用于针对待生成的有限状态自动机DFA的每个状态,在为该状态分配的内存空间中为该状态生成第一状态对应表,所述第一状态对应表用于记录向所述待生成的DFA输入ASCII字符表的每个字符时,所述DFA的下一状态的值为0或者为非0;
第二状态对应表生成单元,用于针对所述待生成的DFA的每个状态,在为该状态分配的内存空间中为该状态生成第二状态对应表,所述第二状态对应表用于记录所述第一状态对应表记录的下一状态的值为非0时该下一状态的值;
DFA生成单元,用于将所有状态的第一状态对应表和第二状态对应表作为所述待生成的DFA。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京星网锐捷网络技术有限公司,未经北京星网锐捷网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010289023.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于由项的风险承担者控制权利表示的系统和方法
- 下一篇:单词发音系统及其方法





