有限自动机是一种数学模型,用于表示和分析有限状态的计算过程。它包括确定性有限自动机(DFA)和非确定性有限自动机(NFA),广泛应用于语言识别和编译技术等领域。
有限自动机(FA)由五部分组成:
DFA是一种确定性的有限自动机,即从初始状态到任意一个接受状态的转换路径都有唯一确定的方向。
记作M=(K, Σ, δ, q_0, F):其中
K={q0,q1,…,qn} , Σ={0,1} δ(q0,0)=q2 δ(q0,1)=q1 δ(q1,0)=q2 δ(q1,1)=q0 δ(q2,0)=q2 δ(q2,1)=q0 F={q0}
写成表格就是这样
0 | 1 | |
---|---|---|
q0 | q2 | q1 |
q1 | q2 | q0 |
q2 | q2 | q0 |
NFA是一种不确定的有限自动机,即从初始状态到任意一个接受状态的转换路径可能有多条。
记作M=(K, Σ, δ, q0, F) 与DFA的定义类似,只是δ(qi,a)可能有多条路径,表示从状态qi通过输入符号a可以转移到状态**qj**的集合。
例如 δ(q0,0)={q2,q3}
0 | 1 | |
---|---|---|
q₀ | {q₁, q₂} | {q₁} |
q₁ | {q₁, q₂} | {q₀} |
q₂ | {q₂} | {q₀} |
如果语言L可由一个NFA M所接收,则必然存在一个DFA M’,使得T(M’)=L。
例如
K`状态集合就是左侧那一列。
那F`怎么定义的呢?
别忘了新生成的F`与原来的F交集不为空,那么显然,找到含有F中元素的新[q,q,q,]就行了
具有空转移的NFA是指,对于任意状态q,δ(q,ε)∈F。
δ^(q0,0)={q0,q1,q2}!=δ(q0,0)={q0}
《计算理论ppt》