EQDFA = { | M1,M2 are finite automatons, and L(M1)=L(M2)}

这篇博客介绍了EQDFA问题,即判断两个有穷自动机是否接受相同语言。作者分享了两种解决方法,一种是基于DFA最小化的算法,另一种是老师提供的简洁算法。通过维护状态对队列,判断状态转移后的接受状态情况,来确定两个DFA是否等价。
摘要由CSDN通过智能技术生成

问题:

        又有一阵没写东西了,不是没得写,而是自己太忙了,最近一直忙活这,当然本人比较也是一个重要的愿意呀。这次写的内容是一个上计算理论的时候,老师给我们介绍的一个题目:题目正如大家所见:EQDFA,就是判断两个有穷自动机的语言是不是完全相的,这个是一个可判定性问题,程序的输入,输出类似ACM试题,实际上,据老师说这就是杭州赛区的一道ACM试题。由于自己的水平太差,所以写了将近300行,而且用了将近一周,才勉强AC,这不能不反映自己的水平之差,看报表信息,很多高手就写了不到100行,就AC了,哎,差距呀。不说了,就说说这个题目吧。

 

解答:这个题目目前我所知道的有两种做法。第一种大部分都是基于:最小化DFA,就是利用

 

      定理:对于有同一接受集的FA,与之等价且具有最小状态数的DFA在同构意义下 (即不顾状态的命名)是惟一的。这种做法的人居多,当然我也是这么做的,这里给出老师给的算法描述:

仅仅实现语言水平,以供参考。

     一般的编译原理书上描述的 DFA 最小化算法如下。

设自动机的状态集是 Q ,接受状态集合是 F ,转移函数 d 。

一、去掉无用

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值