如何将(ab u aab u aba)*转换成NFA?

时间:2011-10-17 22:38:34

标签: regex finite-automata dfa nfa

(ab u aab u aba)*

我做到了但我希望得到一些关于其正确性的反馈:

如果它是正确的:我们可以进一步简化(ab u aab u aba)*吗?

如果没有:我错过了什么?

编辑:似乎我错过了从所有3个最终状态回到初始状态的电子转换,我需要一个初始和最终的新状态,它将在电子转换时进入旧的初始状态。 (Kleene Star规则)。

enter image description here

P.S。我们还可以简化(a u b)*aabab(a u b)*a(a u b)(a u b)(a u b)(a u b)

我问的原因是因为如果没有办法简化/最小化,那将是一个荒谬的长DFA ......

1 个答案:

答案 0 :(得分:1)

我可以看到你的第一个案例的一个简单的简化,因为你可以把它写成(a(b u ab ba))*但这并不一定有帮助。我仍然猜测你的DFA不需要像你想象的那么多状态。

后两种情况都需要具有32种状态的DFA,以便跟踪读取的最后5个字符。区别在于第二个DFA只有一个终端状态,而第三个DFA只有16个。