第二章 词法分析3 非确定有限自动机NFA 非确定有限自动机(NFA)的定义 NFA的确定化:NFA到DFA的转换(子集法)

Slides:



Advertisements
Similar presentations
图形的平移 苏科版教材七年级下册第八章第三节 镇江市第三中学 李萌. 南京 江南大酒店 南京江南大酒店,三星级,位于南京市中央路与 新模范马路的交汇处,六层,建筑面积 5424 m 2 , 总重量 8000 t 。 2001 年马路拓宽,这幢楼在拓宽的范围内,将 这样的一个星级酒店拆掉有点可惜,要是能将整幢大.
Advertisements

命题探究 从地形、气候、自然资源、自然灾害等地理要 素对农业、工业、交通运输和聚落的影响方面正确 认识人地关系,以谋求人类与自然环境和谐发展 第四章 自然环境对人类活动的影响 考纲解读 1. 地表形态对聚落及交通线路分布的影响 2. 全球气候变化对人类活动的影响 3. 自然资源对人类生存与发展的意义.
形式逻辑学的框架 推理 判断 概念 演绎 归纳 直 接 复 合 三段论 枚 举 完 全 科 学 【有效性与真实性】
首页 全国高等学校招生考试统一考试 监考员培训 广州市招生考试委员会办公室.
学年度第一学期 八年级物理试卷分析 市北初中 谢爱娟.
南通大学江海书画社.
龙泉护嗓5班 优秀作业展.
生物学 新课标(SK).
人口增长.
诚信为本、操守为重、坚持准则、不做假账 第 九 章 会 计 报 表.
普通高等学校 本科教学工作水平评估方案.
浙江省深化高校考试招生制度综合改革试点方案(2017新方案)
第十二章 小组评估 本章重点问题: 评估的设计 测量工具的选择和资料的收集 与分析.
新材料作文.
第一章 会计法律制度 补充要点.
二、个性教育.
2011年10月31日是一个令人警醒的日子,世界在10月31日迎来第70亿人口。当日凌晨,成为象征性的全球第70亿名成员之一的婴儿在菲律宾降生。 ?
省级精品课程 21世纪精品教材•工程管理类 第3章 工程项目资金筹措.
第三节 大气的运动 一、大气运动 二、热力环流 三、大气的水平运动——风.
江苏省2008年普通高校 招生录取办法 常熟理工学院学生处
《中医基础理论》 考试题型特点和答题指导.
合 同 法 主讲人: 教材:《合同法学》(崔建远) 2017/3/10.
氧气的制法 装置 原理 练习 随堂检测.
初级会计实务 第八章 产品成本核算 主讲人:杨菠.
摇摆的中东地区 永嘉县实验中学 张 杰.
摇摆的中东地区 永嘉县实验中学 张 杰.
问题解决与创造思维 刘 国 权 吉林省高等学校师资培训中心.
解排列组合问题的常用策略.
中考阅读 复习备考交流 西安铁一中分校 向连吾.
第四单元 自觉依法律己 避免违法犯罪.
交通事故處置 當事人責任與損害賠償 屏東縣政府警察局交通隊.
财经法规与会计职业道德 (3) 四川财经职业学院.
中央广播电视大学开放教育 成本会计(补修)期末复习
人教版义务教育课程标准实验教科书 小学数学四年级上册第七单元《数学广角》 合理安排时间 248.
復健護理實務與發展 授課老師:林惠卿.
你不得不知的几件事 2、图书《10天行测通关特训》 3、网络课程 《网校9元课程系列》《考前强化夜校班》 4、地面课程 《10天10晚名师密授营》《考前预测集训营》
单元辅导(二)   词法分析与有穷自动机.
第2章 LR分 析 法 LR分析法是一种自下而上进行规范归约的语法分析方法,LR指“自左向右扫描和自下而上进行归约”。LR分析法比递归下降分析法、LL(1)分析法和算符优先分析法对文法的限制要少得多,对大多数用无二义的上下文无关文法描述的语言都可以用LR分析器予以识别,而且速度快,并能准确、及时地指出输入串的任何语法错误及出错位置。LR分析法的一个主要缺点是,若用手工构造分析器则工作量相当大,因此必须求助于自动产生LR分析器的产生器。
二、选择题 (一)A1型题 1. 四君子汤的功用是 : A.益气健脾 B.益气补中 C.健脾养胃 D. 健脾和胃 E.益气和胃 回答正确,
人力资源规划-辅导练习 刘老师 企业人力资源管理师(二级) 人力资源规划-辅导练习 刘老师
我国三大自然区.
专题二 识图题增分技巧.
 第20讲 中国的交通.
