FA的分类
- 确定的FA(Deterministic finite automata, DFA)
- 非确定的FA(Nondeterministic finite automata, NFA)
确定的有穷自动机(DFA)
M=(S,∑,δ,s0,F)
- S:有穷状态集
-
∑:输入字母表,即输入符号集合。假设
ϵ不是
∑中的元素
-
δ:将
S∗∑映射到S的转换函数。
∀s∈S,a∈∑,
δ(s,a)表示从状态s出发沿着标记为a的边所能到达的状态。
-
s0:开始状态(或初始状态),
s0∈S
- F:接收状态(或终止状态)集合,
F⊆S
可以用转换表表示DFA
非确定的有穷状态机(NFA)
M=(S,∑,δ,s0,F)
-
δ:将
S∗∑映射到
2S的转换函数。
∀s∈S,a∈∑,
δ(s,a)表示从状态s出发沿着标记为a的边所能到达的状态集合。
- 其余与DFA相同
这就是一个典型的NFA。从状态0出发沿着标记为a(b)的边所能到达的状态集合不止一个。
DFA和NFA的等价性
- 对任何NFA,存在识别同一语言的DFA
- 对任何DFA,存在识别同一语言的NFA
给定一个正则文法就能给出一个正则表达式,给定一个正则表达式就能给出一个FA