有限自动机理论
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 集合及其运算

集合理论是计算机理论的重要基础,也是形式语言和自动机理论的基础。

一些没有重复的对象的全体称为集合,而这些被包含的对象称为该集合的元素。集合中元素可以按任意顺序进行排列。一般来说,使用大写英文字母表示一个集合。

使用∅代表空集,表示该集合未包含任何元素。

若集合A包含元素x(也称元素x在集合A中),则记为xA

若集合A未包含元素x(也称元素x不在集合A中),则记为xA

若一个集合包含的元素是有限的,则称该集合为有穷集合。若一个集合包含的元素是无限的,则称该集合为无穷集合。

对于任意的有穷集合A,使用|A|表示该集合包含的元素的个数,显然,|∅|=0。

对于具体的集合,可以使用明确的、形式化的方法进行描述。

对于元素个数较少的有穷集合,可以采用列举法,即将集合的所有元素全部列出,放在一对花括号中。例如,集合A={0,1,2,3,4,5,6,7,8,9},表示集合A由0,1,2,3,4,5,6,7,8, 9共10个元素组成。

对于集合元素较多的有穷集合和无穷集合,可以使用集合形成模式{x | Px)}进行描述(也称为命题法);其中,x表示集合中的任一元素,Px)是一个谓词,对x进行限定。{x|Px)}表示由满足Px)的一切x构成的集合。可以使用自然语言或数学表示法来描述谓词Px)。

例如,{n|n是偶数}或{n|n mod 2=0},都表明了由所有偶数组成的集合。

定义1.1 子集的定义。

对于两个集合AB,若集合A的元素都是集合B的元素,则称集合A包含于集合B中(或称集合B包含集合A),记为AB,并且称集合A是集合B的子集。

AB,且集合 B中至少有一个元素不属于集合 A,则称集合 A 真包含于 B中(或称集合B真包含集合A),记为AB,此时,称集合A是集合B的真子集。

两个集合相等,当且仅当ABBA。注意:不是ABBA

定义1.2 集合之间的运算。

集合A与集合B的并(或称为集合A与集合B的和),记为AB,是由集合A的所有元素和集合B的所有元素合并在一起组成的集合:

AB={x|xAxB}

集合A与集合B的交,记为AB,是由集合A和集合B的所有公共元素组成的集合:

AB={x|xAxB}

集合 A与集合 B的差,记为 AB,是由属于集合 A但不属于集合 B的所有元素组成的集合:

AB={x|xAxB}

BA,则将AB称为集合B(关于集合A)的补,集合A称为集合B的全集(论域)。

思考:什么情况下,AB=A,AB=A,AB=A

定义1.3 幂集的定义。

A为一个集合,那么A的幂集为A的所有子集组成的集合,记为2A,即

2A={B|BA}

例1.1 幂集的例子。

集合A={1,2,3},则A的幂集为

当集合A为有穷集时,如果集合A包含的元素个数为n,那么集合2A的元素个数(集合A有子集的个数)为2A,这就是称2A为集合A的幂集的原因。当集合A为无穷集时,仍然使用2A表示集合A的幂集,它也是无穷集。

注意:

任何集合A的幂集2A的元素都是集合。

空集∅是任何集合的子集,也是任何集合A的幂集2A的子集。

定义1.4 笛卡儿乘积的定义。

集合AB的笛卡儿乘积使用A×B表示(也简记为AB),它是集合

{(a,b)|aAbB}

A×B的元素称为有序偶对(a,b),总是A的元素在前,B的元素在后。

A×BB×A一般不相等。

例如,设A={a,b,c},B={0,1},则

A×B={(a,0),(a,1),(b,0),(b,1),(c,0),(c,1)}

B×A={(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)}

思考:什么情况下,A×B=B×A