离散数学之集合论【中】
一、有序组
- 有序组
〉 元素的无序性是集合的特征之一,那么元素的有序组合又该如何从集合定义?
〉 二元有序组,又称二元组(2-tuple),或者序偶(ordered pairs)
〉 设 a,b 为任意对象,称集合族 {{a},{a,b}} 为二元有序组,简记为 <a,b>
〉 称a为<a,b>的第一分量,b为第二分量
“有序”的含义 ?
〉 定理:对于任意序偶 <a,b>, <c,d>,<a,b>=<c,d> 当且仅当a=c且b=d
------------------------------------------------------------------------------------------------------
证明:
〉 充分性是显然的
〉 证明必要性:设<a,b>=<c,d>,也就是
〉 {{a},{a,b}}={{c},{c,d}}
〉∪{{a},{a,b}}=∪{{c},{c,d}} {a,b}={c,d}
〉 以及,{{a},{a,b}}={{c},{c,d}}
〉 ∩{{a},{a,b}}= ∩{{c},{c,d}} {a}={c}
〉 综合两式,有a=c且b=d
------------------------------------------------------------------------------------------------------
〉 当a≠b时:<a,b>≠<b,a>
〉 但{a,b}={b,a}
〉 有序组 {{a},{a,b}} 的巧妙定义,利用元素和集合的两个不同层次实现两个对象 a,b 的有序排列
〉 n元有序组(n-tuple) <a1,…,an>
递归定义:
〉 n=2时,<a1,a2> = {{a1},{a1,a2}} ; (递归出口)
〉 n>2时,<a1,…,an>= <<a1,…,an-1>, an>; (递归条件)
〉 ai 称为n元组的第i分量
〉 定理:对于任意n元组 <a1,…,an>=<b1,…,bn> 当且仅当 a1=b1,…,an=bn
- 笛卡儿积:集合的一种运算
〉 对任意集合 A1,A2,…,An,A1×A2 称作集合 A1,A2 的笛卡儿积,定义如下(递归定义):
〉 A1×A2 = {<u,v> | u∈A1,v∈A2}
〉 A1×A2×… ×An =(A1×A2×… ×An-1) ×An
例子:A={1,2},B={a,b},则:
〉 A×B 等于{<1,a>, <1,b>, <2,a>, <2,b>}; B×A 等于{<a,1>, <a,2>, <b,1>, <b,2>} ; A×=×A=
〉 R2={<x,y>|x,y是实数},R2为笛卡儿平面;
〉 R3为三维笛卡儿空间
笛卡尔是解析几何创始人,首次用三元组表示空间中的点,统一了代数与几何
〉 一般来说:
〉 A×B≠B×A(不满足交换律)
〉 A×(B×C) ≠(A×B)×C(不满足结合律)
笛卡儿积对集合运算的分配律
〉 定理:设A,B,C为任意集合,$表示∪,∩或-运算,那么:A×(B$C)=(A×B)$(A×C), (B$C)×A=(B×A)$(C×A)
笛卡儿积的基数定义为如下:
〉 定理:对于任意有限集合 A1,… ,An ,有|A1×…×An|=|A1|*…*|An|
二、关系
- 关系的基本概念
〉 关系是各个对象之间的联系和对应
〉 最常见到是两组对象之间的联系和对应。职员-部门的隶属关系
〉 也有三组或者更多对象之间的联系和对应。供应商-工程-零件的供应关系
〉 采用二元组或者多元组的集合来表示关系
ED={<张三,人事部>,<李四,销售部>,<王五,技术部>}
SPJ={<公司甲,大楼,水泥>,<公司甲,公路,水泥>,<公司乙,大楼,钢筋>,<公司丙,公路,沥青>}
- 关系的定义
〉 R 称为集合A1,A2,…,An-1到 An 的n元关系,如果 R 是 A1×A2×…×An 的一个子集。当A1=A2=…=An-1=An时,也称R为A上 的n元关系。
〉 如果R是A×B的一个子集,称R是A到B的二元关系,若R是A×A的一个子集,则称R是A上的二元关系。所有关系共 个
〉 我们主要研究二元关系。
- 关系的例子
〉 自然数的相等关系 = {<0,0>,<1,1>,<2,2>,…}(列举法)
〉 整除关系 D={<x,y>|x整除y}(描述法)
〉 小于关系 L:归纳法
〉 基础条款:<0,1>∈L
〉 归纳条款:若<x,y>∈L,则<x,y+1>∈L,<x+1,y+1>∈L
〉 终极条款(略)
- 几个特殊的二元关系
〉 空关系 , A×B,称 为A到B的空关系
〉 全关系 A×B,笛卡儿积A×B是A到B的全关系
〉 相等关系 ={<x,x>|x∈A},称作A上的相等关系
- 关系的几个概念
〉 定义:设R为A到B的二元关系( R A×B)
〉 xRy 表示 <x,y>∈R, ¬xRy表示<x,y> R
〉 R的定义域 domain:
〉 Dom(R)={x|x∈A∧y(<x,y>∈R)}
〉 R的值域 range:
〉 Ran(R)={y|y∈B∧x(<x,y>∈R)}
〉 称A为R的前域,B为R的陪域
- 关系的表示法
〉 集合表示法: R={<x,y>|P(x,y)},适合于表示集合的几种方法均可,如前面的关系例子
〉 关系图法: 适用于前域和陪域都是有限集合,一般的关系图,有向箭头表示元素之间存在关系
〉 也可以表示前域和陪域相同的关系图
- 前域和陪域不同的关系图
- 前域和陪域相同的关系图
- 关系矩阵法表示
〉 前域和陪域都是有限集合
〉 设关系R A×B,A={a1,…,am},B={b1,…,bn}
关系R的关系矩阵的定义:
〉 =1当且仅当
〉 =0当且仅当 ¬
- 关系基本运算
运算基本定义
〉 关系相等: 如果关系R和S具有相同的前域和陪域,并且 ∀x∀y(xRy↔xSy)
〉 关系运算中的前域和陪域: R A×B,A为前域,B为陪域
〉 参与关系运算的两个关系应该具有相同的前域和陪域
这个条件不是本质的,因为总可以对关系的前域和陪域做适当的扩充,使之满足条件
作为集合的关系运算
〉 R和S为A到B的二元关系,R,SA×B
〉 并:R∪S={<x,y>|xRy∨xSy}
〉 交:R∩S={<x,y>|xRy∧xSy}
〉 差:R-S={<x,y>|xRy∧¬xSy}
〉 补:R-=A×B-R={<x,y>| ¬xRy}
并不是全集U-R,而是全关系与R的差
对应的关系矩阵运算
〉 和为R、S的关系矩阵
〉 并:=∨(矩阵对应分量做析取)
〉 交:=∧(矩阵对应分量做合取)
〉 补:-=()-(矩阵对应分量做否定)
〉 差:=∩S-=∧-
关系逆运算(converse)
〉 R~={<y,x>| xRy },R A×B
〉 显 然 , R 的 逆 关 系 是 B 到 A 的 关 系 :R~ B×A
〉 逆关系关系矩阵的运算:~=,矩阵转置
〉 逆运算例子
~=;~=;(A×B)~=B×A
自然数“小于<”关系的逆关系是“大于>”
自然数“小于<”关系的补关系是“大于或等于≥”
关系逆运算的性质
〉 逆运算和并交差补等运算都满足分配律
〉 R,S A×B,$ 代表并交差运算之一
〉 R~~=R(两次逆复原)
〉 R~-=R-~(逆的补等于补的逆)
〉 (R$S)~=R~$S~(对并交叉运算分配律)
〉 RS当且仅当R~S~
〉 从矩阵转置角度来看,表现为转置运算不会改变矩阵分量的值
关系合成运算 (composition)
〉 R为A到B的二元关系,R A×B
〉 S为B到C的二元关系,S B×C
〉 R和S的合成关系定义为:
〉 ={<x,z>|x∈A ∧ z∈C∧∃y(y∈B∧xRy∧ySz)}
〉 简化形式: ={<x,z>|∃y(xRy∧ySz)}
〉 A×C,是A到C的二元关系
〉 由于参与合成的第一个关系的陪域要等于第二个关系的前域,所以合成关系不满足交换律
关系合成运算的例子
〉 设是A上的相等关系,是B上的相等关系,R A×B
〉 R=R =R
〉 R=R =
〉 RR~ = (A×B,B×A) {<x,x>|∃y(xRy∧yRx)}
〉 R~ R=(B×A,A×B) {<y,y>|∃x(yRx∧xRy)}
〉 兄弟关系和父子关系的合成是“叔侄”关系
用关系图表示合成运算
用关系矩阵表示合成运算
〉 关系合成运算对应关系矩阵的乘法
〉 将数乘换成合取,将数加换成析取
〉 设|A|=m,|B|=n,|C|=p,
〉 R A×B,S B×C,
〉 则=, =
〉 T=R S,有T A×C,
〉 =*=
〉 其中
合成运算的性质
〉 R (S∪T)=(R S)∪(R T)(左分配律)
〉 (S∪T) R=(SR)∪(TR)(右分配律)
〉 ∃x(A(x)∨B(x))╞╡∃xA(x) ∨ ∃xB(x)
〉 R (S∩T) (RS)∩(RT)
〉 (S∩T) R (SR)∩(TR)
〉 ∃x(A(x)∧B(x))╞∃xA(x)∧∃xB(x)
〉 (RS)~=S~R~
〉 R(ST)=(RS)T(结合律)
关系的幂运算
〉 定义为自身的n次合成
〉 =R…R(n个R合成)
〉 =
〉 幂运算的性质
〉 =
〉 =
〉 可以把m看作参数,对n进行归纳法证明
幂关系有限定理
〉 设集合A的基数为n,R是A上的二元关系,则存在自然数 i,j 使得0≤i<j≤,有Ri=Rj
证明:
〉 R的任意次幂运算仍是 A 上的二元关系
〉 有限集A上不同的二元关系数量是有限的
〉 因为RA×A,而A×A子集的个数有限
〉 如果|A|=n,A上的二元关系的数量是
〉 根据“鸽笼原理”,在0~ 共计+1个R的幂关系中,一定有两个是相同的
- 关系基本特性
A上一些特殊性质的二元关系 〉 自反关系(reflexive) 〉 ∀x(x∈A→xRx) 〉 关系图:每个节点都有环 〉 关系矩阵:对角线全为1 〉 反自反关系(irreflexive) 〉 ∀x(x∈A→ ¬xRx) 〉 关系图:每个节点都没有环 〉 关系矩阵:对角线全为0 |
〉 对称关系(symmetric) 〉 ∀x∀y(x,y∈A∧xRy→yRx) 〉 关系图:两个节点之间有边的就有反向边 〉 关系矩阵:对称矩阵 〉 反对称关系(antisymmetric) 〉 ∀x∀y(x,y∈A∧xRy∧yRx→x=y) 〉 关系图:两个节点之间只能有一条单向边 〉 关系矩阵:=1(i≠j)时=0 |
〉 传递关系(transitive) 〉 ∀x∀y∀z(x,y,z∈A∧xRy∧yRz→xRz) 〉 关系图:如果有边,则有边 〉 例子: 〉 设A={1,2,3},R是A上的二元关系 〉 R={<1,1>,<1,3>,<2,2>,<3,3>}是自反的 〉 R={<1,3>,<3,1>}是反自反的,不是自反的 〉 R={<1,1>}不是自反,也不是反自反 |
特殊性质二元关系的例子
〉 A上的空关系是反自反的,不是自反的
〉 如果A=,那么A上的空关系就是自反的,同时也是反自反的,因为注意定义谓词的前件 x∈A 始终为假
〉 R={<1,3>,<3,1>,<1,2>,<1,1>} 不是对称的,也不是反对称的。
〉 R={<1,2>,<2,1>}是对称的
〉 R={<1,2>,<3,1>}是反对称的
〉 A上的相等关系EA既是对称的,又是反对称的
〉 R={<1,2>,<2,3>,<1,3>,<3,3>}是传递的,但R-{<1,3>}不是传递的
〉 空关系是传递的,R={<1,2>,<1,3>}也是传递的,因为它们使得传递定义的前件为假
〉 所有非空集合上的:
空关系都是反自反、对称、反对称、传递的;
全关系是自反,对称,传递的;
相等关系是自反,对称,反对称,传递的;
〉 整数集合上的整除关系是自反、反对称、传递的;
〉 三角形的相似关系、全等关系都是自反、对称、传递的
- 关系特性定理
关系特性的一些定理
〉 R自反当且仅当 R
〉 R反自反当且仅当 ∩ R
〉 R对称当且仅当R R~
〉 设R对称,则:<x,y>∈R<y,x>∈R<x,y>∈R~
〉 设RR~,则:
〉 xRyxR~yyRx,所以R对称
〉 R反对称当且仅当R∩R~
〉 R传递当且仅当 R
关系基本特性的运算封闭性
〉 具有某特性的关系,在运算后,运算结果是否保持这个特性,称为运算封闭性
〉 所有5个特性对交运算封闭,即如果R1、R2都具有某个特性,则R1∩R2仍具有
这个特性:
〉 例证:对称性,
〉 自反、反自反、对称性对并运算封闭
〉 例证:自反性,(并不要求R2具有特性)
〉 反自反、对称、反对称对差运算封闭
〉 例证:反对称:
〉 实际上,只要反对称,任何, 都是反对称的
〉 对称性对补运算封闭
〉 xR-y,假设¬yR-x,那么yRx,即xRy,和已知矛盾,所以有yR-x
〉 所有5个特性对求逆运算均封闭
〉 例证:传递,xR~y ∧ yR~z yRx ∧zRy zRx xR~z
〉 自反对合成运算封闭,其它性质对合成运算均不封闭:
〉 xR1x ∧xR2x xR1 R2x
- 关系的闭包
因为关系的运算能够生成新的关系,但也可能会失去一些性质;另一方面,有的关系“先天性” 地就缺少一些特定的性质。那么此时,如果想要使关系具有某个缺失的性质,就可以使用关系关于某性质的闭包来实现。
定义:
R1 称作 R 的关于某特定性质的闭包,如果
- R1 包含 R ;
- R1 具有所希望的性质 ;且
- R1 是 A 上满足 1 和2 条件的最小关系。
若 A 上的关系 S 也满足条件 1 和 2 则必然有R1 S 。
一般将关系 R 的:自反闭包记作 r(R), 对称闭包记作 s(R), 传递闭包记作 t(R)
例如:A = {0, 1}, R = { (1, 0), (1, 1) } R 的自反闭包是 { (0, 0), (1, 0), (1, 1) } 【注: 包含 R,具有自反性,是“最小的”】
上例子可通过列出集合 A 自身的所有笛卡尔积的关系矩阵表示。共 = = 16 个关系。然后从中筛选出满足条件的。
但我们不可能所有的求闭包的问题都归结到列举法,然后在删除不满足条件的关系。我们需要找到其对应的代数运算规律。如下:
自反闭包(Reflexive Closure)
设 R 是集合 A 上的一个关系,则 R 的自反闭包是 R∪。
- R R∪。
- R∪ 具有自反性——由于 R∪。
- 若 R S且 S 是自反的,则 S,于是 R∪ S 。
从关系图上来看,就是 R 的自反闭包就是,若没有自环的话,就补充自环。
对称闭包(Symmetric Closure)
设 R 是集合 A 上的一个关系,则 R 的对称闭包是 R∪。
- R R∪
- ==∪R = R∪。
- 若 S 具有对称性,且 R S,则由 S 是对称的,有 S = 。
由 R S,得到 。
因此 R∪ S∪ = S。
从关系图上来看,就是 R 的对称闭包就是,将所有相异的顶点单向的边补充成双向的。或者直接将有向图改为无向图。
传递闭包(Transitive Closure)
定理:设 R 为集合 A 上的任意二元关系,则 是 R 的传递闭包。
证明:
① R
② 具有传递性
若 ab 且 bc ,则存在 R 中从 a 到 b 的道路 和从 b 到 c 的道路 ,
于是 和 的复合即是为从 a 到 c 的道路,
因此有 ac , 具有传递性。
③ 是“最小的”
对于A 上任一满足 R S 的传递关系S,由其满足传递性知对于所有 n ≥ 1,
S, 于是
= 。
使用关系矩阵计算关系的闭包
假设 |A| = n
自反闭包 :
对称闭包:
传递闭包:
关系的闭包运算在关系图的表现
- 自反闭包:每个顶点如果没有自环则增加自环
- 对称闭包:如果有顶点i到顶点j的有向边且 i j , 则添加(如果该图中不存在)有向边 ( j, i ) 或者保留该关系的有向图中的顶点,且将所有有向边改作无向边
- 传递闭包:不断更新有向图:如果存在顶点 i 到 j 的道路,则将边 ( i, j ) 添加到有向图中(如果该图中不存在),直至没有新的有向边可添加为止
- 关系闭包运算的性质 Closure
定理1
假设 R 是集合 A 上的关系,则
- R 是自反的当且仅当 r(R) = R
- R 是对称的当且仅当 s(R) = R
- R 是传递的当且仅当 t(R) = R
证明: (c) R是传递的当且仅当 t(R) = R
(1) 假设 R 是传递的,则:R 是传递的,R R,对于任何包含 R 的传递关系 S 都有 R S
(2) 假设 t(R) = R,则 R 是某个关系的传递闭包,其必然是传递的
定理2
假设 R, S 是集合 A 上的关系且 R S,则
(a) r(R) r(S)
(b) s(R) s(S)
(c) t(R) t(S)
证明: (a)
由于 r(S) 满足自反性, 而且 R S r(S) ,因此由自反闭包的最小性有 r(R) r(S) 。
定理3
假设 R 是集合 A 上的关系,则
(a) 如果 R 是自反的, 那么 s(R) 和 t(R) 都是自反的
(b) 如果 R 是对称的, 那么 r(R) 和 t(R) 都是对称的
(c) 如果 R 是传递的, 那么 r(R) 是传递的。(注意:此处不包含 s(R))
证明: (b)的一部分
R = ;于是 ;
r(R) 是对称的。
定理4
设 R 是集合 A 上任一二元关系,则
(a) r(s(R)) = s(r(R))
(b) r(t(R)) = t(r(R))
(c) t(s(R)) s(t(R))
证明: (c)
由闭包的定义有 R s(R),因此可得 t(R) t(s(R))
由于 s(R) 具有对称性, t(s(R)) 也具有对称性
因为 s(t(R)) 是 t(R) 的对称闭包, 由最小性即有 s(t(R)) t(s(R))
此外,求关系的传递闭包,可以使用沃舍尔算法,warshall 算法。扩展问题是过河问题。关于这两个算法,单独陈述。