发明名称 有限状态自动机生成方法、关键字匹配方法及装置和设备
摘要 本发明公开了一种有限状态自动机的生成方法、查询方法及装置和设备,其中生成方法包括:针对待生成的DFA的每个状态,在为该状态分配的内存空间中为该状态生成第一状态对应表,第一状态对应表用于记录向待生成的DFA输入ASCII字符表的每个字符时,待生成的DFA的下一状态的值为0或者为非0;针对待生成的DFA的每个状态,在为该状态分配的内存空间中为该状态生成第二状态对应表,第二状态对应表用于记录第一状态对应表记录的下一状态的值为非0时该下一状态的值;将所有状态的第一状态对应表和第二状态对应表作为待生成的DFA。与现有技术相比,本发明提供的有限状态自动机的生成方法生成的DFA,所占用的存储资源大大减少。
申请公布号 CN101944121B 申请公布日期 2012.05.30
申请号 CN201010289023.0 申请日期 2010.09.20
申请人 北京星网锐捷网络技术有限公司 发明人 黄凯明
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 北京同达信恒知识产权代理有限公司 11291 代理人 郭润湘
主权项 一种使用有限状态自动机进行关键字匹配的方法,其特征在于,包括:在当前状态下,接收输入的待查询的关键字中的一个字符;确定该字符在ASCII字符表中对应的十进制的字符n;所述n的取值范围为[0,N‑1],所述N为ASCII字符表的字符总数;从当前状态的第一状态对应表中,获取第n+1个比特位记录的第一标识位或第二标识位;所述第一标识位用于指示向有限状态自动机DFA输入ASCII字符表中十进制为n的字符时所述DFA的下一个状态的值为0;所述第二标识位用于指示向所述DFA输入ASCII字符表中十进制为n的字符时所述DFA的下一个状态的值为非0;若获取到的第n+1个比特位记录为第一标识位,则跳转至状态0,等待接收所述待查询的关键字中的下一个字符;若获取到的第n+1个比特位记录为第二标识位,确定该字符对应的DFA的下一个状态的记录在所述第一状态对应表中所有DFA下一状态的值为非0的记录中的位序;在第二状态对应表中,获取相同位序的字节记录的该字符对应的DFA的下一个状态的值,根据获取到的所述下一个状态的值跳转至相应的下一状态,等待接收所述待查询的关键字中的下一个字符;输出所述待查询的关键字的匹配结果。
地址 100036 北京市海淀区复兴路33号翠微大厦东1106