形式语言与自动机 1到5章清华大学出版社.docx
- 文档编号:5048887
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:108
- 大小:674.07KB
形式语言与自动机 1到5章清华大学出版社.docx
《形式语言与自动机 1到5章清华大学出版社.docx》由会员分享,可在线阅读,更多相关《形式语言与自动机 1到5章清华大学出版社.docx(108页珍藏版)》请在冰豆网上搜索。
形式语言与自动机1到5章清华大学出版社
形式语言与自动机理论
FormalLanguagesandAutomataTheory
课程目的和基本要求
▪课程性质
技术基础
▪基础知识要求
数学分析(或者高等数学),离散数学
▪主要特点
抽象和形式化
理论证明和构造性
基本模型的建立与性质
▪本专业人员4种基本的专业能力
计算思维能力
算法的设计与分析能力
程序设计和实现能力
计算机软硬件系统的认知、分析、设计与应用能力
▪计算思维能力
逻辑思维能力和抽象思维能力
构造模型对问题进行形式化描述
理解和处理形式模型
▪知识
掌握正则语言、上下文无关语言的文法、识别模型及其基本性质、图灵机的基本知识。
▪能力
培养学生的形式化描述和抽象思维能力。
使学生了解和初步掌握“问题、形式化描述、自动化(计算机化)”这一最典型的计算机问题求解思路。
主要内容
▪语言的文法描述。
▪RL(RegularLanguage正则语言)
RG(RegularGrammar正则文法)、FA(FiniteAutomation有穷状态自动机)、RE(RegularExpression正则表达式)、RL的性质。
▪CFL(ContextFreeLanguage上下文无关语言)
CFL–CFG(CNF、GNF)、PDA、CFL的性质。
CFG(ContextFreeGrammar上下文无关文法)
CNF(ChomskyNormalForm乔姆斯基范式)
GNF(GreibachNormalForm格雷巴赫范式)
PDA(PushdownAutomation下推自动机)
▪TM(TuringMachine图灵机)
基本TM、构造技术、TM的修改。
CSL(ContextSensitiveLanguage上下文有关语言)
CSG(ContextSensitiveGrammar上下文有关文法)、LBA(LinearBoundedAutomation线性有界自动机)。
教材及主要参考书目
[1]蒋宗礼,姜守旭.形式语言与自动机理论.北京:
清华大学出版社,2003年
[2]JohnE.Hopcroft,RajeevMotwani,JeffreyD.Ullman.自动机理论、语言和计算导论(原书第三版).北京:
机械工业出版社,2008.
JohnE.Hopcroft;RajeevMotwani;JeffreyD.Ullman.IntroductiontoAutomataTheory,Languages,andComputation(3rdEdition).Addison-WesleyPublishingCompany,2006
[3]ThomasA.Sudkamp.语言与机器:
计算机科学理论导论(原书第三版).北京:
机械工业出版社,2008.
[4]PeterLinz.形式语言与自动机导论(原书第三版).北京:
机械工业出版社,2005.
[5]陈有祺.形式语言与自动机理论.北京:
机械工业出版社,2008.
第1章 绪论
1.1集合的基础知识
1.1.1集合及其表示
▪集合:
一定范围内的、确定的、并且彼此可以区分的对象汇集在一起形成的整体叫做集合(set),简称为集(set)。
▪元素:
集合的成员为该集合的元素(element)。
N——自然数集
Q——有理数集
R——实数集
Σ——字母集
▪集合描述形式:
列举法{1,3,5,…}、命题法{x|3x2+8x+4=0}。
▪基数(势)|A|。
▪集合的分类:
空集Φ、有限(穷)集、无穷集、可数集、不可数集。
1.1.2集合之间的关系
▪子集
如果集合A的每个元素都是集合B的元素,则称集合A是集合B的子集(subset),集合B是集合A的包集(container)。
记作AB。
也可记作BA。
AB读作集合A包含在集合B中;BA读作集合B包含集合A。
如果AB,且x∈B,但xA,则称A是B的真子集(propersubset),记作AB
▪集合相等
如果集合A,B含有的元素完全相同,则称集合A与集合B相等(equivalence),记作A=B。
对任意集合A、B、C:
⑴A=BiffAB且BA。
⑵如果AB,则|A|≤|B|。
⑶如果AB,则|A|≤|B|。
⑷如果A是有穷集,且AB,则|A|<|B|。
⑸如果AB,则对x∈A,有x∈B。
⑹如果AB,则对x∈A,有x∈B并且x∈B,但xA。
⑺如果AB且BC,则AC。
⑻如果AB且BC,或者AB且BC,或者AB且BC,则AC。
⑼如果A=B,则|A|=|B|。
1.1.3集合的运算
▪并(union)
A与B的并(union)是一个集合,该集合中的元素要么是A的元素,要么是B的元素,记作A∪B。
A∪B={a|a∈A或者a∈B}
A1∪A2∪…∪An={a|i,1≤i≤n,使得a∈Ai}
A1∪A2∪…∪An∪…={a|i,i∈N,使得a∈Ai}
▪交(intersection)
集合A和B中都有的所有元素放在一起构成的集合为A与B的交,记作A∩B。
A∩B={a|a∈A且a∈B}
“∩”为交运算符,A∩B读作A交B。
如果A∩B=Φ,则称A与B不相交。
⑴A∩B=B∩A。
⑵(A∩B)∩C=A∩(B∩C)。
⑶A∩A=A。
⑷A∩B=AiffAB。
⑸Φ∩A=Φ。
⑹|A∩B|≤min{|A|,|B|}。
⑺A∩(B∪C)=(A∩B)∪(A∩C)。
⑻A∪(B∩C)=(A∪B)∩(A∪C)。
⑼A∩(A∪B)=A。
⑽A∪(A∩B)=A。
▪差(difference)
属于A,但不属于B的所有元素组成的集合叫做A与B的差,记作A-B。
A-B={a|a∈A且aB}
“-”为减(差)运算符,A-B读作A减B。
⑴A-A=Φ。
⑵A-Φ=A。
⑶A-B≠B-A。
⑷A-B=AiffA∩B=Φ。
⑸A∩(B-C)=(A∩B)-(A∩C)。
⑹|A-B|≤|A|。
▪对称差(symmetricdifference)
属于A但不属于B,属于B但不属于A的所有元素组成的集合叫A与B的对称差,记作A⊕B。
A⊕B={a|a∈A且aB或者aA且a∈B}
“⊕”为对称差运算符。
A⊕B读作A对称减B。
A⊕B=(A∪B)-(A∩B)=(A-B)∪(B-A)。
▪笛卡儿积(Cartesianproduct)
A与B的笛卡儿积(Cartesianproduct)是一个集合,该集合是由所有这样的有序对(a,b)组成的:
其中a∈A,b∈B,记作A×B。
A×B={(a,b)|a∈A&b∈B}。
“×”为笛卡儿乘运算符。
A×B读作A叉乘B。
⑴A×B≠B×A。
⑵(A×B)×C≠A×(B×C)。
⑶A×A≠A。
⑷A×Φ=Φ。
笛卡儿积(Cartesianproduct)
⑸A×(B∪C)=(A×B)∪(A×C)。
⑹(B∪C)×A=(B×A)∪(A×C)。
⑺A×(B∩C)=(A×B)∩(A×C)。
⑻(B∩C)×A=(B×A)∩(C×A)。
⑼A×(B-C)=(A×B)-(A×C)。
⑽(B-C)×A=(B×A)-(C×A)。
⑾当A、B为有穷集时,|A×B|=|A|*|B|。
▪幂集(powerset)
A幂集(powerset)是一个集合,该集合是由A的所有子集组成的,记作2A。
2A读作A的幂集。
2A={B|BA}。
幂集(powerset)
⑴Φ∈2A。
⑵Φ2A。
⑶Φ2A。
⑷2Φ={Φ}。
⑸A∈2A。
⑹如果A是有穷集,则|2A|=2|A|。
⑺2A∩B=2A∩2B。
⑻如果AB,则2A2B。
▪补集(complementaryset)
A是论域U上的一个集合,A补集是由U中的、不在A中的所有元素组成的集合,记作
补集(complementaryset)
如果AB,则
1.2关系
二元关系
递归定义与归纳证明
关系的闭包
1.2.1二元关系(binaryrelation)
▪二元关系
任意的RA×B,R是A到B的二元关系。
(a,b)∈R,也可表示为:
aRb。
A称为定义域(domain),B称为值域(range)。
当A=B时,则称R是A上的二元关系。
▪二元关系的性质
自反(reflexive)性、反自反(irreflexive)性、对称(symmetric)性、反对称(asymmetric)性、传递(transitive)性。
▪三歧性
自反性、对称性、传递性。
1.2.2等价关系与等价类
▪等价关系(equivalencerelation)
具有三歧性的二元关系称为等价关系。
▪等价类(equivalenceclass)
S的满足如下要求的划分:
S1、S2、S3、…、Sn…称为S关于R的等价划分,Si称为等价类。
⑴S=S1∪S2∪S3∪…∪Sn∪…;
⑵如果i≠j,则Si∩Sj=Φ;
⑶对任意的i,Si中的任意两个元素a、b,aRb恒成立;
⑷对任意的i,j,i≠j,Si中的任意元素a和Sj中的任意元素b,aRb恒不成立
▪指数(index)
把R将S分成的等价类的个数称为是R在S上的指数。
如果R将S分成有穷多个等价类,则称R具有有穷指数;如果R将S分成无穷多个等价类,则称R具有无穷指数。
给定集合S上的一个等价关系R,R就确定了S的一个等价分类,当给定另一个不同的等价关系时,它会确定S的一个新的等价分类。
1.2.3关系的合成
▪关系的合成(composition)
设R1A×B是A到B的关系、R2B×C是B到C的关系,R1与R2的合成R1R2是A到C的关系:
R1R2={(a,c)|(a,b)∈R1且(b,c)∈R2。
⑴R1R2≠R2R1。
⑵(R1R2)R3=R1(R2R3)。
(结合率)
⑶(R1∪R2)R3=R1R3∪R2R3。
(右分配率)
⑷R3(R1∪R2)=R3R1∪R3R2。
(左分配率)
⑸(R1∩R2)R3R1R3∩R2R3。
⑹R3(R1∩R2)R3R1∩R3R2。
▪关系这一个概念用来反映对象——集合元素之间的联系和性质
▪二元关系则是反映两个元素之间的关系,包括某个元素的某种属性。
▪对二元关系的性质,要强调全称量词是对什么样的范围而言的。
1.2.4递归定义与归纳证明
▪递归定义(recursivedefinition)
又称为归纳定义(inductivedefinition),它来定义一个集合。
集合的递归定义由三部分组成:
基础(basis):
用来定义该集合的最基本的元素。
归纳(induction):
指出用集合中的元素来构造集合的新元素的规则。
极小性限定:
指出一个对象是所定义集合中的元素的充要条件是它可以通过有限次的使用基础和归纳条款中所给的规定构造出来。
▪归纳证明
与递归定义相对应。
归纳证明方法包括三大步:
基础(basis):
证明最基本元素具有相应性质。
归纳(induction):
证明如果某些元素具有相应性质,则根据这些元素用所规定的方法得到的新元素也具有相应的性质。
根据归纳法原理,所有的元素具有相应的性质。
▪定义1-17
设R是S上的关系,我们递归地定义Rn的幂:
⑴R0={(a,a)|a∈S}。
⑵Ri=Ri-1R(i=1,2,3,4,5,…)。
▪例1-17著名的斐波那契(Fibonacci)数的定义
⑴基础:
0是第一个斐波那契数,1第二个斐波那契数;
⑵归纳:
如果n是第i个斐波那契数,m是第i+1个斐波那契数,则n+m是第i+2个斐波那契数,这里i为大于等于1的正整数。
⑶只有满足
(1)和
(2)的数才是斐波那契数
0,1,1,2,3,5,8,13,21,34,55,…
▪例1-18算术表达式
⑴基础:
常数是算术表达式,变量是算术表达式;
⑵归纳:
如果E1、E2是表达式,则+E1、-E1、E1+E2、E1-E2、E1*E2、E1/E2、E1**E2、Fun(E1)是算术表达式。
其中Fun为函数名。
⑶只有满足
(1)和
(2)的才是算术表达式。
▪例1-19对有穷集合A,证明|2A|=2|A|。
证明:
设A为一个有穷集合,施归纳于|A|:
⑴基础:
当|A|=0时,|2A|=|{Φ}|=1。
⑵归纳:
假设|A|=n时结论成立,这里n≥0,往证当|A|=n+1时结论成立
2A=2B∪{C∪{a}|C∈2B}
2B∩{C∪{a}|C∈2B}=Φ
|2A|=|2B∪{C∪{a}|C∈2B}|
=|2B|+|{C∪{a}|C∈2B}|
=|2B|+|2B|
=2*|2B|
=2*2|B|
=2|B|+1
=2|A|
⑶由归纳法原理,结论对任意有穷集合成立。
▪例1-20表达式的前缀形式是指将运算符写在前面,后跟相应的运算对象。
如:
+E1的前缀形式为+E1,E1+E2的前缀形式为+E1E2,E1*E2的前缀形式为*E1E2,E1**E2的前缀形式为**E1,Fun(E1)的前缀形式为FunE1。
证明例1-18所定义的表达式可以用这里定义的前缀形式表示。
递归定义给出的概念有利于归纳证明。
在计算机科学与技术学科中,有许多问题可以用递归定义描述或者用归纳方法进行证明,而且在许多时候,这样做会带来许多方便。
主要是掌握递归定义与归纳证明的叙述格式。
1.2.5关系的闭包
▪闭包(closure)
设P是关于关系的性质的集合,关系R的P闭包(closure)是包含R并且具有P中所有性质的最小关系。
▪正闭包(positiveclosure)
(1)RR+。
(2)如果(a,b),(b,c)∈R+则(a,c)∈R+。
(3)除
(1)、
(2)外,R+不再含有其他任何元素。
▪传递闭包(transitiveclosure)
具有传递性的闭包。
R+具有传递性。
可以证明,对任意二元关系R,
R+=R∪R2∪R3∪R4∪…
而且当S为有穷集时:
R+=R∪R2∪R3∪…∪R|S|
克林闭包(Kleeneclosure)R*
(1) R0R*,RR*。
(2)如果(a,b),(b,c)∈R*则(a,c)∈R*。
(3)除
(1)、
(2)外,R*不再含有其他任何元素。
▪自反传递闭包(reflexiveandtransitiveclosure)
R*具有自反性、传递性。
可以证明,对任意二元关系R,
R*=R0∪R+
R*=R0∪R∪R2∪R3∪R4∪…
而且当S为有穷集时:
R*=R0∪R∪R2∪R3∪…∪R|S|
R1、R2是S上的两个二元关系
(1) Φ+=Φ。
(2) (R1+)+=R1+。
(3)(R1*)*=R1*。
(4)R1+∪R2+(R1∪R2)+。
(5) R1*∪R2*(R1∪R2)*。
1.3图
数学家欧拉(L.Euler)解决著名的哥尼斯堡七桥。
直观地讲,图是由一些点和一些连接两点的边组成。
含无方向的边的图为无向图,含带有方向的边的图为有向图。
1.3.1无向图
▪无向图(undirectedgraph)
设V是一个非空的有穷集合,EV×V,G=(V,E)称为无向图(undirectedgraph)。
其中V中的元素称为顶点(vertex或node),V称为顶点集,E中的元素称为无向边(undirectededge),E为无向边集。
▪图表示
V中称为顶点v的元素用标记为v的小圈表示,E中的元素(v1,v2)用标记为v1,v2的顶点之间的连线表示。
▪路(path)
如果对于0≤i≤k-1,k≥1,均有(vi,vi+1)∈E,则称v0,v1,…,vk是G=(V,E)的一条长为k的路。
▪回路或圈(cycle)
当路v0,v1,…,vk中v0=vk时,v0,v1,…,vk叫做一个回路或圈(cycle)。
▪顶点的度数
对于v∈V,|{v|(v,w)∈E}|称为无向图G=(V,E)的顶点v的度数,记作deg(v)。
对于任何一个图,图中所有顶点的度数之和为图中边的2倍。
deg(v1)=3
deg(v2)=3
deg(v3)=4
deg(v4)=3
deg(v5)=3
deg(v1)+deg(v2)+deg(v3)+deg(v4)+deg(v5)=16
▪连通图
如果对于v,w∈V,v≠w,v与w之间至少有一条路存在,则称G=(V,E)是连通图。
图G是连通的充要条件是G中存在一条包含图的所有顶点的路。
1.3.2有向图
▪有向图(directedgraph)
G=(V,E)。
V:
顶点(vertex或node)集。
(v1,v2)∈E:
顶点v1到顶点v2的有向边(directededge),或弧(arc),v1称为前导(predecessor),v2称为后继(successor)。
▪有向路(directedpath)
如果对于0≤i≤k-1,k≥1,均有(vi,vi+1)∈E,则称v0,v1,…,vk是G的一条长为k的有向路。
▪有向回路或有向圈(directedcycle)
对于0≤i≤k-1,k≥1,均有(vi,vi+1)∈E,且v0=vk,则称v0,v1,…,vk是G的一条长为k的有向路为一个有向回路。
有向回路又叫有向圈。
▪有向图的图表示
图G的图表示是满足下列条件的“图”:
其中V中称为顶点v的元素用标记为v的小圈表示,E中的元素(v1,v2)用从标记为v1的顶点到标记为v2的顶点的弧表示。
▪顶点的度数
入度(数):
ideg(v)=|{v|(w,v)∈E}|。
出度(数):
odeg(v)=|{v|(v,w)∈E}|。
对于任何一个有向图,图中所有顶点的入度之和与图中所有顶点的出度之和正好是图中边的个数
两个不同的有向图:
1.3.3树
满足如下条件的有向图G=(V,E)称为一棵(有序、有向)树(tree):
根(root)v:
没有前导,且v到树中其他顶点均有一条有向路。
每个非根顶点有且仅有一个前导。
每个顶点的后继按其拓扑关系从左到右排序。
▪树的基本概念
(1)顶点也可以成为结点。
(2)结点的前导为该结点的父亲(父结点father)。
(3) 结点的后继为它的儿子(son)。
(4)如果树中有一条从结点v1到结点v2的路,则称v1是v2的祖先(ancestor),v2是v1的后代(descendant)。
(5) 无儿子的顶点叫做叶子(leaf)。
(6) 非叶结点叫做中间结点(interior)。
▪树的层
根处在树的第1层(level)。
如果结点v处在第i层(i≥1),则v的儿子处在第i+1层。
树的最大层号叫做该树的高度(height)。
▪二元树
如果对于v∈V,v最多只有2个儿子,则称G=(V,E)为二元树(binarytree)。
对一棵二元树,它的第n层最多有2n-1个结点。
一棵n层二元树最多有个2n-1叶子。
1.4语言
1.4.1什么是语言
例如:
“学大一生是个我”;“我是一个大学生”。
▪语言是一定的群体用来进行交流的工具。
必须有着一系列的生成规则、理解(语义)规则。
▪斯大林:
从强调语言的作用出发,把语言定义为“为广大的人群所理解的字和组合这些字的方法”。
▪语言学家韦波斯特(Webster):
为相当大的团体的人所懂得并使用的字和组合这些字的方法的统一体。
要想对语言的性质进行研究,用这些定义来建立语言的数学模型是不够精确的。
必须有更形式化的定义。
1.4.2形式语言与自动机理论的产生与作用
语言学家乔姆斯基,毕业于宾西法尼亚大学,最初从产生语言的角度研究语言。
1956年,他将语言L定义为一个字母表∑中的字母组成的一些串的集合:
L∑*。
字母表上按照一定的规则定义一个文法(grammar),该文法所能产生的所有句子组成的集合就是该文法产生的语言。
1959年,乔姆斯基根据产生语言文法的特性,将语言划分成3大类。
1951年到1956年,克林(Kleene)在研究神经细胞中,建立了识别语言的系统——有穷状态自动机。
1959年,乔姆斯基发现文法和自动机分别从生成和识别的角度去表达语言,而且证明了文法与自动机的等价性,这一成果被认为是将形式语言置于了数学的光芒之下,使得形式语言真正诞生了。
20世纪50年代,巴科斯范式(BackusNourForm或BackusNormalForm,BNF)实现了对高级语言ALGOL-60的成功描述。
这一成功,使得形式语言在20世纪60年代得到了大力的发展。
尤其是上下文无关文法被作为计算机程序设计语言的文法的最佳近似描述得到了较为深入的研究。
相应的理论用于其他方面。
形式语言与自动机理论在计算机科学与技术学科的人才的计算思维的培养中占有极其重要的地位。
计算学科的主题:
“什么能被有效地自动化”。
计算机科学与技术学科人才专业能力构成
“计算思维能力”——抽象思维能力、逻辑思维能力。
算法设计与分析能力。
程序设计与实现能力。
计算机系统的认知、分析、设计和应用能力。
考虑的对象的不同,所需要的思维方式和能力就不同,通过这一系统的教育,在不断升华的过程中,逐渐地培养出了学生的抽象思维能力和对逻辑思维方法的掌握。
创新意识的建立和创新能力的培养也在这个教育过程中循序渐进地进行着。
内容用于后续课程和今后的研究工作。
是进行思维训练的最佳知识载体。
是一个优秀的计算机科学工作者必修的一门课程。
1.4.3基本概念
▪对语言研究的三个方面
表示(representation)——无穷语言的表示。
有穷描述(finitedescription)——研究的语言要么是有穷的,要么是可数无穷的,这里主要研究可数无穷语言的有穷描述。
结构(structure)——语言的结构特征。
▪字母表(alphabet)
字母表是一个非空有穷集合,字母表中的元素称为该字母表的一个字母(letter)。
又叫做符号(symbol)、或者字符(character)。
非空性。
有穷性。
例如:
{a,b,c,d}
{a,b,c,…,z}
{0,1}
▪字符的两个特性
整体性(monolith),也叫不可分性。
可辨认性(distinguishable),也叫可区分性。
例(续)
{a,a’,b,b’}
{aa,ab,bb}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形式语言与自动机 1到5章清华大学出版社 形式语言 自动机 清华大学出版社
![提示](https://static.bdocx.com/images/bang_tan.gif)