CN102184205A - 基于可扩展精度混沌哈希的多模式串匹配算法 - Google Patents
基于可扩展精度混沌哈希的多模式串匹配算法 Download PDFInfo
- Publication number
- CN102184205A CN102184205A CN2011101075020A CN201110107502A CN102184205A CN 102184205 A CN102184205 A CN 102184205A CN 2011101075020 A CN2011101075020 A CN 2011101075020A CN 201110107502 A CN201110107502 A CN 201110107502A CN 102184205 A CN102184205 A CN 102184205A
- Authority
- CN
- China
- Prior art keywords
- hash
- pattern
- character
- window
- text
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于可扩展精度混沌哈希的多模式串匹配算法。算法中主要数据结构:带有控制状态信息的字符表,模式经过基于可扩展精度混沌哈希函数映射的哈希表,多模式长度信息的窗口信息。步骤为:1、预处理阶段,模式经过哈希处理保存到带有控制状态信息字符表为入口的哈希表中;2、在模式匹配过程中以文本的任意位置的字符开始的窗口为单位;对当前窗口内的子窗口依次进行哈希处理,通过字符表的控制状态信息访问哈希表,把子窗口内的文本与具有该哈希值的模式进行比较;匹配成功则输出相关信息;3、顺序扫描文本,直到文本末尾。本发明适合并行化以及模式数据量大和模式长度集中的串匹配算法,可应用于使用多模式串匹配方法的技术领域。
Description
技术领域
本发明涉及一种基于可扩展精度混沌哈希的多模式串匹配算法,属于计算机科学技术领域。
背景技术
在计算机科学领域,串匹配算法是重要的基础研究领域之一,在拼写检查、机器翻译、搜索引擎、网络入侵检测、计算机病毒特征码匹配以及DNA序列对比与分析等应用中都需要进行串匹配。
串匹配问题是指按照一定的匹配条件在某一符号序列或文本中查找一些特殊的符号序列的所有出现的位置信息。多模式串匹配数学定义为:
(1)有限字符或符号集合∑;
(2)模式集合P={P1,P2,...,Pm},其中
(3)文本为TEXT={t1,t2,t3,...,tn},tj∈∑(1≤j≤n);
已知建立在一个有限的字符集∑上的模式集合P和文本TEXT,找到文本中的模式完全相等的字串的所有出现的位置。
多模式串匹配算法中最经典的算法是AC算法和WM算法。Aho A.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控制位C1
说明:控制位C1控制C2、C3位是否有效;
控制位C1的值设置为0代表空,即没有以该字符开始的模式;
控制位C1的值设置为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)对哈希表的模式计数器、模式的地址指针链表初始化;
(2)获得模式的首字符,把字符表的相应控制位C1设置为1;
如果该模式只有一个字符,则字符表的相应控制位C2设置为1;
如果该模式的长度超过1,则字符表的相应控制位C3设置为1,对模式进行哈希处理,插入到哈希表中;
(3)处理下一个模式,直到所有的模式都映射到哈希表;
2.1.2.2基于可扩展精度混沌哈希函数
基于可扩展精度混沌哈希函数的具体步骤如下:
(1)对模式信息进行数字量化处理,量化后的数字信息保存在数组中,作为基于可扩展精度混沌哈希函数的初始参数和控制参数的一部分;采用Logistic映射作为可扩展精度计算混沌的模型;Logistic映射可以表述如下:
xn+1=a×xn×(1-xn);a∈(0,4];xn∈(0,1);n=0,1,…
其中,a是控制参数,x0为初始状态值;
当Logistic映射参数的末位为0时,对该位进行非零化处理;根据基于可扩展精度Logistic映射的迭代次数与精度关系数学公式:
Ln+1=2×Ln+La
其中,Ln为当前参数x的精度,La为参数a的精度;
设定Logistic映射迭代次数和指定Logistic映射获得的随机序列的位数(精度),如果设定的Logistic映射迭代次数和指定Logistic映射获得的随机序列的位数不匹配,自动取迭代次数上限,以满足获取精度的要求;
(2)进行可扩展精度混沌迭代计算,经过迭代获得混沌随机序列,随机序列被保存在一维数组里;
基于可扩展精度Logistic映射的迭代过程为:
第一步,计算x=x*(1-x),保留扩展精度后的计算结果在新的一维动态数组中;
第二步,计算x=x*a,保留本次迭代的计算结果在动态数组中;
第三步,如果当前的迭代次数没有达到设定的迭代次数,则转到第一步;如果当前获得的混沌随机序列的精度小于指定的精度,则转到第一步;
第四步,经过指定的迭代次数和满足给定精度的混沌随机序列被保存在一个一维的数组里;
对于超过指定精度的混沌序列实行“截尾”、“四舍五入”等运算规则近似计算;
(3)设定所需提取的信息位个数,按信息位个数对基于可扩展精度混沌随机序列进行分组;
设定的提取所需信息位个数应该小于等于指定Logistic映射获得的随机序列的位数,按照用户设定的提取信息位的个数对获得的混沌随机序列进行分组,每个分组的长度应该保证在进行随机选位时获得足够的组合值;
(4)设定种子,开始随机进行选位,并保存到数组中;
种子的选择可以保证输出信息充分包含了输入信息的特征,因此,可以采用求输入信息的数字值的和,或者其他体现该输入信息特征的数学函数;算法中的随机选位是指当种子的初值给定后,在当前的混沌随机序列分组的选位值,作为下一轮分组的随机选位的种子,保存每次选位值在一维数组中;
(5)映射到哈希地址空间;
转化保留选位值的一维数组中的元素为数值,采取对该数值取模运算映射到地址空间;
在建立哈希表的过程中,对插入到哈希表中的相应的模式计数器值加1,把模式的字符数组的地址指针插入到哈希表的模式地址指针链表中;
2.1.3建立窗口信息
窗口信息的初始化步骤为:
(1)获得每个模式长度;
(2)把各模式长度按从大到小排序,并去除相同的值,保存到数组中;
(3)记录窗口的总数,最大窗口长度,最小窗口长度。
按顺序以位置i为窗口进行多模式串匹配,多模式串匹配算法的具体步骤如下:
(1)获得TEXT文本的第i位置的字符,查找对应字符表的控制状态信息;如果控制位C1为1,则查看C2与C3控制信息位;
(2)当控制位C2为1时,模式匹配成功;
(3)如果控制位C3为1,则进入以TEXT文本的第i位置开始的窗口;
确定当前窗口的大小;
在当前窗口内,进行所有子窗口的匹配,由窗口值依次进行哈希运算,并查找哈希表值,如果哈希表模式计数器为0,则不作处理(匹配失败);如果模式计数器值大于0,则依次比较该哈希地址内模式地址指针链表内每个模式,匹配成功则输出当前i的数值(在TEXT文本中位置)及第i位置开始的窗口的TEXT文本信息;
(4)获得TEXT文本的下一个位置,直到TEXT文本末尾。
本发明的优点:
(1)在本发明中,以TEXT文本的i位置的字符为开始的窗口内进行的匹配过程与TEXT文本的其他位置相互独立,也就是说,本发明特别适合于并行处理。
(2)利用可扩展精度混沌哈希减少冲突,使散列更加均匀;利用窗口实现多模式串匹配过程,更加适合模式数据量大和模式长度集中的特点。
(3)在本发明中,利用带有控制状态信息的字符表作为进入哈希表的入口,可以实现匹配过程中的筛选;并且,字符表也可以进行特殊处理,以满足不同用户的需要,带给用户灵活的、方便的选择。
附图说明
图1是字母表与哈希表结构图;
图2是以位置i为窗口的模式匹配过程的流程图。
具体实施方式
本发明的具体实施方式提供了一种基于可扩展精度混沌哈希的多模式串匹配算法:
1.实例说明
给定的实例如下:
(1)∑为ASCII字符集。
(2)模式集合P={P1,P2,P3},其中字符串P1=“a”,P2=“abc”,P3=“ccc”。
(3)文本为TEXT=“aabccc”。
已知建立在ASCII字符集上的模式集合P和文本TEXT,要求找到文本中的模式完全相等的字符串的所有出现的位置及模式信息。
2.具体实施步骤
基于可扩展精度混沌哈希的多模式串匹配算法的具体实施步骤分为:预处理阶段和多模式串匹配算法。
2.1预处理阶段
预处理阶段包括初始化字符表,建立哈希表,建立窗口信息。
2.1.1初始化字符表
在实施方式中,字符具体为字母,因此,把字符表具体为字母表(参见图1)。初始化字母表包括建立字母表并初始化控制状态位,并设置控制状态位信息为0。
2.1.2建立哈希表
建立哈希表包括两个部分:基于可扩展精度混沌哈希函数和对模式进行处理建立哈希表。
2.1.2.1对模式进行处理建立哈希表
根据模式建立哈希表的具体步骤为:
(1)对哈希表的模式计数器、模式的地址指针链表初始化。
(2)获得模式的首字母,把字母表的相应控制位C1设置为1;
如果该模式只有一个字母,则字母表的控制位C2设置为1;
如果该模式的长度超过1,则字母表的控制位C3设置为1,对模式进行哈希处理,插入到哈希表中。
(3)处理下一个模式,直到所有的模式都映射到哈希表。
2.1.2.2基于可扩展精度混沌哈希函数
基于可扩展精度混沌哈希函数的具体步骤如下:
(1)对模式信息进行数字量化处理,对字母的ASCII码值进行数字量化,并保存在数组中,作为基于可扩展精度混沌哈希函数的初始参数和控制参数的一部分。采用Logistic映射作为可扩展精度计算混沌的模型。Logistic映射可以表述如下:
xn+1=a×xn×(1-xn);a∈(0,4];xn∈(0,1);n=0,1,…
其中,a是控制参数,x0为初始状态值。
当Logistic映射参数的末位为0时,对该位进行非零化处理。根据基于可扩展精度Logistic映射的迭代次数与精度关系数学公式:
Ln+1=2×Ln+La
其中,Ln为当前参数x的精度,La为参数a的精度。
设定Logistic映射迭代次数和指定Logistic映射获得的随机序列的位数(精度),如果设定的Logistic映射迭代次数和指定Logistic映射获得的随机序列的位数不匹配,自动取迭代次数上限,以满足获取精度的要求。
(2)进行可扩展精度混沌迭代计算,经过迭代获得混沌随机序列,随机序列被保存在一维数组里。
基于可扩展精度Logistic映射的迭代过程为:
第一步,计算x=x*(1-x),保留扩展精度后的计算结果在新的一维动态数组中;
第二步,计算x=x*a,保留本次迭代的计算结果在动态数组中;
第三步,如果当前的迭代次数没有达到设定的迭代次数,则转到第一步;如果当前获得的混沌随机序列的精度小于指定的精度,则转到第一步;
第四步,经过指定的迭代次数和满足给定精度的混沌随机序列被保存在一个一维的数组里。
对于超过指定精度的混沌序列实行“截尾”运算规则取近似值。
(3)设定所需提取的信息位个数,按信息位个数对基于可扩展精度混沌随机序列进行分组。
设定的提取所需信息位个数应该小于等于指定Logistic映射获得的随机序列的位数,按照用户设定的提取信息位的个数对获得的混沌随机序列进行分组,每个分组的长度应该保证在进行随机选位时获得足够的组合值。
(4)设定种子,开始随机进行选位,并保存到数组中。
种子的选择采用求输入信息的数字值的和,如果种子值超过分组长度,则对种子进行取模运算。
算法中的种子的初值给定后,在当前的混沌随机序列分组的选位值,作为下一轮分组的随机选位的种子,保存每次选位值在一维数组中。
(5)映射到哈希地址空间。
转化保存选位值的一维数组中的元素为数值,采取对该数值取模运算映射到地址空间。
在建立哈希表的过程中,对插入到哈希表中的相应的模式计数器值加1,把模式的字符数组的地址指针插入到哈希表的模式地址指针链表中。
2.1.2.3处理模式P1
首先,对P1=“a”进行处理,步骤如下:
获得模式的首字母“a”,把字母表中“a”的ASCII码值(在字母表中序号等于97)的对应位置的控制位C1设置为1;该模式只有一个字母,则字母表的控制位C2设置为1。该模式的长度等于1,不必对模式进行哈希处理。
2.1.2.4处理模式P2
其次,对P2=“abc”进行处理,步骤如下:
获得模式的首字母“a”,把字母表中“a”的ASCII码值的对应位置的控制位C1设置为1。该模式的长度超过1,则控制位C3设置为1,对模式进行哈希处理,插入到哈希表中,步骤如下:
{9,7,9,8,9,9}.
数字量化的模式信息作为基于可扩展精度混沌哈希函数的初始参数和控制参数的一部分,Logistic映射的初始参数和控制参数分别为:
x0=0.979899,a=3.9979899.
设定Logistic映射迭代次数为1和指定Logistic映射获得的随机序列的位数(精度)为10,如果设定的Logistic映射迭代次数和指定Logistic映射获得的随机序列的位数不匹配,自动取迭代次数上限,以满足获取精度的要求。
(2)进行可扩展精度混沌迭代计算,经过迭代获得混沌随机序列,随机序列被保存在一维数组里。
基于可扩展精度Logistic映射的迭代过程为:
第一步,计算x=x*(1-x),保留扩展精度后的计算结果在新的一维动态数组中,计算结果为:
{0,1,9,6,9,6,9,4,9,7,9,9}.
第二步,计算x=x*a,保留本次迭代的计算结果在动态数组中,计算结果为:
{0,7,8,7,4,8,2,0,6,3,5,7,2,0,9,0,3,0,1}.
第三步,当前的迭代次数达到设定的迭代次数(迭代次数设定为1)。当前获得的混沌随机序列的精度为19大于指定的精度(指定精度为10)。
第四步,对于超过指定精度的混沌序列实行“截尾”运算规则取近似值。经过指定的迭代次数和满足给定精度的混沌随机序列被保存在一个一维的数组里,形式如下:
{0,7,8,7,4,8,2,0,6,3}.
(3)设定所需提取的信息位个数为2,按信息位个数对基于可扩展精度混沌随机序列进行分组。
所得混沌随机序列分组后的情况如下:
第一组arr_1:{0,7,8,7,4};
第二组arr_2:{8,2,0,6,3}。
(4)设定种子,开始随机进行选位,并保存到数组中。
种子的选择采用求输入信息的数字值的和(Sum),即Sum=9+7+9+8+9+9=51。Sum超过分组长度(精度/信息位个数=10/2=5),则对Sum进行取模运算:
seed=Sum mod 5=51 mod 5=1.
在第一组中选位值为:
arr_1[seed]=arr_1[1]=7(数组下标从0开始).
计算下一轮分组的种子值:
seed=arr_1[seed]mod 5=7 mod 5=2.
在第二组中选位值为:
arr_2[seed]=arr_2[2]=0(数组下标从0开始).
保存每次选位值在一维数组中,结果为
{7,0}.
(5)映射到哈希地址空间。
转化保存每次选位值的一维数组中的元素为数值,采取对该数值取模运算映射到地址空间,哈希值为70。
哈希表的模式计数器(NumPatterns)加1,把模式的地址(P_Address[1])插入到哈希表的模式地址指针链表中(参见图1)。
2.1.2.5处理模式P3
最后,对P3=“ccc”进行处理,步骤如下:
获得模式的首字母“c”,把字母表中“c”的ASCII码值的对应位置的控制位C1设置为1。该模式的长度超过1,则控制位C3设置为1,对模式进行哈希处理,插入到哈希表中,步骤如下:
{9,9,9,9,9,9}.
数字量化的模式信息作为基于可扩展精度混沌哈希函数的初始参数和控制参数的一部分,Logistic映射的初始参数和控制参数分别为:
x0=0.999999,a=3.9999999.
(2)进行可扩展精度混沌迭代计算,经过迭代获得混沌随机序列,随机序列被保存在一维数组里。
基于可扩展精度Logistic映射的迭代过程为:
第一步,计算x=x*(1-x),保留扩展精度后的计算结果在新的一维动态数组中,计算结果为:
{0,0,0,0,0,0,9,9,9,9,9,9}.
第二步,计算x=x*a,保留本次迭代的计算结果在动态数组中,计算结果为:
{0,0,0,0,0,3,9,9,9,9,9,5,9,0,0,0,0,0,1}.
第三步,当前的迭代次数达到设定的迭代次数(迭代次数设定为1)。当前获得的混沌随机序列的精度为19大于指定的精度(指定精度为10)。
第四步,对于超过指定精度的混沌序列实行“截尾”运算规则取近似值。经过指定的迭代次数和满足给定精度的混沌随机序列被保存在一个一维的数组里,形式如下:
{0,0,0,0,0,3,9,9,9,9}.
(3)设定所需提取的信息位个数为2,按信息位个数对基于可扩展精度混沌随机序列进行分组。
所得混沌随机序列分组后的情况如下:
第一组arr_1:{0,0,0,0,0};
第二组arr_2:{3,9,9,9,9}。
(4)设定种子,开始随机进行选位,并保存到数组中。
种子的选择采用求输入信息的数字值的和,即Sum=9+9+9+9+9+9=54。Sum超过分组长度,则对Sum进行取模运算:
seed=Sum mod 5=54 mod 5=4.
在第一组中选位值为:
arr_1[seed]=arr_1[4]=0(数组下标从0开始).
计算下一轮分组的种子值:
seed=arr_1[seed]mod 5=0 mod 5=0.
在第二组中选位值为:
arr_2[seed]=arr_2[0]=3(数组下标从0开始).
保存每次选位值在一维数组中,结果为
{0,3}.
(5)映射到哈希地址空间。
转化保存每次选位值的一维数组中的元素为数值,采取对该数值取模运算映射到地址空间,哈希值为3。
哈希表的模式计数器(NumPatterns)加1,把模式的地址(P_Address[2])插入到哈希表的模式地址指针链表中(参见图1)。
2.1.3建立窗口信息
窗口信息的初始化步骤为:
(1)获得每个模式长度。
模式长度分别为:模式P1=“a”的长度为1,模式P2=“abc”的长度为3,模式P3=“ccc”的长度为3。
(2)把各模式长度按从大到小顺序排序,并去除相同的值,保存到数组中,形式如下:
arr_Windows={3,1}.
(3)记录窗口的总数WindowsTotal=2;
最大窗口长度WindowsMax=3;
最小窗口长度WindowsMin=1。
2.2多模式串匹配算法
多模式串匹配算法的具体步骤如下(参见图2):
(1)获得TEXT文本的第i位置的字母,查找对应字母表的控制状态信息。如果控制位C1为1,则查看C2与C3控制信息位。
(2)当控制位C2为1时,模式匹配成功。
(3)如果控制位C3为1,则进入以TEXT文本的第i位置开始的窗口。
确定当前窗口的大小。
在当前窗口内,进行所有子窗口的匹配,由窗口值依次进行哈希运算,并查找哈希表值,如果哈希表模式计数器为0,则不作处理(匹配失败);如果模式计数器值大于0,则依次比较该哈希地址内模式地址指针链表内每个模式,匹配成功则输出当前i的数值(在TEXT文本中位置)及第i位置开始的窗口的TEXT文本信息。
(4)获得TEXT文本的下一个位置,直到TEXT文本末尾。
2.2.1TEXT文本的位置i=1
首先,获得文本TEXT=“aabccc”的第1个位置的字母“a”,“a”在字母表中的序号为97,查找对应字母表的控制状态信息。控制位C1等于1,则查看C2与C3控制信息位。
其次,查看控制位C2等于1,模式匹配成功。
第三步,查看控制位C3等于1,则进入以TEXT文本的第1个位置“a”开始的窗口。
确定当前窗口的大小。由于i+WindowsMax-1=1+3-1=3;没有到达文件末尾,因此,当前窗口的值CurrentWindow=WindowsMax=3。
在当前窗口内,进行所有子窗口的匹配;子窗口为所有在数组arr_Windows中小于等于CurrentWindow的值,即子窗口分别为3,1。
2.2.1.1TEXT文本的位置i=1开始子窗口等于3的匹配过程
获得字符串Pcurrent的首字母“a”,字母表中“a”的ASCII码值的对应位置的控制位C1为1,该字符串Pcurrent的长度超过1,查看控制位C3为1,对字符串进行哈希处理,步骤如下:
{9,7,9,7,9,8}.
数字量化的字符串Pcurrent信息作为基于可扩展精度混沌哈希函数的初始参数和控制参数的一部分,Logistic映射的初始参数和控制参数分别为:
x0=0.979798,a=3.9979798.
2)进行可扩展精度混沌迭代计算,经过迭代获得混沌随机序列,随机序列被保存在一维数组里。
基于可扩展精度Logistic映射的迭代过程为:
第一步,计算x=x*(1-x),保留扩展精度后的计算结果在新的一维动态数组中,计算结果为:
{0,1,9,7,9,3,8,7,9,1,9,6}.
第二步,计算x=x*a,保留本次迭代的计算结果在动态数组中,计算结果为:
{0,7,9,1,3,5,5,2,9,1,8,9,2,4,8,2,4,0,8}.
第三步,当前的迭代次数达到设定的迭代次数(迭代次数设定为1)。当前获得的混沌随机序列的精度为19大于指定的精度(指定精度为10)。
第四步,对于超过指定精度的混沌序列实行“截尾”运算规则取近似值。经过指定的迭代次数和满足给定精度的混沌随机序列被保存在一个一维的数组里,形式如下:
{0,7,9,1,3,5,5,2,9,1}.
3)提取的信息位个数为2,按信息位个数对基于可扩展精度混沌随机序列进行分组。
所得混沌随机序列分组后的情况如下:
第一组arr_1:{0,7,9,1,3};
第二组arr_2:{5,5,2,9,1}。
4)设定种子,开始随机进行选位,并保存到数组中。
种子的选择采用求输入信息的数字值的和,即Sum=9+7+9+7+9+8=49。Sum超过分组长度,则对Sum进行取模运算:
seed=Sum mod 5=49 mod 5=4.
在第一组中选位值为:
arr_1[seed]=arr_1[4]=3(数组下标从0开始).
计算下一轮分组的种子值:
seed=arr_1[seed]mod 5=3 mod 5=3.
在第二组中选位值为:
arr_2[seed]=arr_2[3]=9(数组下标从0开始).
保存每次选位值在一维数组中,结果为
{3,9}.
5)映射到哈希地址空间。
转化保存每次选位值的一维数组中的元素为数值,采取对该数值取模运算映射到地址空间,哈希值为39。
查找哈希表值(请参见图1),哈希表值为39的模式计数器(NumPatterns)为0,则匹配失败。
2.2.1.2TEXT文本的位置i=1开始子窗口等于1的匹配过程
字符串的长度等于1,查找字母表相应位置控制位C2等于1。由于模式P1=“a”,因此,模式匹配成功。
如果匹配成功,则输出当前i的数值(在TEXT文本中位置)及第i位置开始的窗口的TEXT文本信息。最后,获得TEXT文本的下一个位置,TEXT文本的位置i=i+1。
2.2.2TEXT文本的位置i=2
首先,获得文本TEXT=“aabccc”的第2个位置的字母“a”,“a”在字母表中的序号为97,查找对应字母表的控制状态信息。控制位C1等于1,则查看C2与C3控制信息位。
其次,查看控制位C2等于1,模式匹配成功。
第三步,查看控制位C3等于1,则进入以TEXT文本的第2个位置“a”开始的窗口。
确定当前窗口的大小。由于i+WindowsMax-1=2+3-1=4;没有到达文件末尾,因此,当前窗口的值CurrentWindow=WindowsMax=3。
在当前窗口内,进行所有子窗口的匹配;子窗口为所有在数组arr_Windows中小于等于CurrentWindow的值,即子窗口分别为3,1。
2.2.2.1TEXT文本的位置i=2开始子窗口等于3的匹配过程
获得字符串Pcurrent的首字母“a”,字母表中“a”的ASCII码值的对应位置的控制位C1为1,该字符串Pcurrent=“abc”的长度超过1,查看控制位C3为1,对字符串进行哈希处理,步骤如下:
{9,7,9,8,9,9}.
数字量化的模式信息作为基于可扩展精度混沌哈希函数的初始参数和控制参数的一部分,Logistic映射的初始参数和控制参数分别为:
x0=0.979899,a=3.9979899.
对字符串Pcurrent=“abc”进行哈希处理的过程请参照2.1.2.4,获得的哈希值为70。
其次,查找哈希表(请参见图1),哈希表值为70的模式计数器为1;则取出模式地址指针链表的第一项进行字符串比较,在模式字符数组地址P_Addess[1]的字符串为“abc”,则匹配成功。
2.2.2.2TEXT文本的位置i=2开始子窗口等于1的匹配过程 文本TEXT=“abccc”的第2个位置的字母“a”开始的子窗口等于1的字符串为“a”。TEXT文本的位置i=2开始子窗口等于1的匹配过程与2.2.1.2相同。
2.2.3TEXT文本的位置i=3
获得文本TEXT=“aabccc”的第3个位置的字母“b”,“b”在字母表中的序号为98,查找对应字母表的控制状态信息。
控制位C1等于0,则不必查看C2与C3控制信息位;因为,在模式集合中没有以字母“b”为开始字母的模式;因此,字母表起到了过滤作用,可以用来筛选多模式串匹配阶段应进行匹配的模式,减少匹配计算量。
最后,获得TEXT文本的下一个位置,TEXT文本的位置i=i+1。
2.2.4TEXT文本的任意位置i
在本算法中,以TEXT文本的任意位置i开始的窗口的模式匹配过程都可以独立的进行;也就是说,以TEXT文本的任意位置i开始的窗口的模式匹配过程可以分配到基于多核架构的多个处理器上并行处理;因此,本算法可以充分利用目前的多核处理器计算资源,实现快速的多模式串匹配过程。
此外,在模式长度比较集中时(例如,本实施方式中的两个长度为3的模式),利用窗口实现多模式串匹配过程,更加适合模式数据量大的特点。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (4)
1.一种基于可扩展精度混沌哈希的多模式串匹配算法,其特征在于:
(1)实现串匹配算法的主要数据结构包括:带有模式特征控制状态信息的字符表,长度大于1的模式经过基于可扩展精度混沌哈希函数映射的哈希表,包含多模式长度信息的窗口信息;
(2)预处理阶段,模式经过哈希处理保存到带有控制状态信息字符表为入口的哈希表中;
(3)在多模式串匹配过程中以文本的任意位置的字符开始的窗口为单位;
(4)以任意位置i为窗口的模式匹配过程:对当前窗口内的子窗口依次进行哈希处理,通过字符表的控制状态信息访问哈希表,把子窗口内的文本与具有该哈希值的模式进行比较;匹配成功,则输出该字符所在文本位置和以该字符开始的子窗口内的TEXT文本内容;
(5)从文本的第一个位置开始,按顺序以位置i为窗口进行多模式串匹配,直到文本末尾。
2.根据权利要求1所述的基于可扩展精度混沌哈希的多模式串匹配算法,其特征在于:
所述串匹配算法的主要数据结构为:
字符表
字符表包括两个部分:字符的数字量化值或在有限字符、符号集合中的序号;控制状态位信息;State由三个控制位组成,定义如下:C1,C2,C3;
控制位C1
控制位C1控制C2、C3位是否有效;
控制位C1的值设置为0代表空,即没有以该字符开始的模式;
控制位C1的值设置为1代表控制位C2、C3位有效,即存在以该字符开始的模式;
控制位C2
控制位C2代表该字符是否为模式;
控制位C2的值设置为0代表该字符不是一个单字符模式;
控制位C2的值设置为1代表该字符是一个单字符模式;
控制位C3
控制位C3代表该字符是否有指向哈希表的入口;
控制位C3的值设置为0代表该字符没有指向哈希表的入口;
控制位C3的值设置为1代表该字符有指向哈希表的入口;
哈希表
长度大于1的模式经过基于可扩展精度混沌哈希函数映射到该哈希表中;哈希表包括:模式对应的哈希值,模式计数器和模式地址指针链表;
模式对应的哈希值
模式经过基于可扩展精度混沌哈希映射的哈希地址;
模式计数器
该哈希地址对应的模式总数,如果模式计数器等于0,则表示该哈希地址没有对应的模式;
模式地址指针链表
模式所在的字符数组的地址指针被保存在该地址指针链表中,以便于模式匹配和处理冲突;
窗口信息
窗口信息包括:模式长度数组,窗口的总数,最大窗口长度,最小窗口长度;
模式长度数组
模式长度保存在数组中,该数组元素按照从大到小的顺序排列、并去除了重复的值;
窗口的总数
模式长度数组的元素总和;
最大窗口长度
模式集合中最大模式长度;
最小窗口长度
模式集合中最小模式长度。
3.根据权利要求1所述的基于可扩展精度混沌哈希的多模式串匹配算法,其特征在于:
预处理阶段:
基于可扩展精度混沌哈希的多模式串匹配算法的预处理阶段主要包括初始化字符表,建立哈希表,建立窗口信息;
初始化字符表:
初始化字符表包括建立字符表并初始化控制状态位,并设置控制状态位信息为0;
建立哈希表:
建立哈希表包括两个部分:基于可扩展精度混沌哈希函数和对模式进行处理建立哈希表;
对模式进行处理建立哈希表:
根据模式建立哈希表的具体步骤为,
(1)对哈希表的模式计数器、模式的地址指针链表初始化;
(2)获得模式的首字符,把字符表的相应控制位C1设置为1;
如果该模式只有一个字符,则字符表的相应控制位C2设置为1;
如果该模式的长度超过1,则字符表的相应控制位C3设置为1,对模式进行哈希处理,插入到哈希表中;
(3)处理下一个模式,直到所有的模式都映射到哈希表;
基于可扩展精度混沌哈希函数:
基于可扩展精度混沌哈希函数的具体步骤如下,
(1)对模式信息进行数字量化处理,量化后的数字信息保存在数组中,作为基于可扩展精度混沌哈希函数的初始参数和控制参数的一部分;采用Logistic映射作为可扩展精度计算混沌的模型;Logistic映射可以表述如下:
xn+1=a×xn×(1-xn);a∈(0,4];xn∈(0,1);n=0,1,…
其中,a是控制参数,x0为初始状态值;
当Logistic映射参数的末位为0时,对该位进行非零化处理;根据基于可扩展精度Logistic映射的迭代次数与精度关系数学公式:
Ln+1=2×Ln+La
其中,Ln为当前参数x的精度,La为参数a的精度;
设定Logistic映射迭代次数和指定Logistic映射获得的随机序列的位数,如果设定的Logistic映射迭代次数和指定Logistic映射获得的随机序列的位数不匹配,自动取迭代次数上限,以满足获取精度的要求;
(2)进行可扩展精度混沌迭代计算,经过迭代获得混沌随机序列,随机序列被保存在一维数组里;
基于可扩展精度Logistic映射的迭代过程为:
第一步,计算x=x*(1-x),保留扩展精度后的计算结果在新的一维动态数组中;
第二步,计算x=x*a,保留本次迭代的计算结果在动态数组中;
第三步,如果当前的迭代次数没有达到设定的迭代次数,则转到第一步;如果当前获得的混沌随机序列的精度小于指定的精度,则转到第一步;
第四步,经过指定的迭代次数和满足给定精度的混沌随机序列被保存在一个一维的数组里;
对于超过指定精度的混沌序列实行截尾、四舍五入运算规则近似计算;
(3)设定所需提取的信息位个数,按信息位个数对基于可扩展精度混沌随机序列进行分组;
设定的提取所需信息位个数应该小于等于指定Logistic映射获得的随机序列的位数,按照用户设定的提取信息位的个数对获得的混沌随机序列进行分组,每个分组的长度应该保证在进行随机选位时获得足够的组合值;
(4)设定种子,开始随机进行选位,并保存到数组中;
种子的选择可以保证输出信息充分包含了输入信息的特征,因此,可以采用求输入信息的数字值的和,或者其他体现该输入信息特征的数学函数;算法中的随机选位是指当种子的初值给定后,在当前的混沌随机序列分组的选位值,作为下一轮分组的随机选位的种子,保存每次选位值在一维数组中;
(5)映射到哈希地址空间;
转化保留选位值的一维数组中的元素为数值,采取对该数值取模运算映射到地址空间;
在建立哈希表的过程中,对插入到哈希表中的相应的模式计数器值加1,把模式的字符数组的地址指针插入到哈希表的模式地址指针链表中;
建立窗口信息:
窗口信息的初始化步骤为,
(1)获得每个模式长度;
(2)把各模式长度按从大到小排序,并去除相同的值,保存到数组中;
(3)记录窗口的总数,最大窗口长度,最小窗口长度。
4.根据权利要求1所述的基于可扩展精度混沌哈希的多模式串匹配算法,其特征在于:
按顺序以位置i为窗口进行多模式串匹配,多模式串匹配算法的具体步骤如下:
(1)获得TEXT文本的第i位置的字符,查找对应字符表的控制状态信息;如果控制位C1为1,则查看C2与C3控制信息位;
(2)当控制位C2为1时,模式匹配成功;
(3)如果控制位C3为1,则进入以TEXT文本的第i位置开始的窗口;
确定当前窗口的大小;
在当前窗口内,进行所有子窗口的匹配,由窗口值依次进行哈希运算,并查找哈希表值,如果哈希表模式计数器为0,则不作处理;如果模式计数器值大于0,则依次比较该哈希地址内模式地址指针链表内每个模式,匹配成功则输出当前i的数值及第i位置开始的窗口的TEXT文本信息;
(4)获得TEXT文本的下一个位置,直到TEXT文本末尾。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110107502.0A CN102184205B (zh) | 2011-04-28 | 2011-04-28 | 基于可扩展精度混沌哈希的多模式串匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110107502.0A CN102184205B (zh) | 2011-04-28 | 2011-04-28 | 基于可扩展精度混沌哈希的多模式串匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102184205A true CN102184205A (zh) | 2011-09-14 |
CN102184205B CN102184205B (zh) | 2016-04-13 |
Family
ID=44570382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110107502.0A Active CN102184205B (zh) | 2011-04-28 | 2011-04-28 | 基于可扩展精度混沌哈希的多模式串匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102184205B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609450A (zh) * | 2012-01-10 | 2012-07-25 | 顾乃杰 | 一种按字长匹配的多模式串匹配方法 |
CN102646123A (zh) * | 2012-02-23 | 2012-08-22 | 北京星网锐捷网络技术有限公司 | 多模式匹配方法、装置和设备 |
CN104714951A (zh) * | 2013-12-13 | 2015-06-17 | 世纪禾光科技发展(北京)有限公司 | 一种并行多模式匹配的方法及系统 |
CN106776965A (zh) * | 2016-12-05 | 2017-05-31 | 东软集团股份有限公司 | 特征串集合的分组方法和装置 |
CN107800531A (zh) * | 2017-12-13 | 2018-03-13 | 广西师范大学 | 一种采用哈希表分析有限精度下混沌系统的周期的方法 |
CN108898640A (zh) * | 2018-05-31 | 2018-11-27 | 吉林大学 | 一种基于dna编码的图像加密方法 |
CN109558521A (zh) * | 2018-11-28 | 2019-04-02 | 南京中孚信息技术有限公司 | 大规模关键词多模匹配方法、装置以及设备 |
CN110287149A (zh) * | 2019-05-10 | 2019-09-27 | 同济大学 | 一种使用哈希搜索的匹配编码方法 |
CN111159362A (zh) * | 2019-12-31 | 2020-05-15 | 奇安信科技集团股份有限公司 | 文本匹配处理方法及装置 |
CN111666730A (zh) * | 2020-05-22 | 2020-09-15 | 中国人民解放军国防科技大学 | 基于信号名哈希匹配的Verilog模块接口信号自动连接方法及系统 |
CN111767581A (zh) * | 2020-06-22 | 2020-10-13 | 重庆渝抗医药科技有限公司 | 用于区块链数据安全性的数据加密封装工作方法 |
CN112567363A (zh) * | 2018-07-10 | 2021-03-26 | 北京嘀嘀无限科技发展有限公司 | 文件指纹生成 |
CN113297619A (zh) * | 2021-05-28 | 2021-08-24 | 哈尔滨理工大学 | 基于可扩展精度双混沌哈希和RSA的Mysql敏感数据保护系统 |
CN115442024A (zh) * | 2022-09-05 | 2022-12-06 | 哈尔滨理工大学 | 基于混沌的MapReduce数据压缩的信息保护方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111683369B (zh) * | 2020-06-04 | 2023-02-17 | 重庆邮电大学 | 面向体域网数据传输的分级数字混沌加密方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009660A (zh) * | 2007-01-19 | 2007-08-01 | 杭州华为三康技术有限公司 | 处理分段报文模式匹配的通用方法及装置 |
CN101026576A (zh) * | 2007-01-19 | 2007-08-29 | 杭州华为三康技术有限公司 | 兼顾匹配策略的处理分段报文串模式匹配的方法及装置 |
CN101251845A (zh) * | 2008-03-13 | 2008-08-27 | 苏州爱迪比科技有限公司 | 利用改进的Wu-Manber算法进行多模式串匹配的方法 |
-
2011
- 2011-04-28 CN CN201110107502.0A patent/CN102184205B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009660A (zh) * | 2007-01-19 | 2007-08-01 | 杭州华为三康技术有限公司 | 处理分段报文模式匹配的通用方法及装置 |
CN101026576A (zh) * | 2007-01-19 | 2007-08-29 | 杭州华为三康技术有限公司 | 兼顾匹配策略的处理分段报文串模式匹配的方法及装置 |
CN101251845A (zh) * | 2008-03-13 | 2008-08-27 | 苏州爱迪比科技有限公司 | 利用改进的Wu-Manber算法进行多模式串匹配的方法 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609450B (zh) * | 2012-01-10 | 2014-07-23 | 顾乃杰 | 一种按字长匹配的多模式串匹配方法 |
CN102609450A (zh) * | 2012-01-10 | 2012-07-25 | 顾乃杰 | 一种按字长匹配的多模式串匹配方法 |
CN102646123A (zh) * | 2012-02-23 | 2012-08-22 | 北京星网锐捷网络技术有限公司 | 多模式匹配方法、装置和设备 |
CN104714951A (zh) * | 2013-12-13 | 2015-06-17 | 世纪禾光科技发展(北京)有限公司 | 一种并行多模式匹配的方法及系统 |
CN106776965B (zh) * | 2016-12-05 | 2019-11-26 | 东软集团股份有限公司 | 特征串集合的分组方法和装置 |
CN106776965A (zh) * | 2016-12-05 | 2017-05-31 | 东软集团股份有限公司 | 特征串集合的分组方法和装置 |
CN107800531A (zh) * | 2017-12-13 | 2018-03-13 | 广西师范大学 | 一种采用哈希表分析有限精度下混沌系统的周期的方法 |
CN108898640B (zh) * | 2018-05-31 | 2022-05-10 | 吉林大学 | 一种基于dna编码的图像加密方法 |
CN108898640A (zh) * | 2018-05-31 | 2018-11-27 | 吉林大学 | 一种基于dna编码的图像加密方法 |
CN112567363A (zh) * | 2018-07-10 | 2021-03-26 | 北京嘀嘀无限科技发展有限公司 | 文件指纹生成 |
CN109558521A (zh) * | 2018-11-28 | 2019-04-02 | 南京中孚信息技术有限公司 | 大规模关键词多模匹配方法、装置以及设备 |
CN110287149A (zh) * | 2019-05-10 | 2019-09-27 | 同济大学 | 一种使用哈希搜索的匹配编码方法 |
CN111159362A (zh) * | 2019-12-31 | 2020-05-15 | 奇安信科技集团股份有限公司 | 文本匹配处理方法及装置 |
CN111159362B (zh) * | 2019-12-31 | 2024-04-26 | 奇安信科技集团股份有限公司 | 文本匹配处理方法及装置 |
CN111666730A (zh) * | 2020-05-22 | 2020-09-15 | 中国人民解放军国防科技大学 | 基于信号名哈希匹配的Verilog模块接口信号自动连接方法及系统 |
CN111666730B (zh) * | 2020-05-22 | 2022-10-28 | 中国人民解放军国防科技大学 | 基于信号名哈希匹配的Verilog模块接口信号自动连接方法及系统 |
CN111767581A (zh) * | 2020-06-22 | 2020-10-13 | 重庆渝抗医药科技有限公司 | 用于区块链数据安全性的数据加密封装工作方法 |
CN113297619A (zh) * | 2021-05-28 | 2021-08-24 | 哈尔滨理工大学 | 基于可扩展精度双混沌哈希和RSA的Mysql敏感数据保护系统 |
CN115442024A (zh) * | 2022-09-05 | 2022-12-06 | 哈尔滨理工大学 | 基于混沌的MapReduce数据压缩的信息保护方法 |
CN115442024B (zh) * | 2022-09-05 | 2024-05-31 | 哈尔滨理工大学 | 基于混沌的MapReduce数据压缩的信息保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102184205B (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102184205A (zh) | 基于可扩展精度混沌哈希的多模式串匹配算法 | |
CN103116639B (zh) | 基于用户-物品二分图模型的物品推荐方法及系统 | |
US9406381B2 (en) | TCAM search unit including a distributor TCAM and DRAM and a method for dividing a database of TCAM rules | |
CN106599052B (zh) | 一种基于Apache Kylin的数据查询系统及其方法 | |
CN111310050A (zh) | 一种基于多层注意力的推荐方法 | |
CN111801665B (zh) | 用于大数据应用的分层局部敏感哈希(lsh)分区索引 | |
CN100476824C (zh) | 存储元素的方法与系统及查找元素的方法与系统 | |
Sun et al. | Find the best path: An efficient and accurate classifier for image hierarchies | |
CN104636349A (zh) | 一种索引数据压缩以及索引数据搜索的方法和设备 | |
CN102207935A (zh) | 用于创建索引的方法和系统 | |
CN111090765B (zh) | 一种基于缺失多模态哈希的社交图像检索方法及系统 | |
CN101635001A (zh) | 从数据库提取信息的方法和设备 | |
CN110532528B (zh) | 基于随机游走的书籍相似度计算方法及电子设备 | |
CN117370650A (zh) | 基于服务组合超图卷积网络的云计算数据推荐方法 | |
Yuan et al. | Resource-aware federated neural architecture search over heterogeneous mobile devices | |
CN107944045B (zh) | 基于t分布哈希的图像检索方法及系统 | |
CN109241322A (zh) | 代码生成方法、代码生成装置和电子设备 | |
CN114780151A (zh) | 一种基于归并排序算法实现可变规模数量的数据排序系统 | |
CN115718768A (zh) | 一种多市场数据查询方法、系统及装置 | |
CN116226220A (zh) | 一种基于逻辑结构和属性特征的遥感流程推荐方法 | |
CN115186188A (zh) | 基于行为分析的产品推荐方法、装置、设备及存储介质 | |
CN114356512A (zh) | 一种数据处理方法、设备以及计算机可读存储介质 | |
CN108304467A (zh) | 用于文本间匹配的方法 | |
CN110334055B (zh) | 一种获取材料计算数据的方法 | |
CN110059806B (zh) | 一种基于幂律函数的多阶段加权网络社团结构检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |