📜  普通语言的∈-NFAL =(01 + 2 *)1

📅  最后修改于: 2021-06-29 10:56:14             🧑  作者: Mango

Epsilon 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 for a+ :

在这里,“ a +”表示输入表达式中必须至少有一个“ a”才能被接受。它在epsilon之前和之后,因为该表达式可能包含也可能不包含任何其他内容。从状态q2到q1都有epsilon反馈,因此表达式中可以有多个“ a”。

∈-NFA for a* :

在此,“ a *”表示表达式中可以有任意数量的“ a”,包括0。仅修改了先前的结构,以便即使没有输入符号,即,如果输入符号为null,那么表达式也是有效的。

∈-NFA for a+b :

此结构接受a或b作为输入。因此,有两条路径都通向最终状态。

∈-NFA for ab :

对于串联,a后面必须是b。只有这样,它才能达到最终状态。这里允许使用两种结构,但是因为它是∈-NFA,所以建议使用第二种结构。

对于L =(01 + 2 *)1的∈-NFA:

根据上述规则,将构造常规语言L =(01 + 2 *)1的∈-NFA。

L =(01 + 2 *)1可分为两部分。第一部分为(01 + 2 *),第二部分为1。由于它们是串联的,因此它们将在第四条规则的帮助下线性连接。现在,第一部分可以进一步分为两部分– 01和2 *。考虑到a = 0和b = 1,可以借助第四条规则绘制01。考虑到a = 2,可以借助第二条规则绘制2 *。现在,由于01和2 *与’+’连接,符号,从第一个节点将有两条路径,两条路径都将到达倒数第二个节点。这种结构在后面加上“ 1”后,会得出上述语言的最终ε-NFA。

最终的∈-NFA将是: