[发明专利]AC状态机的构建方法及装置无效
申请号: | 201210038061.8 | 申请日: | 2012-02-17 |
公开(公告)号: | CN102646115A | 公开(公告)日: | 2012-08-22 |
发明(设计)人: | 陈国鹏 | 申请(专利权)人: | 北京星网锐捷网络技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 马爽 |
地址: | 100036 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | ac 状态机 构建 方法 装置 | ||
1.一种AC状态机的构建方法,其特征在于,包括:
将各搜寻模式中的各通配符设置为特定字符;
根据所述各搜寻模式构建关键字树,所述关键字树包括各状态节点、各状态节点的goto函数表和output函数表,其中,将基于所述特定字符所转移至的状态节点视为通配符节点;
将所述通配符节点的goto函数表复制到兄弟状态节点中,并记录转移至所述兄弟状态节点的输入字符为待排除字符,其中,所述兄弟状态节点为与所述通配符节点具有同一上层状态节点的状态节点;
当识别到复制goto函数表与兄弟状态节点的原有goto函数表存在不确定goto函数时,将复制goto函数表中的不确定goto函数视为新goto函数,原有goto函数表中的不确定goto函数视为旧goto函数;
将新goto函数输出值所对应的状态节点的goto函数表复制到旧goto函数输出值所对应的状态节点的goto函数表中,去除新goto函数,并返回执行上述识别步骤,直至未识别到不确定goto函数为止;
将所述特定字符转换为所述通配符,并从所述通配符中排除所述兄弟状态节点对应的所有待排除字符。
2.根据权利要求1所述的AC状态机的构建方法,其特征在于,各搜寻模式中的确定字符由ASCII码值表示,所述特定字符由非ASCII码值的数值表示。
3.根据权利要求1或2所述的AC状态机的构建方法,其特征在于,识别复制goto函数与兄弟状态节点的原有goto函数存在不确定goto函数包括:
识别复制goto函数与兄弟状态节点的原有goto函数的各转移函数表达式和转移函数输出值;
将转移函数表达式相同,且转移函数输出值不同的转移函数作为不确定goto函数。
4.根据权利要求1所述的AC状态机的构建方法,其特征在于,所述通配符为?。
5.根据权利要求4所述的AC状态机的构建方法,其特征在于,所述搜寻模式中所述通配符的个数为1个或多个。
6.根据权利要求1所述的AC状态机的构建方法,其特征在于,所述将新goto函数输出值所对应的状态节点的goto函数表复制到旧goto函数输出值所对应的状态节点的goto函数表中,去除新goto函数之后,且在返回执行上述识别步骤,直至未识别到不确定goto函数为止之前,还包括:
判断所述新goto函数输出值所对应的状态节点是否为终状态节点,当判断结果为是时,将所述新goto函数输出值所对应的状态节点的output函数表复制到旧goto函数输出值所对应的状态节点的output函数表中,所述终状态节点为所述各搜寻模式中最后一个输入字符对应的状态节点。
7.根据权利要求1所述的AC状态机的构建方法,其特征在于,在所述排除所述兄弟状态节点对应的所有待排除字符之后,还包括:
根据所述关键字树和去failure算法构建AC状态机。
8.一种AC状态机的构建装置,其特征在于,包括:
设定模块,用于将各搜寻模式中的通配符设置为特定字符;
构建模块,用于根据所述各搜寻模式构建关键字树,所述关键字树包括各状态节点、各状态节点的goto函数表和output函数表,其中,将基于所述特定字符所转移至的状态节点视为通配符节点;
复制模块,用于将所述通配符节点的goto函数表复制到兄弟状态节点中,并记录转移至所述兄弟状态节点的输入字符为待排除字符,其中,所述兄弟状态节点为与所述通配符节点具有同一上层状态节点的状态节点;
识别模块,用于当识别到复制goto函数表与兄弟状态节点的原有goto函数表存在不确定goto函数时,将复制goto函数表中的不确定goto函数视为新goto函数,原有goto函数表中的不确定goto函数视为旧goto函数,并将新goto函数输出值所对应的状态节点的goto函数表复制到旧goto函数输出值所对应的状态节点的goto函数表中,去除新goto函数,并返回执行上述识别步骤,直至未识别到不确定goto函数为止;
排除模块,用于将所述特定字符转换为所述通配符,并从所述通配符中排除所述兄弟状态节点对应的所有待排除字符。
9.根据权利要求8所述的AC状态机的构建装置,其特征在于,各搜寻模式中的确定字符由ASCII码值表示,所述特定字符由非ASCII码值的数值表示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京星网锐捷网络技术有限公司,未经北京星网锐捷网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210038061.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:钒电池全氟磺酸质子膜及其制备方法
- 下一篇:一种治疗糖尿病的中药