📜  普通语言的∈-NFAL =(a + b)* bc +

📅  最后修改于: 2021-07-02 15:11:59             🧑  作者: Mango

∈-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 =(a + b)* bc +的∈-NFA:

遵循上述规则,将构造常规语言L =(a + b)* bc +的ε-NFA。

L =(a + b)* bc +可分为3部分-(a + b)*,b和c +。可以通过应用第三条规则,然后通过将第二条规则视为a + b作为一个单元来绘制第一部分。第三部分将通过应用第一条规则来绘制,它们之间仅用一个“ b”相连。

最终的∈-NFA将是: