问题:
又有一阵没写东西了,不是没得写,而是自己太忙了,最近一直忙活这,当然本人比较也是一个重要的愿意呀。这次写的内容是一个上计算理论的时候,老师给我们介绍的一个题目:题目正如大家所见:EQDFA,就是判断两个有穷自动机的语言是不是完全相的,这个是一个可判定性问题,程序的输入,输出类似ACM试题,实际上,据老师说这就是杭州赛区的一道ACM试题。由于自己的水平太差,所以写了将近300行,而且用了将近一周,才勉强AC,这不能不反映自己的水平之差,看报表信息,很多高手就写了不到100行,就AC了,哎,差距呀。不说了,就说说这个题目吧。
解答:这个题目目前我所知道的有两种做法。第一种大部分都是基于:最小化DFA,就是利用
定理:对于有同一接受集的FA,与之等价且具有最小状态数的DFA在同构意义下 (即不顾状态的命名)是惟一的。这种做法的人居多,当然我也是这么做的,这里给出老师给的算法描述:
仅仅实现语言水平,以供参考。
一般的编译原理书上描述的 DFA 最小化算法如下。
设自动机的状态集是 Q ,接受状态集合是 F ,转移函数 d 。
一、去掉无用