有没有办法测试两个NFA是否接受相同的语言?


10

或者至少生成一个NFA接受的一组字符串,这样我就可以将其输入另一个NFA。如果我搜索NFA的每条路径,那行得通吗?尽管那将需要很长时间。


不(至少据我们所知)。NFA相等性是PSPACE完整的。看到这个讨论
Shaull

@ Shaull:OP并没有提供一种有效的方法。
frafl 2013年

@frafl:你是对的。我以“将花费很长时间”来假设OP需要一个有效的解决方案。不过,我的评论仍然提到它在PSPACE中,因此可以确定。
Shaull 2013年

Answers:


10

正如Shaull所指出的,决策问题是PSPACE-complete。

然而,事实证明,在实践中通常可以合理快速地确定NFA等效性。Mayr和Clemente(基于实验证据)声称,平均情况下的复杂度是平方的。他们的技术依靠通过痕量夹杂物的局部近似来修剪潜在的标记过渡系统。

就像SAT在最坏情况下的分析中是NP完全的一样,但对于现实世界的实例却常常令人吃惊地易于处理,因此,对于许多现实世界的实例,似乎可以有效地确定NFA等效性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.