为什么不使用DFA最小化时,将NFA最小化是一个难题?


14

我知道我们可以通过查找和合并等效状态来最小化DFA,但是为什么我们不能对NFA做同样的事情?我不是在寻找证明或类似的东西-除非证明更容易理解。我只是想直观地理解为什么在不使用DFA最小化的情况下NFA最小化如此困难。

Answers:


8

对于DFA,有一个很好的代数结构来确定哪些状态可以等效,字符串上的Myhill-Nerode等价关系到DFA的最小化。

对于NFA,情况通常很复杂,因为通常没有唯一的最小NFA。

这是有限语言{ a b a c b c b a c a c b的示例。这两个自动机均为最小状态。该示例来自Arnold,Dicky和Nivat撰写的关于最小非确定性自动机的论文A注释{一种b一种CbCb一种C一种Cb}

同一语言的两个NFA

这个答案试图表达一个事实,即这两个问题在技术上是不同的。请参阅vzn的答案,以详细了解问题在计算复杂度方面如何不同。


8
最短路径问题和最小生成树问题(始终)都没有独特的解决方案,但是仍然可以有效解决。
拉斐尔

5

您询问了一个直观的方法。

在DFA中,任何给定的输入前缀最多只能达到一种状态。然后,可以将对于任何后缀都无法区分的状态对合并在一起。可以通过后缀区分的状态不能合并。这导致最小自动机与所有其他最小自动机同构。

pqpPPqPqP

ñ2ñ


1

Øñs日志ñ

另请参阅此TCS.se问题,计算DFA的最小NFA


我不知道如何定义困难,但我的意思是没有有效的算法可以解决它。
邓肯

@duncan好的,那么您在技术上确实使用了这个词。因此对技术难度有一些澄清。在CS中,“有效”也是一个与PTime相同的技术术语。因此,您的问题实际上与TCS中的一个重要的未解决问题有关–人们广泛怀疑/推测NFA最小化(以及所有PSpace完整问题)确实是“困难的”,即不是在P中,但尚未得到证明。
vzn13 2013年
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.