计算理论课件第一章.ppt

上传人:牧羊曲112 文档编号:6024201 上传时间:2023-09-15 格式:PPT 页数:31 大小:301.11KB
返回 下载 相关 举报
计算理论课件第一章.ppt_第1页
第1页 / 共31页
计算理论课件第一章.ppt_第2页
第2页 / 共31页
计算理论课件第一章.ppt_第3页
第3页 / 共31页
计算理论课件第一章.ppt_第4页
第4页 / 共31页
计算理论课件第一章.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《计算理论课件第一章.ppt》由会员分享,可在线阅读,更多相关《计算理论课件第一章.ppt(31页珍藏版)》请在三一办公上搜索。

1、计算理论基础,信息科学与工程学院计算机软件与理论研究所,许桂清 杨莹,序 言,一.本课的性质以及研究的内容任何一门学科都有它的基础和它的基本问题,如物质的本质是什么?有机体生命的基础和起源是什么?什么是计算机科学的基础?什么是计算机科学的基本问题?诸如什么是形式语言?什么是计算?什么是能计算的?什么是不能计算的?什么是算法?如何评价算法?什么样的算法是可行的?这些问题能否判定?这又引出什么是可判定的?什么是不可判定的?这些问题就是计算理论要讨论的问题。,性质:该课是计算机科学的理论课。计算理论:就是研究理论计算机的科学。理论计算机:是研究计算机的理论模型,研究计算机的本质,也就是把计算机看成一

2、个数学系统。(因为计算机科学的基本思想和模型在本质上是数学离散的。)内容:形式语言与自动机理论:正规文法与有限自动机(正规语言)、上下文无关文法与下推自动机(上下文无关语言)图灵机(递归可枚举语言)可计算性理论:什么是可计算?计算复杂性理论:时间复杂性、空间复杂性。递归函数,二.学习目的:了解这些计算理论 我们知道计算机不论从它的诞生还是它的快速发展过程都没有离开计算理论,也就是它是在计算理论指导下诞生和发展的。并课所涉及的都是计算机科学的基本问题。不首先了解它们,是很难理解计算机科学的。作为计算机科学与技术专业的本科生和研究生应该了解这些计算理论。培养能力 此外此课可以培养学生抽象逻辑思维和

3、形式化思维的能力。为学习编译原理做准备,第一章,形式语言概述,语言是人们交流思想的工具。按照语言的形成,可将语言分成二类:自然语言和人工语言(形式语言)。一.自然语言如汉语、英语、法语、日语等等都是自然语言。形成:是大多数人经过长期地社会实践逐渐形成的。特点:种类繁多,内容丰富,表达能力强。缺点:具有地方性,不便互相交流。有时不够精确,有多义性。比如汉语中的“打”字,具有多种解释。如打伞、打扑克、打醋、打人、一打袜子等等。因此自然语言不适合计算机的程序设计语言。二.形式语言 如计算机的各种程序设计语言、数理逻辑中的谓词演算语言等都属于形式语言。形成:是少数人经过严格地形式定义确定的语言。特点:

4、定义准确,无歧义性。,在五十年代Chomky建立了形式语言的理论体系,从此它发展很快,形式语言的研究已成为计算机科学的一个重要领域。形式语言:定义为一个严格的数学系统,其严格的形式性使我们能给出形式语言的数学描述,进而揭示所描述语言的结构、特性及其应用范围。描述形式语言有两种方法:生成法 识别法。生成法:用文法给出产生该语言的所有句子的规则。根据这些规则可以产生语言中每个句子。这些规则就叫生成式或产生式。,例如,下边是个描述“十进制数”的文法:G=(F,I,D,N,.,0,1,2,3,4,5,6,7,8,9,P,F)令F“十进制数”、I“无符号整数”、D“十进制小数”、N“数字”于是该文法的产

