- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
不确定有穷自动机的确定化
编译原理实验报告
不确定有限状态自动机的确定
实验名称
2022年5月23日实验时间
计算机科学与技术专业
官能
08计算机一班
班
学号
王全鸿
全名
1.试验目的
输入:非确定性有限(有限)状态自动机。输出:确定性有限(有限)状态自动机
2.实验原理
一个确定的有限自动机(DFA)m可以定义为一个五元组,m=(k,∑, F、 s,z),其中:
(1)k是一个有穷非空集,集合中的每个元素称为一个状态;
(2) ∑是一个有限的字母表,∑中的每个元素称为输入符号;
(3)f是一个从k×∑→k的单值转换函数,即f(r,a)=q,(r,q∈k)表示当前状态为r,如果输入字符a,则转到状态q,状态q称为状态r的后继状态;(4)s∈k,是惟一的初态;(5)z?k,是一个终态集。
从定义可以看出,有限自动机只有一个唯一的初始状态,但它可以有多个最终状态。对于字母表中的任何输入符号,每个状态最多有一个后续状态。
对于dfam,若存在一条从某个初态结点到某一个终态结点的通路,则称这条通路上的所有弧的标记符连接形成的字符串可为dfam所接受。若m的初态结点同时又是终态结点,则称ε可为m所接受(或识别),dfam所能接受的全部字符串(字)组成的集合记作l(m)。
不确定有限自动机(NFA)m可以定义为五元组,m=(k,∑, F、 s,z),其中:
(1)k是一个有穷非空集,集合中的每个元素称为一个状态;
(2) ∑是一个有限的字母表,∑中的每个元素称为输入符号;(3) F是∑子集的变换函数K×的a→ K(4) s?k、 是一组非空的初始状态;(5) z?k、 是最终状态集。
由定义可见,不确定有限自动机nfa与确定有限自动机dfa的主要区别是:(1)nfa的初始状态s为一个状态集,即允许有多个初始状态;
(2) NFA允许状态在输出端具有相同的符号,也就是说,同一输入符号可以有多个后续状态。也就是说,DFA中的f是单值函数,而NFA中的f是多值函数。
因此,可以将确定有限自动机dfa看作是不确定有限自动机nfa的特例。和dfa一样,nfa也可以用矩阵和状态转换图来表示。
对于NFAM,如果有一条从初始状态节点到结束状态节点的路径,则称为该路径上所有弧的标记(ε除外)。连接形成的字符串可以被M接受。NFAM接受的所有字符串(单词)的集合被记录为l(M)。
由于dfa是nfa的特例,所以能被dfa所接受的符号串必能被nfa所接受。设m1和m2是同一个字母集∑上的有限自动机,若l(m1)=l(m2),则称有限自动机m1和m2等价。
根据上述定义,如果两个自动机可以接受同一种语言,则称它们是等价的。DFA是NFA的一个特例,所以每个nfam1都有一个dfam2,所以l(M1)=l(M2)。也就是说,不确定有限自动机可以接受的语言总是可以找到一个等价的确定有限自动机来接受该语言。
nfa确定化为dfa
同一个字符串可以通过多个路径生成。在实际应用中,作为描述控制过程的自动机,它通常是确定性有限自动机DFA。因此,有必要将不确定有限自动机转化为等价的确定有限自动机。这个过程被称为不确定有限自动机的确定性,即NFA的确定性是DFA。
下面介绍一种nfa的确定化算法,这种算法称为子集法:
(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的终态。
’
’
‘
’
’
’
’
’
’
对于上述nfa确定化算法――子集法,还可以采用另一种操作性更强的描述方式,下面我们给出其详细描述。首
您可能关注的文档
最近下载
- JJF(电子)30306-2010 示波器差分探头校准规范.pdf VIP
- 750t履带吊安装拆卸安装方案.docx VIP
- 2018版肺血栓栓塞症诊治与预防指南.pdf VIP
- 社保扣款银行协议书.docx VIP
- 2025年通城县第二批事业单位公开招聘16名工作人员笔试参考题库附答案解析.docx VIP
- 2025-2026学年统编版三年级道德与法治上册全册教案设计.pdf VIP
- 2025高考数学专项复习:圆锥曲线基础总结、二级结论、方法与技巧.pdf VIP
- 五年级第一次月考试卷.docx VIP
- 第九讲_语言测.ppt VIP
- 2025年新济南版七年级上册生物全册精编知识点(新教材专用).pdf
文档评论(0)