- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
非确定的有限状自动机Non-deterministic Finite Automaton,
非确定的有限状态自动机Non-deterministic Finite Automaton, NFA 付国宏 黑龙江大学计算机科学技术学院ghfu@hlju.edu.cn 引言 FA的修改 DFA对于同一个输入,从同一个状态出发只能有一个转移; 能否修改FA,使它对同一个输入从同一个状态出发可以有零个、一个或多个转移; 从而得到一个更为紧凑(状态数量较少)、更为容易设计的自动机 非确定有穷状态自动机 (non-deterministic finite automaton, NFA) 提要 主要内容 NFA 非形式化描述、形式定义、NFA与DFA的等价性; ?-NFA 形式定义、 ?-NFA与NFA的等价性 重点 NFA和?-NFA的概念、DFA和NFA以及?-NFA和NFA之间的等价转换方法; 难点 对NFA和?-NFA概念的理解;NFA与DFA的等价性证明; 提要 主要内容 NFA 非形式化描述、形式定义、NFA与DFA的等价性; ?-NFA 形式定义、 ?-NFA与NFA的等价性 重点 NFA和?-NFA的概念、DFA和NFA以及?-NFA和NFA之间的等价转换方法; 难点 对NFA和?-NFA概念的理解;NFA与DFA的等价性证明; NFA 非形式描述 形式定义 扩展转移函数 从NFA构造DFA NFA与DFA的等价性 NFA的非形式化描述 NFA对同一个输入符号,从一个状态出发可以有零个、一个或多个转移。 NFA的非形式化描述 (cont.) NFA与DFA的区别 并不是对于所有的(q,a)???Q,?(q,a)都有一个状态与它对应; 并不是对于所有的(q,a) ???Q,?(q,a)只对应一个状态; NFA在任意时刻可以处于有穷多个状态; NFA具有“智能” 具备同时处理多个状态的能力; 具备对输入进行预测的能力; NFA的非形式化描述 (cont.) 例:M1如何接受00101 NFA的形式定义 非确定的有穷状态自动机(Non-deterministic finite automaton, NFA) 五元组: M=(Q, ∑, δ, q0, F) NFA的表示 把状态函数扩展到串 设NFA M=(Q, ?, ?, q0, F) ?: Q??→2Q 扩展?定义 ??: Q??*→2Q ??的递归定义 (1) 基础:??q?Q,?? (q, ?)={q}; (2) 归纳:设串x形如wa (w??*,a??),?q?Q, ?? (q, w)={p1,p2, …, pk},则 ?? (q, wa)= {p|?r???(q, w), 使得p??(r, a)} 可以不区分? (q, a)和?? (q, a) ?? (q, a)= ? (q, a) 把状态函数扩展到串 (cont.) 设x=a1a2…an ??* ,则?? (q, x)的计算如下: 举例:用??描述右图所示的NFA处理01100的过程 NFA接受的语言 NFA接受(识别)的字符串 ?x∈?*, 如果?(q0,x) ∩ F??,则称x被M接受; 如果?(q0,x)∩F=?,则称M不接受x ; NFA接受(识别)的语言 L(M)={x| x??*且?(q0,x)∩F??} NFA与DFA的比较 NFA与DFA的对应关系 NFA MN=(Q, ?, ?N, q0, FN)与DFA MD=(Q2, ?, ?D, q0?, FD)的对应关系 NFA从开始状态q0启动,相应的DFA则从状态[q0]启动,所以q0?=[q0]; 对于NFA 的一个状态组{q1,q2,…,qn} 如果NFA在此状态组时读入字符a后可以进入状态组{p1, p2,…,pm}, 则让相应的DFA在状态[q1,q2,…,qn]读入字符a时,进入状态[p1,p2,…,pm]; 从NFA构造等价的DFA 设NFA MN=(QN, ?, ?N, q0, FN),构造DFA MD=(QD, ?, ?D, [q0], FD),使得L(MN)=L(MD) 方法一:子集构造法 MN和MD具有相同的字母表; MD的初始状态是只包含MN初始状态的集合,为区别记作[q0]; QD是QN的幂集,即 ; FD是所有至少含有一个MN的接受状态的MN的状态集合的集合,即:FD={S|S??FN?且S? QN}; ?S ? QN和a??, 为了计算?D,需要检查S中的所有状态p,看看MN在输入a时从p进入那些状态,这些状态的并集即?D. 从NFA构造等价的DFA (cont.) 例 3-7 构造下图所示的NFA 对应的DFA 从NFA构造等价的DFA (cont.)
文档评论(0)