5、生式集合P中产生式如下:FI|D|ID IN|NI D.I N0|1|2|3|4|5|6|7|8|9例如利用此文法产生3.14:,FIDNDN.I3.I3.NI3.1I3.1N3.14,识别法:核心是一个自动机。对于给定的符号串可以由自动机识别出是否为给定语言中合法的句子。自动机的具体的例子以后再介绍。,1-1 形式语言基本概念,形式语言必须规定所用基本符号集合,这就是字母表。一.字母表 字母表:符号的有限集合。通常用V或者表示。例如 Va,b,c。二 符号串 符号串:是由字母表中的符号组成的序列。例如,aabbcc就是上述字母表V上的一个符号串。符号串的长度:即是符号串所含符号个数。例如符号

6、串aabbcc 用表示的长度,则|6。空符号串:不含任何符号的符号串,通常用表示。显然0。,三.符号串的“连接”运算“”例符号串x=abc,y=cba,x与y的连接构成符号串z,则 z=xy=abccba=abccba 显然连接运算“”满足可结合性且有幺元,即对任何符号串x,y,z有(xy)z=x(yz)x=x=x 对符号串的连接可以写成乘幂的形式,即对任何符号串x有:xx=x2 xxx=x3一般地 xn-1x=xn xm xn=xm+n(xm)n=xmn,四符号串集合的乘积 令A和B是符号串的集合,A与B的乘积记作AB,且 ABxyxAyB例如,Aa,b,ab,B=0,1,则 ABa0,b0

7、,ab0,a1,b1,ab1 由于符号串集合的乘积的运算是可结合的,所以也可写成乘幂的形式。即A是符号串集合,则 AAA2 AmAn=Am+n(Am)n=Amn 当两个集合中有一个集合是空集时,则 它们的乘积为空集。即A=A=。,五字母表的闭包V与V*令V是个字母表。则 V由V中符号构成的长度为1的符号串的集合。V2由V中符号构成的长度为2的符号串的集合。V3由V中符号构成的长度为3的符号串的集合。于是 Vkw|w是由V中的符号构成的符号串,且|w|=k V0=V=VV2V3V4 V*=V0VV2V3V4 V*是由V中符号构成的任意长度的符号串(所有符号串)构成的集合。,例如,V0,1 V+=

8、0,1,00,01,10,11,000,001,010,011,100,101,110,111,V*=,0,1,00,01,10,11,000,001,010,011,100,101,110,111,六语言 定义:设V是个字母表,LV*,则称L是V上的一个语言。例如,V0,1 L1=L2=0,00,000,0000,00000,L3=1,11,111,1111,11111,上述 L1、L2、L3 都是V上的语言。七.句子 设L是V上的语言,如果w,则称w是中的一个句子。例如,000就是L2中的一个句子。,1.2 文法概念,文法是语言生成器中的最重要的一类,为了定义语言,文法不仅作为一个“装置”

9、,给出语言的句子的结构,而且本身也是一个数学系统。例如:前边定义“十进制数”的文法。G=(F,I,D,N,.,0,1,2,3,4,5,6,7,8,9,P,F)F十进制数、I无符号整数、D十进制小数、N数字于是该文法的产生式集合P中产生式如下:FI|D|ID IN|NI D.I N0|1|2|3|4|5|6|7|8|9可见一个文法中有两种符号。,1.文法(Grammar)定义一个文法G是个有序四元组,记作=(,T,),其中 非终极符(变元)集合,用大写英文字母表示。T 终极符集合。这里 T=。有时记作 T 生成式(也叫产生式)的集合。产生式的形式:,其中 V,V*的含义是:可以用符号串代替符号串

10、。另外如果有,可简记成 开始变元,。,【例1-2.1】下面是定义只含有和*运算的算术表达式的文法。=(,T,)=,,,+,*,(,)=,*,(),【例1-2.2】=(S,0,1,P,S)P=S0S1|01,文法中使用的符号通常作如下约定:(1)用大写英文字母表示变元。S通常表示开始变元。(2)用小写的a,b,c,表示终极符。(3)用x,y,z,表示终极符串,即x,y,z,T*。(4)用,希腊字母表示既含有终极符,也含有非终极符的符号串,即,(T)*。2.句型(Sentential form)设文法 G=(,T,S),则(1)S是个句型。(2)若是个句型,且是中的一个产生式,则也是一个句型。按此

