1、基础理论
非确定有限自动机(NFA),是计算理论中抽象出来的状态机计算模型。它拥有有限个状态,当前状态根据不同的输入可以迁移到其他的状态,它的下一个状态不是唯一确定的。
正则表达式本身是有限长度的字符串,在这里可以看做NFA上输入状态组成的序列。于是,NFA可以用来作为一种识别装置识别正则表达式。
Thompson构造法:将正则表达式转换为NFA。这里的NFA包括ε状态及其转换,即不需要...
分类:
其他好文 时间:
2014-11-18 14:51:00
阅读次数:
309
首先大致的学习一下有限自动机字符匹配算法,然后在讨论KMP算法。有限自动机一个有限自动机M是一个五元组(Q,q0,A,Σ,δ),其中:Q是状态的集合,q0∈Q是初始状态,A是Q的字集,是一个接受状态集合,Σ是一个有限的输入字母表,δ是一个从Q×Σ到Q的函数,叫做转移函数。下面定义几个相关函数:φ(w...
分类:
其他好文 时间:
2014-10-09 19:48:07
阅读次数:
225
本文介绍了有限自动机(Finite Automata)字符串匹配算法。...
分类:
其他好文 时间:
2014-10-09 02:19:47
阅读次数:
151
解决字符串匹配的算法包括朴素算法(Naive)、Rabin-Karp算法、有限自动机算法(Finite Automation)和 Knuth-Morris-Pratt 算法(即 KMP 算法)等,本文主要介绍 Naive 算法和 KMP 算法的基本原理和实现。
分类:
其他好文 时间:
2014-10-04 23:42:17
阅读次数:
569
确定有限自动机定义:http://en.wikipedia.org/wiki/Deterministic_finite_automaton自动机在字符串匹配中的应用 1 #include 2 #include 3 #include 4 #define ALPHABETLENGTH 53 5...
分类:
其他好文 时间:
2014-08-19 18:37:05
阅读次数:
283
实现状态机有多种模式,其中最灵活而强大的方式是通过迁移表来实现,该方式的缺点之一是需要编写大量小块代码去支持迁移表。而在C#3.0中,可以以一种非常优雅的方式实现。除了有限状态机外,还有有限自动机,有限自动机一般用于分析字符。usingSystem;usingSystem.Collections.G...
分类:
其他好文 时间:
2014-08-06 21:51:32
阅读次数:
281
定义:
不确定的有限自动机(NFA): 一种数学模型
(1) 一个有限的状态集合S
(2) 一个输入符号集合∑(不包含ε)
(3) 一个转换函数move: S X (∑ U {ε}) -> P(S)
(4) 状态s0是唯一的开始状态
(5) 状态集合F是接受状态集合,S包含F
确定的有限自动机(DFA): 是NFA的特殊情况
(1) 任何状态都没有ε转换
(2) 对于...
分类:
其他好文 时间:
2014-06-24 22:47:04
阅读次数:
270
有限状态自动机(FSM "finite state machine" 或者FSA "finite state automaton" )是为研究有限内存的计算过程和某些语言类而抽象出的一种计算模型。有限状态自动机拥有有限数量的状态,每个状态可以迁移到零个或多个状态,输入字串决定执行哪个状态的迁移。有限状态自动机可以表示为一个有向图。有限状态自动机是自动机理论的研究对象。...
分类:
其他好文 时间:
2014-05-04 00:29:47
阅读次数:
423