先决条件–有限自动机简介
非确定性有限自动机和ε-非确定性有限自动机除了它们的转移函数外几乎相同,并且构造ε-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 for a+ :
此结构用于+ ,表示表达式中必须至少有一个“ a”。它以epsilon开头,也以ε开头。从状态q 2到q 1都有ε反馈,因此表达式中可以有多个“ a”。
∈-NFA for a* :
这个结构是针对a *的,这意味着表达式中可以有任意数量的’a’,甚至为0。仅修改了先前的结构,以便即使没有输入符号,即,如果输入符号为null,那么表达式也是有效的。
∈-NFA for a+b :
此结构接受a或b作为输入。因此,有两条路径都通向最终状态。
∈-NFA for ab :
对于串联,a后面必须是b。只有这样,它才能达到最终状态。这里允许使用两种结构,但是因为它是∈-NFA,所以建议使用第二种结构。对于L = {ab,ba}的∈-NFA:
遵循上述规则,将构造常规语言L = {ab,ba}的∈-NFA。
语言由ab或ba组成,也可以写成(ab + ba)。遵循构造加法或(a + b)的规则,我们必须构造主结构。但是,这里,a + b中的“ a”实际上是表达式“ ab”,而a + b中的“ b”实际上是表达式“ ba”。因此,我们仅替换它们的结构分别代替a和b。因此,最终的∈-NFA将具有两条路径,一条用于ab,另一条用于ba,这两种路径均导致最终状态。
按照构造串联或ab的规则,我们可以分别构造ab和ba的结构。对于串联,可以选择上述两种结构中的任何一种,即具有ε或不具有ε的结构,但是我们选择具有ε的结构,因为它是ε-NFA。
最终的∈-NFA将是: