从DFA到正则表达式的已知算法


28

我想知道是否有一种从DFA 开始并构造一个正则表达式r使得L A= L r 的``更好''(我将在什么意义上解释)算法,而不是Hopcroft and Ullman(1979)的书。在这里,集合R k i j用于表示将DFA从状态q i转移到q j而不经过任何高于k的状态的字符串集合。尽管显然是正确的并且非常有用,但是这种构造是技术性的。ArL(A)=L(r)Rijkqiqjk

我正在撰写有关代数自动机理论的专着,但我不想分散太多技术细节(至少不会与我想显示的结果无关的细节)来分散听众的注意力,但我确实希望包括为完整性起见,证明DFA与正则表达式之间的等效性。作为记录,我正在使用Glushkov自动机将正则表达式转换为DFA。它似乎比更直观,我完全没有定义它(再次,因为我不需要它们)。ε

从DFA到正则表达式还有哪些其他已知算法?我重视简单性而不是效率(在这种情况下,这对我来说``更好''),但这不是必须的。

在此先感谢您的帮助!


1
它不是不同的算法,但是算法可以使用适当代数中正则表达式矩阵的k次幂来代数表示。也许您会发现这更加优雅/简洁。我正在寻找参考。Rijkk
最大

1
算法在本质上是弗洛伊德- Warshall算法的全对,最短路径问题的一种变体,所以你可以通过搜索这些关键字找到矩阵乘法方面的表现。Rijk
Jan Johannsen

2
我同意。它基本上是Floyd-Warshall算法。也可以使用标准动态编程技术来派生它(就像Floyd-Warshall可以做到的那样)。
大卫

我敢肯定,我曾经回答过这样的问题,但找不到。
拉斐尔

@Max您能找到参考吗?我对矩阵表示感兴趣,实际上它应该对代数学家更具吸引力。
Janoma 2011年

Answers:


17

另外两种构造:Brzozowski-McCluskey aka状态消除[1]和使用Arden引理的方程组中的高斯消除。关于这些的最佳资料可能是雅克·萨卡罗维奇(Jacques Sakarovitch)的书[2]。

[1] J. Brzozowski和E. McCluskey Jr.,《用于顺序电路状态图的信号流图技术》,《电子计算机上的IEEE交易EC-12(1963)67-76》。

[2] J. Sakarovitch,自动机理论的要素。剑桥大学出版社,2009年。


2
我发现用Arden's Lemma求解方程式的方法最简单也最容易解释,这就是为什么我在入门理论课中以这种方式介绍它的原因。
Jan Johannsen

方程组的方法听起来很棒。不幸的是,我大学的图书馆没有您提到的书(Sakarovitch),但我将转到其他地方。
Janoma 2011年

4
构造的比较还可以在Sakarovitch的论文“语言,表达和(小型)自动机”中找到,CIAA 2005,LNCS 3845,Springer(2006)15-30。参见infres.enst.fr/~jsaka/PUB/Files/LESA.pdf
Hermann Gruber

2
另外,请注意,处理状态的顺序会极大地影响所得正则表达式的大小。这始终是正确的:无论您是使用Arden引理,McNaughton-Yamada,州淘汰法还是其他变体来做到这一点。提供了几种用于选择良好消除顺序的简单试探法。
Hermann Gruber

15

Kozen的著作《自动机和可计算性》提到了这种Floyd-Warshall算法的优雅概括。由于您提到了吸引代数学家,您可能会发现它很有用。您会在该文本的第58-59页找到它。(我认为Google图书有预览。)

2×2

[abcd]=[(a+bdc)(a+bdc)bd(d+cab)ca(d+cab)]

i,jij

n×na,b,c,dm×mm×(nm)(nm)×m(nm)×(nm)2×22×2

nTfF(T)s,fsT

m=1Rijk

Kleene代数结构在矩阵上的另一个派生出现在Kozen的Kleene代数和常规事件代数的完备性定理中


12

到目前为止,我所看到的最好的过程是Sylvain提到的过程。特别是,它似乎比其他表达式更简洁。

去年夏天,我写了这份文件解释了针对学生的方法。它直接与特定的讲座有关;提到的参考文献是正则表达式的典型定义。包含Arden引理的证明;缺少一种方法的正确性。不幸的是,据我在演讲中了解到的,我没有参考。


我也更喜欢那个证明。我觉得它优雅且易于解释。甚至Arden的引理也不难。我认为这将是我将在文档中包含的方法。
Janoma 2011年

+
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.