第三章_有穷自动机.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章_有穷自动机.ppt

第三章 有穷自动机 本章介绍有关有穷自动机的基本概念和理论以及正规文法、正规表达式与有穷自动机之间的相互关系。 §3.1 有穷自动机的形式定义 有穷状态自动机(Finite-state Automata 或简称FA)在识别功能上与正规文法类等价,而且也等价于一个特殊类型的语言产生器——正规表达式(Regular Expression)。因此许多简单的程序语言都可由FA所识别。事实上,它是描述词法的有效工具,也是进行词法分析的主要理论基础。 有穷自动机分为两类: (1)确定的有穷自动机 (Deterministic Finite Automata简称DFA) (2)不确定的有穷自动机(Nondeterministic Finite Automata简称NFA) 。 3.1.1 确定有穷自动机的形式定义 一个DFA M=(K,Σ,f,S,Z),其中 (a)K是一个有限状态集合。 (b)Σ是一个字母表,它的每个元素称为一个输入字符。 (c)S∈K,S 称为初始状态,唯一。 (d)Z?K, Z称为终态集合, 终态也称可接受状态或结束状态。 (e)f是转换函数,是一个从K×Σ到K的单值映射。f(ki,a)=kj(ki,kj∈K,a∈Σ)kj称为ki的一个后继状态。 确定性的体现:初始状态唯一; 转换函数为单值映射。 例: 设DFA M=({S,U,V,Q},{a,b},f,S,{Q})其中 ???? f(S,a)=U, f(S,b)=V ???? f(U,a)=Q, f(U,b)=V ???? f(V,a)=U, f(V,b)=Q ???? f(Q,a)=Q,f(Q,b)=Q 因为(1)初始状态唯一是S, (2)每个转换函数均为单值映射。 所以该FA为确定有穷自动机。 3.1.2 状态转换表 DFA的映射关系可以由一个矩阵表示,矩阵的行标表示状态,列标表示输入字符,矩阵元素表示f(s,a)的值,这个矩阵称为状态转换表。 f(S,a)=U ????f(S,b)=V f(U,a)=Q?????f(U,b)=V f(V,a)=U?????f(V,b)=Q f(Q,a)=Q????f(Q,b)=Q 3.1.3 状态转换图 图中标有?的为开始状态,标有双圈的状态为终止状态。 若f(Ki,a)=Kj,则从状态结点Ki到状态Kj画标记为a的弧。 3.1.4 自动机的等价性 为了讨论自动机的等价性,先对DFA中的映射进行扩充。 扩充的转换函数f 设Q?K,函数f(Q, ?)=Q,即如果输入字符是空串,则仍停留在原来的状态上。 对?Q?K,T??,t1??*,f(Q,Tt1)=f(f(Q,T), t1)该定义是一个递归定义,说明当自动机处在状态Q且面临某个输入串Tt1时,则先应用函数 f(Q,T)=P,然后应用函数f(P,t1)。 DFA的确定性表现在转换函数f: K???K是一个单值函数,即对任何状态k?K和输入符号a??,f(k,a)唯一地确定了下一个状态,从状态转换图来看,若字母表?含有n个输入字符,那么任何一个状态结点最多有n条弧射出,且每条弧以一个不同的输入字符标记。 自动机接受字符串x 如果对于某一自动机M=(K,?,f,S,Z),x??*,有f(S,x)=P,且P?Z,则x为该自动机M所接受(识别),即自动机从开始状态开始,在读完全部输入串以后,自动机恰恰到达终止状态,则该输入串能被该自动机所接受。 例:DFA M=({S,A,B,C},{0,1},?,S,{S}),且?定义为?(S,0)=B,?(S,1)=A,?(A,0)=C,?(A,1)=S,?(B,0)=S, ?(B,1)=C,?(C,0)=A,?(C,1)=B 状态图表示,矩阵表示: 自动机处理字符串110101和11101的轨迹 ?(S,110101)= ?(?(S,1),10101)= ?(A,10101)= ?(?(A,1),0101)= ?(S,0101)= ?(?(S,0),101)= ?(B,101)= ?(?(B,1),01)= ?(C,01)= ?(?(C,0),1)= ?(A,1)= S(接受) ?(S,11101)= ?(?(S,1),1101)= ?(A,1101)= ?(?(A,1),101)= ?(S,101)= ?(?(S,1),01)= ?(A,01)= ?(?(A,0),1)= ?(C,1)= B(拒绝) 所有为自动机M所能接受的串组成一个集合,称这个集合为自动机M所能接受的语言,用L(M)表示: L(M)={ t | f(S,t)?Z,t??*} 对于任何两个有穷自动机M和M’,如果L(M)

文档评论(0)

docinpfd + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档