多模式匹配快速算法的设计.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多模式匹配快速算法的设计.pdf

多模式匹配快速算法的设计 李胜才 北京航空航天大学 北京 100083 E-mail:buaalsc@163.com 摘 要:字符串匹配速度是关键字检测和过滤系统的核心。本文在有限状态自动机的AC 算 法的基础上,综合BM 算法的跳跃思想和QS 算法的优点, 提出了一个快速的多模式字符 串匹配算法。该算法能充分利用每次匹配过程中匹配不成功的信息和已经成功的信息,尽可 能多地跳过待查文本串中的字符,从而不需要匹配目标文本串的每个字符,而在比较次数最 少的情况下,能一次性无须回溯的实现对文本的快速搜索。实验证明在模式串较长和较短的 情况下,算法都能有效地改善关键字检测过滤系统的匹配性能。 关键词:多模式串匹配;有限自动机;关键字检测过滤;匹配 中图分类号:TP301 引言 在信息检索领域, 串匹配问题一直都是研究的焦点之一。在拼写检查、基于字典的语言翻 译、WWW 搜索引擎、计算机病毒特征码匹配、数据压缩以及 DNA 序列匹配等应用中也都 需要进行串匹配。同时在基于特征匹配的入侵检测系统中,模式匹配的效率直接决定这类入 侵检测系统的性能[2][6] 。因此字符串匹配速度的提高有着深渊的意义。当前的多模式速度是 [3][5] 很多系统以及软件的瓶颈 。 对于单模式匹配问题,有三种经典的匹配算法:①KMP 算法,它在最坏情况下也能保持线 性查找过程,其时间复杂度为O(m +n) [1][5], ②BM 算法,它采用“跳跃式”查找策略,多数情 况下无须对文本进行一次完整的扫描,在模式中字符在文本中出现很少时时间复杂度能到最 好的 O(n / m) ,平均情况下其时间复杂度为O(m +n) [4][5][6][8] 。③QS 算法,在那些待匹配模式集 中未使用的字符在文本 T 中大量出现时,可以利用它们的信息加快匹配速度。在最优情况下 (模式串较短、模式串中出现的字母数较少) 比BM 算法更快,其时间复杂度为O(n / m) ,最坏 情况时为O(n ×m) [5] 。目前的多模式匹配中没有一个很好的算法能结合以上各个单模式的优 点,本文在充分分析各个单模式匹配算法的基础上提出了一个新的多模式匹配的算法。该算 法结合了 Boyer_Moore(BM)算法从右向左跳跃的思想[8],以及能实现最大跳跃和尽可能少的 比较次数的Quick Search (QS) 算法的优点,能充分利用每次匹配过程中匹配不成功的信息 和已经成功的信息, 尽可能多地跳过待查文本串中的字符,从而不需要匹配目标文本串的 每个字符,而在比较次数最少的情况下,就能一次性无须回溯的实现对文本的快速搜索。 1. 新算法设计 设待查找文本为T[1,2,n],其定义在一个有限的字母表∑ (本文处理背景选择处理ANSI 字 符 集 0 256) 上 。 多 模 式 匹 配 则 是 从 文 本 T 中 一 次 查 找 多 个 模 式 串 P ,P ,P , P (这里patten_num代表模式串的数目), 最短模式串的长度用min len 1 2 3 patten _num 表示。算法设计的主要思想在于匹配不成功后充分挖掘已经成功匹配的信息结合当前匹配失 - 1 - 败信息得到向后跳跃的距离t_shift[]。整个算法可以分为预处理和搜索两个部分。 1.1 预处理阶段 1.1.1 构建模式匹配自动机,即构建状态转移函数state_shift[][],输出函数output[]记录该 状态下匹配成功的模式串下标,matched[state]记录当前状态state时已经匹配的字符串。 构建多模式匹配自动机,也就是构建多模式下的搜索树。首先用待搜索的模式集构建一 棵搜索树,然后将树的节点作为自动机的状态,树的分支作为自动机的状态转换函数。当 字符在整个搜索树内进行匹配时,由于搜索树是预先

您可能关注的文档

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档