第十二单元 第28讲 第28讲 古代中国的科技和文艺   知识诠释  思维发散.
中考语文积累 永宁县教研室 步正军 2015.9.
群組未知 水蜜桃每4個裝一盒,爸爸買了5盒,一共買了幾個水蜜桃? 爸爸想把20個水蜜桃平分給他的5個朋友,每個朋友可以得到幾個水蜜桃?
小学数学知识讲座 应用题.
倒装句之其他句式.
江苏省2009年普通高校 招生录取办法 江苏省教育考试院
第四节 辞格(一) 辞格及其特征 辞格是指在使用语言过程中逐步固定下来的在一定语境中能够产生积极表达效果的语言运用形式。
三角形的邊角關係 大綱:三角形邊的不等關係 三角形邊角關係 樞紐定理 背景知識:不等式 顧震宇 台灣數位學習科技股份有限公司.
第二章 负债 1、负债的概念:是指过去的交易或事项形成的、预 期会导致经济利益流出企业的现时义务。 2、负债的分类 流动负债 短期借款
第 22 课 孙中山的民主追求 1 .近代变法救国主张的失败教训: “师夷之长技以制 夷”“中体西用”、兴办洋务、变法维新等的失败,使孙中山
编译原理与技术 词法分析 (2) 2018/12/30 《编译原理与技术》讲义.
24.3 正多边形和圆 2019年1月2日星期三.
如图:直线AB、CD相交于O,图中有哪些角具有特殊位置关系?这些角数量上有什么关系?
班級:財金一A 姓名:吳佩玲 學號:4990S024 指導老師:蔡享翰 老師
知识点二 国际环境法的实施.
教学建议 学习目标 § 6.1 矩阵的概念 § 6.2 矩阵运算 § 6.3 矩阵的初等行变换与矩阵的秩 § 6.4 线性方程组的消元解法
第二节 山地的形成.
基础会计.
5.2.2平行线的判定.
线段 射线 直线.
第一章-第二节 –有理数的加法(2).
1.理解力和运动的关系,知道物体的运动不需要力来维持。
坚持,努力,机会留给有准备的人 第一章 四大金融资产总结 主讲老师:陈嫣.
106學年度中區工作坊PART1 素養導向教學示例 -分享與實作- 分享人:周雅釧.
篮球运动 竞赛组织与编排 张才超 教授 广州体育学院.
畢氏定理(百牛大祭)的故事 張美玲 製作 資料來源:探索數學的故事(凡異出版社).
102年人事預算編列說明 邁向頂尖大學辦公室製作.
Presentation transcript:

第二章 词法分析3 非确定有限自动机NFA 非确定有限自动机(NFA)的定义 NFA的确定化:NFA到DFA的转换(子集法)

2.5 非确定有限自动机NFA 例:设计一个DFA M, ={0,1}: L(M) ={x|x为01串结尾的字符串} S0 S1 S2 S0 S1 1 S2 1 NFA M’ 0,1 S0 S2 S1 1 2

带“空”边的自动机 + D - - 1 2 2 ε D NFA 3

(一) 非确定有限自动机NFA的定义 一个非确定有限自动机NFA A是一个五元组A=(S,,f,S0,Z).其中 S:状态集 :字母表 f: S(∪{})2S,f(si,a)={sj1,sj2,…} S0:初始状态集 Z:终止状态集

(二)NFA和DFA的区别 总结来看NFA与DFA相比其非确定性有3点: 状态转换函数可为多值函数,一个状态接受同一个输入字符可以转向多个不同后继状态下; 允许有多个开始状态; 允许有空边,即在没有任何输入的情况下允许进行状态转换。 之前的保研考试还考过这个

例:有NFA A = ({s0,s1,s2},{a, b}, f, {s0,s1}, {s2}) f(s0,a)={s0,s1} f(s0,b)={s0} f(s1, )={s2} f(s2,a)={s2} f(s2,b)={s2} a b  s0+ {s0,s1} {s0} s1+ {s2} s2*

