论文部分内容阅读
串匹配问题是计算机科学的基础问题之一,几乎所有涉及字符串处理的应用中都或多或少的存在字符串匹配的要求。特别是在信息检索,网络安全,计算生物学等领域,字符串匹配为这些领域的核心问题。在所有字符串匹配问题中,精确单模式匹配算法设计又是串匹配问题的基础。目前,随着网络安全问题的凸显,网络技术、计算生物学的高速发展,以及“信息爆炸”现象愈加严重,字符串匹配应用对字符串匹配性能的要求越来越高,这对高性能字符串匹配应用的串匹配算法设计(特别是精确单模式匹配算法)提出了新的挑战。本文主要对高性能精确单模式串匹配算法进行研究。首先对现有高性能精确单模式算法发展进行分析,给出目前在英文语料匹配下,性能最高的精确单模式串匹配算法。并分别对当前英文语料匹配下性能最高的两个串匹配算法Tuned BM和SBNDM2提出改进,提出了DQM算法和S2BNDM算法。具体来说,本文成果主要在于:1.总结前人研究结果,分析了现有精确单模式串匹配算法,并给出了目前进行字符串匹配领域研究的研究方向,以及目前性能最高的精确单模式串匹配算法。2.提出一种基于后缀匹配机制的高性能精确单模式串匹配算法—DQM算法。DQM算法以tuned BM算法为基础算法,在tuned BM算法基础上引入两个判定字交替进行跳跃的方法降低了随跳跃进行判定字匹配概率动态增长对算法性能的影响;引入了一种改进的越界保护机制以降低越界检查的开销;并通过位操作和合并操作的方法改进算法在判定字匹配后的动作,使分支与跳转的次数降至最低。实验表明,DQM性能比Tuned BM算法更高。3.提出了一种基于位并行、循环展开、按子串匹配机制的高性能精确单模式串匹配算法—S2BNDM系列算法。S2BNDM算法以SBNDM2算法为基础算法,通过修改BNDM类算法的位掩码定义,成功将BNDM类算法的核心循环化简至五条指令的最简形式。同时,本文在SBNDM2算法中引入下标越界保护,将下标越界检查的开销也降至最低。实验数据显示,在模式长度不超过机器字长的英文语料检索应用中,和模式长度不超过8的DNA序列检索应用中,S2BNDM算法是目前所有精确单模式串匹配算法中性能最高的算法。