11、定义,对于文法来说,PS0S1|01 S,0S1,00S11,000111都是句型。,3.句型的推导(派生)设文法G=(,T,S),若是G的一个句型,且,则也是一个句型,我们就称为可由句型直接推导出,记作G。如果没有其它文法,不会产生混淆的情况下,此推导可简记成。符号“”表示句型之间的直接推导(派生)关系。如果有123n,则表示由1可以间接推导出n,可以写成1*n,符号“*”表示句型之间经过多步间接推导的关系。符号“k”表示句型之间经过k步间接推导的关系。,4.文法产生的语言 设文法 G=(,S),令集合 L(G)=w|wT*且*w则称L(G)是由G产生的语言。其中每个wL(G)是文法产生的句

12、子。在例1-2.2中,P=S0S1|01 有 S0S100S11000111,所以L(G2)=0n1n|n1【例1-2.3】3=(S,B,C,a,b,c,P,S)P:(1)SaSBC(2)SaBC(3)CBBC(4)aBab(5)bBbb(6)bCbc(7)cCcc,【例1-2.3】3=(S,B,C,a,b,c,P,S)P:(1)SaSBC(2)SaBC(3)CBBC(4)aBab(5)bBbb(6)bCbc(7)cCcc求L(3)。解.S*an-1S(BC)n-1(产生式(1)使用n-1次)an(BC)n(产生式(2)使用一次)*an Bn Cn(产生式(3)使用多次)anbBn-1 Cn(

13、产生式(4)使用一次)*an bn Cn(产生式(5)使用多次)an b ncCn-1(产生式(6)使用一次)*an bn cn(产生式(7)使用多次)所以 L(G3)=a n bn cn|n1,【例1-2.4】4=(S,A,B,a,b,P,S)P:SaB|bA,Aa|aS|bAA,Bb|bS|Abb求证 L(4)中的每个句子里的a和b的个数相同。证明:令Na(w)表示w中a的个数,L=w|wa,b+且Na(w)=Nb(w)只要证明L(4)=L 即可。1).先证 L(4)L 先用归纳法(对G中推导*的步数n作归纳)证明如下结论:如果*,则 Na+A()=Nb+B()。其中Na+A()表示中a和

14、A的个数总和。,(1)当n=1时,此推导一定是用产生式 SaB|bA,于是有 SaB 或 SbA。Na+A(aB)=Nb+B(bA),结论成立。(2)假设nk 时,结论成立。即如果有S n1(表示从S 经n步推出1),则 Na+A(1)=Nb+B(1)。(3)当 n=k+1 时,不妨设k12,则由(2)得 Na+A(1)=Nb+B(1)下面讨论推导12,由于1中的变元只有三种,所以分三种情况讨论:此派生是对1中的变元S作代换,必用产生式SaB|bA,显然不论使用哪一个产生式,都能得出结论Na+A(2)=Nb+B(2)。此派生是对1中的变元A作代换,必用产生式Aa|aS|bAA,显然不论使用哪一

15、个产生式,都能得出结论Na+A(2)=Nb+B(2)。,此派生是对1中的变元B作代换,必用产生式Bb|bS|Abb,显然不论使用哪一个产生式,都能得出结论:Na+A(2)=Nb+B(2)。综上所述,上述命题成立。任取wL(4),于是有推导*w,由上述结论得Na+A()=Nb+B()而在最后一步推导w中,要消去中的变元,必用产生式Aa或Bb,显然仍有Na+A(w)=Nb+B(w),此时w中A和B的个数都为0,于是有Na(w)=Nb(w),所以wL,于是有 L(4)L。2)再证 L L(4)任取wL,显然Na(w)=Nb(w),令Na(w)=n,对n作归纳,证出wL(4)。(1)n=1 时,则w=

