我试图通过使用thompsom的结构将((c | a)b *)*转换为nfa,但我理解错误,因为结果不是它应该是的结果。如果你能指出我的错误,我会很高兴的。 汤普森的建筑规则:
6)对于所使用的字母数字的特定字符,状态最多可以有1个传入和1个存在的转换。
第1步:我为每个角色创建了NFA
第3步:然后我创建了b *
第4步:然后我将c | a和b *组合起来创建(c | a)b *
与正确解决方案的不同之处在于,在最后一个nfa(示例未显示步骤且状态最终重新编号)中没有s9。因此S8ε-转换到S5和S5ε-转换到S10。如果b *没有S9状态但是因为规则2而需要它,这对我来说是有意义的。所以我猜我在连接期间犯了一个错误。提前谢谢。