在自动机理论中,有限自动机可分为三种类型:
- DFA
- NFA
- ∈-NFA
∈表示输入为空。这意味着即使自动机得到一个空符号(即∈),它也可以更改其状态。那就是它与NFA的不同之处。这是ε-NFA的正式定义。
∈-NFA is defined in 5 tuple representation {Q, q0, Σ, δ, F} where
Q is the set of all states,
q0 is the initial state,
Σ is the set of input symbols,
δ is the transition function which is δ:Q × (Σ∪∈)⇢2Q and
F is the set of final states.
ε-NFA的构建有一些特殊规则。
构造ε-NFA的简单规则–
1. a +的∈-NFA:
“ a +”表示表达式必须包含至少一个a才能被自动机接受。从状态q2到状态q1的反馈连接表示该表达式可以包含多个a,并且用ε表示,因此可以接受两个连续的’a’,因为反馈不需要由其他输入触发。
2. a *的∈-NFA:
“ a *”表示表达式中可以有零个或多个“ a”。像前一个一样,有从状态q2到q1的反馈,但是也有从状态q0到q3的过渡,即从初始状态直接过渡到最终状态,这表明即使没有’a,表达式也将被接受。 ‘ 在里面。
3. a + b的∈-NFA:
“ a + b”代表“或”逻辑。这意味着表达式可以包含a或b或两者都包含,并且可以接受。因此,有两条路径都通向最终状态。
4. ab的∈-NFA:
“ ab”代表AND逻辑。这也称为串联规则。在这里,a必须紧跟b,然后才可以接受该表达式。这里允许使用两种结构,但是因为它是∈-NFA,所以建议使用第二种结构。
对于L = 00(01 + 10)* 11的∈-NFA:
根据上述规则,可以得出常规语言L = 00(01 + 10)* 11的∈-NFA。
它可以分为三个部分。第一部分为“ 00”,第二部分为(01 + 10)*,最后一部分为“ 11”。第一部分和第三部分类似于并置规则,其中a和b表示相同的符号(0或1)。
第二部分是使用第四,第三和第二条规则绘制的。我们使用第四条规则构造01和10。然后,我们使用第三条规则将它们连接在一起,其中a = 01和b =10。然后应用第二条规则,并考虑01 + 10作为单位。这是第二部分,分别绘制。
最终的∈-NFA将是: