是否有一种有效的算法来决定一个NFA接受的语言是否是另一个NFA接受的语言的超集?

Dan*_*ien 5 algorithm computer-science finite-automata nfa regular-language

给定两个非确定性有限自动机M1M2,是否有一种有效的算法来确定M1接受的语言是否是M2接受的语言的超集?

Mik*_*ola 2

除非 P=NP。如果你有这样的算法,你可以简单地判断两个 NFA 是否同构(只需检查 A 是否是 B 的超集,B 是否是 A 的超集),这是一个已知的 NP 难问题。有关更多详细信息,请阅读本文。它有一个很好的令人沮丧的复杂性结果表。

  • 米科拉,你的答案是正确的,但你的措辞是错误的:同构意味着“形状相同”,两个自动机是同构的,当且仅当它们的状态之间存在 1-1 映射,这样 bla bla。这与这里无关,两个自动机可以接受相同的语言而不是同构的。(这增加了检查图同构也是 NP-Hard 的混乱)如果你将答案编辑为“两个 NFA 是否接受相同的语言”而不是“两个 NFA 是否同构”,那么一切都会好起来的。 (2认同)