先决条件——有限自动机介绍
非确定性有限自动机和 ε-非确定性有限自动机几乎相同,只是它们的转换函数,而且 ε-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 的简单构造规则如下。
∈-NFA for a+ :
此结构用于 a+,这意味着表达式中必须至少有一个“a”。它以 epsilon 开头,也以 1 结尾。从状态 q2 到 q1 有 epsilon 反馈,因此表达式中可以有多个“a”。
∈-NFA for a* :
该结构用于 a*,这意味着表达式中可以有任意数量的 ‘a’,甚至是 0。前面的结构只是稍微修改了一下以验证空输入符号,因此该表达式也是有效的。
∈-NFA for a+b :
此结构接受 a 或 b 作为输入。所以有两条路径,都通向最终状态。
∈-NFA for ab :
对于串联,a 后面必须跟 b。只有这样才能达到最终状态。这里允许使用两种结构,但由于它是 ∈-NFA,所以推荐使用第二种结构。
∈-NFA for L = (a* + b*) :
按照上述规则,要构造正则语言的ε-NFA L =a* + b*。上述语言可以分为两部分。第一部分是 a*,第二部分是 b*,可以像第一部分一样构造。由于有一个“+”号连接这两个部分,所以会有两条路径,这两条路径都将通向最终状态。
第一部分是 a*,所以它会像第二条规则一样绘制。同样,使用第二条规则并将 a 替换为 b,我们得到第二部分 b*。
最终 ∈-NFA :
最终 ∈-NFA 将是: