一种高速精确单模式串匹配算法.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机研究与发展
ISSN10001239CN111777TP一种高速精确单模式串匹配算法
范洪博
21,2 姚念民1(哈尔滨工程大学计算机科学与技术学院哈尔滨150001)(绥化学院计算机科学与技术系黑龙江绥化152000)
(fanhongbo@) AFastandExactSinglePatternMatchingAlgorithm
FanHongbo1,2andYaoNianmin1
1(CollegeofComputerScienceandTechnology,HarbinEngineeringUniversity,Harbin1500 01)
2(DepartmentofComputerScienceandTechnology,SuihuaUniversity,Suihua,Heilongjian g152000)
Abstract Stringmatchingproblemisafundamentalproblemincomputerscience.Itisthekeyp roblemofmanyimportantscopessuchasnetworksecurity,informationretrievalandfiltration, computationalbiology,etc.Andthedesignofexactsinglepatternstringmatchingalgorithmwit hhighperformanceisthebasisofallstringmatchingproblems.Inthispaper,theauthorsimprove oneofthefastestexactsinglepatternmatchingalgorithmsknownonEnglishtext,whichisSBN DM2.ThesimplestformoftheBNDMcoreloopisobtained,inwhichthereareonly5instruction spercharacterreadbyamendingtherelationshipbetweenpositioninthepatternandbitinthebit mask.Andacross borderprotectionmethodisaddedtothealgorithminordertoreducethecost ofcross borderinspection.TwoalgorithmsnamedS2BNDMandS2BNDM arepresented. TheexperimentalresultsindicatethatbothS2BNDMandS2BNDM arefasterthanSBNDM 2inanycase.ItcanbeconsideredthatS2BNDMisthefastestalgorithmonEnglishtext(2 m<32). Keywords stringmatching;exactsinglepattern;designofalgorithm;bitparallelism;textsear ching 串匹配问题是计算机科学的基础问题之一,是网络安全、信息检索与过滤、计算生物学等众多领 域的核心问题,其中,高速精确单模式匹配算法设计又是各种串匹配问题的基础.基于SBNDM2,通过修改位掩码有效位到无符号整数的高位,将BNDM算法核心循环化简至最简形式(5指令字符),并引入越界保护机制,提出S2BNDM系列精确单模式匹配算法.实验结果显示,S2BNDM系列算法在任何摘要情况下都快于SBNDM2,对于英文语料(m<32)和DNA序列(m<8),S2BNDM系列算法为现有已知最快算法. 关键词串匹配;精确单模式;算法设计;位并行;文本搜索 中图法分类号TP391.3 串匹配问题指按给定的匹配条件在某一符号序 列(称为文本T)中查找另一个(或一些)符号序列 (称为模式P)的所有出现位置的搜索问题.串匹配 问题是计算机科学的基本问题之一,是网络安全、信 息检索与过滤、计算生物学等重要领域的核心问题, 收稿日期:2008-10-05;修回日期:2009-02-09也被广泛地应用到其他涉及文本处理的领域中(如语言翻译、OCR识别、拼写检查等领域).目前,随着网络安全问题的凸显,以及计算生物学、网络信息过滤等领域的快速发展,经典串匹配算法已经无法满足串匹配类应用对串匹配算法性能的需求. (;( 1342计算机研究与发展2009,46(8) 精确单模式匹配是所有串匹配问题的基础,其他形式的串匹配问题均由精确单模式匹配算法扩展而来,其应用范围也最为广泛.本文侧重于提出一种具有更高实际性能的精确单模式串匹配算法.如无特殊说明,文中涉及算法均为精确单模式串匹配算法.目前已知近百种精确单模式匹配算法,其中在实际匹配中表现较好的算法是TBM[1],SSABS[2],FAOSO[3],SBNDM2[4],BOM [5] U,V,W来表示*中串.若模式P=UVW(U,V,W可以为空串),则串U,V,W均为P的子串.把W为P的子串记为W∀suf(P),串W中从W[x]到W[y]的子串记为W[x!y].本文使用C语言进行描述. 串匹配算法使用滑动窗口概念完成匹配.滑动窗口与模式等长,窗口中字符可以与模式建立顺序的对应关系,这样将精确单模式匹配问题转换为判断模式与窗口内文字是否匹配的问题.设窗口首字符为T[loc],若j(0 j 串匹配算法可分为按前缀匹配(KMP,shift and or [10] ,NEW[6]等算法. TBM,SSABS,SBNDM2算法在较大字符集,较短