Regex 转换RE->;NFA

Regex 转换RE->;NFA,regex,compiler-construction,finite-automata,nfa,Regex,Compiler Construction,Finite Automata,Nfa,关于正则表达式到非确定性有限状态自动机的转换,我有一个问题: 将(a*| b*)*转换为NFA。我的尝试如下: 我完全错了吗?还是在那里 注意E=>ε您的NFA与(a*| b*)*匹配,因此答案是正确的 但是,有许多NFA与相同的语言相匹配,在您的情况下,可以删除至少三个ε箭头。不过,它不会比你的建议更正确 regex(a*|b*)*也可以简化,而不改变语义。例如,(a | b)*相当于(a*| b*)*。如果你仔细想想,足总可以这么简单: 您的NFA与(a*| b*)*匹配相同的语言,因此答

关于正则表达式到非确定性有限状态自动机的转换,我有一个问题:

将(a*| b*)*转换为NFA。我的尝试如下:

我完全错了吗?还是在那里


注意E=>ε

您的NFA与
(a*| b*)*
匹配,因此答案是正确的

但是,有许多NFA与相同的语言相匹配,在您的情况下,可以删除至少三个ε箭头。不过,它不会比你的建议更正确

regex
(a*|b*)*
也可以简化,而不改变语义。例如,
(a | b)*
相当于
(a*| b*)*
。如果你仔细想想,足总可以这么简单:


您的NFA与
(a*| b*)*
匹配相同的语言,因此答案是正确的

但是,有许多NFA与相同的语言相匹配,在您的情况下,可以删除至少三个ε箭头。不过,它不会比你的建议更正确

regex
(a*|b*)*
也可以简化,而不改变语义。例如,
(a | b)*
相当于
(a*| b*)*
。如果你仔细想想,足总可以这么简单: