基于可扩展精度混沌哈希的多模式串匹配算法制造技术

技术编号:6535131 阅读:317 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于可扩展精度混沌哈希的多模式串匹配算法。算法中主要数据结构:带有控制状态信息的字符表,模式经过基于可扩展精度混沌哈希函数映射的哈希表,多模式长度信息的窗口信息。步骤为:1、预处理阶段,模式经过哈希处理保存到带有控制状态信息字符表为入口的哈希表中;2、在模式匹配过程中以文本的任意位置的字符开始的窗口为单位;对当前窗口内的子窗口依次进行哈希处理,通过字符表的控制状态信息访问哈希表,把子窗口内的文本与具有该哈希值的模式进行比较;匹配成功则输出相关信息;3、顺序扫描文本,直到文本末尾。本发明专利技术适合并行化以及模式数据量大和模式长度集中的串匹配算法,可应用于使用多模式串匹配方法的技术领域。

【技术实现步骤摘要】

本专利技术涉及一种基于可扩展精度混沌哈希的多模式串匹配算法,属于计算机科学

技术介绍
在计算机科学领域,串匹配算法是重要的基础研究领域之一,在拼写检查、机器翻译、搜索引擎、网络入侵检测、计算机病毒特征码匹配以及DNA序列对比与分析等应用中都需要进行串匹配。串匹配问题是指按照一定的匹配条件在某一符号序列或文本中查找一些特殊的符号序列的所有出现的位置信息。多模式串匹配数学定义为(1)有限字符或符号集合Σ ;(2)模式集合 P = (P1, P2, ... , PJ,其中乃…O);(3)文本为 TEXT = It1, t2,t3,…,tn}, tj e Σ (1 彡 j 彡 η);已知建立在一个有限的字符集Σ上的模式集合P和文本TEXT,找到文本中的模式完全相等的字串的所有出现的位置。多模式串匹配算法中最经典的算法是AC算法和WM算法。Aho Α. V.和Corasick M. J.提出的 DFSA(Deterministic Finite State Automata)算法,即 AC 算法,该算法在预处理阶段通过模式串构造一个有限状态自动机,然后将文本串作为自动机的输入参数进行匹配,对文本扫描一次后即完成匹配过程。AC算法的主要不足在于随着模式的增加,自动机空间变大,使每次匹配过程在自动机中走的步长增大,访问自动机的开销增加。 WM(Wu-Manber)算法是由Wu Sun和Manber Udi在BM(Boyer-Moore)算法的基础上构造的多模式串匹配算法。该算法在进行匹配中利用BM算法的不良字符跳转以达到最大的移动距离,同时利用哈希方法来筛选匹配阶段应进行匹配的模式串,减少匹配计算量。WM算法的主要缺点是随着模式规模的变大,算法跳转能力下降;模式的长度也影响着算法的性能,如果模式集中包含比较短的模式串,那么跳转的距离会变得非常小;哈希函数的选择,也对该算法有着很大的影响。近些年来,随着处理信息量的不断增加和实时处理的紧迫需求,对多模式串匹配算法的性能提出了新的挑战。此外,计算机处理速度的提高和多核处理器的普及,计算机软件的滞后已经成为计算机技术应用发展的一个瓶颈;基于AC算法和WM算法的多模式串匹配算法在并行化方面都需要重新设计;因此,开发符合当前实际需要的快速的串匹配算法是一个亟待解决的问题。1963年,美国气象学家爱德华.洛仑兹(Edward Lorenz)在大气科学的研究中首先提出了混沌的概念,混沌在各个科学领域都得到了不同程度的应用。混沌运动是指在确定性系统中局限于有限空间的高度不稳定的运动,是非线性动力系统中出现的一种确定性的、貌似无规则的伪随机过程。混沌系统具有如下主要特点(1)混沌是由确定性方程产生的,只要方程参数和初值确定就可以重现混沌现象;(2)混沌系统对初始状态极度敏感,初始条件的极小偏差,将会引起结果的很大差已升;(3)混沌系统具有自相似性,局部选取的混沌形态与整体完全相似;(4)混沌系统具有在整个空间的遍历性。对于经典的混沌理论,混沌方程定义在连续的空间上;由于混沌对初始状态极度敏感,在计算机的有限精度下,量化误差的引入使混沌在多次迭代后偏离了连续的轨道,因此,进入了循环状态或者有限的状态,这导致了混沌系统的动力学特性的退化,即混沌的特性退化。数字混沌特性退化一般表现为循环周期不固定;在精度不大的情况下,一般周期很短;混沌分布函数的不平衡;线性复杂度的急剧下降等特点。基于可扩展精度计算混沌的基本思想是对混沌函数进行分步计算,利用动态数组保存计算结果。基于可扩展精度计算混沌,打破了计算机内有限精度的限制,用户可以自由指定计算精度。基于可扩展精度的混沌随机数列,随着精度的增加,映射空间扩大,得到的混沌序列更加接近于理想的混沌状态。利用基于可扩展精度计算混沌的方法,可以充分发挥混沌系统的特性。由于混沌系统具有在整个空间的遍历性;因此,基于可扩展精度混沌的哈希算法可以使获得的哈希值分布均勻,减少冲突发生。
技术实现思路
本专利技术的目的是提供一种适合并行化、适合模式数据量大和模式长度集中的基于可扩展精度混沌哈希的多模式串匹配算法。本专利技术的算法如下(1)实现串匹配算法的主要数据结构包括带有模式特征控制状态信息的字符表,长度大于1的模式经过基于可扩展精度混沌哈希函数映射的哈希表,包含多模式长度信息的窗口信息;(2)在预处理阶段,模式经过哈希处理保存到带有控制状态信息字符表为入口的哈希表中;(3)在多模式串匹配过程中以文本的任意位置的字符开始的窗口为单位;(4)以任意位置i为窗口的模式匹配过程对当前窗口内的子窗口(小于等于当前窗口值的所有模式长度)依次进行哈希处理,通过字符表的控制状态信息访问哈希表, 把子窗口内的文本(TEXT)与具有该哈希值的模式进行比较;如果匹配成功,则输出该字符所在文本位置和以该字符开始的子窗口内的TEXT文本内容;(5)从文本的第一个位置开始,按顺序以位置i为窗口进行多模式串匹配,直到文本末尾。所述串匹配算法的主要数据结构为1. 1字符表字符表包括两个部分字符的数字量化值或在有限字符、符号集合中的序号;控制状态位信息(State) ;State由三个控制位组成,定义如下C1,C2,C3 ;1.1.1 控制位 Cl说明控制位Cl控制C2、C3位是否有效;控制位Cl的值设置为0代表空,即没有以该字符开始的模式;控制位Cl的值设置为1代表控制位C2、C3位有效,即存在以该字符开始的模式;1.1.2 控制位 C2说明控制位C2代表该字符是否为模式;控制位C2的值设置为0代表该字符不是一个单字符模式;控制位C2的值设置为1代表该字符是一个单字符模式;1.1.3 控制位 C3说明控制位C3代表该字符是否有指向哈希表的入口 ;控制位C3的值设置为0代表该字符没有指向哈希表的入口 ;控制位C3的值设置为1代表该字符有指向哈希表的入口 ;1. 2哈希表长度大于1的模式经过基于可扩展精度混沌哈希函数映射到该哈希表中;哈希表包括模式对应的哈希值,模式计数器和模式地址指针链表;1.2. 1模式对应的哈希值说明模式经过基于可扩展精度混沌哈希映射的哈希地址;1. 2. 2模式计数器说明该哈希地址对应的模式总数,如果模式计数器等于0,则表示该哈希地址没有对应的模式;1.2.3模式地址指针链表说明模式所在的字符数组的地址指针被保存在该地址指针链表中,以便于模式匹配和处理冲突;1.3 窗口信息窗口信息包括模式长度数组,窗口的总数,最大窗口长度,最小窗口长度;1. 3. 1模式长度数组说明模式长度保存在数组中,该数组元素按照从大到小的顺序排列、并去除了重复的值;1.3. 2窗口的总数说明模式长度数组的元素总和;1.3. 3最大窗口长度说明模式集合中最大模式长度;1.3. 4最小窗口长度说明模式集合中最小模式长度。2. 1预处理阶段基于可扩展精度混沌哈希的多模式串匹配算法的预处理阶段主要包括初始化字符表,建立哈希表,建立窗口信息2. 1. 1初始化字符表初始化字符表包括建立字符表并初始化控制状态位,并设置控制状态位信息为 0 ;2. 1. 2建立哈希表建立哈希表包括两个部分基于可扩展精度混沌哈希函数和对模式进行处理建立哈希表;2. 1.2. 1对模式进行处理建立哈希表根据模式建立哈希表的本文档来自技高网
...

【技术保护点】
1.一种基于可扩展精度混沌哈希的多模式串匹配算法,其特征在于:(1)实现串匹配算法的主要数据结构包括:带有模式特征控制状态信息的字符表,长度大于1的模式经过基于可扩展精度混沌哈希函数映射的哈希表,包含多模式长度信息的窗口信息;(2)预处理阶段,模式经过哈希处理保存到带有控制状态信息字符表为入口的哈希表中;(3)在多模式串匹配过程中以文本的任意位置的字符开始的窗口为单位;(4)以任意位置i为窗口的模式匹配过程:对当前窗口内的子窗口依次进行哈希处理,通过字符表的控制状态信息访问哈希表,把子窗口内的文本与具有该哈希值的模式进行比较;匹配成功,则输出该字符所在文本位置和以该字符开始的子窗口内的TEXT文本内容;(5)从文本的第一个位置开始,按顺序以位置i为窗口进行多模式串匹配,直到文本末尾。

【技术特征摘要】
1.一种基于可扩展精度混沌哈希的多模式串匹配算法,其特征在于(1)实现串匹配算法的主要数据结构包括带有模式特征控制状态信息的字符表,长度大于1的模式经过基于可扩展精度混沌哈希函数映射的哈希表,包含多模式长度信息的窗□信息;(2)预处理阶段,模式经过哈希处理保存到带有控制状态信息字符表为入口的哈希表中;(3)在多模式串匹配过程中以文本的任意位置的字符开始的窗口为单位;(4)以任意位置i为窗口的模式匹配过程对当前窗口内的子窗口依次进行哈希处理, 通过字符表的控制状态信息访问哈希表,把子窗口内的文本与具有该哈希值的模式进行比较;匹配成功,则输出该字符所在文本位置和以该字符开始的子窗口内的TEXT文本内容;(5)从文本的第一个位置开始,按顺序以位置i为窗口进行多模式串匹配,直到文本末尾。2.根据权利要求1所述的基于可扩展精度混沌哈希的多模式串匹配算法,其特征在于所述串匹配算法的主要数据结构为 字符表字符表包括两个部分字符的数字量化值或在有限字符、符号集合中的序号;控制状态位信息;State由三个控制位组成,定义如下C1,C2,C3 ; 控制位Cl控制位Cl控制C2、C3位是否有效;控制位Cl的值设置为0代表空,即没有以该字符开始的模式;控制位Cl的值设置为1代表控制位C2、C3位有效,即存在以该字符开始的模式;控制位C2控制位C2代表该字符是否为模式; 控制位C2的值设置为0代表该字符不是一个单字符模式; 控制位C2的值设置为1代表该字符是一个单字符模式; 控制位C3控制位C3代表该字符是否有指向哈希表的入口 ; 控制位C3的值设置为0代表该字符没有指向哈希表的入口 ; 控制位C3的值设置为1代表该字符有指向哈希表的入口 ; 哈希表长度大于1的模式经过基于可扩展精度混沌哈希函数映射到该哈希表中;哈希表包括模式对应的哈希值,模式计数器和模式地址指针链表; 模式对应的哈希值模式经过基于可扩展精度混沌哈希映射的哈希地址; 模式计数器该哈希地址对应的模式总数,如果模式计数器等于0,则表示该哈希地址没有对应的模式;模式地址指针链表模式所在的字符数组的地址指针被保存在该地址指针链表中,以便于模式匹配和处理冲突;窗口信息窗口信息包括模式长度数组,窗口的总数,最大窗口长度,最小窗口长度; 模式长度数组模式长度保存在数组中,该数组元素按照从大到小的顺序排列、并去除了重复的值; 窗口的总数模式长度数组的元素总和; 最大窗口长度模式集合中最大模式长度; 最小窗口长度模式集合中最小模式长度。3.根据权利要求1所述的基于可扩展精度混沌哈希的多模式串匹配算法,其特征在于预处理阶段基于可扩展精度混沌哈希的多模式串匹配算法的预处理阶段主要包括初始化字符表, 建立哈希表,建立窗口信息; 初始化字符表初始化字符表包括建立字符表并初始化控制状态位,并设置控制状态位信息为0 ; 建立哈希表建立哈希表包括两个部分基于可扩展精度混沌哈希函数和对模式进行处理建立哈希表;对模式进行处理建立哈希表 根据模式建立哈希表的具体步骤为,(1)对哈希表的模式计数器、模式的地址指针链表初始化;(2)获得模式的首字符,把字符表的相应控制位Cl设置为1; 如果该模式只有一个字符,则字符表的相应控制位C2设置为1 ;如果该模式的长度超过1,则字符表的相应控制位C3设置为1,对模式进行哈希处理, 插入到哈希表中;(3)处理下一个模式,直到所有的模式都映射到哈希表; 基于可扩展精度混沌哈希函数基于可扩展精度混沌哈希函数的具体步骤如下,(1)对模式信息进行数字量化处理,量化后的数字信息保存在数组中,作...

【专利技术属性】
技术研发人员:张宏莉刘嘉辉
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:93

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1