16、ab,或w=ba,在4中有推导:SaBab或SbAba,所以有 wL(4),(2)假设nk时,结论成立。即wL,Na(w)=Nb(w),Na(w)k,则有wL(4),即4中有推导*w。(3)当n=k+1时,(即Na(w)=k+1,),因为w中的最左符号不是a就是b。下面分两种情况讨论。a)w的最左符号是a,不妨设w=aibx,(i1),xa,b+,如果i=1,w=abx,则Na(x)=Nb(x),且 Na(x)=k,由假设(2)得 xL(4),所以 S*x,于是有推导:SaBabS*abx=w,所以wL(4)。如果i1,w=aibx,可将w写成w=aibw1bw2bwi,其中 Na(wj)=N

17、b(wj)(1ji),这些wj中,可能wj=或wjL。如果wjL,又Na(wj)k,由归纳假设得wjL(4),即S*wj 于是在4中有推导:SaBaaBB*aiBi,再往下推导。,SaBaaBB*aiBi,再往下推导。如果wj=,则对应的第j个B可用产生式Bb替换,可 得Bbwj。如果 wj,则对应得第j 个B可用产生式BbS替换,又因为S*wj,可得B*bwj,最后得推导:SaBaaBB*aiBi*aibw1Bi-1*aibw1bw2Bi-2*aibw1 bw2bw3bwi=w 即有 S*w,wL(4)。b)当w的最左符号是b时,不妨设w=biax(i1),xa,b+,类似可证。于是,对于n

18、=k+1 时,命题成立。即,如果wL,则wL(4),所以 LL(4)。最后得,L=L(4)=w|wa,b+且Na(w)=Nb(w)。,1-3 文法的分类,按照文法的产生式的结构不同,将文法分成四类,称之为Chomsky分类。分别称之为0型、1型、2型、3型。令文法 G=(,S)T,具体的结构形式如下表所示:,类型 文 法 结 构 产 生 式 形 式 限 制 条 件,0 短语结构文法+,*Phrase Structure,上下文有关文法 1A212|12|1A2|1 Context Sensitive 1,2*(CSG)A,+,上下文无关文法 A A,*2 Context Free(CFG),正

19、 右线性文法 AxB,Cy A,B,C 3 规 文 左线性文法 ABx,Cy x,yT*法,按照此定义,判定上一节给定的四个文法是何类型:=(,T,)=,,,+,*,(,)=,*,(),=(S,0,1,P,S)P=S0S1|013=(S,B,C,a,b,c,P,S)P:(1)SaSBC(2)SaBC(3)CBBC(4)aBab(5)bBbb(6)bCbc(7)cCcc4=(S,A,B,a,b,P,S)P:SaB|bA,Aa|aS|bAA,Bb|bS|Abb G1、G2、G4是2型文法,即上下文无关文法,而文法G3是0型文法。,四种文法所产生的语言,分别叫作0型语言递归可枚举集(r.e)(rec

20、ursively enumerable set)1型语言上下文有关语言(CSL)(Context Sensitive Language)2型语言上下文无关语言(CFL)(Context Free Language)3型语言正规集(regular set)可以看出,各类文法之间有向上兼容性,即3型语言2型语言 1型语言 0型语言。,文法与自动机之间的对应关系:识别这些语言的自动机分别是:0型语言 图灵机 1型语言(CSL)线性界限自动机 2型语言(CFL)下推自动机 3型语言(正规集)有限自动机 有限自动机、下推自动机以及图灵机的内容后边将详细介绍。本章重点:掌握文法概念和类型。,作业题:1给定文法G=(S,B,C,D,E,0,1,P,S),其中P:SABC,AB0AD,AB1AE,AB,D00D,D11D,E00E,E11E,C,DCB0C,ECB1C,0BB0,1BB1试写出句子01100110的派生过程。2设计下列各文法G,使得它们分别是:(1)G是个上下文无关文法,且L(G)=aibj ck i,j,k1。(2)G是个正规文法,且L(G)=aibj ck i,j,k1。(3)G是个上下文无关文法,且L(G)=wwRw0,1+。其中wR是w的逆转,例如w=001,则wR=100.,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号