(三)NFA所能接受的语言 定义:设A是一个NFA,A= (S,, f, S0, Z), 则定义A接受(识别)的语言L(A)为从任意初始状态到任意终止状态所接受的字符串的集合。 NFA所能接受的串与DFA的定义是相同的, 但NFA实现起来很困难

(四) 自动机的等价和确定化 定义:设A1和A2是同一个字母表上的自动机,如果有L(A1)=L(A2),则称A1和A2等价。 NFA的确定化 由NFA构造出与其等价的DFA称为NFA确定化。 8

就是让DFA的某一个状态去记录NFA读入一个输入符号后可能达到的一组状态。 NFA到DFA的确定化转换算法 NFA确定化子集法构造思想: 就是让DFA的某一个状态去记录NFA读入一个输入符号后可能达到的一组状态。 NFA A {sj1,sj2,…,sjn} DFA A’ si’ 9

无空边NFA转换为DFA—子集法 NFA A:={a,b} S2 a S3 S0 a a Si Sm S4 a … … Sk b Sj a b S1 S5 Sn b Sl b b S6 S7 DFA A’ S1’ {S2 S3 S4 } a Sj’ {Sm Sn } a Sk’ {Sk Sl } b S0’ {S0 S1 } Si’ {Si Sj } … … S2’ {S5 S6 S7 } b

带“空”边的NFA自动机 + D - - 1 2 2 ε D D={1,2,…,9} 11

带空边的NFA的确定化 定义1:状态集J的闭包 设J是NFA A状态集的子集,定义J的闭包 -CLOSURE(J)状态集为: ① 若状态q ∈J,则q ∈_CLOSURE(J); ② 若q ∈_CLOSURE(J),那么从q出发经任意条ε边到达的任何状态q’都属于-CLOSURE(J)。 12

设I={S1, … , Sm }是NFA状态集的子集,对于任意的输入a,则状态集I经过输入a转换的状态集合 Ia=_CLOSURE(J) 其中: J = f (S1,a)  f (S2,a)… f(Sm,a) 13

带空边NFA转换为DFA—子集法 NFA:A ={a,b} a S5 S8 ε ε ε S0 a S6 … … S3 S2 ε S9 ε 状态集Ia={S5,S6 ,S7,S8,S9} a S5 S8 状态集I={S0,S1 ,S2,S3,S4} ε ε ε S0 a S6 … … S3 S2 ε S9 ε a S7 S4 S1 状态集J={S5,S6,S7} 状态集K={S0,S1} DFA:A’ S0’ I S1’ Ia a

例:NFA确定化 DFA a b S1+ S2* S3 S4* S5* {1,2}+ {4,5,7,6,2} {3,8} {4,5,7,6,2}* {3,9,8} S3 {3,8} {9} S4* {3,9,8}* {9} S5* 15 {9}*

输入字 状态 a b + 1 {4,5,7,6,2} 2 {1,2} {3,8} 3 * {4,5,7,6,2} 2 {9,3,8} 4 3 {3,8} {9} 5 * {9,3,8} 4 {9} 5 1 3 2 4 5 b a 5 * {9}

(五) DFA的化简 DFA的化简的必要性 1 2 3 4 5 6 7 a b c d a b c d 1 2 3 4

最小自动机 最小自动机定义: 如果DFA M 没有无关状态,也没有等价状态,则称M为最小(最简)自动机。 (1)无关状态:从开始状态没有到S的通路,或S到任意终止状态无通路,称S为M的无关状态。 a 1 2 b 所以自动机最小化就是两个问题,一个是合并可以合并的等价状态,一个是删去无用的无关状态。如果一个自动机没有这两种状态,那他就是我们所说的最简自动机,我们想要化简自动机的话只需要把这两个工作都完成就可以了。 对于第二种类型来说是比较好处理的,看一个节点是否有通路其实一看就知道了,找到这类状态直接删掉。麻烦的是等价状态,哪些状态是可以合并的,哪些是不能的,有时候简单的可以看出来,但是任给你一个自动机,你想直接看出来是很难的,所以下面就要介绍怎么化简。 (2)等价状态:对DFA中的两个状态S1和S2,如果将它们看作是初始状态,所接受的符号串相同,则定义S1和S2是等价的。

