NFA转DFA.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NFA转DFA

郑州轻工业学院 实验名称:NFA确定化 学生姓名:李永丽 学号:200813110121 专业:软件测试 班级:08级-01班 指导老师:马吉明 实验地点:东五楼202 时间: 10年 10月 5日 至 10年11月2日 实验目的: 输入: 非确定有限(穷)状态自动机。 输出: 确定化的有限(穷)状态自动机 二、实验内容及实验环境: 编写一个NFA程序,对给出的程序段进行确定化,要求用户任意输入一个NFA就可以进行确定化 本次实验在vc环境下编译通过。 三、实验原理: 采用子集对NFA转DFA。 (1) 若NFA的全部初态为S1,S2,…,Sn,则令DFA的初态为: S=[S1,S2,…,Sn], 其中方括号用来表示若干个状态构成的某一状态。 (2) 设DFA的状态集K中有一状态为[Si,Si+1,…,Sj],若对某符号a∈∑,在NFA中有F({ Si,Si+1,…,Sj },a)={ Si’,Si+1’,…,Sk’ } 则令F({ Si,Si+1,…,Sj },a)={ Si’,Si+1’,…,Sk’ }为DFA的一个转换函数。若[ Si’,Si+1’,…,Sk‘ ]不在K中,则将其作为新的状态加入到K中。 (3) 重复第2步,直到K中不再有新的状态加入为止。 (4) 上面得到的所有状态构成DFA的状态集K,转换函数构成DFA的F,DFA的字母表仍然是NFA的字母表∑。 (5) DFA中凡是含有NFA终态的状态都是DFA的终态。 还可以采用另一种操作性更强的描述方式。首先给出两个相关定义。 假设I是NFA M状态集K的一个子集(即I∈K),则定义ε-closure(I)为: (1) 若Q∈I,则Q∈ε-closure(I); (2) 若Q∈I,则从Q出发经过任意条ε弧而能到达的任何状态Q’,则Q’∈ε-closure(I)。 状态集ε-closure(I)称为状态I的ε闭包。 假设NFA M=(K,∑,F,S,Z),若I∈K,a∈∑,则定义Ia=ε-closure(J),其中J是所有从ε-closure(I)出发,经过一条a弧而到达的状态集。 NFA确定化的实质是以原有状态集上的子集作为DFA上的一个状态,将原状态间的转换为该子集间的转换,从而把不确定有限自动机确定化。经过确定化后,状态数可能增加,而且可能出现一些等价状态,这时就需要简化 3.实验内容 ⑴ 实现计算闭包closure(I)的算法; ⑵ 实现转换函数move(q,a)的算法; ⑶ 输出NFA转DFA的结果。 四:实验部分截图: (1)登陆: 这是书上的一个练习: 这是把用户输入的信息转化结果: 五、 总结与心得体会: 在实验的过程中,我遇到的问题很多,主要是关键字的数组声明,最后在我们的一致商量中 我们选择了结构体 用起来还比较方便。 总之,我喜欢这样的实验,每一次都让自己能够彻底的投入,然后获得的是充实和兴奋,同时在每一次的试验中 我也感受到了自己的知识欠缺,比如这次,我基本上又把C学了一遍。再者,我也感觉合作的愉快 分享思路的愉快 ,说到底 ,每一次实验也是我的每一次成长 不管结果如何 我至少对自己又有了进一步认识。

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档