无法为某些正则表达式构造4状态NFA

时间:2014-12-07 22:15:24

标签: regex automata nfa non-deterministic

在NFA的练习中,我被要求在正则表达式(aa | aab)* b上构建一个4态NFA。 我自己试图构建它,我只能找到一个5状态的NFA,这是一个在线工具后来确认的。 NFA

(我发现它没有(4)是最终的,并且从b的(3)到(2)是另一个箭头,但这导致相同的结果)我没有看到问题,或者没有只用四种状态来做到这一点的方法?

1 个答案:

答案 0 :(得分:2)

您已选择创建DFA(我不知道如何制作一个只有4个状态的DFA)。但是,您可以构建NFA,这意味着您可以使用相同的字母进行多次转换。

因此,你可以省略state(2),将b - 从(0)移到(2)的边移动到(4),并引入一个带有b字母的新边。 (3)至(0)。这意味着,在两b之后阅读a时,您可以转换到最终状态或返回到开头。

http://hackingoff.com/images/fsa/2014-12-07_15-02-16_-0800-nfa.svg