1. 研究目的与意义
1.1字符串模式匹配系统发展与趋势从上世纪90年代到现在,人们对字符串模式匹配算法的研发呈现出百家争鸣的局面,并且分别在智能化和分布式两个方面取得巨大发张。
字符串模式匹配比较著名的有kmp算法,bf算法,ac算法,这次研究主要是对kmp以及改进后的kmp算法的研究。
2改进的字符串匹配算法字符串模式匹配算法结局的关键问题是:在模式与文本在某个位置比较失败是,如何使模式串窗口向左右移动最佳距离,尽量多的跳过不必要比较的字符,减少匹配的次数,并使产生这种距离的算法复杂程度降低和易于理解。
2. 国内外研究现状分析
kmp算法是一种改进的字符串匹配算法,由d.e.knuth,j.h.morris和v.r.pratt同时发现,因此人们称它为克努特莫里斯普拉特操作(简称kmp算法)。
kmp算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。
具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。
3. 研究的基本内容与计划
研究的基本内容1)了解字符串匹配模式的作用和流程2)理解KMP和改善KMP的作用3)学习经典的模式匹配算法4)学习在原有算法基础上,提出新算法5)通过使用证明新算法的优越性综上总结:深入学习串匹配方面的基本概念,以及字符串匹配算法的具体含义与其应用领域等;深入分析KMP和BM算法,以及他们的程序实现方法,分析其时间复杂度以及效率高低等;在学习了各算法后,提出新的KMP和BM的改进算法,以降低时间复杂度,提高程序的执行效率;计划第一周到第三周:撰写论文提纲,完成毕业论文(设计)初稿;需求分析,系统设计;第四周至第11周详细设计;第12-13周完成应用软件系用的设计,毕业论文定稿;第12周:完善毕业论文文档,完成答辩准备工作;第13周:开始参加毕业论文答辩。
4. 研究创新点
改进之后的kpm算法比原来的kmp算法具有更少的比较次数和跟高的效率。
字符串模式匹配算法要解决的关键问题是:在模式与文本在某个位置比较失败时,如何使模式串窗口向右移动最佳距离,尽量多的跳过不必要比较的字符,减少匹配的次数,并使产生这种距离的算法复杂度降低和易于理解。
通过对现有的各种字符串匹配算法进行分析研究,我们提出一种改进算法,该算法简单实用,便于理解。
