非确定的有穷自动机#
之前讨论了确定的有穷自动机(DFA),所谓确定,就是 δ(q,a) 对于每个状态 q 和输入符号 a 都有且仅有一个结果状态。对于非确定的有穷自动机(NFA),我们放宽这个限制,允许 δ(q,a) 可以有多个结果状态
(0∣1)∗(00)(11)(0∣1)∗NFA 的定义:一个非确定的有穷自动机(NFA)是一个五元组 A=(Q,Σ,δ,q0,F),其中:
- Q 是状态的有限集合;
- Σ 是输入字母表;
- δ:Q×(Σ∪{ε})→P(Q)=2∣Q∣ 是转移函数,其中 P(Q) 表示 Q 的幂集;
- q0∈Q 是初始状态;
- F⊆Q 是接受状态的集合。
TIP与DFA的区别:
- 转移函数 δ=2∣Q∣
- 同一个输入符号可以有多个转移结果
带有空转移的非确定有穷自动机 (NFA-ε)#
可能不读字符就转移状态
定义:一个带有空转移的非确定的有穷自动机(NFA-ε)是一个五元组 A=(Q,Σ,δ,q0,F),其中:
- Q 是状态的有限集合;
- Σ 是输入字母表;
- δ:Q×(Σ∪{ε})→P(Q)=2∣Q∣ 是转移函数,其中 P(Q) 表示 Q 的幂集;
- q0∈Q 是初始状态;
- F⊆Q 是接受状态的集合。