非确定性有限自动机和ε-非确定性有限自动机除了它们的转移函数外几乎相同,并且构造ε-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的简单规则:
对于a +的∈-NFA:
此结构用于a +,这意味着表达式中必须至少有一个“ a”。它以epsilon开头,也以ε开头。从状态q2到q1都有epsilon反馈,因此表达式中可以有多个“ a”。
∈-NFA对于a *:
这个结构是针对a *的,这意味着表达式中可以有任意数量的’a’,甚至为0。仅修改了先前的结构,以便即使没有输入符号,即,如果输入符号为null,那么表达式也是有效的。
∈-NFA对于a + b:
此结构接受a或b作为输入。因此,有两条路径都通向最终状态。
ε-NFA对于ab:
对于串联,a后面必须是b。只有这样,它才能达到最终状态。这里允许使用两种结构,但是因为它是∈-NFA,所以建议使用第二种结构。
对于L = 0(0 + 1)* 1的∈-NFA:
遵循上述规则,将构造常规语言L = 0(0 + 1)* 1的ε-NFA。
L = 0(0 + 1)* 1可分为三部分-0,(0 + 1)*,1。第二部分(0 + 1)*将借助于第三条规则(a + b),其中a = 0和b = 1,后跟第二个规则a *,其中a =(0 + 1)。下面是它的ε-NFA。
由于0和1仅连接到第二部分,因此最终的∈-NFA借助第四条规则ab绘制。
最终的∈-NFA将为–
对于L =(00)* 1(11)*的∈-NFA:
遵循上述规则,将构造常规语言L =(00)* 1(11)*的ε-NFA。
L =(00)*。1.(11)*可以分为三部分,以便于构造ε-NFA。第一部分是(00)*,第二部分是1,第三部分是(11)*。由于它们彼此串联在一起,因此在第四条规则ab的帮助下绘制了主要结构。现在,要了解第一部分(00)*的结构,必须从第四部分(即ab)和第二条规则(即a *)中获取参考。首先连接00,然后将其视为一个单位并应用第二个规则,绘制(00)*。下面是它的ε-NFA。
同样,可以画出(11)*。语言的第二部分很简单。第一部分和第三部分之间仅用一个“ 1”连接。
最终的∈-NFA将为–