2007年3月9日星期五

带和不带epsilon转换的NFA的等价

以希腊字母epsilon作为空字符的符号(下面简写为e),带e转换的NFA(不确定有限状态自动机)和不带e的NFA可以通过形式化证明它们的等价性,以下分别记为e-NFA、NFA,他们的转换函数分别记为ed和d。北邮出版的《形式语言与自动机》在这个证明上让我看得不清不楚(一方面是证明步骤不够清楚,但主要是我自己理解的原因),google帮我找到另一个说的很清晰的证明, 只是这个网页是从其它文档转过来的,一些数学符号转换错了,但可以猜出来。

这里想用我自己的理解来说明证明的最后一个步骤:
若 d'(q0,wa)包含q0, 由转换函数的相等性,ed'(q0,wa)也包含q0条件1),初始状态q0如果被NFA最终状态集F1所包含( q0属于 F1)但q0如果又不属于e-NFA的终止状态集F( q0不属于F)──F与F1不等(F1=F U {q0})。需要证明,F一定有状态被ed'(q0,wa)包含。

此时,由e-NFA转换函数的性质和条件1,q0的epsilon闭包(记为 e*(q0))一定包含于 ed'(q0,wa),因此 e*(q0) 与F的交集A必然在ed'(q0,wa)中。而根据F1定义知,此时集合A非空,即F一定有状态被ed'(q0,wa)包含。此时,结论也成立。

好笑的是,我在南京新华书店看到电子科技大学一位老师写的《形式语言与自动机》里的同一个问题的证明有低级字误,证明里分别讨论“q0不属于F”和“q0不属于F”的“两个”情况,呵呵,而且后面一个步骤的证明居然赫然推导出:其实q0不可能属于F,我的天哪,瞬间晕倒!

google, 我的大学的门。

没有评论: