Brzozowski的DFA最小化算法


16

Brzozowski的DFA最小化算法可通过以下方式为DFA建立最小的DFA :G

  1. 反转所有边,使初始状态为接受状态,而接受状态为初始,以获得反向语言的NFA,N 'Gñ
  2. 使用powerset构造获得反语言的,G
  3. 反转的边(和初始接受交换)以获得原始语言的NFA,并且 ÑGñ
  4. 进行powerset构造以获得。G

当然,由于某些DFA具有指数较大的反向DFA,因此根据输入的大小,此算法在最坏的情况下会以指数形式运行,因此,请跟踪反向DFA的大小。

如果ñ是输入DFA 的大小,ñ是最小DFA 的大小,而是最小反向DFA的大小,那么按照ññm计,Brzozowski算法的运行时间是多少?

特别是,ñm之间有什么关系时,布佐佐夫斯基的算法优于霍普克罗夫特算法或摩尔算法?

我听说在实践/应用中的典型示例中,Brzozowski的算法优于其他算法。非正式地,这些典型示例是什么样的?


如果您包括这些算法的O(f(n))估计,将很有帮助。在“平均”情况下它们都是O(n log(n))吗?如果是这样的话,则取决于输入的统计特征/结构,关于它们的相对性能的争论可能主要是一个应用测试……当反向NFA“不大”时,Brzozowski似乎运行得很快。
vzn

请谨慎执行算法,在执行1.和3.时,您可能会倾向于引入虚拟启动状态,这将导致错误的结果-请参见此处。(问题没有错,您只需要小心不要
误解

Answers:


5

这是关于第三个问题的部分答案。实际上,在DFA最小化方面,也许Brzozowski的算法的确没有比其他所有算法都明显好。

在[1]中,作者研究了DFA / NFA最小化算法的实际性能。这些算法是霍普克罗夫特算法,布里佐佐夫斯基算法和沃森算法的两种变体。他们得出结论,没有明显的赢家,但是Hopcroft的算法对于带有小字母的DFA表现更好。对于NFA来说,Brzozowski显然是最快的。

论文本身很短,写得很清楚。还有其他讨论和参考可能会有所帮助。


[1] Almeida M.,Moreira N.和Reis R.关于自动机最小化算法的性能,第四届欧洲可计算性会议,2008年6月。


谢谢,我将看一下本文,看看是否可以使用参考文献来找到完整的答案。
Artem Kaznatcheev 2012年

5

以下内容大部分来自Sippu和Soisalon-Soininen的解析理论

令为DFA的状态集。令为输入字母。令为机器的大小。练习3.40给出了用于状态最小化的算法。如Wikipedia所述,Hopcroft算法的运行时间为而Moore算法的运行时间为。T | M | = Ö | Ť |·&| Q |ø | Ť |·&| Q | 2ø | Ť |·&| Q |·&日志| Ť |ø | Ť | 2·&| Q |Ť|中号|=Ø|Ť|||Ø|Ť|||2Ø|Ť|||日志|Ť|Ø|Ť|2||

定理3.30指出,子集构造可以在产生大小为(实际上,如果生成的自动机具有状态,则运行时间为)。因此,两次反转和第二次确定在运行时间上都是无关紧要的,因此Brzozowski算法的渐近运行时间与子集构造的渐近运行时间相同。O 2 | T | + log | Q || T ' | | T ' | + | T || M || |Ø2|Ť|+日志|Ť|+日志||Ø2|Ť|+日志|||Ť||Ť|+|Ť||中号|||

这意味着在最坏的情况下,Brzozowski的算法要比其他三种算法快得多。请注意,确实发生了最坏的情况:语言的NFA的经典示例具有个状态,其对应的最小DFA具有个状态,而反之NFA的确定性是确定性的,因此在此反向NFA上运行Brzozowski的算法会触发最坏情况的行为。 k + 1 O 2 k一种|b一种ķķ+1Ø2ķ

但是,如果子集构造产生大小为的自动机,则其运行时间也为。在现实生活中的投入。此外,如果在计算状态的闭合时采取适当的措施,那么在大多数情况下(闭合很小的情况下),这样做可以更快地完成,从而节省因子在实践中(出于与在现实世界中的示例可以相当快地计算出传递闭包的本质相同的原因)。此外,如果输入和中间自动机是稀疏的,这意味着状态具有很少的转变,则因数将被保存,从而在“良好”输入上给出运行时间。|Ť|=Ø|Ť|Ø|Ť|2||2|Ť|||Ø|Ť|||

不幸的是,我对Hopcroft或Moore的算法还不够熟悉,无法对典型情况下的运行时间进行分析。维基百科在某些情况下谈论运行时间,这将使这三种算法具有可比性。Ø|Ť|日志日志|Ť|


1

De Felice和Nicaud证明了Brzozowski的算法是渐近超多项式的。David已经证明,对于最终状态的几种分布,Hopcroft算法比Moore算法要慢。

参考文献

S. De Felice和C. Nicaud,“ Brzozowski算法是确定性自动机的一般超多项式”。在第17届语言理论发展国际会议论文集(DLT 2013)中,计算机科学讲义,第170–190页,2013年。(PDF

J. David,“ Moore和Hopcroft算法的平均复杂度”。理论计算机科学,417:50-65,2012年。(Science Direct

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.