打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
NFA转DFA与DFA化简

NFA转DFA与DFA化简  

2013-05-06 17:54:15|  分类: 编译器 |  标签:nfa  dfa  最简dfa   |字号 订阅



正则表达式-->NFA--->DFA--->最简DFA

DFA(有限自动机,每个状态的下一步都是确定的,没有空。只有一个开始状态,只有一个结束状态)

NFA(有可能转到多个状态,可能有空)


※由正则表达式转到NFA

基本可以分成3种:

AB(连接)

A|B(或)

A*(0到多个A)

 

例:正则表达式(a|b)*(aa|bb)(a|b)*NFA


 

NFADFA匹配串的时间空间复杂度

 


NFA的确定化:NFADFA

空闭包,子集法

原理:有些状态是在做同样的工作,他们的工作完全可以用一个状态来做,把这些相同功能的状态组合成一个集合,并把它重新命名为一个状态。

:

将以下NFA转换为DFA


 

按下表不断构建,直到Ia,Ib中出现的集合,全部都出现在I中。并且将他们重新编号

(终态是那些有Y的集合,Y为原先NFA的终态)

 

转成DFA的结果:

 


DFA化简成最简DFA

1.划分终态,非终态: P={{4,5,6,7},{1,2,3}}

2.{4,5,6,7}内部能识别ab,不再划分,(成一个大的部门处理相同的事情

3.{1,2,3} 根据识别a的能力,划分为{1,3}{2}1,3识别a都转到3

  根据识别b的能力,划分为{1} {3} {2}

4.(此例不用考虑这条)删除死循环(即一个对所有输入符号都有到自身转换的非终态)和不可达状态

结果P={{4,5,6,7},{1},{2},{3}}

给四个划分再重新命名 变成1,2,3,4

结果是:

 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
《编译原理简明教程》PPT 第3章
技海无涯:正则表达式相关的知识和技术(4)——自动机(完结篇)
NFA转DFA与DFA简化
如何将正则表达式转换为NFA
编译原理文法知识
正则表达式DFA构造方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服