CN104246749B - 用于选择性消除非确定性有限自动机的不确定性的方法、服务器及终端装置 - Google Patents
用于选择性消除非确定性有限自动机的不确定性的方法、服务器及终端装置 Download PDFInfo
- Publication number
- CN104246749B CN104246749B CN201280072270.2A CN201280072270A CN104246749B CN 104246749 B CN104246749 B CN 104246749B CN 201280072270 A CN201280072270 A CN 201280072270A CN 104246749 B CN104246749 B CN 104246749B
- Authority
- CN
- China
- Prior art keywords
- state
- migration
- migrate
- maximum probability
- migration set
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000005012 migration Effects 0.000 claims abstract description 227
- 238000013508 migration Methods 0.000 claims abstract description 227
- 230000004913 activation Effects 0.000 claims description 77
- 238000003379 elimination reaction Methods 0.000 claims description 65
- 230000008030 elimination Effects 0.000 claims description 55
- 230000007704 transition Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 14
- 238000007689 inspection Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种选择性地消除非确定性有限自动机的不确定性的方法,包括以下步骤:(a)将非确定性有限自动机内的状态中的、所算出的从特定状态移动而到达的概率为最高的状态决定为最大概率状态;(b)判断在所述非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使所述最大概率状态移动到状态i的迁移组成,所述第2迁移集合由使所述最大概率状态移动到状态j的迁移组成;(c)若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k是通过仅由所述至少一个共同迁移组成的共同迁移集合而从所述最大概率状态移动后到达的状态,且所述状态k被新追加到所述非确定性有限自动机内。
Description
技术领域
本发明涉及用于选择性地消除非确定性有限自动机的不确定性的方法、服务器、终端装置及计算机可读介质。更具体地说,本发明涉及,筛选非确定性有限自动机的字符串查找速度降低的原因即导致激活状态增加的迁移,消除其不确定性,从而更有效地使用有限的内存资源的方法、服务器、终端装置及计算机可读介质。
背景技术
正则表达式(regularexpression)是用于描述符合特定规则的字符串的集合的形式语言,简称正则式,多用于在计算机这类运算装置中比较或查找字符串时描述要查找的字符串。根据涉及正则表达式的计算机科学中的领域——形式语言理论,正则表达式以表示无任何内容的字符串的?,及只由一个字符构成的正则表达式(例如a,b,c等)为基本,利用连接(abc,bbbb,baba等)、选择(ab|c,ab|ba等)、重复(c*等)等运算符,组合基本的正则表达式,从而可以描述多种模式的字符串。此外,因为有可能发生正则表达式过长或者过于复杂的情况,所以也出现了为使用方便,添加了多种扩展文法的形式的正则表达式,而按照在计算机编程语言Perl中使用的方式所实现的PCRE(PerlCompatibleRegularExpressions:perl语言兼容正则表达式)或者UNIX系列计算机操作系统的标准中定义的POSIX正则表达式等属于此范畴。
利用正则表达式查找字符串时也随着具体执行查找的方式不同,查找时间和内存使用量会有很大差距,因此对于利用正则表达式有效地查找字符串的方法的研究一直在进行中。
首先,作为利用正则表达式执行查找字符串的现有技术的一个例子,介绍过将正则表达式转换为非确定性有限自动机(NondeterministicFiniteAutomata:NFA)后查找字符串的方法。
图1示例性地示出了根据现有技术转换的一般的NFA。在图1中,包含数字的圆表示NFA的状态,箭头及与其并记的字符表示输入相应字符时沿着箭头从一个状态移动到另一状态的迁移,包含数字的圆中由两个同心圆组成的表示终止状态;作为从开始状态出发而迁移的结果,到达终止状态就意味着要查找的字符串已被查找到。参照图1,要查找的字符串可以是三个字符连续地全都为a及b之一,或可以是连续的三个字符为bad的字符串,这用正则表达式表示就可以是“[ab]{3}|bad”,这用NFA表示则可以如图1所示。
查看利用如图1所示的NFA,从输入字符串“gjekf3jmbab0d1f”中查找想要的字符串的过程。
首先,从开始状态的状态0开始,逐一读入输入字符串中的字符,检查某一个状态是否移动到另一个状态。第一个字符为“g”,但是没有对应输入“g”而引导状态0移动到另一个状态的迁移,因而继续停留在状态0。第二个字符“j”也没有相应的迁移,因而继续停留在状态0而读取下一个字符。因此,在这种情况下,需要检查状态是否迁移的状态,即激活状态为状态0,共1个。
按照这种方式继续停留在状态0的情况下,输入至“gjekf3jm”时随后输入的字符为“b”,图1的NFA中输入“b”的情况下存在引导状态0移动到状态1及状态2的迁移,所以状态0会分别移动到状态1及状态2。因此,输入“b”之后需要检查状态是否迁移的状态,即激活状态为状态0、状态1及状态2,共3个。
随后输入的字符为“a”,图1的NFA中,在输入“a”的情况下存在引导激活状态即状态0移动到状态1的迁移、引导激活状态即状态1移动到状态3的迁移、及引导激活状态即状态2移动到状态4的迁移,所以状态0、状态1及状态2会分别移动到状态1、状态3及状态4。因此,输入“ba”之后需要检查状态是否迁移的状态,即激活状态为状态0、状态1、状态3及状态4,共4个。
随后输入的字符为“b”,图1的NFA中,在输入“b”的情况下存在引导激活状态即状态0移动到状态1及状态2的迁移、引导激活状态即状态1移动到状态3的迁移及引导激活状态即状态3移动到状态5的迁移,所以状态0会移动到状态1及状态2,状态1会移动到状态3,状态3会移动到状态5。因此,输入“bab”之后需要检查状态是否迁移的状态,即激活状态为状态0、状态1、状态2、状态3及状态5,共5个。另一方面,由此到达了图1的NFA的终止状态即状态5,因此可视为从提供的输入字符串中查找到了想要的字符串,即,字符串“bab”。
如上所述,如图1所示的根据现有技术的NFA中对应字符的输入而存在引导一个状态移动到两个以上状态的迁移。因此,利用根据现有技术的NFA查找字符串时,随着查找对象的字符串中的字符逐一输入,需要检查的状态,即,激活状态的数目会增多,而由于NFA的属性,每次输入字符时要检查所有的激活状态,因此会发生随着激活状态的数目增加,查找速度相应地降低的问题。
另一方面,作为利用正则表达式执行查找字符串的现有技术的另一例子,也介绍过将非确定性有限自动机(NondeterministicFiniteAutomata:NFA)转换为确定有限自动机(DeterministicFiniteAutomata:DFA)后查找字符串的方法。
利用DFA查找字符串时,激活状态数一直维持为一个,因此有能够提高查找速度,使输入字符串处理过程单纯化的优点,然而存在将NFA转换为DFA的过程中需要相当大的内存资源的问题。并且,要查找的字符串(即,正则表达式)为多个或其模式复杂时,处理所需的内存使用量急剧增加,因此很难利用DFA处理多个正则表达式或较长模式的正则表达式。尤其是,随着最近对计算机安全性的要求提高,一般会合并要查找的多种字符串模式进行查找,而在这种情况下正则表达式可能变得非常复杂,因此在普通的计算机内存资源内利用DFA执行查找字符串甚至会是不可能的。
为了解决按照利用一般的DFA查找字符串的方法时可能发生的问题,也出现了压缩DFA从而减少内存使用量的方法。即,将DFA拥有的迁移类似的多个状态合并为一个状态,或将多个状态中共同使用的多个迁移合并为一个迁移。然而,按照这种方法,互相并不完全相同的状态或者迁移也可能被合并,因此可能发生无法正常处理输入字符串的情况甚至发生迁移失败的问题。像这样发生迁移失败时需要额外的内存引用,因此即便内存使用量比压缩前少,内存引用次数却比压缩前多,其结果无法避免查找速度的降低。
因此,需要一种使用非确定性有限自动机的情况下使激活状态数目最小化,减少内存使用,使快速查找字符串成为可能的技术。
发明内容
技术问题
本发明的目的在于解决上述的所有问题。
此外,另一目的在于,将非确定性有限自动机(NondeterministicFiniteAutomata:NFA)内的状态中到达概率高的状态作为对象,变更NFA的状态和迁移使其状态不会移动到互不相同的两个以上的状态,从而减少NFA的激活状态数目并选择性地消除NFA的不确定性。
此外,另一目的在于,当最大概率状态到达终止状态或者NFA的总状态数目超过预设值等满足规定条件时,终止不确定性消除过程,从而只在给定的内存资源内有效地消除NFA的不确定性。
解决问题的手段
为了达到所述目的,本发明的代表性构成如下。
根据本发明的一实施方式,提供一种用于选择性地消除非确定性有限自动机(NondeterministicFiniteAutomata:NFA)的不确定性的方法,其包括以下步骤:(a)将非确定性有限自动机内的状态中的从特定状态移动而到达的概率的计算结果最高的状态决定为最大概率状态;(b)判断在所述非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使所述最大概率状态移动到状态i的迁移组成,所述第2迁移集合由使所述最大概率状态移动到状态j的迁移组成;及(c)若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k为通过只由所述至少一个共同迁移组成的共同迁移集合而从所述最大概率状态移动而到达的状态,且所述状态k被新追加到所述非确定性有限自动机内。
根据本发明的另一实施方式,提供一种用于选择性地消除非确定性有限自动机的不确定性的方法,其包括以下步骤:(a)判断在非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使开始状态移动到状态i的迁移组成,所述第2迁移集合由使所述开始状态移动到状态j的迁移组成;(b)若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k为通过只由所述至少一个共同迁移组成的共同迁移集合而从所述开始状态移动而到达的状态,且所述状态k被新追加到所述非确定性有限自动机内;及(c)对能够从所述开始状态移动而到达的至少一个状态分别输入作为查找对象的字符串时,分别计算从所述开始状态移动而到达所述至少一个状态的概率,并将计算出的概率最高的所述状态决定为最大概率状态。
根据本发明的另一实施方式,提供一种用于选择性地消除非确定性有限自动机的不确定性的服务器,其包括:最大概率状态决定部,所述最大概率状态决定部将非确定性有限自动机内的状态中从特定状态移动而到达的概率的计算结果最高的状态决定为最大概率状态;及激活状态消除部,所述激活状态消除部判断在所述非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由将所述最大概率状态移动到状态i的迁移组成,所述第2迁移集合由将所述最大概率状态移动到状态j的迁移组成,若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k为通过只由所述至少一个共同迁移组成的共同迁移集合而从所述最大概率状态移动而到达的状态,且所述状态k被新追加到所述非确定性有限自动机内。
根据本发明的另一实施方式,提供一种用于选择性地消除非确定性有限自动机的不确定性的服务器,其包括:激活状态消除部,所述激活状态消除部判断在非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使开始状态移动到状态i的迁移组成,所述第2迁移集合由使所述开始状态移动到状态j的迁移组成,若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k为根据只由所述至少一个共同迁移组成的共同迁移集合而从所述开始状态移动的结果所到达的状态,所述状态k被新追加到所述非确定性有限自动机内;及最大概率状态决定部,对能够从所述开始状态移动而到达的至少一个状态分别输入作为查找对象的字符串时,所述最大概率状态决定部分别计算从所述开始状态移动而到达所述至少一个状态的概率,并将所述计算出的概率最高的状态决定为最大概率状态。
根据本发明的另一实施方式,提供一种用于选择性地消除非确定性有限自动机的不确定性的终端装置,其包括:最大概率状态决定部,所述最大概率状态决定部将非确定性有限自动机内状态中的从特定状态移动而到达的概率的计算结果最高的状态决定为最大概率状态;及激活状态消除部,所述激活状态消除部判断在所述非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使所述最大概率状态移动到状态i的迁移组成,所述第2迁移集合由使所述最大概率状态移动到状态j的迁移组成,若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k为通过只由所述至少一个共同迁移组成的共同迁移集合而从所述最大概率状态移动而到达的状态,且所述状态k被新追加到所述非确定性有限自动机内。
根据本发明的另一实施方式,提供一种用于选择性地消除非确定性有限自动机的不确定性的终端装置,其包括:激活状态消除部,所述激活状态消除部判断在非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使开始状态移动到状态i的迁移组成,第2迁移集合由使所述开始状态移动到状态j的迁移组成,若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k为根据只由所述至少一个共同迁移组成的共同迁移集合而从所述开始状态移动的结果所到达的状态,且所述状态k被新追加到所述非确定性有限自动机内;及最大概率状态决定部,对能够从所述开始状态移动而到达的至少一个状态分别输入作为查找对象的字符串时,所述最大概率状态决定部分别计算从所述开始状态移动而到达所述至少一个状态的概率,并将所述计算出的概率最高的状态决定为最大概率状态。
此外,进一步提供实现本发明的其它方法、服务器、终端装置及用于记录用来执行所述方法的计算机程序的计算机可读介质。
技术效果
根据本发明,可以减少非确定性有限自动机的激活状态数目并选择性地消除NFA的不确定性,从而可达到利用NFA查找字符串时能够减少内存使用量并提高查找速度的效果。
此外,根据本发明,NFA的不确定性消除过程在最大概率状态到达终止状态之前,跟踪最大概率状态并消除对于相应状态的不确定性,因此可分轻重地消除NFA不确定性,从而使不确定性消除效率最高。
附图说明
图1示例性地示出了根据现有技术转换的一般的NFA。
图2示例性地示出了根据本发明一个实施例的字符串查找服务器的内部组成。
图3至图5示例性地示出了根据本发明的一个实施例消除NFA不确定性的过程。
图6示出了利用图1的一般的NFA查找字符串的情况,与利用图5的根据本发明选择性地消除了不确定性的NFA来查找字符串的情况的比较结果。
附图标记
100:字符串查找服务器
110:NFA获取部
120:不确定性消除部
121:最大概率状态决定部
122:激活状态消除部
130:查找执行部
140:通信部
150:控制部
具体实施方式
下述的对于本发明的详细描述,参照了示例性地示出本发明可实施的特定实施例的附图。这些实施例的描述详细到足够使本领域的技术人员实施本发明。本发明的多种实施例虽互不相同,但并非互相排斥。例如,在此所记载的与一个实施例相关的特定形状、结构及特性在不脱离本发明的思想及范围的情况下能以其它实施例实现。此外,应理解各公开的实施例内的个别组成要素的位置或配置在不脱离本发明的思想及范围的情况下可进行变更。因此,下述的详细描述不是取限定的意思,而本发明的范围,如果恰当地说明,应当跟等同于权利要求项所要求的所有范围一起,只由所附的权利要求书而确定。附图中类似的标号在多个方面中表示相同或类似的功能。
下面,为了使本发明所属的技术领域内具备一般知识的人员容易实施本发明,参照附图对本发明优选的实施例进行详细描述。
字符串查找服务器的组成
下面,查看为实现本发明而执行重要功能的字符串查找服务器的内部组成及各组成要素的功能。
根据本发明的一个实施例,个人电脑(例如,台式电脑、笔记本电脑等),服务器、工作站、PDA、WebPAD、移动电话、智能手机等,只要是具备内存装置并搭载微处理器因而具有运算能力的装置完全都能采用为本发明的字符串查找服务器100。
图2示例性地示出了根据本发明一个实施例的字符串查找服务器的内部组成。
参照图2,根据本发明一个实施例的字符串查找服务器100可包括:NFA获取部110、不确定性消除部120、查找执行部130、通信部140及控制部150;其中,不确定性消除部120可包括最大概率状态决定部121及激活状态消除部122。根据本发明的一个实施例,NFA获取部110、不确定性消除部120、查找执行部130、通信部140及控制部150中至少一部分可以是与外部系统(未图示)进行通信的程序模块。这种程序模块能够以操作系统、应用程序模块及其它程序模块的形式包含在字符串查找服务器100中,能够以物理形式存储在各种公知的存储装置中。此外,这种程序模块也可以存储在能与字符串查找服务器100进行通信的远程存储装置中。另一方面,这种程序模块包括根据本发明执行下述的特定工作或者实行特定抽象数据类型的例程、子例程、程序、物件、组件、数据结构等,但并不局限于此。
首先,根据本发明的一个实施例,NFA获取部110执行如下功能:获取与作为查找对象的正则表达式相对应的NFA。在此,可以设想作为查找对象的正则表达式转换成NFA之后才由NFA获取部110获取的情况(在这种情况下转换过程会由规定的正则表达式转换部(未图示)执行),也可以设想作为查找对象的正则表达式本身由NFA获取部110获取后再由NFA获取部110转换成NFA的情况。一般来说,NFA由状态集合S、迁移集合Σ、迁移函数δ、开始状态s0,终止状态集合F组成。其中,开始状态和终止状态都属于状态集合S。并且,如在本发明中,如果是利用正则表达式查找字符串的情况,则输入文字可相当于任意的ASCII码值,因此迁移集合Σ可以为{0,1,2,…,255}。
为了将正则表达式转换为NFA,需要规定的正则表达式转换技术,而这样的正则表达式转换技术,可参照由A.Bruggemann-Klein所著并收录在1993年的著作“TheoreticalComputerScience”中的论文“Regularexpressionsintofiniteautomata”(应认为所述论文内容全部包含在本说明书中)。所述论文记载了将正则表达式转换为较单纯形式的自动机——Glushkov自动机的方法。当然,可适用于本发明的正则表达式转换技术并不局限于所述论文中所记载的方法,而是可适用多种变形例来实现本发明。例如,根据本发明一个实施例的正则表达式转换部可将正则表达式转换为Thompson自动机、Follow自动机、Antimirov自动机等不同形式。以下,为了维持对发明的详细描述的一贯性,以Glushkov自动机为基准描述本发明。
其次,根据本发明的一个实施例,不确定性消除部120执行如下功能:在利用由正则表达式转换的NFA查找字符串的过程中,使激活状态的增加最小化,从而消除NFA的不确定性。
更具体地,根据本发明一实施例的不确定性消除部120的最大概率状态决定部121可决定NFA内的状态中随着输入字符串的输入而到达的概率高的最大概率状态(其中,最大概率状态并不意味着在所有状态中具有最高概率的状态,而是意味着可从任意状态到达的状态中具有最高概率的状态,因此相当于最大概率状态的状态可存在多个,并且各自的最大概率值当然也可以不同),并且,根据本发明一个实施例的不确定性消除部120的激活状态消除部122变更NFA的状态和迁移以避免最大概率状态移动到互不相同的两个以上的状态从而可抑制激活状态增加。更具体地说,激活状态消除部122在使得从最大概率状态移动到其它状态的迁移集合间存在共同迁移(即,增加激活状态的迁移)时,生成通过只由共同迁移组成的迁移集合而从最大概率状态移动而到达的新的状态,从而可防止随着输入字符串中字符的输入而从最大概率移动到互不相同的两个以上状态(即,激活状态增加)的现象。
另一方面,根据本发明的一个实施例,查找执行部130执行如下功能:使用由不确定性消除部120合并的NFA来对字符串执行查找。
然后,根据本发明的一个实施例,通信部140可执行使本发明的字符串查找服务器100能够与外部装置进行通信的功能。
最后,根据本发明一实施例的控制部150执行控制NFA获取部110、不确定性消除部120及查找执行部130之间的数据流的功能。即,控制部150控制来自外部的或者字符串查找服务器100各组成要素之间的数据流,从而控制NFA获取部110、不确定性消除部120、查找执行部130及通信部140使其分别执行各自固有功能。
下面,更为仔细地查看根据本发明消除NFA不确定性的方法。
<第一步骤>
在消除NFA的不确定性的方法中决定NFA性能的最重要的过程可以说是决定对激活状态的增加产生最大影响的迁移的过程,该过程可从查找字符串时必须经过的开始状态出发跟踪到达概率最高的状态而执行。
首先,根据本发明一个实施例的不确定性消除部120可以计算出到达概率,所述到达概率表示对包含在NFA内的各个状态输入字符串时,从特定状态移动而到达相应状态的可能性,并以所计算出的到达概率为基准将到达概率最大的状态决定为最大概率状态。只是,求出从特定状态到达的概率最大的状态时,可以只将与所述特定状态通过直接连接关系(根据由迁移的方向性的连接关系)而到达的状态作为对象执行计算,但并不局限于此。在此,从第1状态移动而到达第2状态的到达概率,可通过将输入字符串所包含的字符中引导第1状态迁移到第2状态的字符个数(例如,判断所述输入字符串包含多少个引导第1状态迁移到第2状态的字符而获得的个数)除以输入字符串所包含的字符(例如,包含在输入字符串中的所有字符)总个数的值而计算出。
例如,根据本发明一个实施例的不确定性消除部120,可将与NFA的状态中输入字符串无关地必须到达的开始状态s0的到达概率设定为1,将其余状态的到达概率设定为0,进行初始化使得开始状态s0成为最大概率状态。
<第二步骤>
然后,根据本发明一个实施例的不确定性消除部120可执行如下功能:判断引导最大概率状态移动到其它状态的迁移中是否存在增加激活状态的迁移,如果存在增加激活状态的迁移,则变更NFA内的状态及迁移,从而消除激活状态的增加要因。
更具体地说,根据本发明一个实施例的不确定性消除部120可以判断:由引导最大概率状态移动到状态i的迁移组成的第1迁移集合和由引导最大概率状态移动到状态j的迁移组成的第2迁移集合间是否存在至少一个共同迁移。并且,根据本发明一个实施例的不确定性消除部120,若判断为第1迁移集合和第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k为通过只由所述至少一个共同迁移组成的共同迁移集合而从所述最大概率状态移动而到达的状态,且这样生成的状态k可以被新追加到所述非确定性有限自动机内。并且,根据本发明一个实施例的不确定性消除部120,可以在分别从第1迁移集合及第2迁移集合消除所述至少一个共同迁移从而不存在到达状态i或者状态j的迁移的情况下,从NFA中删除相应的状态i或者状态j。
<第三步骤>
然后,本发明一实施例的不确定性消除部120可以计算出到达概率,所述到达概率表示对包含在NFA内的各个状态输入字符串时,从最大概率状态移动而到达相应状态的可能性,并将最大概率状态更新为所述计算出的到达概率最高的状态。
在此,从第1状态移动而到达第2状态的到达概率,可以通过将输入字符串所包含的字符中使第1状态迁移到第2状态的字符个数除以输入字符串所包含的字符总个数的值而计算出。
此外,根据本发明的一实施例,在第三步骤计算出的到达概率也可以与在第一步骤中计算出的到达概率进行合计,也可以将最大概率状态更新为这样合计后的到达概率最高的状态。
<第四步骤>
然后,本发明一实施例的不确定性消除部120,以更新的最大概率状态为基准,反复执行如前所述的第2步骤至第3步骤的过程。只是,在有限的内存资源内,无限反复执行不确定性消除过程并非优选,因此在以下情况下可终止不确定性消除过程从而提高不确定性消除的效率。
(1)根据本发明消除NFA的激活状态时会生成新的状态,因此在不确定性消除过程中包含在NFA中的状态总数目会增加。包含在NFA中的状态总数目过多时NFA的查找性能会降低,因此本发明一实施例的不确定性消除部120可以在包含在NFA中的状态总数目超过预设值时,将NFA恢复到之前执行的不确定性消除操作执行前的状态并且终止不确定性消除过程。
(2)根据本发明一实施例,最大概率状态到达相应NFA的终止状态时也可以终止不确定性消除过程。
(3)根据本发明一实施例,包含在NFA中的所有状态的到达概率都大于0时也可以终止不确定性消除过程。
下面,举具体例子来描述根据本发明的一个实施例消除NFA不确定性的过程。图3至图5示例性地示出了根据本发明的一个实施例消除NFA不确定性的过程。
在以下实施例中,假设作为查找对象的字符串是“gjekf3jmbab0d1f”,描述输入字符串中所要查找的字符串的正则表达式为“[ab]{3}|bad”。
首先,参照图3,包含在NFA中的各状态的到达概率可被初始化,具体来说,可以初始化成开始状态即状态0(310)的到达概率为1,其余的状态1至状态5(320至360)的到达概率为0,并由此可以决定开始状态的状态0(310)为最大概率状态。
继续参照图3,在最大概率状态的状态0(310)下输入字符b时,根据迁移函数而移动到状态1(320)及状态2(330),因此在这种情况下激活状态由1个(即,从状态0(310)增加为2个(即状态1(320)及状态2(330)))。因此,根据本发明的一个实施例,生成新的状态即状态6(图4中的470),使得在状态0(310)下输入字符b时,不会移动到状态1(320)或者状态2(330)而是移动到状态6(图4中的470),从而即便在状态0(310)下输入字符b也可以不增加激活状态而维持为1个(即,图4中的状态6(470))。也就是说,根据只由将状态0(310)迁移到状态1(320)的第1迁移集合{a,b}和将状态0(310)迁移到状态2(330)的第2迁移集合{b}之间的共同的迁移组成的共同迁移集合{b},可以生成从最大概率状态即状态0(310)移动而到达的新的状态。图4中示出了这样生成的新的状态即状态6(470)。
另一方面,由于状态6(470)的产生而没有了到达自身的迁移的状态2(430)可从NFA中删除。
然后,参照图4,可将当前最大概率状态(即,状态0(410))更新为到达概率最高的状态,该到达概率表示从状态0(410)移动而到达的可能性。更具体地说,包含在输入字符串中的字符总个数为15个,其中可使状态0(410)移动到状态1(420)的字符“a”的个数为1个,因此可以计算出从状态0(410)移动而到达状态1(420)的概率为1/15。另一方面,包含在输入字符串中的字符总个数为15个,其中可使状态0(410)移动到状态6(470)的字符“b”的个数为2个,因此可以计算出从状态0(410)移动而到达状态6(470)的概率为2/15。如上所述,当以状态0(410)为出发点时到状态6(470)的到达概率大于到状态1(420)的到达概率,到其余状态的到达概率也不可能大于到状态6(470)的到达概率,因此可将最大概率状态从状态0(410)更新为状态6(470)。
继续,参照图4,在最大概率状态的状态6(470)下输入字符a时,根据迁移函数而移动到状态3(440)及状态4(450),因此在这种情况下激活状态增加1个(即,从状态6(470)变为2个(即状态3(440)及状态4(450)))。因此,根据本发明的一个实施例,生成新的状态即状态7(图5中的580),使得在状态6(470)下输入字符a时,不会移动到状态3(440)或状者态4(450)而是移动到状态7(图5中的580),从而即便在状态6(470)下输入字符a也可以不增加激活状态而维持为1个(即,图5中的状态7(580))。也就是说,可以生成根据只由将状态6(470)迁移到状态3(440)的第1迁移集合{a,b}和将状态6(470)迁移到状态4(450)的第2迁移集合{a}之间共同的迁移组成的共同迁移集合{a}而从最大概率状态即状态6(470)移动而到达的新的状态。图5中示出了这样生成的新的状态即状态7(580)。
另一方面,由于状态7(580)的生成而没有了到达自身的迁移的状态4(450)可从NFA中删除。
然后,参照图5,现在可将最大概率状态(即,状态6(570))更新为表示从状态6(570)移动而到达的可能性的到达概率最高的状态。更具体地说,包含在输入字符串中的字符总个数为15个,其中可使状态6(570)移动到状态3(540)的字符“b”的个数为2个,因此可以计算出从状态6(570)移动而到达状态3(540)的概率为2/15。另一方面,包含在输入字符串中的字符总个数为15个,其中可使状态6(570)移动到状态7(580)的字符“a”的个数为1个,因此可以计算出从状态6(570)移动而到达状态7(580)的概率为1/15。如上所述,当以状态6(570)为出发点时到状态3(540)的到达概率大于到状态7(580)的到达概率,到其余状态的到达概率也不可能大于到状态3(540)的到达概率,因此可将最大概率状态从状态6(570)更新为状态3(540)。
继续参照图5,在最大概率状态的状态3(540)下输入字符“a”或字符“b”时,都会根据迁移函数而移动到状态5(560),因此在这种情况下激活状态仍维持为1个(即,从状态3(540)为一个即状态5(560))。因此,根据本发明一实施例,最大概率状态为状态3(540)的情况下不需要消除激活状态。
接着参照图5,可将当前最大概率状态(即,状态3(540))更新为到达概率最高的状态,该到达概率表示从状态3(540)移动而到达的可能性。更具体地说,包含在输入字符串中的字符总个数为15个,其中可使状态3(540)移动到状态5(560)的字符“a”和字符“b”的个数之和为3个,因此可以计算出从状态3(540)移动而到达状态5(560)的概率为3/15=1/5。另一方面,可以计算出从状态3(540)移动而到达其余状态的概率为0。如上所述,当以状态3(540)为出发点时到状态5(560)的到达概率大于到其余状态的到达概率,因此可将最大概率状态从状态3(540)更新为状态5(560)。
最后,由于现在最大概率状态(即,状态5(560))到达了终止状态,因此根据本发明的一实施例可以终止NFA的不确定性消除过程,并且如图5所示的NFA可作为不确定性消除的最终结果。
下面,查看利用根据本发明一个实施例选择性地消除了不确定性的图5的NFA来查找字符串的过程。在以下实施例中,假设作为查找对象的输入字符串为“gjekf3jmbab0d1f”。
图5的NFA从开始状态即状态0(510)开始依次逐一读入输入字符串中的字符,同时检查某一个状态是否移动到另一个状态。
第一个字符为“g”,但是没有对应输入“g”而使状态0迁移到另一个状态的迁移,因而继续停留在状态0。第二个字符“j”也没有相应的迁移,因而继续停留在状态0。因此,在这种情况下,只有状态0(510)是需要检查状态是否迁移的状态,即激活状态。
按照这种方式停留在状态0的情况下,输入至“gjekf3jm”后随后输入的字符为“b”,图5的NFA中输入“b”的情况下存在使状态0(510)移动到状态6(570)的迁移,所以状态0(510)会移动到状态6(570)。因此,输入“b”之后需要检查状态是否迁移的状态,即激活状态为状态0(510)及状态6(570),共2个。
随后输入的字符为“a”,图5的NFA中输入“a”的情况下存在使激活状态即状态0(510)移动到状态1(520)的迁移及使激活状态即状态6(570)移动到状态7(580)的迁移,所以状态0(510)及状态6(570)会分别移动到状态1(520)及状态7(580)。因此,输入“ba”之后需要检查状态是否迁移的状态,即激活状态为状态0(510)、状态1(520)及状态7(580),共3个。
随后输入的字符为“b”,图5的NFA中输入“b”的情况下存在使激活状态即状态0(510)移动到状态6(570)的迁移、使激活状态即状态1(530)移动到状态3(540)的迁移及使激活状态即状态7(580)移动到状态5(560)的迁移,所以状态0(510)及状态1(520)及状态7(580)会分别移动到状态6(570)及状态3(540)及状态5(560)。因此输入“bab”之后需要检查状态是否迁移的状态,即激活状态为状态0(510)、状态3(540)、状态5(560)及状态6(570),共4个。
另一方面,因为由此到达作为图1的NFA的终止状态的状态5(560),所以可视为从提供的输入字符串中已查找到想要的字符串,即,字符串“bab”。
图6示出了利用图1的NFA查找字符串的情况与利用图5的根据本发明选择性地消除了不确定性的NFA来查找字符串的情况的比较结果。参照图6,利用图5的NFA的情况跟利用图1的NFA的情况相比,可以确认在每个步骤减少至少一个激活状态。如能在图6中所确认,按照根据本发明的NFA不确定性的消除方法,可以达到查找字符串时减少内存使用量并提高查找速度的效果。
以上,以在服务器上执行获取及合并NFA并查找字符串的过程的实施例为中心进行了描述。但是本发明的组成并不局限于所述实施例,所述一系列过程在使用者的终端装置(未图示)上也完全可以执行。例如,通过安装在终端装置上的规定应用程序来执行获取及/或合并NFA并查找字符串的过程。
如上描述的根据本发明的实施例能够以可通过多种计算机组成要素而执行的程序指令的形式实现,并记录在计算机可读介质上。所述计算机可读介质可包括单独或组合的程序指令、数据文件、数据结构等。记录在所述计算机可读介质上的程序指令可以是为本发明特别设计并构成的,也可以是计算机软件领域技术人员公知而能够使用的。计算机可读介质的例子包括,像硬盘、软盘及磁带这样的磁性介质,像CD-ROM、DVD这样的光记录介质,像光磁软盘(flopticaldisk)这样的磁光介质(magneto-opticalmedia),以及像ROM、RAM、闪存等用于存储并执行程序指令而特别构成的硬件装置。程序指令的例子不仅包括由编译器生成的机器语言代码,也包括使用解释器等而能够由计算机执行的高级语言代码。所述硬件装置为了执行根据本发明的处理而构成为通过一个以上的软件模块操作,反之亦然。
以上通过具体组成要素等的特定事项和有限的实施例及附图来对本发明进行了说明,但这只是出于帮助全面理解本发明的目的而提供,本发明并不局限于所述实施例,本发明所属领域内具备一般知识的技术人员可在所记载的基础上进行多种修改和变形。
因此,本发明的思想不应局限于如上描述的实施例,而应当理解为,不只是下述的权利要求范围,进行与此权利要求范围等同或等价变形的全部也都落在本发明的思想范围之内。
Claims (22)
1.一种通过服务器或者终端装置实现选择性地消除非确定性有限自动机的不确定性的方法,其中,所述服务器或所述终端装置包括最大概率状态决定部及激活状态消除部,
所述方法包括以下步骤:
(a)所述最大概率状态决定部将非确定性有限自动机内的状态中的、所算出的从特定状态移动而到达的概率为最高的状态决定为最大概率状态;
(b)所述激活状态消除部判断在所述非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使所述最大概率状态移动到状态i的迁移组成,所述第2迁移集合由使所述最大概率状态移动到状态j的迁移组成;
(c)所述激活状态消除部若判断为在所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k是通过只由所述至少一个共同迁移组成的共同迁移集合而从所述最大概率状态移动后到达的状态,且所述状态k被新追加到所述非确定性有限自动机内。
2.根据权利要求1所述的方法,进一步包括以下步骤:
(d)当对能够从所述最大概率状态移动而到达的至少一个状态分别输入作为查找对象的字符串时,所述最大概率状态决定部分别计算从所述最大概率状态移动而到达所述至少一个状态的概率,并将所述最大概率状态更新为所述计算出的概率最高的状态;
(e)所述激活状态消除部判断在第3迁移集合和第4迁移集合间是否存在至少一个共同迁移,所述第3迁移集合由使所述更新的最大概率状态移动到状态l的迁移组成,所述第4迁移集合由使所述更新的最大概率状态移动到状态m的迁移组成;
(f)所述激活状态消除部若判断为所述第3迁移集合和所述第4迁移集合间存在至少一个所述共同迁移,则从所述第3迁移集合及所述第4迁移集合中分别排除所述共同迁移,并生成状态n,所述状态n是通过仅由所述至少一个共同迁移组成的共同迁移集合而从所述更新的最大概率状态移动后到达的状态,且所述状态n被新追加到所述非确定性有限自动机内。
3.根据权利要求1所述的方法,其特征在于,
在所述(a)步骤中,从所述特定状态移动而到达所述最大概率状态的概率是,将作为查找对象的字符串所包含的字符中的、使所述特定状态迁移到所述最大概率状态的字符个数,除以作为查找对象的字符串所包含的字符总个数而获得的值。
4.根据权利要求2所述的方法,其特征在于,
在所述(d)步骤中,从所述最大概率状态移动而到达所述至少一个状态的概率是,将作为查找对象的字符串所包含的字符中的、使所述最大概率状态迁移到所述至少一个状态的字符个数,除以作为查找对象的所述字符串所包含的字符总个数而获得的值。
5.根据权利要求1所述的方法,其特征在于,
在所述(c)步骤中,所述激活状态消除部删除所述非确定性有限自动机内的状态中的、不存在从其它状态移动而到达自身的迁移的状态。
6.根据权利要求1所述的方法,进一步包括以下步骤:
(d)当对能够从所述最大概率状态移动而到达的至少一个状态分别输入作为查找对象的字符串时,所述最大概率状态决定部分别计算从所述最大概率状态移动而到达所述至少一个状态的概率,并将所述最大概率状态更新为所述计算出的概率最高的状态;及
(g)当所述更新的最大概率状态为所述非确定性有限自动机的终止状态时,所述激活状态消除部终止不确定性消除过程。
7.根据权利要求2所述的方法,进一步包括以下步骤:
(h)当所述(f)步骤中的所述状态n的生成导致包含在所述非确定性有限自动机内的状态数目超过预设值时,所述激活状态消除部恢复到执行所述(f)步骤之前。
8.一种通过服务器或者终端装置实现选择性地消除非确定性有限自动机的不确定性的方法,所述服务器或所述终端装置包括最大概率状态决定部及激活状态消除部,所述方法包括以下步骤:
(a)所述激活状态消除部判断在所述非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使开始状态移动到状态i的迁移组成,所述第2迁移集合由使所述开始状态移动到状态j的迁移组成;
(b)所述激活状态消除部若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k是通过仅由所述至少一个共同迁移组成的共同迁移集合而从所述开始状态移动后到达的状态,且所述状态k被新追加到所述非确定性有限自动机内;
(c)当对能够从所述开始状态移动而到达的至少一个状态分别输入作为查找对象的字符串时,所述最大概率状态决定部分别计算从所述开始状态移动而到达所述至少一个状态的概率,并将所述计算出的概率为最高的状态决定为最大概率状态。
9.根据权利要求8所述的方法,进一步包括以下步骤:
(d)所述激活状态消除部判断第3迁移集合和第4迁移集合间是否存在至少一个共同迁移,所述第3迁移集合由使所述最大概率状态移动到状态l的迁移组成,所述第4迁移集合由使所述最大概率状态移动到状态m的迁移组成;
(e)所述激活状态消除部若判断为所述第3迁移集合和所述第4迁移集合间存在至少一个所述共同迁移,则从所述第3迁移集合及所述第4迁移集合中分别排除所述共同迁移,并生成状态n,所述状态n是通过仅由所述至少一个共同迁移组成的共同迁移集合而从所述最大概率状态移动后到达的状态,且所述状态n被新追加到所述非确定性有限自动机内。
10.根据权利要求8所述的方法,其特征在于,
在所述(c)步骤中,从所述开始状态移动而到达所述至少一个状态的概率是,将作为查找对象的字符串所包含的字符中的、使所述开始状态迁移到所述至少一个状态的字符个数,除以作为查找对象的所述字符串所包含的字符总个数而获得的值。
11.一种用于选择性地消除非确定性有限自动机的不确定性的服务器,其包括:
最大概率状态决定部,将非确定性有限自动机内的状态中的、所算出的从特定状态移动而到达的概率为最高的状态决定为最大概率状态;以及
激活状态消除部,判断在所述非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使所述最大概率状态移动到状态i的迁移组成,所述第2迁移集合由使所述最大概率状态移动到状态j的迁移组成,若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k是根据仅由所述至少一个共同迁移组成的共同迁移集合而从所述最大概率状态移动后到达的状态,且所述状态k被新追加到所述非确定性有限自动机内。
12.根据权利要求11所述的服务器,其特征在于,
当对能够从所述最大概率状态移动而到达的至少一个状态分别输入作为查找对象的字符串时,所述最大概率状态决定部分别计算从所述最大概率状态移动而到达所述至少一个状态的概率,并将所述最大概率状态更新为所述计算出的概率为最高的状态;
所述激活状态消除部判断第3迁移集合和第4迁移集合间是否存在至少一个共同迁移,所述第3迁移集合由使所述更新的最大概率状态移动到状态l的迁移组成,所述第4迁移集合由使所述更新的最大概率状态移动到状态m的迁移组成,若判断为所述第3迁移集合和所述第4迁移集合间存在至少一个所述共同迁移,则从所述第3迁移集合及所述第4迁移集合中分别排除所述共同迁移,并生成状态n,所述状态n是通过仅由所述至少一个共同迁移组成的共同迁移集合而从所述更新的最大概率状态移动后到达的状态,且所述状态n被新追加到所述非确定性有限自动机内。
13.根据权利要求11所述的服务器,其特征在于,
从所述特定状态移动而到达所述最大概率状态的概率是,将作为查找对象的字符串所包含的字符中的、使所述特定状态迁移到所述最大概率状态的字符个数,除以作为查找对象的所述字符串所包含的字符总个数而获得的值。
14.根据权利要求12所述的服务器,其特征在于,
从所述最大概率状态移动而到达所述至少一个状态的概率是,将作为查找对象的字符串所包含的字符中的、使所述最大概率状态迁移到所述至少一个状态的字符个数,除以作为查找对象的所述字符串所包含的字符总个数而获得的值。
15.根据权利要求11所述的服务器,其特征在于,
所述激活状态消除部删除所述非确定性有限自动机内的状态中的、不存在从其它状态移动而到达自身的迁移的状态。
16.根据权利要求11所述的服务器,其特征在于,
当对能够从所述最大概率状态移动而到达的至少一个状态分别输入作为查找对象的字符串时,所述最大概率状态决定部分别计算从所述最大概率状态移动而到达所述至少一个状态的概率,并将所述最大概率状态更新为所述计算出的概率为最高的状态;
当所述更新的最大概率状态为所述非确定性有限自动机的终止状态时,所述激活状态消除部终止不确定性消除过程。
17.根据权利要求12所述的服务器,其特征在于,
当所述状态n的生成导致包含在所述非确定性有限自动机内的状态数目超过预设值时,所述激活状态消除部将所述非确定性有限自动机恢复到所述状态n生成之前。
18.一种用于选择性地消除非确定性有限自动机的不确定性的服务器,其包括:
激活状态消除部,判断在非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使开始状态移动到状态i的迁移组成,所述第2迁移集合由使所述开始状态移动到状态j的迁移组成,若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k是通过仅由所述至少一个共同迁移组成的共同迁移集合而从所述开始状态移动后到达的状态,且所述状态k被新追加到所述非确定性有限自动机内;以及
最大概率状态决定部,当对能够从所述开始状态移动而到达的至少一个状态分别输入作为查找对象的字符串时,所述最大概率状态决定部分别计算从所述开始状态移动而到达所述至少一个状态的概率,并将所述计算出的概率为最高的状态决定为最大概率状态。
19.根据权利要求18所述的服务器,其特征在于,
所述激活状态消除部判断第3迁移集合和第4迁移集合间是否存在至少一个共同迁移,所述第3迁移集合由使所述最大概率状态移动到状态l的迁移组成,所述第4迁移集合由使所述最大概率状态移动到状态m的迁移组成,若判断为所述第3迁移集合和所述第4迁移集合间存在至少一个所述共同迁移,则从所述第3迁移集合及所述第4迁移集合中分别排除所述共同迁移,并生成状态n,所述状态n是通过仅由所述至少一个共同迁移组成的共同迁移集合而从所述最大概率状态移动后到达的状态,且所述状态n被新追加到所述非确定性有限自动机内。
20.根据权利要求18所述的服务器,其特征在于,
从所述开始状态移动而到达所述至少一个状态的概率是,将作为查找对象的字符串所包含的字符中的、使所述开始状态迁移到所述至少一个状态的字符个数,除以作为所述查找对象的字符串所包含的字符总个数而获得的值。
21.一种用于选择性地消除非确定性有限自动机的不确定性的终端装置,其包括:
最大概率状态决定部,将非确定性有限自动机内的状态中的、所算出的从特定状态移动而到达的概率为最高的状态决定为最大概率状态;以及
激活状态消除部,判断在所述非确定性有限自动机内第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使所述最大概率状态移动到状态i的迁移组成,所述第2迁移集合由使所述最大概率状态移动到状态j的迁移组成,若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k是通过仅由所述至少一个共同迁移组成的共同迁移集合而从所述最大概率状态移动后到达的状态,且所述状态k被新追加到所述非确定性有限自动机内。
22.一种用于选择性地消除非确定性有限自动机的不确定性的终端装置,其包括:
激活状态消除部,判断在非确定性有限自动机内的第1迁移集合和第2迁移集合间是否存在至少一个共同迁移,所述第1迁移集合由使开始状态移动到状态i的迁移组成,所述第2迁移集合由使所述开始状态移动到状态j的迁移组成,若判断为所述第1迁移集合和所述第2迁移集合间存在至少一个所述共同迁移,则从所述第1迁移集合及所述第2迁移集合中分别排除所述共同迁移,并生成状态k,所述状态k是通过仅由所述至少一个共同迁移组成的共同迁移集合而从所述开始状态移动后到达的状态,且所述状态k被新追加到所述非确定性有限自动机内;以及
最大概率状态决定部,当对能够从所述开始状态移动而到达的至少一个状态分别输入作为查找对象的字符串时,所述最大概率状态决定部分别计算从所述开始状态移动而到达所述至少一个状态的概率,并将所述计算出的概率为最高的状态决定为最大概率状态。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20120038763A KR101222486B1 (ko) | 2012-04-13 | 2012-04-13 | 비결정적 유한 오토마타의 비결정성을 선택적으로 제거하기 위한 방법, 서버, 단말 장치 및 컴퓨터 판독 가능한 기록 매체 |
KR10-2012-0038763 | 2012-04-13 | ||
PCT/KR2012/011372 WO2013154252A1 (ko) | 2012-04-13 | 2012-12-24 | 비결정적 유한 오토마타의 비결정성을 선택적으로 제거하기 위한 방법, 서버, 단말 장치 및 컴퓨터 판독 가능한 기록 매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104246749A CN104246749A (zh) | 2014-12-24 |
CN104246749B true CN104246749B (zh) | 2016-01-13 |
Family
ID=47841885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280072270.2A Expired - Fee Related CN104246749B (zh) | 2012-04-13 | 2012-12-24 | 用于选择性消除非确定性有限自动机的不确定性的方法、服务器及终端装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9251290B2 (zh) |
EP (2) | EP2838032B1 (zh) |
KR (1) | KR101222486B1 (zh) |
CN (1) | CN104246749B (zh) |
WO (1) | WO2013154252A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015084360A1 (en) * | 2013-12-05 | 2015-06-11 | Hewlett-Packard Development Company, L.P. | Regular expression matching |
KR101645890B1 (ko) * | 2015-07-13 | 2016-08-05 | 연세대학교 산학협력단 | 비결정적 유한 오토마타의 상태 축소 방법 및 장치 |
KR101714270B1 (ko) * | 2015-12-10 | 2017-03-08 | 연세대학교 산학협력단 | Xml 스키마 변환 방법 및 장치 |
KR102146625B1 (ko) * | 2019-01-31 | 2020-08-20 | 연세대학교 산학협력단 | 오토마타 기반 증분적 중위 확률 계산 장치 및 방법 |
KR20230042986A (ko) | 2021-09-23 | 2023-03-30 | 연세대학교 산학협력단 | 글루시코프 오토마타 생성과 하이브리드 매칭을 활용한 정규 표현식 엔진에 관한 오토마타 처리 장치 및 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303589A (zh) * | 2008-06-20 | 2008-11-12 | 中南大学 | 基于有限状态自动机的多艾真体动态多目标协作跟踪方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW421764B (en) | 1996-05-21 | 2001-02-11 | Hitachi Ltd | Input character string estimation and identification apparatus |
KR100323384B1 (ko) | 1998-12-03 | 2002-03-08 | 오길록 | 유한오토마타기반의프로토콜명세에대한검정방법 |
US8234115B2 (en) | 2002-03-29 | 2012-07-31 | At&T Intellectual Property Ii, L.P. | Systems and methods for determining the N-best strings |
US20050114700A1 (en) * | 2003-08-13 | 2005-05-26 | Sensory Networks, Inc. | Integrated circuit apparatus and method for high throughput signature based network applications |
US20050273450A1 (en) * | 2004-05-21 | 2005-12-08 | Mcmillen Robert J | Regular expression acceleration engine and processing model |
US7260558B1 (en) * | 2004-10-25 | 2007-08-21 | Hi/Fn, Inc. | Simultaneously searching for a plurality of patterns definable by complex expressions, and efficiently generating data for such searching |
US7765183B2 (en) * | 2005-04-23 | 2010-07-27 | Cisco Technology, Inc | Hierarchical tree of deterministic finite automata |
US20080293395A1 (en) * | 2007-05-21 | 2008-11-27 | Motorola, Inc. | Using downloadable specifications to render a user interface on a mobile device |
JP2010186412A (ja) | 2009-02-13 | 2010-08-26 | Hitachi Ltd | 文書管理方法及び管理装置 |
-
2012
- 2012-04-13 KR KR20120038763A patent/KR101222486B1/ko active IP Right Grant
- 2012-12-24 US US14/391,503 patent/US9251290B2/en active Active
- 2012-12-24 WO PCT/KR2012/011372 patent/WO2013154252A1/ko active Application Filing
- 2012-12-24 CN CN201280072270.2A patent/CN104246749B/zh not_active Expired - Fee Related
- 2012-12-24 EP EP12873936.4A patent/EP2838032B1/en not_active Not-in-force
- 2012-12-24 EP EP16200936.9A patent/EP3171278A1/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101303589A (zh) * | 2008-06-20 | 2008-11-12 | 中南大学 | 基于有限状态自动机的多艾真体动态多目标协作跟踪方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3171278A1 (en) | 2017-05-24 |
EP2838032B1 (en) | 2019-03-06 |
CN104246749A (zh) | 2014-12-24 |
KR101222486B1 (ko) | 2013-01-16 |
US20150074104A1 (en) | 2015-03-12 |
EP2838032A1 (en) | 2015-02-18 |
WO2013154252A1 (ko) | 2013-10-17 |
US9251290B2 (en) | 2016-02-02 |
EP2838032A4 (en) | 2016-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11972203B1 (en) | Using anchors to generate extraction rules | |
US11423216B2 (en) | Providing extraction results for a particular field | |
US10783318B2 (en) | Facilitating modification of an extracted field | |
CN104246749B (zh) | 用于选择性消除非确定性有限自动机的不确定性的方法、服务器及终端装置 | |
CN103336790B (zh) | 基于Hadoop的邻域粗糙集快速属性约简方法 | |
Demir et al. | A tabu search approach for buffer allocation in production lines with unreliable machines | |
CN112765477B (zh) | 信息处理、信息推荐的方法和装置、电子设备和存储介质 | |
CN103336791B (zh) | 基于Hadoop的粗糙集快速属性约简方法 | |
EP3358474B1 (en) | Route search method, device and apparatus, and non-volatile computer storage medium | |
CN110941754B (zh) | 基于增强学习生成向量最近邻搜索策略 | |
KR101965277B1 (ko) | 하이퍼그래프 데이터 분석 시스템 및 방법과, 이를 위한 컴퓨터 프로그램 | |
US20050216468A1 (en) | Data retrieval system, data retrieval method and data retrieval program | |
CN112131218B (zh) | 一种基因对比的哈希查表方法、装置、设备及存储介质 | |
JP5978393B2 (ja) | 計算機、記録媒体及びデータ検索方法 | |
CN113467944B (zh) | 面向复杂软件系统的资源部署装置及方法 | |
US8489537B2 (en) | Segmenting sequential data with a finite state machine | |
CN116301656A (zh) | 基于日志结构合并树的数据存储方法、系统及设备 | |
Tseng et al. | A novel complex-events analytical system using episode pattern mining techniques | |
CN112639761A (zh) | 一种为数据建立索引的方法以及装置 | |
CN103699574A (zh) | 一种对复杂检索式进行检索优化的方法及系统 | |
CN115062567B (zh) | 图数据中邻接节点集合的缩合操作方法、装置及电子设备 | |
US11431353B1 (en) | Encoding method, electronic device, and program product | |
CN106598638A (zh) | 一种操作执行方法及终端 | |
Zheng et al. | Efficient processing of distance–time k th‐order skyline queries in bicriteria networks | |
CN114490520A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160113 Termination date: 20201224 |
|
CF01 | Termination of patent right due to non-payment of annual fee |