有限自动机理论3章有限状态自动机.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《有限自动机理论3章有限状态自动机.ppt》由会员分享,可在线阅读,更多相关《有限自动机理论3章有限状态自动机.ppt(373页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章有限状态自动机有限状态自动机定义语言定义语言可以从两个方面可以从两个方面进行进行:)从)从产生产生语言的角度;语言的角度;)从)从接收接收(或识别或识别)语言的角度。语言的角度。形式语言研究内容形式语言研究内容产生产生一个语言一个语言:1)定义语言中的定义语言中的基本句子基本句子;2)根据根据其余句子其余句子的的形成规则形成规则,产生产生出该语言所包含的所有出该语言所包含的所有句子句子。有限自动机有限自动机研究内容研究内容使用某种使用某种自动机模型自动机模型来接收字符串来接收字符串接收接收的所有字符串形成的集合,也的所有字符串形成的集合,也是一个语言是一个语言统一的理论形式语言与自
2、动机作为统一的理论形式语言与自动机作为统一的理论,实实际上包括际上包括3个方面的内容个方面的内容:1)形式语言形式语言理论理论(文法产生语言文法产生语言)2)自动机自动机理论理论(自动机接收语言自动机接收语言)3)形式语言与自动机的形式语言与自动机的等价性等价性理论理论(文文法与自动机等价转换法与自动机等价转换)有限状态自动机有限状态自动机FA(FinitestateAutomaton)FA是为研究是为研究有限存储有限存储的计算过程的计算过程正则语言正则语言而抽象出的一种计算模型。而抽象出的一种计算模型。两类有限状态自动机有限状态自动机接收器接收器判断是否判断是否接收接收输入串;输入串;转换器
3、转换器对给定输入串对给定输入串产生输出产生输出。FA还可以分为还可以分为确定的确定的FA-DFA DeterministicFinitestateAutomaton非确定非确定FA-NFANon-deterministicFinitestateAutomaton等价性等价性有限状态自动机有限状态自动机接收接收的语言称的语言称为为有限状态语言有限状态语言-FSL从从产生产生语言角度而言,语言角度而言,FSL就就是是右线性语言右线性语言-RLL从从(正则正则)运算运算角度而言,角度而言,FSL就是就是正则语言正则语言-RL有限状态自动机除在理论上的研有限状态自动机除在理论上的研究价值外究价值外还在
4、还在数字电路设计数字电路设计、编译技术、编译技术(词词法分析法分析)、系统辅助软件、系统辅助软件(文本编辑文本编辑程序程序)、漏洞检测漏洞检测、交通控制交通控制等应用等应用领域得到广泛应用领域得到广泛应用3.1有限状态自动机有限状态自动机有限状态自动机是具有有限状态自动机是具有离散离散输入和输入和离散离散输出的一种输出的一种数学模型数学模型。l有限状态自动机是否有限状态自动机是否接收串接收串wl有限状态自动机是否有限状态自动机是否接收语言接收语言L有限状态自动机有限状态自动机物理模型物理模型a1a2a3 aj anan+1FSC一个输入一个输入存储带(输入带)存储带(输入带),带,带被分解为被
5、分解为单元单元,每个单元存放一个,每个单元存放一个输入符号输入符号(字母表上的符号字母表上的符号)。整个输入串从带的左端点开始存整个输入串从带的左端点开始存放,而带的右端可以放,而带的右端可以无限扩充无限扩充;一个有穷状态控制器(一个有穷状态控制器(FSC)该控制器的状态只能是有限多个该控制器的状态只能是有限多个FSC通过通过读头读头读取读取当前带上单元当前带上单元的字符。的字符。初始时,读头对应带的初始时,读头对应带的最左单最左单元元,每读取一个字符,读头,每读取一个字符,读头向右向右自动移动一个单元。自动移动一个单元。读头读头不不允许允许向左移动向左移动。有限状态自动机的一个动作为:有限状
6、态自动机的一个动作为:读头读取带上当前单元的字符读头读取带上当前单元的字符FSC根据当前根据当前FSC的的状态状态和读取和读取的的字符字符,进行进行状态改变状态改变;将读头将读头向右移动向右移动一个单元。一个单元。有限态自动机的动作有限态自动机的动作简化简化为:为:FSC根据根据当前状态当前状态和和当前读取的带上当前读取的带上字符字符进行进行状态改变状态改变。定义定义3-1有限状态自动机有限状态自动机FAFA是一个五元式是一个五元式FA=(Q,q0,F)Q是有限状态的集合是有限状态的集合是字母表,即输入带上的字是字母表,即输入带上的字符集合符集合q0Q是开始状态是开始状态F Q是接收状态是接收
7、状态(终终止状止状态态)集合集合是是QQ的状态转换函数的状态转换函数即即(q,x)=q代表自动机在状态代表自动机在状态q时,扫描字符时,扫描字符x后到达状态后到达状态q有限状态自动机的状态转换函有限状态自动机的状态转换函数的个数应该为数的个数应该为|Q|*|对于对于Q中的每个中的每个状态状态,需要定,需要定义对应义对应每个每个字母字母的的状态转换状态转换。DFA这种有限状态自动机为这种有限状态自动机为确定的有确定的有限状态自动机限状态自动机DFA。例3-1定义定义DFA为:为:DFA=(q0,q1,0,1,q0,q0)其中其中:的表示的表示:函数形式函数形式(q0,0)=q1(q0,1)=q1
8、(q1,0)=q1(q1,1)=q0的表示的表示:状态矩阵:状态矩阵Q0q01q1q1q1q1q0的表示的表示:状态图形式状态图形式状态图是一个状态图是一个有向有向、有、有循环循环的图的图一个节点表示一个状态;一个节点表示一个状态;若有若有(q,x)=q,则,则状态状态q到状态到状态q有一条有一条有向边有向边,并,并用字母用字母x作标记。作标记。的表示 指向的状态是开始状态指向的状态是开始状态 两个圆圈两个圆圈代表代表接收状态接收状态;的表示:状态图状态图q11010q0 用状态图表示一个用状态图表示一个DFADFA 有向边的有向边的数目数目就是状态转换函数就是状态转换函数的个数。的个数。默认
9、默认(q q,)=)=q q不是状态转换函数不是状态转换函数3.2 3.2 有限状态自动机接收语言有限状态自动机接收语言对于对于DFADFA,给定串,给定串w=xw=x1 1x x2 2x xn n 初始时,初始时,DFADFA处于开始状态处于开始状态q q0 0 从左到右逐个字符地扫描串从左到右逐个字符地扫描串w w 在在(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 当将串当将串w w扫描结束扫描结束后,后,若若DFAD
10、FA处于某一个处于某一个接收状态接收状态,则有限状态自动机能够则有限状态自动机能够接收接收串串w w对于对于可接收串可接收串DFADFA从从开开始始状状态态开开始始,在在扫扫描描串串的的过程中,过程中,状态逐个地变化状态逐个地变化,串扫描结束后,串扫描结束后,到达到达某个某个接收状态接收状态。对于对于不可接收串不可接收串DFADFA从从开开始始状状态态开开始始,在在扫扫描描串串的的过程中,过程中,状态逐个地变化状态逐个地变化,串扫描结束后,串扫描结束后,处于处于非接收状态非接收状态。对于字母表对于字母表上的上的DFADFA 能够接收的所有串的集合,就是能够接收的所有串的集合,就是DFADFA能
11、接收的语言,记为能接收的语言,记为L(DFA)L(DFA)也称为有限状态语言(也称为有限状态语言(FSLFSL)思考思考如何如何形式化形式化定义定义L(DFA)L(DFA)?定义3-4 扩展的状态转换函数扩展的状态转换函数给定给定DFADFA,扩展的状态转换函数,扩展的状态转换函数 *:Q Q*QQ 即即 *(q,q,w w)=q)=q即即DFADFA在在一一个个状状态态q q时时,扫扫描描串串w w后后到达唯一到达唯一确定确定的状态的状态qq递归扩展的状态转换函数 *(q q,)=)=q q *(q,q,a a)=)=(q,a(q,a)其中其中a a对于串对于串w=w=a a(+)*(q q
12、,w w)=*(q(q,a a)=(*(q,q,),),a a)或者或者 对于串对于串w=w=a a *(q(q,w w)=*(q(q,a a)=*(q(q,a a),),)定义定义3-6 DFA3-6 DFA接收的语言接收的语言DFA=(Q,qDFA=(Q,q0 0,F)F)接收的语言接收的语言 L(DFA)=L(DFA)=w|w|*(q(q0 0,w),w)FF思考思考如何描述如何描述在某个在某个时刻时刻,DFA所处的情况?所处的情况?定义定义3-7 DFA3-7 DFA的瞬时描述(格局)的瞬时描述(格局)格局是一个二元式:格局是一个二元式:q qy y q q是是DFADFA当前状态当前
13、状态 y y是输入带上还没有被扫描到的串是输入带上还没有被扫描到的串 读头将扫描读头将扫描y y串的第串的第1 1个字母个字母 在在扫扫描描串串的的过过程程中中,格格局局在在发发生转换生转换(改变改变)格格局局的的(一一次次)转转换换的的原原因因是是由由于于函数函数的的(一次一次)作用作用 如果当前格局为:如果当前格局为:q qa ar r 有有函数:函数:(q(q,a)=qa)=q 则下一格局为:则下一格局为:qrqr 格局的转换可以记为:格局的转换可以记为:qarqar =qrqrDFA的特殊格局初始格局为:初始格局为:q q0 0w w接收格局为:接收格局为:q qf f其中,其中,q
14、qf f是某个接收状态是某个接收状态 使用使用=*代表格局的代表格局的任意次任意次转换转换使用使用=+代表格局的代表格局的多次多次转换转换可以使用可以使用格局的转换格局的转换方式定义方式定义FSLFSLDFADFA接收的语言接收的语言 L(DFA)=L(DFA)=w|q w|q0 0w=w=*q qf f;ww*且且q qf fFF 定义3-8 DFA停机DFA将输入串扫描结束时将输入串扫描结束时(自动自动)停机停机这是这是DFA唯一的停机情况唯一的停机情况注意1:DFA将输入串扫描结束停机时,将输入串扫描结束停机时,如果如果DFA处于某一个处于某一个接收状态接收状态,则表示接收整个输入串;则
15、表示接收整个输入串;反之,则表示反之,则表示不接收不接收整个输入串整个输入串;注意2:对于状态对于状态q,如果如果不能接收不能接收字母字母a则将状态转换到一个特殊的状态:则将状态转换到一个特殊的状态:陷阱状态陷阱状态qt陷阱陷阱状态状态qt不能够改变为其他状态不能够改变为其他状态即即对于对于a(qt,a)=qtqt不能够不能够接收接收任意字母任意字母构造构造DFA,分别接收语言,分别接收语言、0、01、0*、0+(0+1)*、(0+1)+01*0、1*00(0+1)*(0+1)*00(0+1)*0(0+1)*10(0+1)*0+1(0+1)*1定理3-1 每个每个FSLFSL都是一个都是一个右
16、线性语言右线性语言分析:分析:已知已知接收接收FSL的的DFA需要需要构造构造RLG,使得使得L(RLG)=FSL等价等价思路思路DFA最重要的部分是状态转换函数最重要的部分是状态转换函数文法最重要的部分是产生式文法最重要的部分是产生式考虑状态转换函数和产生式的考虑状态转换函数和产生式的等等价作用价作用:将将状态转换函数状态转换函数改造改造为产生式为产生式等价等价思路思路状态转换函数和产生式的状态转换函数和产生式的等价等价作用作用(q,a)=qAaB接收接收a产生产生a状态状态变化变化非终结符号非终结符号变化变化结论结论:DFA:DFA状态状态等价于文法等价于文法非终结符非终结符状态转换函数等
17、价于产生式状态转换函数等价于产生式构造文法的基本思路:构造文法的基本思路:l将将的的DFA的的状态状态当作是当作是RLG的的非终结非终结符符(开始状态就是开始符号开始状态就是开始符号)l对于某个句子:对于某个句子:DFA通过状态的改变,逐步通过状态的改变,逐步(自左向(自左向右)右)接收接收句子的每个字母;句子的每个字母;RLG通过非终结符号的改变,逐步通过非终结符号的改变,逐步(自左向右)(自左向右)产生产生句子的每个字母。句子的每个字母。思考思考DFA的接收状态的作用的接收状态的作用证明假设假设L L是字母表是字母表上的上的FSLFSL,则,则 L=L(DFA)L=L(DFA)DFA=DF
18、A=(Q Q,q q0 0,F F)构造构造右线性右线性文法文法G=(,G=(,Q,Q,q q0 0,P P)其中其中P P为:为:qaqqaq|(q|(q,a)=qa)=q U U qaqa|(q(q,a)Fa)F 特别,若特别,若q q0 0是接收状态,则是接收状态,则 q q0 0对于句子w=x1x2xnDFA:则文法有则文法有(q0,x1)=q1q0 x1q1(q1,x2)=q2q1x2q2(qn-2,xn-1)=qn-1qn-2xn-1qn-1(qn-1,xn)=qn qn-1xnqn或或qn-1xn所以DFA文法文法*(q,)=qq=*q*(q0,w)Fq0=*w注意:注意:陷进状
19、态在文法中是无用非终结符陷进状态在文法中是无用非终结符例例3-2DFA与文法的转换与文法的转换FSLFSL=(0,1)1=(0,1)1*00*接收该语言的接收该语言的DFADFA为:为:q11001q0构造构造正则正则文法产生该语言:文法产生该语言:q00q1|1q1|q10q0|1q1|0定理定理3-2FSL对对补补运算封闭运算封闭证明:设设L L1 1是是上的上的FSL,FSL,且且L L1 1=L(DFA=L(DFA1 1),DFA DFA1 1=(Q Q,q q0 0,F F)构造构造 DFA DFA2 2=(Q Q,q q0 0,Q Q)DFADFA2 2接收的语言是接收的语言是 L
20、 L1 1的对应的全集的对应的全集,即即*构造构造 DFA DFA3 3=(Q=(Q,q q0 0,Q-FQ-F)L L3 3=L(DFA=L(DFA3 3)L L3 3接收的语言是接收的语言是L L1 1(关于关于*)的的补补 L L3 3也是也是FSLFSL语言。语言。注意此时的此时的DFADFA1 1的的函数的个数为函数的个数为|Q|Q|*|基本的等价替换基本的等价替换l对于状态转换图,有基本的等价替换对于状态转换图,有基本的等价替换l变换为00,113.3 DFA3.3 DFA接收语言的例子接收语言的例子构造构造DFA,接收语言接收语言L=ab基本结构(接收基本句子)基本结构(接收基本
21、句子)q1abq0q2增加增加陷阱状态陷阱状态后的后的DFADFAq1abq0qtbaa,ba,bq2思考思考1 1 如如果果将将该该DFADFA的的所所有有状状态态都都设设置置为为接收状态接收状态(包括陷阱状态包括陷阱状态),接收的语言是接收的语言是?思考思考2 2 如如果果将将该该自自动动机机的的接接收收状状态态和和非非接收接收状态对调状态对调 接收的语言是接收的语言是?例3-4构造DFA接收语言接收语言L=L=x000yx000y|x,y0,1|x,y0,1*分析 该语言的特点是该语言的特点是 语语言言中中的的每每个个串串都都包包含含连连续续的的3 3个个0 0(即每个串都包含子串(即每
22、个串都包含子串000000)因因此此,对对于于任任何何输输入入串串,有有限限状状态态自自动动机机的的任任务务就就是是要要检检查查该该输输入入串中是否存在子串串中是否存在子串000000,一一旦旦发发现现输输入入串串包包含含有有000000,则则表示表示整个输入串整个输入串是是句子句子。因此,在确认输入串包含因此,在确认输入串包含000000后,后,就就可可以以逐逐一一地地读读入入000000后后面面的的全全部字符,并接收该输入串。部字符,并接收该输入串。思考思考问题的关键是问题的关键是?如何如何发现发现子串子串000000。由由于于字字符符是是逐逐一一读读入入的的,当当从从输输入入串中读入一个
23、串中读入一个0 0时,时,它它有可能有可能是是000000的的第第1 1个个0 0,需要需要记住记住已经出现过一个已经出现过一个0 0;如果紧接着读入的是字符如果紧接着读入的是字符1 1,则刚读入的则刚读入的0 0就不是就不是000000的第的第1 1个个0 0需要需要重新寻找重新寻找000000子串的第子串的第1 1个个0 0;如如果果紧紧接接着着读读入入的的还还是是0 0,它它有有可可能能是是000000的的第第2 2个个0 0,也需要也需要记住记住这个这个0 0,继续读入字符,若是继续读入字符,若是0 0,则,则发现发现000000否则,需要否则,需要重新重新寻找寻找000000。初始状
24、态:初始状态:q q0 0接收接收0 0,到达状态,到达状态q q1 1接收接收00,00,到达状态到达状态q q2 2接收接收000,000,到达状态到达状态q q3 3因此,因此,基本的基本的状态转移函数为:状态转移函数为:(q(q0 0,0)=q0)=q1 1 (q (q1 1,0)=q0)=q2 2 (q (q2 2,0)=q0)=q3 3用于接收基本句子用于接收基本句子000000接收接收000000的状态图的状态图q0000q1q2q3其他状态转移函数为:其他状态转移函数为:(q(q0 0,1)=q1)=q0 0 期待期待0 0的出现的出现 (q(q1 1,1)=q1)=q0 0
25、重新寻找重新寻找000000 (q(q2 2,1)=q1)=q0 0 重新寻找重新寻找000000 (q (q3 3,0)=q0)=q3 3 扫描后续字符扫描后续字符 (q (q3 3,1)=q1)=q3 3 扫描后续字符扫描后续字符状态转移图状态转移图q00111000,1q1q2q3思考思考如果需要接收语言如果需要接收语言L 如何修改有限状态自动机如何修改有限状态自动机?思路:思路:考虑考虑开始状态开始状态的作用的作用思考思考:如果如果DFA的的开始状态开始状态只负责接收输入只负责接收输入串的第一个字母;串的第一个字母;文法的文法的开始符号开始符号只负责串的推导只负责串的推导的开始;的开始
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有限 自动机 理论 状态
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内