高效精确字符串匹配算法的研究与实现

来源 :哈尔滨工业大学 | 被引量 : 0次 | 上传用户:lmh116
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
串匹配算法是计算机科学领域中一个重要的基础研究领域。在文本处理、数据压缩、搜索引擎、生物计算,以及网络安全等大量的应用中,都需要进行串匹配。本文主要讨论精确模式串匹配,主要内容包括:首先对Linux内核中的TextSearch库进行了分析和研究,并且针对其缺陷和不足进行了改进,将TextSearch从内核中提取出来,形成了串匹配算法库LibTextSearch,并作为独立第三方开源库发布,该库运行于用户空间,同时向LibTextSearch库中添加了多种高效的串匹配算法,并简单介绍了这些算法的应用特点和使用场合,大大丰富了用户的选择范围。基于BNDM算法提出了LNDM算法,该算法使用交互重叠的宽窗口来扫描正文的思想,在窗口中先从中间位置往前扫描模式串的前缀,然后在右窗口中从前往后扫描模式串的后缀,最大化的挖掘出当前窗口中的有用正文信息,使得窗口在移动时损失的信息尽量小,提高了算法的效率,使得最差时间复杂度、最优时间复杂度和平均时间复杂度分别达到了理论最优结果O(n)、O(n/m)以及O(n logσ(m)/m)。性能测试实验也验证了他们的平均时间复杂度最优的结果,在查找短模式时,LNDM算法在大字母表情况下是最快的。本文还将BMA算法与Bit-Parallelism思想进行结合,提出了NBMA(Nondeterministic Boyer-Moore Automaton)算法,BMA算法使用BM自动机来进行字符串匹配,但是该自动机使用的状态数是模式串的指数函数,而NBMA使用Bit-Parallelism技术来模拟非确定的BMA,避免了BMA状态数大的问题,最后给出了实验结果。最后本文提出了一个字符串匹配算法的自动化测试平台,该平台采用一系列的自动化脚本来生成随机文本测试实验中用到的随机正文和随机模式信息,并可根据运行参数来自动化的进行模式匹配算法的测试实验,最后给出使用gprof程序得到的各个算法运行时间,方便了用户在随机文本情况下的测试字符串匹配算法过程。
其他文献
在统计机器翻译领域,基于短语的方法是最为成熟和稳定的方法,但是目前已经很难再有改进的余地。对于语料库中曾经出现过的短语,短语模型可以给出比较准确的翻译,这种翻译包括
为了能够更好地理解互联网内部的动态行为及其相关因素,建立有效的Internet链路延迟模型意义重大。Internet链路延迟建模对于分析和预测网络性能,从而更好地完成网络协议设计
中国是地质灾害的多发国家,尤其是滑坡灾害,一旦发生降雨,一些地方就很容易发生滑坡,对人们的生命造成危害,对财产造成损失。因此,如何高效的对区域滑坡灾害进行预防,是一个
人脸识别是模式识别、计算机视觉、人工智能等领域知识的一个重要应用,也是当前热门的研究课题之一。基于主成分分析(PCA Principle Component Analysis)的Eigenfaces算法是
DNA计算的海量存储和巨大并行运算能力,使其成为NP完全问题和其它难解问题的潜在解决方案之一,在理论上已成功的在多项式时间下解决了许多著名的NP完全问题。DNA计算的特点使
图像压缩编码研究和应用是目前信息技术中最为活跃的领域之一。图像压缩中研究最为广泛的是基于小波变换(DWT)的图像压缩方法。因为小波变换具有良好的能量集中特性,能从本质
本体(ontoloy)是一种用来描述概念以及概念和概念之间关系的模型,自提出以来就受到了国内外众多科研人员的关注,并在计算机的许多领域得到了广泛应用。为了满足高效构建本体的
随着计算机系统逐渐被应用到航天、军事、工业等高可信性领域,人们对计算机系统的可信性要求越来越高,可信计算机系统设计与实现技术已成为人们重要的研究课题。安全性做为可
无线传感器网络(WSN)在解决真实世界的问题时有非常重要的意义,在近年来吸引了越来越多的研究兴趣。传感器网络最重要的应用之一就是对事件的监测。大部分现实世界中的事件都
多核并行计算已经成为当今计算机新的领域,而多核之间如何进行通信也已经成为了当今研究的重点内容,尤其是嵌入式系统中在多处理器之间选择合适的通信机制不仅能够提高并行化的