AC
多模匹配算法小结
1.AC算法的原理
本程序采用了AC的多模匹配方法。Aho_Corasick自动机匹配算法是最著名的多模匹配算法之一。该算法在1975年产生于贝尔实验室。
AC自动机匹配算法基于一种精巧的模式树(Trie)性质的一棵树K;
1.
的每一条边e上都用一个字符作为标签;K
2.
与同一节点相连的边的标签均不同;
3.
每一个模式p∈ P,都存在一个节点v,使得L(v)=p,其中L(v)表示从根节点到v所经过的所有边上的标签的联合拼接;
4.
每一个叶子节点v’都存在一个模式p∈ P使L(v’)=p。
对于模式集{he,she,his,hers },
模式树如图所示
"
其中圆圈表示节点
,
双圈是根节点
,
边上的字符就是该边的标签
,
粗圈的标签就是各个模式
!
图1 模式树(Trie)
有限自动机的基本思想是根据输入和当前的状态决定下一个状态和输出,接着再进入下一次输入。在字符串多模式匹配中,向自动机输入所要查找的目标字符串,自动机可以输出查找到的模式串以及模式串在目标串的位置。有限自动机的构造过程是将模式串集合变换成由转向函数,失效函数和输出