我们可以合并或合并具有多个最终状态的DFA的所有最终状态吗?它会产生另一个等效的DFA吗? 到目前为止,我只想弄清楚在某些情况下,合并DFA的所有最终状态可以产生另一个NFA,它可能等同于前面的DFA。 谢谢你
答案 0 :(得分:0)
您只能合并/合并等效的状态。如果它们所承认的语言是相同的,则各国是等同的。识别的语言是从给定状态到停止状态的字符串集。
考虑正则表达式a+|b
。在序列aa
DFA处于停止状态后,将其命名为s1。它必须在a
到另一个停止状态的传出转换,这可能本身就是。
另一方面,在输入b
上,DFA也处于停止状态,称之为s2。这不能具有任何将在停止状态中结束的传出转换,因为否则将识别以b
开头的一些字符串,a+|b
不允许这样做。
因此,s1和s2不等同,不能合并。
但是,您注意到我们始终可以将所有停止状态的epsilon转换添加到唯一的新停止状态。但结果是NFA,而不是DFA。