(1)一致性条件:S1和S2同时为可接受状态或不可接受状态。 (2)蔓延性条件:S1和S2对所有输入符号必须都要转换到等价状态里。 两个状态等价的条件 两个状态S1和S2等价的条件是: (1)一致性条件:S1和S2同时为可接受状态或不可接受状态。 (2)蔓延性条件:S1和S2对所有输入符号必须都要转换到等价状态里。 所以自动机最小化就是两个问题,一个是合并可以合并的等价状态,一个是删去无用的无关状态。如果一个自动机没有这两种状态,那他就是我们所说的最简自动机,我们想要化简自动机的话只需要把这两个工作都完成就可以了。 对于第二种类型来说是比较好处理的,看一个节点是否有通路其实一看就知道了,找到这类状态直接删掉。麻烦的是等价状态,哪些状态是可以合并的,哪些是不能的,有时候简单的可以看出来,但是任给你一个自动机,你想直接看出来是很难的,所以下面就要介绍怎么化简。 DFA终止状态和非终止状态是不等价的。

DFA化简方法—状态分离法 状态分离法步骤 状态分离初始时:终止状态为一组,非终止状态为一组; 对每一组进行分离:若每组中的元素接收中的任意字符会映射到不同的组,则表示他们不等价,就可以分离出来建立新的组; 重复2,知道没有新组产生,此时每组中的状态都为等价状态。 20

例1 a 1 7 b 4 6 8 1:初始状态划分: 2 2 5 5 5 5 { 1,2,3,5 } ∪ { 4,6,7,8 } 2 2 5 5 5 5 2:经过a转向 说的话还是抽象,我们来看个例子 {1235} {4678} 先从终止分 ,一看 不能分 暂时 再看1235 1都1组 2a 到缺省 b到2组 所以不等的 变成了{1 3} {2 5}前面不能分离的现在可能也可能分离了,因为原来在一组 现在分成两组了 再做 然后发现都不能分离了,就分离结束了 { 1,2,3,5 } ∪ { 4,6,7,8 } 经过b转向 3 4 3 7 6 6 8 8

a 1 7 b 3 2 5 4 6 8 例1 3 3 4 7 6 6 8 8 3经过b转向 说的话还是抽象,我们来看个例子 {1235} {4678} 先从终止分 ,一看 不能分 暂时 再看1235 1都1组 2a 到缺省 b到2组 所以不等的 变成了{1 3} {2 5}前面不能分离的现在可能也可能分离了,因为原来在一组 现在分成两组了 再做 然后发现都不能分离了,就分离结束了 { 1,3} ∪ { 2,5 } ∪ { 4,6,7,8 } 3经过a转向 2 2 5 5 5 5

a 1,3 b 4,6,7,8 2,5 化简后 S0 S1 S2 3 3 4 7 6 6 8 8 3经过b转向 说的话还是抽象,我们来看个例子 {1235} {4678} 先从终止分 ,一看 不能分 暂时 再看1235 1都1组 2a 到缺省 b到2组 所以不等的 变成了{1 3} {2 5}前面不能分离的现在可能也可能分离了,因为原来在一组 现在分成两组了 再做 然后发现都不能分离了,就分离结束了 { 1,3} ∪ { 2,5 } ∪ { 4,6,7,8 } 3经过a转向 2 2 5 5 5 5

例2: A C D B a b E STEP1.求初始划分: SS={A,B,C,D}∪{E} D C B A E {A,B,C}对a是否是可区分的? {A,B,C}对b是否是可区分的? D C B A E D C B A {A,B,C,D}对a是否是可区分的? E {A, C}对a是否是可区分的? D C B A E {A, C}对b是否是可区分的? D C B A D C B A E {A,B,C,D}对b是否是可区分的? STEP1.求初始划分: SS={A,B,C,D}∪{E} STEP2. {A,B,C,D} 是否是可区分的? SS={A,B,C,D}∪{E} ={A,B,C}∪{D}∪{E} {A,B,C} 是否是可区分的? SS={A,B,C,D}∪{E} ={A,B,C}∪{D}∪{E} ={A,C}∪{B}∪{D}∪{E} {A, C} 是否是可区分的? E

A C D B E a b SS= {A,C}∪{B}∪{D}∪{E} = {A}∪{B}∪{D}∪{E} b A D B E a

(六)正则表达式和有限自动机的相互转化 定理 对∑上的每一个正则表达R,存在一个∑上的非确定有限自动机M,使得 L(M) = L(R) . NFA 正则表达式 DFA

