有限自动机理论精品文稿.ppt
《有限自动机理论精品文稿.ppt》由会员分享,可在线阅读,更多相关《有限自动机理论精品文稿.ppt(173页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、有限自动机理论第1页,本讲稿共173页定义语言可以从两个方面可以从两个方面进行进行:)从)从产生产生语言的角度;语言的角度;)从)从接收接收(或识别或识别)语言的角度。语言的角度。第2页,本讲稿共173页形式语言研究内容形式语言研究内容产生产生一个语言一个语言:1)定义语言中的定义语言中的基本句子基本句子;2)根据根据其余句子其余句子的的形成规则形成规则,产生产生出出该语言所包含的所有该语言所包含的所有句子句子。第3页,本讲稿共173页有限自动机有限自动机研究内容研究内容 使用某种使用某种自动机模型自动机模型来接收字符串来接收字符串 接收接收的所有字符串形成的集合,也是一的所有字符串形成的集合
2、,也是一个语言个语言第4页,本讲稿共173页统一的理论 形式语言与自动机作为统一的理论形式语言与自动机作为统一的理论,实际实际上包括上包括3个方面的内容个方面的内容:1)形式语言形式语言理论理论(产生语言产生语言)2)自动机自动机理论理论(接收语言接收语言)3)形式语言与自动机的形式语言与自动机的等价性等价性理论理论第5页,本讲稿共173页有限状态自动机有限状态自动机 FA(Finite state Automaton)FA是为研究是为研究 有限存储有限存储的计算过程的计算过程 正则语言正则语言而抽象出的一种计算模型。而抽象出的一种计算模型。第6页,本讲稿共173页两类有限状态自动机接收器接收
3、器 判断是否判断是否接收接收输入串;输入串;转换器转换器 对给定输入对给定输入产生输出产生输出。第7页,本讲稿共173页 FA还可以分成还可以分成确定(确定(DFA)与与非确非确定(定(NFA)两种。两种。第8页,本讲稿共173页等价性等价性 有限状态自动机识别的语言称为有限状态自动机识别的语言称为有限状态语言有限状态语言-FSL.从产生语言角度而言,从产生语言角度而言,FSL就是就是右线性语言右线性语言-RLL 从正则运算角度而言,从正则运算角度而言,FSL就就是是正则语言正则语言-RL。第9页,本讲稿共173页 有限状态自动机除了它在理论上的有限状态自动机除了它在理论上的价值外,价值外,还
4、在还在数字电路设计数字电路设计、词法分析词法分析、文文本编辑程序本编辑程序等领域得到广泛应用等领域得到广泛应用第10页,本讲稿共173页3.1 有限状态自动机有限状态自动机 有限状态自动机是具有有限状态自动机是具有离散离散输入和输输入和输出系统的一种出系统的一种数学模型数学模型。第11页,本讲稿共173页有限状态自动机有限状态自动机物理模型物理模型a1a2a3ajanan+1FSC第12页,本讲稿共173页 一个输入一个输入存储带(输入带)存储带(输入带),带被,带被分解为分解为单元单元,每个单元存放一个输入,每个单元存放一个输入符号符号(字母表上的符号字母表上的符号)。整个输入串从带的左端点
5、开始存放,整个输入串从带的左端点开始存放,而带的右端可以而带的右端可以无限扩充无限扩充;第13页,本讲稿共173页 一个有穷状态控制器(一个有穷状态控制器(FSC)该控制器的状态只能是有限多个该控制器的状态只能是有限多个 FSC通过一个通过一个读头读头读出读出当前带上单当前带上单元的字符。元的字符。第14页,本讲稿共173页 初始时,读头对应带的初始时,读头对应带的最左单元最左单元,每读出一个字符,读头每读出一个字符,读头向右向右自动自动移动一个单元。移动一个单元。读头读头(暂时暂时)不不允许允许向左移动向左移动。第15页,本讲稿共173页有限状态自动机的一个动作为:有限状态自动机的一个动作为
6、:读头读头读出读出带上当前单元的字符带上当前单元的字符 FSC根据当前根据当前FSC的状态和读出的的状态和读出的字符,字符,进行进行状态改变状态改变;将读头将读头向右移动向右移动一个单元。一个单元。第16页,本讲稿共173页有限态自动机的动作有限态自动机的动作简化简化为:为:FSC根据根据 当前状态当前状态 和和 当前读取的带上当前读取的带上字符字符 进行进行状态改变状态改变。第17页,本讲稿共173页定义定义3-1 有限状态自动机有限状态自动机FAFA是一个五元式是一个五元式 FA=(Q,q0,F)Q是有限状态的集合是有限状态的集合 是字母表,也就是输入带上的是字母表,也就是输入带上的字符的
7、集合;字符的集合;第18页,本讲稿共173页 q0Q是开始状态;是开始状态;F Q是接收状态是接收状态(终止状态终止状态)集合;集合;第19页,本讲稿共173页是是QQ的状态转换函数,的状态转换函数,即即(q,x)=q 代表自动机在状态代表自动机在状态q时,扫描字符时,扫描字符x后后到达状态到达状态q第20页,本讲稿共173页 有限状态自动机的状态转换函数的有限状态自动机的状态转换函数的个数应该为个数应该为|Q|*|对于对于Q中的每个中的每个状态状态,都应该定,都应该定义对应义对应的每个的每个字母字母的的状态转换状态转换。第21页,本讲稿共173页DFA 这种有限状态自动机为这种有限状态自动机
8、为确定的有限确定的有限状态自动机状态自动机DFA。第22页,本讲稿共173页例3-1DFA=(q0,q1,0,1,q0,q0)其中其中:第23页,本讲稿共173页的表示:函数形式(q0,0)=q1(q0,1)=q1(q1,0)=q1(q1,1)=q0第24页,本讲稿共173页的表示:状态矩阵 Q 0q01q1q1q1q1q0第25页,本讲稿共173页的表示:状态图形式状态图是一个状态图是一个有向有向、有、有循环循环的图的图 一个节点表示一个状态;若有一个节点表示一个状态;若有(q,x)=q,则,则状态状态q到状态到状态q有一条有一条有向边有向边,并用,并用字母字母x作标记。作标记。第26页,本
9、讲稿共173页的表示 指向的状态是开始状态指向的状态是开始状态 两个圆圈两个圆圈代表代表接收状态接收状态;第27页,本讲稿共173页的表示:状态图状态图q11010q0第28页,本讲稿共173页 用状态图表示一个用状态图表示一个DFADFA 有向边的有向边的数目数目就是状态转换函数的个就是状态转换函数的个数。数。第29页,本讲稿共173页3.2 3.2 有限状态自动机识别语言有限状态自动机识别语言对于对于DFADFA,给定串,给定串w=xw=x1 1x x2 2xxn n;初始时,初始时,DFADFA处于开始状态处于开始状态q q0 0 从左到右逐个字符地扫描串从左到右逐个字符地扫描串w w第
10、30页,本讲稿共173页 在在(q(q0 0,x x1 1)=q)=q1 1的作用下的作用下 DFADFA处于状态处于状态q q1 1 在在(q(q1 1,x x2 2)=q)=q2 2的的作用下的的作用下 DFADFA处于状态处于状态q q2 2 第31页,本讲稿共173页当将串当将串w w扫描结束扫描结束后,后,若若DFADFA处于某一个处于某一个接收状态接收状态,则有限状态自动机能够则有限状态自动机能够接收接收串串w w第32页,本讲稿共173页对于对于可接收串可接收串DFADFA从从开开始始状状态态开开始始,在在扫扫描描串串的的过过程中,程中,状态逐个地变化状态逐个地变化,串扫描结束后
11、,串扫描结束后,到达到达某个某个接收状态接收状态。第33页,本讲稿共173页对于对于不可接收串不可接收串DFADFA从从开开始始状状态态开开始始,在在扫扫描描串串的的过过程程中,中,状态逐个地变化状态逐个地变化,串扫描结束后,串扫描结束后,处于处于非接收状态非接收状态。第34页,本讲稿共173页对于字母表对于字母表上的上的DFADFA 能识别的所有串的集合,就是能识别的所有串的集合,就是DFADFA能接收的语言能接收的语言:L(DFA)L(DFA)也称为有限状态语言(也称为有限状态语言(FSLFSL)第35页,本讲稿共173页思考思考如何如何形式化形式化定义定义L(DFA)L(DFA)?第36
12、页,本讲稿共173页定义3-4 扩展的状态转换函数给给定定DFADFA,扩扩展展的的状状态态转转换换函函数数*:QQ*QQ 即即 *(q,(q,w w)=q)=q即即DFADFA在在一一个个状状态态q q时时,扫扫描描串串w w后后到到达唯一达唯一确定确定的状态的状态qq第37页,本讲稿共173页递归扩展的状态转换函数 *(q q,)=,)=q q;*(q,a)=(q,a)(q,a)=(q,a)其中其中a a;第38页,本讲稿共173页对于串对于串w=w=a a(+)*(q q,w w)=*(q(q,a a)=(*(q,(q,),),a a)第39页,本讲稿共173页或者或者 对于串对于串w=
13、w=a a *(q(q,w w)=*(q(q,a a)=*(q(q,a a),),)第40页,本讲稿共173页定义定义3-6 DFA3-6 DFA接收的语言接收的语言DFA=(Q,qDFA=(Q,q0 0,F)F)接收的语言接收的语言 L(DFA)=w|L(DFA)=w|*(q(q0 0,w),w)FF第41页,本讲稿共173页思考思考如何描述如何描述 在某个在某个时刻时刻,DFA所处的情况?所处的情况?第42页,本讲稿共173页定义定义3-7 DFA3-7 DFA的瞬时描述(格局)的瞬时描述(格局)格局是一个二元式:格局是一个二元式:q qy y q q是是DFADFA当前状态当前状态 y
14、y是输入带上还没有被扫描到的串是输入带上还没有被扫描到的串 读头将扫描读头将扫描y y串的第串的第1 1个符号个符号第43页,本讲稿共173页 在在扫扫描描串串的的过过程程中中,格格局局在在发发生生转转换换(改变改变)格格局局的的(一一次次)转转换换的的原原因因是是由由于于函数函数的的(一次一次)作用作用第44页,本讲稿共173页 如果当前格局为:如果当前格局为:q qa ar r 有有函数:函数:(q(q,a)=qa)=q 则下一格局为:则下一格局为:qrqr ;格局的转换可以记为:格局的转换可以记为:qar qar=qr qr;第45页,本讲稿共173页DFA的特殊格局初始格局为:初始格局
15、为:q q0 0w w接收格局为:接收格局为:q qf f其中,其中,q qf f是某个接收状态是某个接收状态 第46页,本讲稿共173页使用使用=*代表格局的代表格局的任意次任意次转换转换使用使用=+代表格局的代表格局的多次多次转换转换第47页,本讲稿共173页可以使用可以使用格局的转换格局的转换方式定义方式定义FSLFSL第48页,本讲稿共173页DFADFA接收的语言接收的语言 L(DFA)=L(DFA)=w|q w|q0 0w=w=*q qf f;ww*且且q qf fFF第49页,本讲稿共173页定义3-8 DFA停机DFA将输入串扫描结束时将输入串扫描结束时 (自动自动)停机停机第
16、50页,本讲稿共173页注意1:DFA将输入串扫描结束停机时,将输入串扫描结束停机时,如果如果DFA处于某一个处于某一个接收状态接收状态,则则表示接收整个输入串;表示接收整个输入串;反之,则表示反之,则表示不接收不接收整个输入串整个输入串;第51页,本讲稿共173页注意2:对于状态对于状态q,如果如果不能识别不能识别字母字母a 则将状态转换到一个特殊的状态:则将状态转换到一个特殊的状态:陷阱状态陷阱状态qt 即即 (q,a)=qt第52页,本讲稿共173页 陷阱陷阱状态状态qt不能够改变为其他状态不能够改变为其他状态 即即 对于对于a (qt,a)=qt第53页,本讲稿共173页构造构造DFA
17、,分别接收语言,分别接收语言0,1*0,1+0 =0=0 01第54页,本讲稿共173页定理3-1 每个每个FSLFSL都是一个都是一个右线性语言右线性语言分析:分析:已知已知 接收接收FSL的的DFA 构造构造 右线性文法右线性文法产生该产生该FSL第55页,本讲稿共173页证明思路证明思路状态转换函数和产生式的状态转换函数和产生式的等价等价作用作用 (q,a)=q AaB 接收接收a 产生产生a 状态状态变化变化 非终结符号非终结符号变化变化结论结论:DFA:DFA状态状态等价于文法等价于文法非终结符非终结符第56页,本讲稿共173页思考思考 DFA的接收状态的作用的接收状态的作用第57页
18、,本讲稿共173页证明假设假设L L是字母表是字母表上的上的FSLFSL,则,则 L=L(DFA)L=L(DFA)第58页,本讲稿共173页 DFA=DFA=(Q Q,q q0 0,F F)构造构造右线性右线性文法文法G=(,G=(,Q,Q,q q0 0,P P)其中其中P P为:为:第59页,本讲稿共173页 qaqqaq|(q|(q,a)=qa)=q U U qqa a|(q|(q,a)Fa)F 特别,若特别,若q q0 0是接收状态,则是接收状态,则 q q0 0第60页,本讲稿共173页对于串w=x1x2xn:DFA:则文法有则文法有(q0,x1)=q1 q0 x1q1;(q1,x2)
19、=q2 q1x2q2;(qn-2,xn-1)=qn-1 qn-2xn-1qn-1(qn-1,xn)=qn qn-1xnqn 或或 qn-1xn 第61页,本讲稿共173页所以 DFA 文法文法*(q,)=q q=*q*(q0,w)F q0=*w第62页,本讲稿共173页例例3-2 DFA与文法的转换与文法的转换FSLFSL=(0,1)1=(0,1)1*00*接收该语言的接收该语言的DFADFA为:为:第63页,本讲稿共173页q11001q0第64页,本讲稿共173页构造构造正则正则文法产生该语言:文法产生该语言:q00q1|1q1|q10q0|1q1|0第65页,本讲稿共173页定理定理3-
20、2FSL对对补补运算封闭运算封闭第66页,本讲稿共173页证明:设设L L1 1是是上的上的FSL,FSL,且且L L1 1=L(DFA=L(DFA1 1),DFA DFA1 1=(Q Q,q q0 0,F F)第67页,本讲稿共173页构造构造 DFA DFA2 2=(Q Q,q q0 0,Q Q)DFADFA2 2接收的语言是接收的语言是 L L1 1的对应的全集的对应的全集,即即*第68页,本讲稿共173页构造构造 DFA DFA3 3=(Q=(Q,q q0 0,Q-FQ-F)DFA DFA3 3接收的语言是接收的语言是L L1 1的的补补 L L3 3=L(DFA=L(DFA3 3)也
21、是也是FSLFSL语言。语言。第69页,本讲稿共173页注意此时的此时的DFADFA1 1的的函数的个数为函数的个数为|Q|Q|*|第70页,本讲稿共173页基本的等价替换基本的等价替换l对于状态转换图,有基本的等价替换对于状态转换图,有基本的等价替换l变换为00,11第71页,本讲稿共173页3.3 DFA3.3 DFA识别语言的例子识别语言的例子 构造构造DFA,接收语言接收语言 L=ab 第72页,本讲稿共173页基本结构(接收基本句子)基本结构(接收基本句子)q1abq0q2第73页,本讲稿共173页增加增加陷阱状态陷阱状态后的后的DFADFAq1abq0qtbaa,ba,bq2第74
22、页,本讲稿共173页思考思考1 1 如如果果将将该该DFADFA的的所所有有状状态态都都设设置置为为接收状态接收状态(包括陷阱状态包括陷阱状态),接收的语言是接收的语言是?第75页,本讲稿共173页思考思考2 2 如如果果将将该该自自动动机机的的接接收收状状态态和和非非接接收收状态对调状态对调 接收的语言是接收的语言是?第76页,本讲稿共173页例3-4构造DFA识别语言识别语言L=L=x000yx000y|x,y0,1|x,y0,1*第77页,本讲稿共173页分析 该语言的特点是该语言的特点是 语语言言中中的的每每个个串串都都包包含含连连续续的的3 3个个0 0(即每个串都包含子串(即每个串
23、都包含子串000000)第78页,本讲稿共173页 因因此此,对对于于任任何何输输入入串串,有有限限状状态态自自动动机机的的任任务务就就是是要要检检查查该该输输入入串串中中是否存在子串是否存在子串000000,一一旦旦发发现现输输入入串串包包含含有有000000,则则表表示示整个输入串整个输入串是是句子句子。第79页,本讲稿共173页因此,在确认输入串包含因此,在确认输入串包含000000后,后,就就可可以以逐逐一一地地读读入入000000后后面面的的全全部字符,并接收该输入串。部字符,并接收该输入串。第80页,本讲稿共173页思考思考问题的关键是问题的关键是?如何如何发现发现子串子串0000
24、00。第81页,本讲稿共173页由由于于字字符符是是逐逐一一读读入入的的,当当从从输输入入串串中读入一个中读入一个0 0时,时,它它有可能有可能是是000000的的第第1 1个个0 0,需要需要记住记住已经出现过一个已经出现过一个0 0;第82页,本讲稿共173页如果紧接着读入的是字符如果紧接着读入的是字符1 1,则刚读入的则刚读入的0 0就不是就不是000000的第的第1 1个个0 0需要需要重新寻找重新寻找000000子串的第子串的第1 1个个0 0;第83页,本讲稿共173页如如果果紧紧接接着着读读入入的的还还是是0 0,它它有有可可能能是是000000的的第第2 2个个0 0,也需要也
25、需要记住记住这个这个0 0,继续读入字符,若是继续读入字符,若是0 0,则,则发现发现000000否则,需要否则,需要重新重新寻找寻找000000。第84页,本讲稿共173页初始状态:初始状态:q q0 0接收接收0 0,到达状态,到达状态q q1 1接收接收00,00,到达状态到达状态q q2 2接收接收000,000,到达状态到达状态q q3 3第85页,本讲稿共173页因此,因此,基本的基本的状态转移函数为:状态转移函数为:(q(q0 0,0)=q0)=q1 1 (q (q1 1,0)=q0)=q2 2 (q (q2 2,0)=q0)=q3 3用于接收基本句子用于接收基本句子000000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有限 自动机 理论 精品 文稿
限制150内