在NFA的练习中,我被要求在正则表达式(aa | aab)* b上构建一个4态NFA。 我自己试图构建它,我只能找到一个5状态的NFA,这是一个在线工具后来确认的。
(我发现它没有(4)是最终的,并且从b的(3)到(2)是另一个箭头,但这导致相同的结果)我没有看到问题,或者没有只用四种状态来做到这一点的方法?
答案 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