1 / 9
文档名称:

多模式串匹配之AC自动机算法.docx

格式:docx   页数:9
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

多模式串匹配之AC自动机算法.docx

上传人:陈晓翠 2011/10/3 文件大小:0 KB

下载得到文件列表

多模式串匹配之AC自动机算法.docx

文档介绍

文档介绍:多模式串匹配之AC自动机算法(Aho-Corasick算法)简介与C语言程序实现源码参考
任侠发布于 2011-03-22  22:27:53
 一、概述
AC自动机算法全称Aho-Corasick算法,是一种字符串多模式匹配算法。该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。AC算法用于在一段文本中查找多个模式字符串,即给你很多字符串,再给你一段文本,让你在文本中找这些串是否出现过,出现过多少次,分别在哪里出现。
该算法应用有限自动机巧妙地将字符比较转化为了状态转移。此算法有两个特点,一个是扫描文本时完全不需要回溯,另一个是时间复杂度为O(n),时间复杂度与关键字的数目和长度无关,但所需时间和文本长度以及所有关键字的总长度成正比。
AC算法有三个主要步骤,一个是字典树tire的构造,一个是搜索路径的确定(即构造失败指针),还有就是模式匹配过程。
学习AC自动机算法之前,最好先熟悉KMP算法,因为KMP算法与字典树tire的构造很是类似。KMP算法是一种经典的单字符串匹配算法。
二、AC算法思想
 
AC算法思想:用多模式串建立一个确定性的树形有限状态机,以主串作为该有限状态机的输入,使状态机进行状态的转换,当到达某些特定的状态时,说明发生模式匹配。
下图是多模式he/ she/ his /hers构成的一个确定性有限状态机,做几点说明:

1、该状态机优先按照实线标注的状态转换路径进行转换,当所有实线标注的状态转换路径条件不能满足时,按照虚线的状态转换路径进行状态转换。如:状态0时,当输入h,则转换到状态1;输入s,则转换到状态3;否则转换到状态0。
2、匹配过程如下:从状态0开始进行状态转换,主串作为输入。如主串为:ushers,状态转换的过程是这样的:

3、 当状态转移到2,5,7,9等红色状态点时,说明发生了模式匹配。
如主串为:ushers,则在状态5、2、9等状态时发生模式匹配,匹配的模式串有she、he、hers。
定义:
在预处理阶段,AC自动机算法建立了三个函数,转向函数goto,失效函数failure和输出函数output,由此构造了一个树型有限自动机。
转向函数,指的是一种状态之间的转向关系。g(pre, x)=next:状态pre在输入一个字符x后转换为状态next(上图中的实线部分)。如果在模式串中不存在这样的转换,则next=failstate。
失效函数,指的也是状态和状态之间一种转向关系。f(per)=next:是在比较失配的情况下使用的转换关系。在构造转向函数时,把不存在的转换用failstate表示,但是failstate不是一个具体的状态,状态机转换转换到failstate状态的时候就不知道该往哪转了。所以就要在状态机中找到一个有意义的状态代替failstate,当出现failstate状态时,自动切换到那个状态。
这个状态节点应该具有这样的特征:从这个状态节点向上直到树根节点(状态0)所经历的输入字符,和从产生failstate状态的那个状态节点向上所经历的输入字符串完全相同。而且这个状态节点,是所有具备这些条件的节点中深度最大的那个节点。如果不存在满足条件的状态节点,则失效函数为0。
累死了。举例子说吧,对状态9输入任何一个字符都

最近更新

2024年重庆护理职业学院单招职业倾向性考试模.. 38页

2024年重庆航天职业技术学院单招综合素质考试.. 41页

2024年重庆资源与环境保护职业学院单招职业技.. 39页

2024年金山职业技术学院单招职业倾向性考试题.. 39页

幼儿园2022年新学期疫情防控演练通讯稿(总结).. 9页

2024年长垣烹饪职业技术学院单招职业适应性测.. 40页

2024年长春汽车职业技术大学单招职业适应性考.. 40页

2024年长江师范学院单招职业技能测试题库附答.. 40页

2024年长沙南方职业学院单招职业适应性考试题.. 40页

2024年长沙文创艺术职业学院单招职业适应性考.. 39页

2024年长沙职业技术学院单招职业适应性测试模.. 40页

2024年长治职业技术学院单招职业技能测试题库.. 41页

2024年闽江师范高等专科学校单招综合素质考试.. 39页

2024年阳光学院单招职业倾向性测试模拟测试卷.. 41页

2024年阿拉善职业技术学院单招职业倾向性考试.. 39页

2024年陕西工商职业学院单招职业技能考试题库.. 39页

2024年陕西省延安市单招职业适应性考试模拟测.. 41页

2024年陕西省铜川市单招职业倾向性考试题库带.. 40页

2024年陕西航空职业技术学院单招职业倾向性考.. 40页

2024年陕西邮电职业技术学院单招综合素质考试.. 39页

2024年青岛恒星科技学院单招职业适应性测试模.. 40页

2024年青岛航空科技职业学院单招职业适应性测.. 40页

2024年青海柴达木职业技术学院单招综合素质考.. 41页

2024年青海省海北藏族自治州单招职业适应性测.. 39页

2024年青海高等职业技术学院单招综合素质考试.. 41页

2024年鹤壁能源化工职业学院单招职业技能考试.. 41页

2025年重庆市《保安员证》考试题库含答案 39页

混凝土工程培训课件优秀PPT 26页

小学数学六年级下册《鸽巢问题》作业设计 9页

国开《建筑力学》期末机考答案 15页