CN101916259A - 确定自动机状态转换表的空间压缩方法 - Google Patents
确定自动机状态转换表的空间压缩方法 Download PDFInfo
- Publication number
- CN101916259A CN101916259A CN 201010226250 CN201010226250A CN101916259A CN 101916259 A CN101916259 A CN 101916259A CN 201010226250 CN201010226250 CN 201010226250 CN 201010226250 A CN201010226250 A CN 201010226250A CN 101916259 A CN101916259 A CN 101916259A
- Authority
- CN
- China
- Prior art keywords
- value
- matrix
- column vector
- compression method
- row
- 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
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种确定自动机状态转换表的空间压缩方法,包括:将确定自动机状态转换表表示为一个m×n的矩阵A,其中m代表确定自动机中的状态的个数,n代表字符集的大小;定义一个大小为m的列向量X和一个大小为n的行向量Y;对所述的列向量X和所述的列向量Y做迭代计算,直到对于任意的1≤i≤m,X[i]是多重集Di.中频率最高的元素,并且对于任意的1≤j≤n,Y[j]是多重集D.j中频率最高的元素;其中,所述的Di.={A[i,j]-Y[j]|1≤j≤n},所述的D.j={A[i,j]-X[i]|1≤i≤m};由所述的矩阵A、列向量X和行向量Y计算稀疏矩阵R,并压缩所得到的稀疏矩阵R;其中,R[i,j]=A[i,j]-X[i]-Y[j]。本发明的确定自动机状态转换表的空间压缩方法在减少内存中所占用空间的同时,大大减少了空间开销。
Description
技术领域
本发明涉及信息检索领域,特别涉及确定自动机状态转换表的空间压缩方法。
背景技术
近年来,正则表达式匹配已经成为网络安全领域的一个研究焦点。网络通信过程中对实时性和高效性的需求,增强了确定自动机(DFA)在识别正则表达式过程中的重要性。然而,随着正则表达式在实际应用中的不断复杂化,由正则表达式所生成的DFA的状态规模也不断增大,DFA状态规模的不断增大使得计算机存储空间的消耗急剧增长,这种急剧增长已经成为限制正则表达式应用的一个瓶颈。基于上述原因,需要对DFA空间进行压缩,DFA空间的压缩方法已经成为学者关注的焦点。
现有技术中存在DFA空间的压缩方法,如在参考文献1“Fast and memory-efficient regular expression matching for deep packet inspection.Proceedings of the 2006 ACM/IEEE symposium on Architecture for networking and communications systems 2006,San Jose,California,USA December 03-05,2006”中利用规则重写和规则分类的方法来简化正则表达式,文中提出把一组正则表达式集合分成若干组,每组都可用中等规模的DFA来识别。然而这一重写规则的方法仅适用于非重叠匹配的情况。在参考文献2“Algorithm to Accelerate Multiple Regular Expressions Matching for Deep Packet Inspection Conference:SIGCOMM’06 September 11-15,2006”中提出了用D2FA方法来压缩DFA的存储空间。D2FA方法利用默认转换来消除重复的转换,但是识别一个字符的状态变换时间将成比例的增长。在参考文献3“An improved algorithm to accelerate regular expression evaluation,Proceedings of the 3rd ACM/IEEE Symposium on Architecture for networking and communications systems,145-154,2007”提出了一种DFA的压缩方法,它在处理长度为N的字符串时最多做2N次状态变迁,这种方法可达到与D2FA相当的压缩效果,但同样具有识别时间长的缺陷。在参考文献4“Animproved DFA for fast regular expression matching,ACM SIGCOMM Computer Communication Review,Volume 38,Issue 5(October 2008),Pages 29-40”中,提出了用δFA方法来消除DFA状态转换表中的冗余。在DFA的遍历过程中,对相同的输入字符临近状态分享大部分的下一跳状态,因此当前状态的转换可以从其父节点的状态转换表中动态的检索出来。但是每次状态转换都需要更新当前状态的状态转换表,非常费时。在参考文献5“XFA:Faster Signature Matching with Extended Automata,Security and Privacy,2008.SP 2008.IEEESymposium,pp.187-201,18-22May 2008”提出了用XFA的方法来解决两类特殊的正则表达式的指数爆炸问题。该方法对DFA进行扩展,在DFA的每个状态上附加计数器来记录匹配过程中正则表达式中字符重复的次数。该方法只能解决某些正则表达式的指数爆炸问题,不具有通用性。
综上所述,现有技术中的方法存在两个共同的特点:(1)增加时间开销来换取空间的减少;(2)没有最坏情况下的空间开销保证。虽然上述方法在某些特殊的情况下是有效的,但是仍需要做进一步的改进。
发明内容
本发明的目的是克服现有技术中的确定自动机状态表的空间压缩方法所具有的时间开销大的缺陷,从而提供一种时间开销与空间开销都有明显提高的空间压缩方法。
为了实现上述目的,本发明提供了一种确定自动机状态转换表的空间压缩方法,包括:
步骤1)、将确定自动机状态转换表表示为一个m×n的矩阵A,其中m代表确定自动机中的状态的个数,n代表字符集的大小;
步骤2)、定义一个大小为m的列向量X和一个大小为n的行向量Y;
步骤3)、对所述的列向量X和所述的列向量Y做迭代计算,直到对于任意的1≤i≤m,X[i]是多重集Di.中频率最高的元素,并且对于任意的1≤j≤n,Y[j]是多重集D.j中频率最高的元素;其中,所述的Di.={A[i,j]-Y[j]|1≤j≤n},所述的D.j={A[i,j]-X[i]|1≤i≤m};
步骤4)、由所述的矩阵A、列向量X和行向量Y计算稀疏矩阵R,并压缩所得到的稀疏矩阵R;其中,R[i,j]=A[i,j]-X[i]-Y[j]。
上述技术方案中,所述的步骤3)包括:
步骤3-1-1)、以随机的方式为所述的列向量X和所述的行向量Y赋初值;
步骤3-1-2)、计算列向量X的值,包括:
首先令Di.={A[i,j]-Y[j]|1≤j≤n},然后用a表示所述Di.中出现频率最高的元素,如果a在Di.中的出现次数大于X[i]在Di.中的出现次数,则令X[i]=a,否则X[i]的值保持不变;
步骤3-1-3)、计算行向量Y的值,包括:
首先令D.j={A[i,j]-X[i]|1≤i≤m},然后用a等于D.j中出现频率最高的元素,如果a在D.j中的出现次数大于Y[j]在D.j中的出现次数,则令Y[j]=a,否则Y[j]的值保持不变;
步骤3-1-4)、判断所述列向量X与行向量Y的值是否发生变化,如果两者都没有发生变化,结束步骤3)的操作,否则重新执行步骤3-1-2)。
上述技术方案中,所述的步骤3)包括:
步骤3-2-1)、以随机的方式为所述的列向量X和所述的行向量Y赋初值;
步骤3-2-2)、计算行向量Y的值,包括:
首先令D.j={A[i,j]-X[i]|1≤i≤m},然后用a等于D.j中出现频率最高的元素,如果a在D.j中的出现次数大于Y[j]在D.j中的出现次数,则令Y[j]=a,否则Y[j]的值保持不变;
步骤3-2-3)、计算列向量X的值,包括:
首先令Di.={A[i,j]-Y[j]|1≤j≤n},然后用a表示所述Di.中出现频率最高的元素,如果a在Di.中的出现次数大于X[i]在Di.中的出现次数,则令X[i]=a,否则X[i]的值保持不变;
步骤3-2-4)、判断所述列向量X与行向量Y的值是否发生变化,如果两者都没有发生变化,结束步骤3)的操作,否则重新执行步骤3-2-2)。
上述技术方案中,在所述的步骤4)中,采用矩阵压缩方法对所述的稀疏矩阵R进行压缩。
上述技术方案中,所述的矩阵压缩方法为包括二分查找法、三数组法和Tetris-哈希法在内的经典矩阵压缩方法。
本发明还提供了一种用所述的确定自动机状态转换表的空间压缩方法所得到的结果实现状态查询的方法,包括:
步骤1)、读取当前状态s,当前输入字符c;
步骤2)、令t=X[s]+Y[c];
步骤3)、查看稀疏矩阵R中的元素R[s,c]是否为零,如果不是,用t+R[s,c]替换t,如果是,则无需替换;所得到的结果t为所要转换的下一个状态。
上述技术方案中,在所述的步骤3)中,采用BloomFilter方法查看稀疏矩阵R中的元素R[s,c]。
本发明的优点在于:
本发明的确定自动机状态转换表的空间压缩方法在减少内存中所占用空间的同时,大大减少了空间开销。
附图说明
图1为由正则表达式所生成的自动状态机的示意图;
图2为一个正则表达式的确定自动状态机状态转换表的矩阵分解过程示意图;
图3为本发明的确定自动机状态转换表的空间压缩方法的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明加以说明。
在一个实施例中,有如下正则表达式:a+|b+c|c*d+。利用该正则表达式可以构建确定自动机(DFA)。由正则表达式构建确定自动机的过程为本领域技术人员所公知的现有技术,它包括:首先将正则表达式解析成一棵表达树,然后将该表达树转换成非确定自动机(NFA),最后把非确定自动机转换为确定自动机。上述过程中正则表达式的表达树转换为NFA的方法有很多种,在本实施例中可采用Thompson构造法。图1是前述正则表达式所生成的DFA的示意图。在得到DFA后,可将DFA中的状态转换关系用矩阵表示,这一矩阵被称为状态转换表。在下面的表1中给出了图1所示DFA所生成的状态转换表。
表1
以上根据正则表达式生成DFA,进而得到DFA的状态转换表的实现方法都为现有技术,本发明主要涉及在得到DFA的状态转换表后,如何压缩这一状态转换表,以减少存储空间。
DFA的状态转换表可以表示为一个m×n的矩阵A,其中m代表状态的个数,n代表字符集的大小,而A[i,j]即为在当前状态i读入字符j所达到的下一个状态。出于说明的方便,本实施例中所列举的正则表达式的形式十分简单,使得与其对应的表1中的状态转换表的形式也十分简单,不会占据多大的内存空间。但本领域技术人员很容易想到,一旦正则表达式复杂化,则所对应的DFA的状态转换表就会消耗大量的内存。因此,需要对DFA的状态转换表进行压缩。本发明在实现对状态转换表的压缩时,利用一个特殊的矩阵D来逼近A,以使得R=A-D尽可能稀疏,从而达到用D和R来代替A,减小存储空间的目的。
也就是说,本发明所要解决的问题形式化定义为:设X是一个大小为m的列向量,Y是一个大小为n的行向量,D是一个由X和Y确定的m×n的矩阵,并满足D[i,j]=X[i]+Y[j](1≤i≤m,1≤j≤n)。对于给定的矩阵Am×n,求解X和Y以使得矩阵R=A-D=[A[i,j]-X[i]-Y[j]中非零元素的个数最少。
下面仍然以表1中的矩阵A为例,结合图2和图3就如何确定列向量X、行向量Y以及稀疏矩阵R加以说明。
首先以随机的方式为列向量X和行向量Y赋初值。假设初始时X={1,2,4,0,4}T,Y={4,3,3,2},则根据R=A-D=[A[i,j]-X[i]-Y[j]]的公式,此时所得到的矩阵R的值如下面的表2所示。
-4 | -2 | -4 | 0 |
-5 | -3 | -5 | -1 |
-7 | -5 | -3 | -3 |
-3 | -1 | -3 | 1 |
-7 | -5 | -7 | -3 |
表2
此时,需要对X、Y的值做迭代计算。在第一次迭代计算的过程中,首先计算X的值,令Di.={A[i,j]-Y[j]|1≤j≤n},因此用表1中的第一行减去Y的初始值,得到D1.={-3,-1,-3,1}。然后从D1.中读取出现频率最高的元素,用a表示这一出现频率最高的元素,显然在D1.中,a=-3。接着判断a在D1.中的出现次数是否大于X[1]在D1.中的出现次数,如果大于,令X[1]=a。当a=-3时,其在D1.中的出现次数为2,而X[1]=1,其在D1.出现的次数为1,a在D1.出现的次数大于X[1]在D1.出现的次数,所以更新X[1]=a=-3。参照上述方法,可以得到D2.,然后从D2.中找出出现频率最高的元素a,通过比较a与X[2]在D2.中的出现次数,可以知道是否要将X[2]的值替换为出现频率最高的元素。结合前述实例可以知道,X[2]的值发生了变化,新的X[2]=-3。类似的,可以知道,X[3]=1,X[4]=-3,X[5]=-3。也就是说,在经过第一次迭代计算后,X由原来的[1,2,4,0,4]T转变为[-3,-3,1,-3,-3]T。
接着对Y的值做迭代计算。在计算Y的值时,令D.j={A[i,j]-X[i]|1≤i≤m},因此用表1中的第一列减去X的值。需要说明的是,此处所述的X的值不是X的初始值,而是X在经过第一次迭代后的新的值。因此,计算得到的D.1={4,4,0,4,4}T。在得到D.1后,同样可以用a表示出现频率最高的元素,然后将出现频率最高的元素在D.1中的出现次数与Y[1]进行比较,由于Y[1]=4=a,所以无需改变Y[1]的值。同理可计算得到Y[2]=5、Y[3]=3、Y[4]=6。也就是说,在经过第一次迭代计算后,Y由原来的{4,3,3,2}改变为{4,5,3,6}。
在经过第一次迭代计算后,X、Y的值都发生了变化,因此,矩阵R的值也会发生相应变化,在下面的表3中给出了矩阵R的新的值。
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
-4 | -4 | 0 | -4 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
表3
在完成第一次迭代计算后,需要判断是否继续进行迭代计算。如果X和Y的值在此次迭代计算过程中都没有发生改变,则无需继续迭代计算,否则,需要继续进行迭代计算。在第一次迭代计算过程中,X和Y的值都发生了变化,因此需要继续进行迭代计算。
在第二次的迭代计算过程中,同样先计算X的值。X值的计算过程与第一次迭代计算过程相类似,只是此时Y的值为经过第一次迭代计算后的Y值。经过第二此迭代计算后的X的值由{-3,-3,1,-3,-3}T改变为{-3,-3,-3,-3,-3}T。然后继续计算Y的值,Y的值没有发生变化,同样为{4,5,3,6}。在得到新的X、Y值后,继续计算矩阵R的值,在下面的表4中给出了矩阵R的新的值。
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 4 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
表4
由于X的值发生了变化,因此在第二此迭代计算完成后,需要继续进行迭代计算过程。
第三次迭代计算过程与前两次相似,迭代计算的结果为X={-3,-3,-3,-3,-3}T,Y={4,5,3,6}。与第二次迭代计算相比,此次迭代计算所得到的X、Y的值并没有发生变化,因此矩阵R的值与表4相比同样没有发生变化,且无需继续进行迭代计算过程。
由上述计算过程可以知道,表1中所涉及的用矩阵表示的DFA的状态转换表经过多次迭代计算转换成了列向量X{-3,-3,-3,-3,-3}T、行向量Y{4,5,3,6}以及表4所示的稀疏矩阵R。对于稀疏矩阵R可以采用现有技术中的相关方法(如现有技术中最常用的二分查找法、三数组法和Tetris-哈希法)进行压缩操作,从而达到压缩DFA状态转换表的目的。
虽然在本实施例中,在各次迭代计算的过程中,都是先算X的值,再算Y的值,但在其它实施例中,也可以先算Y的值,再算X的值。另外,虽然在上面的表2、表3、表4中分别给出了当X、Y的值发生变化时对应的矩阵R的值,但在实际操作中,并不需要多次计算矩阵R的值,而且出于减少计算量的考虑,通常是在X、Y的值确定后,才一次性计算矩阵R的值。
通过理论推导很容易知道,利用本发明方法压缩DFA状态转换表的空间压缩率为:
其中,m表示状态数,n表示字符数,R表示最后得到的稀疏矩阵,nonzero(R)表示矩阵R中非零元素的个数。
在表5中,以L7-filter signatures、Snort signatures等18组正则表达式集所生成的DFA状态转换表为例,将本发明方法(在表中用MAT_ADD表示)与前述参考文献4中所提到的δFA算法加以比较。从比较的结果可以看出,本发明方法的空间压缩率在14组(约占77.8%)中优于现有的δFA算法。
规则 | DFA | δFA | MAT_ADD |
L7_1 | 1.0 | 0.634964 | 0.226984 |
L7_2 | 1.0 | 0.918592 | 0.240451 |
L7_3 | 1.0 | 0.960985 | 0.356182 |
L7_4 | 1.0 | 0.097177 | 0.379325 |
L7_5 | 1.0 | 0.820768 | 0.198944 |
L7_6 | 1.0 | 0.827021 | 0.053005 |
L7_7 | 1.0 | 0.912125 | 0.054519 |
L7_8 | 1.0 | 0.804303 | 0.231228 |
Snort24 | 1.0 | 0.037515 | 0.103243 |
Snort31 | 1.0 | 0.053581 | 0.058584 |
Snort34 | 1.0 | 0.032259 | 0.058067 |
BR0217 | 1.0 | 0.061814 | 0.035062 |
Synthetic_1 | 1.0 | 0.111281 | 0.011656 |
Synthetic_2 | 1.0 | 0.099659 | 0.026233 |
Synthetic_3 | 1.0 | 0.948123 | 0.014934 |
Synthetic_4 | 1.0 | 0.990808 | 0.042752 |
Synthetic_5 | 1.0 | 0.947048 | 0.016112 |
Synthetic_6 | 1.0 | 0.973929 | 0.048839 |
表5
通过本发明的上述方法将DFA的状态转换矩阵A替换为列向量X,行向量Y和一个稀疏矩阵R,并对稀疏矩阵R进行压缩以后,同样可以利用所述的X、Y以及压缩后的R快速地实现DFA状态转换。这一状态转换过程包括:
已知当前状态为s,当前输入字符为c,令t=X[s]+Y[c],然后查看稀疏矩阵R的当前位置R[s,c]是否为零,如果不是,令t+R[s,c]替换t,如果是,则无需替换。所得到的结果t就代表所要转换的下一个状态。
在上述过程中,查看稀疏矩阵R的当前位置R[s,c]是否为零时,可采用现有技术中的BloomFilter方法。BloomFilter方法是一种效率较高的内存索引算法,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。该方法被广泛应用到各种计算机系统之中表达庞大数据集及提高查找效率。本发明把BloomFilter方法用于稀疏矩阵元素的查找,能够有效地提高查找效率。
在下面的表6中给出了本发明方法(在表中用MAT_ADD表示)与参考文献4中的δFA算法相比,在不同稀疏矩阵压缩方法下查找矩阵所花费时间(单位为秒),从中可以看出,本发明方法所花费时间远远少于现有技术中的δFA算法,与未压缩前相比,时间开销的差别不大。
表6
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种确定自动机状态转换表的空间压缩方法,包括:
步骤1)、将确定自动机状态转换表表示为一个m×n的矩阵A,其中m代表确定自动机中的状态的个数,n代表字符集的大小;
步骤2)、定义一个大小为m的列向量X和一个大小为n的行向量Y;
步骤3)、对所述的列向量X和所述的列向量Y做迭代计算,直到对于任意的1≤i≤m,X[i]是多重集Di.中频率最高的元素,并且对于任意的1≤j≤n,Y[j]是多重集D.j中频率最高的元素;其中,所述的Di.={A[i,j]-Y[j]|1≤j≤n},所述的D.j={A[i,j]-X[i]|1≤i≤m};
步骤4)、由所述的矩阵A、列向量X和行向量Y计算稀疏矩阵R,并压缩所得到的稀疏矩阵R;其中,R[i,j]=A[i,j]-X[i]-Y[j]。
2.根据权利要求1所述的确定自动机状态转换表的空间压缩方法,其特征在于,所述的步骤3)包括:
步骤3-1-1)、以随机的方式为所述的列向量X和所述的行向量Y赋初值;
步骤3-1-2)、计算列向量X的值,包括:
首先令Di.={A[i,j]-Y[j]|1≤j≤n},然后用a表示所述Di.中出现频率最高的元素,如果a在Di.中的出现次数大于X[i]在Di.中的出现次数,则令X[i]=a,否则X[i]的值保持不变;
步骤3-1-3)、计算行向量Y的值,包括:
首先令D.j={A[i,j]-X[i]|1≤i≤m},然后用a等于D.j中出现频率最高的元素,如果a在D.j中的出现次数大于Y[j]在D.j中的出现次数,则令Y[j]=a,否则Y[j]的值保持不变;
步骤3-1-4)、判断所述列向量X与行向量Y的值是否发生变化,如果两者都没有发生变化,结束步骤3)的操作,否则重新执行步骤3-1-2)。
3.根据权利要求1所述的确定自动机状态转换表的空间压缩方法,其特征在于,所述的步骤3)包括:
步骤3-2-1)、以随机的方式为所述的列向量X和所述的行向量Y赋初值;
步骤3-2-2)、计算行向量Y的值,包括:
首先令D.j={A[i,j]-X[i]|1≤i≤m},然后用a等于D.j中出现频率最高的元素,如果a在D.j中的出现次数大于Y[j]在D.j中的出现次数,则令Y[j]=a,否则Y[j]的值保持不变;
步骤3-2-3)、计算列向量X的值,包括:
首先令Di.={A[i,j]-Y[j]|1≤j≤n},然后用a表示所述Di.中出现频率最高的元素,如果a在Di.中的出现次数大于X[i]在Di.中的出现次数,则令X[i]=a,否则X[i]的值保持不变;
步骤3-2-4)、判断所述列向量X与行向量Y的值是否发生变化,如果两者都没有发生变化,结束步骤3)的操作,否则重新执行步骤3-2-2)。
4.根据权利要求1所述的确定自动机状态转换表的空间压缩方法,其特征在于,在所述的步骤4)中,采用矩阵压缩方法对所述的稀疏矩阵R进行压缩。
5.根据权利要求4所述的确定自动机状态转换表的空间压缩方法,其特征在于,所述的矩阵压缩方法为包括二分查找法、三数组法和Tetris-哈希法在内的经典矩阵压缩方法。
6.一种用权利要求1-5之一的确定自动机状态转换表的空间压缩方法所得到的结果实现状态查询的方法,包括:
步骤1)、读取当前状态s,当前输入字符c;
步骤2)、令t=X[s]+Y[c];
步骤3)、查看稀疏矩阵R中的元素R[s,c]是否为零,如果不是,用t+R[s,c]替换t,如果是,则无需替换;所得到的结果t为所要转换的下一个状态。
7.根据权利要求6所述的状态查询方法,其特征在于,在所述的步骤3)中,采用BloomFilter方法查看稀疏矩阵R中的元素R[s,c]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102262509A CN101916259B (zh) | 2010-07-06 | 2010-07-06 | 确定自动机状态转换表的空间压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102262509A CN101916259B (zh) | 2010-07-06 | 2010-07-06 | 确定自动机状态转换表的空间压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101916259A true CN101916259A (zh) | 2010-12-15 |
CN101916259B CN101916259B (zh) | 2012-07-11 |
Family
ID=43323771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102262509A Expired - Fee Related CN101916259B (zh) | 2010-07-06 | 2010-07-06 | 确定自动机状态转换表的空间压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101916259B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184197A (zh) * | 2011-04-22 | 2011-09-14 | 湖南亿谷信息科技发展有限公司 | 基于智能有限自动机的正则表达式匹配方法 |
CN110401451A (zh) * | 2019-06-12 | 2019-11-01 | 中国科学院信息工程研究所 | 基于字符集变换的自动机空间压缩方法及系统 |
CN110413958A (zh) * | 2019-06-12 | 2019-11-05 | 中国科学院信息工程研究所 | 用于自动机空间压缩的线性同余字符集变换方法及系统 |
CN110838287A (zh) * | 2019-10-16 | 2020-02-25 | 中国第一汽车股份有限公司 | 车载环境下聊天机器人的语料处理方法、装置及存储介质 |
CN112364294A (zh) * | 2020-10-27 | 2021-02-12 | 中国核动力研究设计院 | 堆芯数值计算矩阵的自动转换方法、装置、设备及介质 |
CN112615627A (zh) * | 2020-11-13 | 2021-04-06 | 北京信工博特智能科技有限公司 | 基于改进行程长度编码的动态压缩方法及动态压缩系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080067431A1 (en) * | 2006-09-14 | 2008-03-20 | Nuflare Technology, Inc. | Pattern writing apparatus using charged particle beam, and program-recorded readable recording medium |
CN101201836A (zh) * | 2007-09-04 | 2008-06-18 | 浙江大学 | 基于带记忆确定有限自动机的正则表达式匹配加速方法 |
US20090138440A1 (en) * | 2007-11-27 | 2009-05-28 | Rajan Goyal | Method and apparatus for traversing a deterministic finite automata (DFA) graph compression |
-
2010
- 2010-07-06 CN CN2010102262509A patent/CN101916259B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080067431A1 (en) * | 2006-09-14 | 2008-03-20 | Nuflare Technology, Inc. | Pattern writing apparatus using charged particle beam, and program-recorded readable recording medium |
CN101201836A (zh) * | 2007-09-04 | 2008-06-18 | 浙江大学 | 基于带记忆确定有限自动机的正则表达式匹配加速方法 |
US20090138440A1 (en) * | 2007-11-27 | 2009-05-28 | Rajan Goyal | Method and apparatus for traversing a deterministic finite automata (DFA) graph compression |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184197A (zh) * | 2011-04-22 | 2011-09-14 | 湖南亿谷信息科技发展有限公司 | 基于智能有限自动机的正则表达式匹配方法 |
CN110401451A (zh) * | 2019-06-12 | 2019-11-01 | 中国科学院信息工程研究所 | 基于字符集变换的自动机空间压缩方法及系统 |
CN110413958A (zh) * | 2019-06-12 | 2019-11-05 | 中国科学院信息工程研究所 | 用于自动机空间压缩的线性同余字符集变换方法及系统 |
CN110838287A (zh) * | 2019-10-16 | 2020-02-25 | 中国第一汽车股份有限公司 | 车载环境下聊天机器人的语料处理方法、装置及存储介质 |
CN110838287B (zh) * | 2019-10-16 | 2022-04-19 | 中国第一汽车股份有限公司 | 车载环境下聊天机器人的语料处理方法、装置及存储介质 |
CN112364294A (zh) * | 2020-10-27 | 2021-02-12 | 中国核动力研究设计院 | 堆芯数值计算矩阵的自动转换方法、装置、设备及介质 |
CN112615627A (zh) * | 2020-11-13 | 2021-04-06 | 北京信工博特智能科技有限公司 | 基于改进行程长度编码的动态压缩方法及动态压缩系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101916259B (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101916259B (zh) | 确定自动机状态转换表的空间压缩方法 | |
CN102301342B (zh) | 正则表达式匹配方法和系统及查找装置 | |
CN103177414B (zh) | 一种基于结构的图节点相似度并行计算方法 | |
Ozfatura et al. | Gradient coding with clustering and multi-message communication | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN103955539B (zh) | 一种获取二进制协议数据中控制字段划分点的方法及装置 | |
CN105320654A (zh) | 动态布隆过滤器和基于动态布隆过滤器的元素操作方法 | |
CN106326475A (zh) | 一种高效的静态哈希表实现方法及系统 | |
CN104809161A (zh) | 一种对稀疏矩阵进行压缩和查询的方法及系统 | |
CN103312627B (zh) | 基于两级存储的正则表达式匹配方法 | |
CN103226858B (zh) | 蓝牙配对信息的处理方法及装置 | |
CN116841973A (zh) | 面向嵌入式数据库的数据智能化压缩方法及系统 | |
CN103166942A (zh) | 一种恶意代码的网络协议解析方法 | |
Yan et al. | A memoryless binary query tree based successive scheme for passive RFID tag collision resolution | |
CN105023021A (zh) | 一种基于主方向模板的特征匹配方法 | |
CN109213972A (zh) | 确定文档相似度的方法、装置、设备和计算机存储介质 | |
CN101650732B (zh) | 一种对象管理系统中的对象分组方法及装置 | |
CN110401451A (zh) | 基于字符集变换的自动机空间压缩方法及系统 | |
CN102521360B (zh) | 栅格数据传输方法及系统 | |
CN103020182B (zh) | 一种基于hash算法的数据查找方法 | |
CN101854341B (zh) | 用于数据流的模式匹配方法和装置 | |
CN101799803B (zh) | 信息处理方法、模块及系统 | |
Zhang et al. | Secure Aggregation with Uncoded Groupwise Keys Against User Collusion | |
CN103957012A (zh) | 一种dfa矩阵的压缩方法及装置 | |
Hu et al. | Fast knowledge reduction algorithms based on quick sort |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120711 Termination date: 20190706 |