【技术实现步骤摘要】
本专利技术涉及一种基于可扩展精度混沌哈希的多模式串匹配算法,属于计算机科学
技术介绍
在计算机科学领域,串匹配算法是重要的基础研究领域之一,在拼写检查、机器翻译、搜索引擎、网络入侵检测、计算机病毒特征码匹配以及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算法的不良字符跳转以达到最大的移动距离,同时利用哈希方法来筛选 ...
【技术保护点】
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)对模式信息进行数字量化处理,量化后的数字信息保存在数组中,作...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。