第一篇:集合与推理方法安全
1:咱们为何要学习形式语言与自动机闭包
任何一门科学都有其自身的理论基础,计算机科学也是这样.你们如今看看计算机的技术变化的很快,如今咱们很流行的框架和工具颇有可能几年内就会变成过期的东西.可是计算机科学的总体的思惟不会变,在学习中,咱们更要应该看思考能力的培养,如何清楚的表达本身的能力,如何清晰地解决问题的能力以及本身还欠缺的能力.这方面的东西在我看来,是具备持久的价值的,学习理论可以拓展人们的思惟,并能令人们在这方面获得训练.框架
说回形式语言与自动机,你们在大学学习中可能离形式语言与自动机的一门课应该是<编译原理>,<编译原理>中是会讲到形式语言和自动机的部分东西,另外有的学校可能就有专门的这一门课,好比北航和哈工大等等.说到底,形式语言与自动机实际上是一门将数学系统应用于计算的一种模型.因此我想用这一系列文章来重点介绍形式语言以及与之相对应的自动机体系.函数
形式语言给出了语言的语法规则和分类的形式化方法,而自动机则描述了可以识别的语言的自动装置.这样的形式化的描述以及自动机的工做原理将会是这一系列文章的核心.这一些核心在编译理论,人工智能,现代安全学和通讯中都有着极强的应用,是每一个对于计算机科学感兴趣的人都应该熟悉的内容.工具
这一系列文章我如今想先简单的分为三大部分:学习
第一部分是基础的预备知识的学习人工智能
第二部分是讲述四类文法所产生的语言以及这些语言的识别装置设计
第三部分是讲述这四类文法的理论在实际生产中的应用对象
可是上述的理论可能会比较枯燥,因此我也想你们有兴趣能够配合蒋宗礼老师的<形式语言与自动机理论>,加上上边的习题,效果会更好,更加的容易理解和接受.排序
2:什么是形式语言与自动机?
形式语言和自动机的理论是计算机科学的理论基础。这些理论来源于 :
(1) Chomsky对天然语言的研究; (2) 巴科斯和诺尔使用巴科斯-诺尔范式(BNF)对 ALGOL 60 语言的语法规则进行描述; (3) Kleene在研究神经细胞时创建的自动机模型。 形式语言理论的研究对象与之前全部语言的研究对象不一样 , 不止是天然语言 , 而是人类的
一切语言 : 既有天然语言 , 也有人工语言 , 包括高级程序设计语言。 形式语言和自动机的理论已经成为计算机科学 的理论 基础 , 其 应用范 围已 被扩展 到生 物
工程、自动控制系统、图像处理与模式识别等许多领域。
3:学习以前所须要的知识
在学习形式语言以前,咱们首先要明确下所需的集合,图论,逻辑证实这样的知识,这些知识难度不会超太高等数学的难度,若是你已经会了,就直接跳过去吧,若是不会就能够继续看下去.
1:集合
当咱们去研究一类对象的时候,咱们能够将具备同一类对象的总体看做是一个集合,组成一个集合的对象称为该集合的元素
若是设A是一个集合,a是集合A的一个元素,就能够表示为a∈A,若是a不是集合A的元素,就能够表示a∈|A,也就是a不属于A
之后我为了省事,好比a属于A,b属于A,c属于A的,都写成a,b,c∈A.
有限个元素x1,x2,.......,xn组成的集合,称为有限集合.无限个元素组成的集合,称为无限集合.好比,整数构成的集合是一个无限集合.
不含元素的集合,称为空集,符号是:∅
2:集合之间的关系
(1) 设两个集合A、B包含的元素彻底相同,则称集合A和B
相等,表示为A=B。
例如,集合A={a,b,c},集合B={b,a,c},则有A=B。 这里强调, 一个集合中元素排列的顺序是可有可无的。 有限集合A中不一样元素的个数称为集合的基数, 表示为 #A或A。
例如,B={a,b,c,4,8},其基数#B=5。
(2)设两个集合A、B,当A的元素都是B的元素,则称A包
含于B,或称A是B的子集,表示为A∈B。当A∈B且A≠B, 称A是B的真子集,表示为A B。
若是所研究的集合皆为某个集合的子集时 , 称该集合为全集 , 记为E
(3) 根据(1)和(2) ,对于任意两个集合A、B,A=B的充要条 件是A∈B且B∈A。
3:幂集
设A是集合,A的全部子集组成的集合称为A的幂集,表示 为2A或ρ(A)。
例 如 ,A= {a,b,c} ,
则 有ρ(A) = { ∅,{a},{b},{c},{a,b},{b,c}, {a,c},{a,b,c}}
当A是 有 限 集 , #A=n, 则 ρ(A) 的 元 素 数 为C0n+C1n+…+Cn=2n
可是有一个例外,空集∅是任何集合的一个子集
4:集合的运算
( 1 ) 设 两 个 集 合A、B, 由A和B的 所 有 共 同 元 素 构 成 的 集 合,称为A和B的交集,表示为A∩B。
(2) 设两个集合A、B, 全部属于A或属于B的元素组成的集 合,称为A和B的并集,表示为A∪B。
(3) 设两个集合A、B, 全部属于A而不属于B的一切元素组 成的集合,称为B对A的补集,表示为A-B。
(4) 设两个集合A、B,全部序偶(a,b)组成的集合,称为A、B的笛卡尔乘积,表示为A×B。
A×B={(a,b)|a∈A且b∈B}
好比:A = {a,b,c},B={0,1},则A*B = {(a,0),(a,1),(b,0), (b,1), (c,0) ,(c,1) }
可是要注意一点,序偶的元素排序是有顺序的,不可以随意的颠倒,(a,b)和(b,a)是不一样的两个序偶,因此说若是两个序偶相等, 应该是对应元素相同, 例如,(a,b)=(c,d),应有a=c和b=d。
对任意集合A、B、C有以下运算律:
(1)A∪A=A,A∩A=A; (2)A∪B=B∪A,A∩B=B∩A;
(3) (A∪B)∪C=A∪(B∪C), (A∩B)∩C=A∩(B∩C);
(4)A∪(B∩C)=(A∪B)∩(A∪C),A∩(B∪C)= (A∩B)∪(A∩C); (5)A∪(A∩B)=A,A∩(A∪B)=A; (6)A∪A=E,A∩A= ∅ (7)A∪B=A∩B,A∩B=A∪B; (8)E∪A=E,E∩A=A;
(9)A∪∅ =A,A∩∅ =∅
5:关系
说到关系,咱们平时用的大于,小于,等于,包括等都是属于关系,下面我引用蒋老师的书中的描述来讲一下关系的形式定义:
定义1.1.1 设A是一个集合,A×A的一个子集R,称为是 集合A上的一个二元关系,简称关系。
对于a∈A,b∈A,若是(a,b)∈R,称a和b存在关系R,表示 为aRb;若是(a,b)∈|R,称a和b不存在关系R,表示为a/Rb。
例如 , 天然数集合N中的大于关系 , 可表示为 > ={(a,b)|a,b∈N且a>b}
当有两个集合A、B,则从A到B的关系是A×B的一个子集。
定义1.1.2 设集合A,R是A上的关系:
对每一个a∈A,若是有aRa,称R是自反的; 对 于a,b∈A, 如 果 有a R b, 又 有b R a, 称R是 对 称 的 ; 对 于a,b∈A, 如 果 有a R b和b R a, 则 必 有a=b, 称R是 反对称的 ; 对于a,b,c∈A,若是有aRb和bRc,则有aRc,称R是传递的;对每一个a∈A,若是a/Ra,称R是反自反的。
例如 , 数之间的相等关系 , 具备自反性、对称性和传递性 , 小于 关系和大于关系没有自反性 , 但有传递性。
定义1.1.3 设R是非空集合A上的一个关系,若是R有自 反性、对称性和传递性 , 则称R是一个等价关系。
由等价关系R能够把A分为若干子集, 每一个子集称为一个等 价类 , 同一等价类中的元素互相是等价的.
定义1 .1 .4 设R是集合A上的一个关系,若是R有自反性、 反对称性和传递性,则称R是偏序关系(或部分序关系)。
这个值得说一下,如今套用书中的例子
设集合C={2,3,6,8},R是集合C上的整除关系,即R= {(x,y) |x,y∈C且x整除y}
能够获得:
R= {(2,2), (3,3), (6,6), (8,8), (2,6), (2,8), (3,6)}
结合上面的偏序关系,咱们能够描写出关于偏序的图,叫作哈斯图,有兴趣的能够百度了解下,并非很重要的东西.
定 义 1 . 1 . 5 设R是 集 合A上 的 关 系 , 如 果 另 有 关 系R′满 足:
(1)R′是传递的(自反的,对称的) ; (2)R′R; (3) 对任何传递的(自反的、对称的)关系R′′,当有R′′R,就
有R′′R′,则称关系R′是R的传递(自反、对称)闭包。R的自反闭包表示为r(R),R的对称闭包表示为s(R),R的
传递闭包表示为t(R)。若是给定一个集合A上的关系R, 可用如下方法找出传递闭
包t(R),自反闭包r(R)和对称闭包s(R):
(1)r(R)=R∪IA,其中IA ={(x,x)|x∈A};
(2)s(R)=R∪R-1;
(3)t(R)=R∪R2∪…∪Rn,其#A=n。
举个例子:
设集合A={a,b,c},A上的关系R={(a,b),(b,b), (b,c)},则R的传递闭包为
t(R) = {(a,b) , (b,b) , (b,c) , (a,c)} , 而R的自反传递闭包表示为
tr(R) = {(a,a), (a,b) ,(b,b), (b,c), (a,c) ,(c,c)}。 从此用R+ 表示R的传递闭包,用R* 表示R的自反传递闭包。
定义1.1.6 映射是关系的一个特殊类型 , 也称函数。设集合A和B,f是从A到B的一个关系,若是
对每个a∈A,有唯一的b∈B,使得(a,b)∈f,称关系f是函 数,记为f:A→B。
若是存在(a,b)∈f,则a是f的自变量,b是f做用下的像点,所以(a,b)∈f亦可写成f(a) =b。
由 定 义 1 .1 .6 可 知 , 函 数 有 如 下 特 点 :
(1) 函数f的定义域是A, 不能是A的某个真子集。
(2) 一个a∈A只能对应于唯一的一个b,或者说f(a)是单值的。
f的值域是B的子集,记为Rf。
函数的几种特殊类型是 :
(1) 对于f:A→B。若是f的值域Rf =B,即B的每个元素
都是A中一个或多个元素的像点,则称f是满射的。 例如,集合A={a,b,c,d},B={x,y,z},若是f:A→B为:
f(a)=x,f(b)=x,f(c)=y,f(d)=z则f是满射的。
(2) 对于f:A→B。若是A中没有两个元素有相同的象点, 则称f是入射的,即对于任意a1,a2∈A:
若是a1 ≠a2,则有f(a1)≠f(a2),或者若是f(a1)=f(a2), 则有a1 =a2。
例如,集合A={a,b},B={x,y,z},若是f:A→B为:f(a) =x,f(b)=y,则称f是入射的。
(3) 对于f:A→B。若是f既是满射的,又是入射的,则称f是双射的 , 或称是一一对应的。
例如,集合A={a,b,c},B={1,2,3},
若是f:A→B为f(a) = 3,f(b) = 1,f(c) = 2
则称f是双射的,或者说是一一对应的。
定义1.1.7 设非空集合A,∏={π1,π2,…,πn},其中πi n
A,πi≠∅ (i=1,2,…,n),若是有∪πi=A且πi∩πj=∅ (i≠j),i=1
则称∏是A的划分。其中πi是一个划分块。
例如,集合S={a,b,c,d},考虑下列集合:
A={{a,b},{c,d}}
B= {{a},{b},{c},{d}}C= {{a},{b,c,d}}
D= {{a,b,c,d}}E={{a,b},{b,c,d}}F= {{a,b},{c}}
则A、B、C和D都是S的划分,E和F则不是S的划分。
定义1.1.8 设有集合A、B,若是存在双射函数f:A→B,则 说A和B有相同的基数,或者说A和B等势,记为A~B。
一个无限集 , 存在着它与其自身的一个真子集有 相 同的基数。这里Ne 和天然数集合都是无限集。
一般 , 考虑一个无限集的基数时 , 老是看它与天然数集合可否 创建一一对应。能与天然数集合创建一一对应的无限集称为可数集 ; 不能与天然数集合创建一一对应的无限集称为不可数集。
例如:整数集合是可数集; 集合{1, 3, 5, 7, …}是可数集; 实数 集合R是不可数集;集合{x|x∈R,0<x<1}是不可数集,其中R是实数。
6:证实和证实方法
形式语言和有限自动机,有很强的理论性, 许多的论断是以定理的形式给出的,而定理的 正确性是须要进行证实的。
形式语言和有限自动机理论中定理的证实大多使用反证法和概括法进行。
(1):反证法
反证法也称为归谬法。利用反证法证实一个命题时 , 通常的步骤为 :
假设该命题不成立; 进行一系列的推理; 若是在推理的过程当中,出现了下列状况之一:
1 与已知条件矛盾;
2 与公理矛盾;
3 与已证过的定理矛盾;
4 与临时的假定矛盾;
5 自相矛盾。 因为上述矛盾的出现,能够断言“假设该命题不成立”的假定是不正确的; 确定原来的命题是正确的。
(2)概括法
概括法就是从特殊到通常的推理方法。分为彻底概括法和不彻底概括法两种形式。
彻底概括法是根据一切状况的分析而做出的 推理。由 于必 须考虑 全部 的状况 , 所 以得 出 的结论是彻底可靠的。
不彻底概括法是根据一部分状况做出的推理 , 所以 , 不能做为严格的证实方法。 在形式语言与有限自动机理论中 , 大量使用数学概括法证实某个命题。数 学 归 纳 法 可 以 使 用“ 有 限 ”步 骤 来 解 决“ 无 限 ”的 问 题 。数学概括法的原理为 :
假定对于一切非负整数n, 有一个命题M(n) , 假设证实了 :
(1)M(0) 为真; (2) 设对于任意的k≥0,M(k) 为真,若是可以推出M(k+ 1) 为真,则对一切n≥0,
M(n) 为真。所以,在使用数学概括法证实某个关于非负整数n的命题P(n) 时,只须要证实(1)、(2)
两点便可。第(1)步称为概括基础, 第(2)步称为概括步骤。第(2)步中“设对于任意的k≥ 0,M(k) 为 真 ”, 称 为 归 纳 假 设 。
在实际应用中,某些命题P(n)并不是对n≥0都成立,而是对n≥N(N为大于0的某个自 然数)成立, 此时,也同样可使用该概括法。具体步骤以下。
假定对于一切非负整数n, 有一个命题M(n), 假设证实了:
(1)M(N) 为真; (2)设对于任意的k≥N,M(k)为真,若是可以推出M(k+1)为真,则对一切n≥N,
M(n) 为真。
好比说用概括法证实下递归:
概括法证实递归定义集合性质的步骤以下。(1) 基础:证实该集合中的最基本元素具备性质P; 并且使得该集合非空; (2) 概括: 证实若是该集合的元素x1 ,x2 ,x3 , …,具备性质P, 则使用某种运算、函数或组
合方法对这些元素进行处理后所得的元素也具备性质P;
(3) 由概括法原理,集合中的全部元素也具备性质P。
这上述的大概是集合的可以归纳的全部知识点了,只须要了解便可,在下一篇文章中,将会描述一下逻辑和图论的问题,而后基础知识将很快学完,开始真正有意思的部分