正则表达式到NFA的转换  W X W 1 2 3 a b  1 2 a b a | b b* 27

S Z A S Z S A B Z 例 :有正规表达式(a|b)*aa,为之构造等价的NFA. (a|b)*aa (a|b)* (a|b)*

(a|b)* S A B a Z S C A B a Z ε a|b S C A B a Z ε a,b

NFA到正则表达式的转换 W S02 Z01 Z02 … S02 Z01 Z02 … ε ε ε ε a b a b a a | b b b 3 1 3 a a | b 1 2 1 2 b b a b* c a c 1 3 1 2 3 30

例 有如下图所示的NFA M,试构造与之等价的正则表达式r 6 5 1 3 2 4 b

Z S a 6 5 1 3 2 4 b ε ba S ε a ab Z b 6 5 1 2

ba S ε a ab Z b 6 5 1 2 ab|ba 6 5 b Z ε S a 1 2

ab|ba 6 5 b Z ε S a 1 2 a 6 1 2 (ab|ba )a*b S ε Z a(ab|ba )a*b S Z

练习1: 给出一个正则表达式(a|b)(c|d)*(e|f),请画出最简DFA。 (1)将正则表达式转为NFA e|f 3 1 a|b 2 e|f 3 1 a|b 2 (c|d)* a 2 4 b ε c d 1 3 e f 直观的看,肯定是这样的一种形式,那我们就看看用公式怎么做 写一下这个过程 这个自动机是非确定的,所以要进行转化,转换成确定的。给出这个过程

a 2 4 b ε c d 1 e f 转化成DFA (2) NFA的确定化 a b c d e f S0+ {0}+ {123} a 2 4 b ε c d 1 3 e f 转化成DFA a b c d e f S0+ {0}+ {123} {123} 画出来~ S1 {123} {23} {23} {4} {4} S2 {23} {23} {23} {4} {4} S3* {4}*

转化成DFA 2 3 c, d c ,d 1 a, b e, f a b c d e f S0+ S1 S2 S3 S3* 画出来~ 2 3 c, d c ,d 1 a, b e, f

3 a, b c ,d e, f 初始划分:{S0,S1,S2} {S3} 等价状态:{S0} {S1,S2} {S3} (3) DFA的最小化 a b c d e f S0+ S1 S2 S3 S3* 画出来~ (a|b)(c|d)*(e|f) 1,2 3 a, b c ,d e, f

S Z S A B Z 练习2 构造与正则表达式a((a|b)*ab*a)b等价的最简DFA,要求给出中间转换步骤和结果。

a S A B (a|b)*ab*a Z b S D C B a Z b A E (a|b)* b*

S A C B a Z b (a|b)*ab* S D C B a Z b A E (a|b)* b*

S C B a Z b A E D F ε a,b G ε b (a|b)* b*

F S C B Z A E D G ε a b a,b a b {S}+ {A,F,D} {A,F,D} {F,E,D,G,C} {F,D} {F,E,B,D,G,C} {F,G,D,C} {F,D} {F,E,D,G,C} {F,D} {F,E,B,D,G,C} {F,E,B,D,G,C} {F,G,Z,D,C} {F,G,D,C} {F,E,B,D,G,C} {F,G,D,C} {F,G,Z,D,C} {F,E,B,D,G,C} {F,G,D,C} *

a b 确 定 化 结 果 a b b a a b a a a b a b b 0+ 1 1 2 3 2 4 5 3 2 3 4 4 6 5 * a b 4 3 b a a b a a a 6 1 2 b a b 5 b

a b 划分法化简 a b b a a b a a a b a b b 0+ 1 1 2 3 2 4 5 3 2 3 4 4 6 5 4 5 * a b 4 3 b a a b a a a 6 1 2 b a b 5 b

a b 划分法化简 a b b a a b a a a b a b b 0+ 1 1 2 3 2 4 5 3 2 3 4 4 6 5 4 5 * a b 4 3 b a a b a a a 6 1 2 b a b 5 b

a b 划分法化简 a b b a a b a a a b a b b 0+ 1 1 2 3 2 4 5 3 2 3 4 4 6 5 4 5 * a b 4 3 b a a b a a a 6 1 2 b a b 5 b

a b 0+ 1 1 2 3 化简 结 果 2 4 5 3 2 3 4 4 6 5 4 5 6 4 5 * 1,3 2,5 a 4 6 b