- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.2 有限自动机FA(Finite Automata ) 自动机:表示无穷字符串集合的工具。 自动机 字符串集合。 有限自动机的描述能力与乔姆斯基体系中的3型文法是等价的。 描述程序设计语言中的单词,进一步为词法分析程序的自动构造寻找特殊的方法和工具。它不能用来描述表达式、语句等复杂的语法结构。 主要内容: 确定有限自动机DFA 确定有限自动机DFA的实现 非确定有限自动机NFA NFA到DFA的转换 DFA的化简 2.2.1 确定有限自动机 (DFA: Deterministic Finite Automata ) 一.确定有限自动机的定义 确定有限自动机M为一个五元组: M = ( S ,? , s0 ,f ,Z ),其中: S是一个有穷状态集,它的每个元素称为一个状态; ?是一个有穷字母表,它的每个元素称为一个输入 字符; s0?S,是唯一的一个初始状态(开始状态); f是状态转换函数:S??? S,且单值函数。f(Si,a)=Sk 表示:当前状态为Si,遇输入字符a 时,自动机将唯一地转换到状态 Sk,称Sk为 Si的一个后继状态; Z?S,是终止状态集(可接受状态集、结束状态集),其中的每个元素称为终止状态(可接受状态、结束状态),Z可空。 二、一个DFA的例子 DFA M=({S,U,V,Q} , {a,b}, f , S , {Q}), 其中f 定义为: f ( S, a )=U f ( V, a )=U f ( S, b )=V f ( V, b )=Q f ( U, a )=Q f ( Q, a )=Q f ( U, b )=V f ( Q, 1 )=Q 三.DFA的两种表示方式 状态转换图 :用有向图表示自动机 1. 结点表示状态: 1.1 非终止状态由单圆圈围住的状态标识来表示; 1.2 终止状态由双圆圈围住的状态标识来表示(或由单圆圈围住的状态标识并标识以“-” 来表示); 1.3 开始状态由一个箭头指向的状态结点来表示(或标识以“+”来表示)。 2.状态转换函数用有向边来表示,若 f(Si,a)=Sk,则由表示Si的状态节点到表示Sk的状态节点发出一条标识为a的有向边。 DFA M=( {S,U,V,Q}, {a,b}, f, S, {Q}),其中 f 定义为: f ( S, a )=U f ( V, a )=U f ( S, b )=V f ( V, b )=Q f ( U, a )=Q f ( Q, a )=Q f ( U, b )=V f ( Q, b )=Q 状态转换图 U S V Q a a b a b a b ,b 三、DFA接受的字符串 对于?*中的任何字符串t,若存在一条从初始结点到某一终止结点的路径,且这条路上所有弧上的标记符连接成的字符串等于t,则称t可为DFA M所接受(识别)。 若DFA M的初始状态同时又是终止状态,则空字符串可为DFA M所接受(识别)。 DFA M 所能接受的字符串的全体记为L(M). 例1: L( M1 )={ aba, abaa, abab, abaab,…} DFA M1 0 1 2 3 a b a a, b aba CurrentChar CurrentState CurrentState CurrentChar CurrentState CurrentChar CurrentState CurrentChar 例2:L( M2 )={a, ab, abb, abbb,…} DFA M2 0 1 a b 例3:L( M3 )={?, b, bb, bbb,…} DFA M3 1 b 状态转换矩阵:用二维数组描述DFA 转换矩阵的行表示确定有限自动机的状态; 标识初始状态和终止状态:一般约定,第一行表示开始状态S0 ,或在右上角标注“+”;右上角标有“*”或“-”的状态为终止状态 ; 转换矩阵的列表示确定有限自动机的输入字符; 矩阵元素表示确定
原创力文档


文档评论(0)