📜  常规语言的∈-NFAL =(0 + 1)*(00 + 11)和L = b + ba *

📅  最后修改于: 2021-08-27 18:00:49             🧑  作者: Mango

非确定性有限自动机和ε-非确定性有限自动机除了它们的转移函数外几乎相同,并且构造ε-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,所以建议使用第二种结构。

常规语言∈-NFAL =(0 + 1)*(00 + 11):
遵循上述规则,将构造常规语言L =(0 + 1)*(00 + 11)的ε-NFA。
L =(0 + 1)*(00 + 11)可以分为两部分–(0 + 1)*和(00 + 11)。由于它们是串联在一起的,所以这两个部分将相互线性连接。

  • 可以使用第三条规则和第二条规则绘制第一部分。容易遵循第三条规则绘制(0 + 1),并以(0 + 1)为一个单位,也可以应用第二条规则绘制(0 + 1)*。

    这是第一部分,如下所示。

  • 第二部分可以借助第四条规则来绘制。在第四条规则中,a和b均为0。这就是我们构造00的方式。类似地,我们可以构造11。由于它们以’+’符号连接,因此将有两条路径连接这两个结构。

    这是第二部分,如下所示。

最终的∈-NFA将是:
将两个结构线性连接可以得到最终的ε-NFA。

正规语言的∈-NFAL = b + ba *:
遵循上述规则,将构造正规语言L = b + ba *的ε-NFA。
L = b + ba *有两个项。第一项很容易构建。由于两个术语均以“ +”号连接,因此会有两个路径从第一个节点出来。第二项应遵循第二个构造规则,即a *,其后紧跟b。

最终的∈-NFA将是: