《形式语言与自动机》课件ch5.1-5.3.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《形式语言与自动机》课件ch5.1-5.3.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言与自动机 形式语言 自动机 课件 ch5 5.3
- 资源描述:
-
1、1School of Computer Science,BUPT第五章第五章 图灵机图灵机A.Turing在1936年介绍了这样一个通用的计算模型,该模型具有以下两个性质n该模型的每个过程都是有穷可描述的;n过程必须是由离散的、可以机械执行的步骤组成。图灵机是计算机的一种简单数字模型,尽管简单,但它具有模拟通用计算机的计算能力。n通过研究TM来研究递归可枚举集和部分递归函数n为算法和可计算性研究提供了形式化描述工具。2School of Computer Science,BUPT主要内容主要内容nTM的基本定义nTM的格局nTM接受的语言nTM的构造技术nTM的变形;n重点:TM的定义、TM的
2、构造。n难点:TM的构造。3School of Computer Science,BUPTFinitecontrolX1BB.X2XnXi带(带(tape)单元格(单元格(cell)带符(带符(tape symbol)n 读写头在每一时刻扫描带上的一个单元读写头在每一时刻扫描带上的一个单元n 带有一个最左单元,向右则是无限的。带有一个最左单元,向右则是无限的。n 带的每个单元可容纳一个带符号带的每个单元可容纳一个带符号开始时,最左边开始时,最左边n个单元装着输入(个单元装着输入(n0,n为有限数),它是为有限数),它是一个字符串,符号都选自一个字符串,符号都选自“带符号带符号”的一个子集,即所
3、谓的的一个子集,即所谓的“输输入符号集合入符号集合”。余下的有穷个单元都存放空白符,它是一个特殊。余下的有穷个单元都存放空白符,它是一个特殊的带符号,但的带符号,但不是不是输入符号。输入符号。图灵机的基本模型4School of Computer Science,BUPT在一个图灵机的动作中,图灵机根据带头(读写在一个图灵机的动作中,图灵机根据带头(读写头)所扫描的符号和有限控制器的状态可能作头)所扫描的符号和有限控制器的状态可能作n改变状态n在被扫描的带单元上重新写一个符号,以代替原来写在该单元上的符号.n将带头向左或者右移一个单元。*图灵机和双向有限自动机的区别:图灵机能改变图灵机和双向有
4、限自动机的区别:图灵机能改变它带上的符号。它带上的符号。图灵机的工作机制5School of Computer Science,BUPT图灵机的形式化描述图灵机的形式化描述 有限状态集 有限输入符号集 有限带符号集 转移函数 开始状态 特殊带符:空白符 终态集合q0 Q T B T F Q转移函数转移函数 :Q Q L,R 形式定义形式定义 一个图灵机一个图灵机 TM(Turing machine)是一个七元组是一个七元组 M=(Q,T,q0,B,F).6School of Computer Science,BUPTn函数示例:函数示例:Q Q Q QL,RL,R(q,a(q,ai i)=(p
5、,b,L)q,p Q)=(p,b,L)q,p Q (q,a (q,ai i)=(p,b,R)a)=(p,b,R)ai i b b n格局格局用w1q w2描述图灵机的瞬间工作状态q为M的当前状态,w1w2*w1w2是当前时刻从开始端(因为可写)到右边空白符号为止的内容当读写头已达到带的右端,则w1w2为读写头以左的内容。约定:约定:w w1 1q wq w2 2表示读写头正扫描表示读写头正扫描w w2 2的最左字符的最左字符w w2 2 则表示读写头正扫描一个空白字符。则表示读写头正扫描一个空白字符。图灵机的函数与格局7School of Computer Science,BUPT图灵机的格局
6、图灵机的格局 给定图灵机给定图灵机 M=(Q,T,q0,B,F),定义格局之间定义格局之间的推导关系的推导关系M 如下:如下:1.设设 (q,Xi)=(p,Y,L),则有则有 X1X2Xi-1qXiXi+1Xn M X1X2Xi-2pXi-1YXn,但有如下两个例外但有如下两个例外:(1)i=1时,时,qX1X2Xn M qYX2Xn,和和 (2)i=n及及 Y=B 时,时,X1X2Xn-1qXn M X1X2Xn-2pXn-1 B.2.设设 (q,Xi)=(p,Y,R),则有则有 X1X2Xi-1 q XiXi+1Xn M X1X2Xi-1Y p Xi+1Xn,但有如下两个例外但有如下两个例
7、外:(1)i=n时,时,X1X2Xn-1q Xn M X1X2Xn-1Y p B,和和 (2)i=1及及 Y=B 时,时,q X1X2XnM B p X2Xn-1Xn.8School of Computer Science,BUPT图灵机接受的语言图灵机接受的语言L(M)=TT*且且q q0 0*1 1 p p 2 2 ,pF,pF,1 12 2*图灵机接受的语言是输入字母表中这样一些字符串的集合,初始时,这些字符串放在M的带上,M处于状态q0,且M的带头处在最左单元上,这些字符串将使M进入某个终止状态。假定:假定:当输入被接受时,图灵机将停止,没有下一个动作。9School of Compu
8、ter Science,BUPT图灵机举例图灵机举例例例1 1:设语言:设语言 L=aL=an n b bn nn=1n=1,设计图灵机接受设计图灵机接受L L。思路:最初带上为思路:最初带上为 a aa a a b ba b b b B B B b B B B n n个个a na n个个b b首先用首先用x x替换替换M M最左边的最左边的a a,再右移至最左边的再右移至最左边的b b用用y y替换之,左移替换之,左移寻找最右的寻找最右的x x,然后右移一单元到最左的然后右移一单元到最左的a a,重复循环。重复循环。如果如果(1 1)当在搜寻)当在搜寻b b时,时,M M找到了空白符找到了空
9、白符B B,则则M M停止,不接受该串。停止,不接受该串。(此时,(此时,a a的个数大于的个数大于b b的个数)的个数)(2 2)当将当将b b改为改为y y后,左边再也找不到后,左边再也找不到a a,此时此时,若右边再无若右边再无b b,接受;若仍有接受;若仍有b b,则则b b的个数大于的个数大于a a的个数,不接受。的个数,不接受。10School of Computer Science,BUPT 动作 写的符号 q0 q1 a/x a/a,y/y b/y y/y x/x a/a,y/y q3 y/y q2 B/B q4 R R R R L 例例1 L=an bnn=1(q0,a)=(
10、q1,x,R)(q0,y)=(q3,y,R)(q1,a)=(q1,a,R)(q1,y)=(q1,y,R)(q1,b)=(q2,y,L)(q2,a)=(q2,a,L)(q2,y)=(q2,y,L)(q2,x)=(q0,x,R)(q3,y)=(q3,y,R)(q3,B)=(q4,B,R)例:例:aabbaabb的接收格局序列的接收格局序列q q0 0aabb xqaabb xq1 1abb xaqabb xaq1 1bb xqbb xq2 2ayb qayb q2 2xaybxqxaybxq0 0aybxxqaybxxq1 1ybyb xxyq xxyq1 1bxxqbxxq2 2yyxqyyxq
11、2 2xyyxxqxyyxxq0 0yyxxyqyyxxyq3 3yxxyyqyxxyyq3 3BxxyyqBxxyyq4 4 11School of Computer Science,BUPTStartq6q1q00/Xq4Y/Y0/0Y/Y0/0X/XY/YB/BY/Yq31/Yq2Z/Z1/12/ZZ/Z1/1q5Z/ZZ/Z对于输入字符串对于输入字符串001122,该图灵机可以有如下推导该图灵机可以有如下推导步:步:q0001122MXq101122 MX0q11122MX0Yq2122MX0Y1q222MX0Yq31Z2*Mq3X0Y1Z2MXq00Y1Z2*MXXYYZq22MXX
12、YYq3ZZ*MXq3XYYZZMXXq0YYZZ*MXXYYq4ZZMXXYYZq5ZMXXYYZZq5BMXXYYZZBq6B例例2 L=0n1n2n n 1.12School of Computer Science,BUPT 转移图与转移表转移图与转移表Startq6q1q00/Xq4Y/Y0/0Y/Y0/0X/XY/YB/BY/Yq31/Yq2Z/Z1/12/ZZ/Z1/1q5Z/ZZ/ZStateq1q0q2q3q4(q1,X,R)(q1,0,R)(q2,Y,R)(q2,1,R)(q4,Y,R)(q1,Y,R)(q3,Y,L)Symbol01XYB(q2,Z,R)(q3,Z,L)Zq
13、5q6(q6,B,R)(q3,0,L)(q3,1,L)(q0,X,R)(q4,Y,R)(q5,Z,R)(q5,Z,R)2(q3,Z,L)13School of Computer Science,BUPT 作为整数函数计算机的图灵机作为整数函数计算机的图灵机n预备知识:预备知识:图灵机除了作为语言接受器外,还可看作整数到整数的函数计算机。n传统方法把整数表示成一进制传统方法把整数表示成一进制整数 i 0 用字符串 0i 表示n如果一个函数有k个自变量,i1,i2,ik,那么这些整数开始时被放在带上,并用1把他们分隔开。形如 0i1 1 0i2 1 0i3 1 0ikn如果图灵机停止(不论是否在一
14、个接受状态上)且带上为 0m,则 f(i1,i2,ik)=m f是被图灵机计算的k元函数n如果f(i1,i2,ik)对所有i1,i2,ik有定义,那么称f是一个全递归函数。全递归函数对应于递归语言,因为它总是被能停下来的图灵机所计算。n所有常用的整数算术函数都是全递归函数。14School of Computer Science,BUPT例例3 3:设计图灵机求真减法:设计图灵机求真减法n思路:思路:1.用空白符B代替带上的最左端的02右移至紧跟1后的0,将其改为13左移找到B,将B之后的0改为B4重复上述过程如果如果(1)右移找0时,遇到B,意味着mnBBB 0 m-(n+1)1 111 n
15、+1 n个将后面n+1个1变为B,将左侧最后一个B变0,形如BBB 0 0 m-(n+1)BBB n个 n+1个 这时,带上留下m-n个0,即结果为m-n 0 mn mnmnmnn 初始带 0m 10n15School of Computer Science,BUPT求真减法(续)求真减法(续)(2)M左移找不到0,意味着 n m,形如 BBB 1 111 00 m个 m个 n-m个 此时,用B替换所有剩余的1 和0 0/0,1/1 q3 B/B 0/1 1/1 q0 0/0 1/1 0/B q1 q2 1/B B/B q6 q5 q4 B/B B/0 0/B,1/B 0/0,1/B L R
16、R R R R L 16School of Computer Science,BUPT例例4 4:L=L=0 0 m m m=2 m=2n n,n,n 0 0 n设计思路:对输入串设计思路:对输入串w w 1.从左到右扫描带,隔一个消一个0;2若带上只剩唯一一个0,接受;3若带上不止一个0,且个数为奇数,拒绝;4让读写头返回带的最左端;5.转第一步。17School of Computer Science,BUPTStartq4q2q10/#,RqrejectX/X,RB/B,Rq3B/B,Racceptqq5#/#,RB/B,LX/X,L0/0,L0/X,RX/X,RX/X,R0/X,R0/
17、0,R识别识别 L=L=0 0 m m m=2 m=2n n,n,n 0 0 的的图灵机图灵机18School of Computer Science,BUPT 任给图灵机任给图灵机 M=(Q,T,q0,B,F),以及输入字符串以及输入字符串w T*.试问:试问:对于对于w,M 是否停机是否停机?停机是指图灵机不存在下一个移动步(停机是指图灵机不存在下一个移动步(move).结论结论 图灵机的停机问题是不可解的(即不可判定的)图灵机的停机问题是不可解的(即不可判定的).利用反证法证明假定存在一个能够判定任意一台图灵机是否停机的万能图灵机 H(M),如果 M 最终停机,H 输出 halt;如果
18、M 不停机,H 输出 loop.我们把 H 当作子程序,构造如下程序 P:function P(M)if(H(M)=loop)return halt;else if(H(M)=halt)while(true);/loop forever 因为 P 本身也是一台图灵机,可以表示为一个字符串,所以我们可以把 P 输入给它自己,然后问 P(P)是否停机.按照程序 P 的流程,如果 P 不停机无限循环,那么它就停机,输出halt;如果 P 停机,那么它就无限循环,不停机;这样无论如何我们都将得到一个矛盾,所以假设前提不成立,即不存在这样的 H.或者说,图灵机停机问题是不可判定的(undecidable
19、).图灵机的停机问题图灵机的停机问题 19School of Computer Science,BUPTn结论结论 任给图灵机任给图灵机 M,很容易构造一个图灵机很容易构造一个图灵机 M,使得使得L(M)=L(M ),并满足:如果并满足:如果w L(M),则对于则对于 w,M 接受接受w并一定停机并一定停机.n 如果没有特别指出,总是假定图灵机到达终态如果没有特别指出,总是假定图灵机到达终态(接受态)后一定停机(接受态)后一定停机.n 但是但是,对不能接受的字符串,图灵机可能永不对不能接受的字符串,图灵机可能永不停止停止.(只要(只要M还在某个输入上运行,我们无法知道还在某个输入上运行,我们无
20、法知道是因为运行的时间不够长而没有被接受,还是根本是因为运行的时间不够长而没有被接受,还是根本就不会停机)就不会停机)20School of Computer Science,BUPT5.2 图灵机的构造技术 在设计图灵机的过程中,写出函数很麻烦,为了构造复杂的图灵机,需探讨图灵机的若干构造技术,并引入一些新的概念和工具。目的:设计时方便,但这些构造技术并未增加图灵机的功能。21School of Computer Science,BUPT5.2.1.利用带存储区的状态利用带存储区的状态(storage in the state)此类此类图灵机图灵机 M=(Q,q0,B,F)中,状态中可以包含
展开阅读全文