NFA到DFA转化.docVIP

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

目录 1.需求分析 2 1.2 NFA和DFA之间的联系 3 2.概要设计 3 3.详细设计 4 3.1 子集构造法 4 3.2 具体转换过程 6 3.3 程序设计 9 3.3.1 常量定义 9 3.3.2 数据结构定义 9 3.3.3 主要函数流程图 11 4.测试分析 14 5.用户手册 16 6.课程总结 16 1.需求分析 1.1 NFA和DFA的概念 NFA(nondeterministic finite-state automata)即非确定有限自动机, 一个非确定的有限自动机NFA M’是一个五元式: NFA M’=(S, Σ∪{ε}, δ, S0, F) 其中 S—有限状态集 Σ∪{ε}—输入符号加上ε,即自动机的每个结点所射出的弧可以是Σ中一个字符或是ε. S0—初态集 F—终态集 δ—转换函数 S×Σ ∪{ε} →2S (2S --S的幂集—S的子集构成的集合) DFA(deterministic finite-state automata)即确定有限自动机,一个确定的有限自动机DFA M是一个五元式: M=(S, Σ,δ, S0, Z) 其中: S —有限状态集 Σ —输入字母表 δ —映射函数(也称状态转换函数) S×Σ→S δ(s,a)=S’ , S, S’ ∈S, a∈Σ S0 —初始状态 S0 ∈S Z—终止状态集 Z(S 1.2 NFA和DFA之间的联系 在非确定的有限自动机NFA中,由于某些状态的转移需从若干个可能的后续状态中进行选择故一个NFA对符号串的识别就必然是一个试探的过程这种不确定性给识别过程带来的反复无疑会影响到FA的工作效率 图1 程序总框图 3.详细设计 3.1 子集构造法 已证明:非确定的有限自动机与确定的有限自动机从功能上来说是等价的,也就是说,我们能够从: NFA M’ DFA M 使得 L(M)=L(M’) 为了使得NFA确定化,我们首先给出两个定义: 定义1:集合I的ε-闭包: 令I是一个状态集的子集,定义ε-closure(I)为: 1)若s∈I,则s∈ε-closure(I); 2)若s∈I,则从s出发经过任意条ε弧能够到达的任何 状态都属于ε-closure(I)。 状态集ε-closure(I)称为I的ε-闭包 定义2:令I是NFA M’的状态集的一个子集, a∈Σ 定义: Ia=ε-closure(J) 其中J = ∪δ(s,a) ——J是从状态子集I中的每个状态出发,经过标记为a的弧而达到的状态集合。 ——Ia是状态子集,其元素为J中的状态,加上从J中每一个状态出发通过ε弧到达的状态。 给定如图所示的NFA 图2 与之等价的DFA: 图3 3.2 具体转换过程 为了说明跟清晰,我们使用实例说明,构造正规式101(0|1)*011的DFA? 解:首先构造相应的NFA,如图4所示: 图4 将其写成M五元式则为: M=({0,1,2,3,4,5,6,7,8},{0,1},δ,0,{8}) 其中δ为: δ(0,1)=1 δ(1,0)=2 δ(2,1)=3 δ(3,ε)=4 δ(4,ε)=5 δ(4,0)=4 δ(4,1)=4 δ(5,0)=6 δ(6,1)=7 δ(7,1)=8 它所对应的状态转换矩阵如表1: 表1 状态 0 1 ε 0 ε 1 ε 1 2 ε ε 2 ε 3 ε 3 ε ε 4 4 4 4 5 5 6 ε ε 6 ε 7 ε 7 ε 8 ε 8 ε ε ε 根据NFA转化为DFA的子集法转换法进行转换,对应的状态转换矩阵见表2: 表2 I I0 I1 {0} {ε} {1} {1} {2} {ε} {2} {ε} {3,4,5} {3,4,5} {4,5,6} {4,5} {4,5,6} {4,5,6} {4,5,7} {4,5} {4,5,6} {4,5} {4,5,7} {4,5,6} {4,5,8} {4,5,8} {4,5,6} {4,5} 对上表重新命名后的状态转换矩阵见表3: 表3 I I0 I1 0 ε 1 1 2 ε

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档