形式语言复习一
本文记录绪论部分,绪论部分有和集合论与图论重合的部分,可以略看
# 集合的基础知识
# 集合及其表示
# 集合的运算
- 并(A∪B)
- 交(A∩B)
- 差(A−B)
- 对称差(A⊕B)
- 笛卡尔积(A×B)
- 幂集(2A)
- 补集(Aˉ)
# 关系
# 二元关系
二元关系:
任意的R⊆A×B,R 是A 到B 的二元关系
(a,b)∈R,也可表示为:aRb
A 称为定义域,B 称为值域
当A=B 时,则称R 是A 上的二元关系
二元关系性质:
等价关系:
等价类:
S 满足如下要求的划分:S1,S2,...,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 恒不成立
关系的合成:
设R1⊆A×B 是A 到B 的关系,R2⊆B×C 是B 到C 的关系,R1 与R2 的合成R1⋅R2 是A 到C 的关系:
R1⋅R2={(a,c)∣∃(a,b)∈R1,(b,c)∈R2}
# 关系的闭包
闭包:
- 设 P 是关于关系性质的集合,关系 R 的 P 闭包是包含 R 并且具有 P 中所有性质的最小关系
正闭包:
R⊆R+
如果(a,b),(b,c)∈R+,则(a,c)∈R+
除前两个条件外,R+ 不再含有其他任何元素
R+=R∪R2∪...Rn
当S 为有穷集时:
R+=R∪R2∪...∪R∣S∣
传递闭包:
克林闭包
- R0⊆R∗,R⊆R∗
- 如果(a,b),(b,c)∈R∗,则(a,c)∈R∗
- 除前两个条件外,R∗ 不再含有其他元素
- R∗ 具有自反性、传递性
- R∗=R0∪R+
# 递归定义与归纳证明
- 递归定义:
- 又称为归纳定义,它来定义一个集合
- 集合的递归定义由三部分组成:
- 基础:用来定义该集合的最基本的元素
- 归纳:指出用集合中的元素来构造集合的新元素的规则
- 极小性限定:指出一个对象是所定义集合中的元素的充要条件是它可以通过有限次的使用基础和归纳条款中所给的规定构造出来
- 归纳证明:
- 与递归定义向对应
- 归纳证明方法包括三大步
- 基础:证明最基本元素具有相应性质
- 归纳:证明如果某些元素具有相应性质,则根据这些元素所规定的方法得到的新元素也具有相应的性质
- 根据归纳性原理,所有的元素具有相应的性质
# 语言
什么事语言
- 语言是一定的群体用来进行交流的工具
- 语言:某个集合中的元素,按照规则组合成的符号串的集合
形式语言理论
用数学的方法,对语言的表示法、结构及特性进行研究的理论
形式语言与自动机理论的产生:
- 对语言研究的三个方面:
- 如何表示语言
- 是否存在有穷描述
- 具有有穷描述的语言结构如何,有什么特性
形式语言理论:乔姆斯基发现文法,用文法产生语言的每个句子
自动机理论:克林在研究神经细胞中,建立了识别语言的系统 —— 有穷状态自动机
文法与自动机是等价的
文法与自动机的运算对象:集合
# 基本概念
字母表:
- 字母表是一个非空有穷集合,字母表中的元素称为该字母表的一个字母。又叫做符号,或者字符
- 字符的两个特性:
字母表的乘积
Σ1⋅Σ2={ab∣a∈Σ1,b∈Σ2}
例如:{0,1}{0,1}=
字母表Σ 的 n 次幂
Σ0={ϵ}Σn=Σn−1Σ
ϵ 是由Σ 中的 0 个字符组成
Σ 的正闭包和克林闭包
Σ+=Σ∪Σ2∪...∪Σ∞,是至少一个字符连接而成的字符串
Σ∗=Σ0∪Σ∪...∪Σ∞,若干个字符(包括 0 个)字符连接成的字符串
句子
Σ 是一个字母表,∀x∈Σ∗,x 叫做Σ 的一个句子
句子的长度
- ∀x∈Σ∗,句子x 中字符出现的总个数叫做该句子的长度,记作∣x∣
- 长度为 0 的句子叫做空句子,记作ϵ
并置
- x,y∈Σ∗,x,y 的并置是由串x 直接相接串y 所组成的。记作xy。并置又叫做连结
串的 n 次幂
- x0=ϵ
- xn=xn−1x
前缀与后缀
设x,y,z,w,v∈Σ∗,且x=yz,w=yv
- y 是x 的前缀
- 如果z=ϵ,则y 是x 的真前缀
- z 是x 的后缀
- 如果z=ϵ,则z 是x 的真后缀
公共前缀与后缀
- y 是x 和w 的公共前缀
- 如果x 和w 的任何公共前缀都是y 的前缀,则y 是x 和w 的最大公共前缀
- 如果x=zy,w=vy,则y 是x 和w 的公共后缀
- 如果x 和w 的任何公共后缀都是y 的后缀,则y 是x 和w 的最大公共后缀
子串
- w,x,y,z∈Σ∗,且w=xyz,则称y 是w 的子串
- 公共子串
- t,u,v,w,x,y,z∈Σ∗,且t=uyv,w=xyz,则称y 是t 和w 的公共子串,且max{∣y1∣,∣y2∣,...,∣yn∣}=∣yj∣,则称yj 是t 和w 的最大公共子串。(两个串的最大公共子串并不一定是唯一的)
语言
- ∀L⊆Σ∗,L 称为字母表Σ 上的一个语言,∀x∈L,x 叫做L 的一个句子
语言的乘积
- L1∈Σ1∗,L2∈Σ2∗,语言L1 和L2 的乘积是一个语言,该语言的定义为:L1L2={xy∣x∈L1,y∈L2} 是字母表Σ1∪Σ2 上的语言