关系
定义
见 05-函数及其运算。
令 R⊆A×B,则 (a,b)∈R 可记作 aRb,(a,b)∈/R 可记作 aRb。
设 R 是 A 到 B 的一个关系:
- R 的定义域(Domain):DomR={a∈A∣∃b∈B,aRb}
- R 的值域(Range):RanR={b∈B∣∃a∈A,aRb}
- R 的域(Field):FldR=DomR∪RanR
关系 R⊆A×B |
有向图 (VD,ED) |
A,B 是集合 |
顶点集 VD=A∪B |
有序对集合 |
有向边集 ED={(a,b)∣aRb} |
(x,y)∈R |
从 x 到 y 有一条边 |
若 A=B,R 中存在序列:(x1,x2),(x2,x3),⋯,(xn−1,xn) |
图 D 中存在从 x1 到 xn 的长度为 n−1 通路 |
运算
设 R 为从 A 到 B 的关系:
- R↑S={(a,b)∣a∈S∧aRb}
- R↑S⊆R
- R[S]={b∣∃a∈S,aRb}=Ran(R↑S)
- R[S]⊆RanR
- R−1={(b,a)∣aRb}
- R−1 是从 B 到 A 的关系
- (R−1)−1=R
- (R1∪R2)−1=R1−1∪R2−1
设 R1⊆A×B,R2⊂B×C,则 R1,R2 的复合记为 R2∘R1,定义为:R2∘R1={(a,c)∈A×C∣∃b∈B,aR1b∧bR2c}。
- R3∘(R2∘R1)=(R3∘R2)∘R1
- (R2∘R1)−1=R1−1∘R2−1
对 F⊆A×B,G⊆B×C,H⊆B×C,跟函数类似,有:
- (G∪H)∘F=(G∘F)∪(H∘F)
- (G∩H)∘F⊆(G∘F)∩(H∘F)
矩阵算法
对同阶零一矩阵 M1,M2,有
- C=M1∧M2:cij=mij1∧mij2
- C=M1∨M2:cij=mij1∨mij2
对 r×s,s×t 的零一矩阵 M1,M2,有
- r×t 矩阵 C=M1⊙M2:cij=k=1⋁smik1∧mkj2
对于关系 R1,R2,有
- MR1∩R2=MR1∧MR2
- MR1∪R2=MR1∨MR2
- MR2∘R1=MR1⊙MR2
性质
集合 S 上的关系 R:
- 自反性(Reflexivity):∀s∈S,sRs(⟺IS⊆R)
- 反自反性(Irreflexivity):∀s∈S,sRs(也是任意,所以不是自反的否定)
- 对称性(Symmetry):aRb⊨bRa(⟺R−1=R,空关系也是对称关系)
- 反对称性(Antisymmetry):aRb,bRa⊨a=b(对称与反对称可以同时成立)
- 不对称性(Asymmetric):aRb⊨¬(bRa)(反对称的反自反关系)
- 非对称性(Asymmetry):aRb⊨bRa
- 传递性(Transitivity):aRb,bRc⊨aRc(⟺R∘R⊆R,空关系也是传递关系)
关系复合有结合律,则记 Rn=R∘R∘⋯∘Rn,n∈Z+。
有 (a,b)∈Rn 当且仅当存在 t1,t2,⋯,tn−1∈S 使得 aRt1,t1Rt2,⋯,tn−1Rb。
|
= |
⩽ |
< |
∣ |
≡ |
∅ |
E |
自反 |
√ |
√ |
× |
√ |
√ |
× |
√ |
反自反 |
× |
× |
√ |
× |
× |
√ |
× |
对称 |
√ |
× |
× |
× |
√ |
√ |
√ |
反对称 |
√ |
√ |
√ |
√ |
× |
√ |
× |
传递 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
关系运算与性质的保持:
|
自反 |
反自反 |
对称 |
反对称 |
传递 |
R−1 |
√ |
√ |
√ |
√ |
√ |
R1∩R2 |
√ |
√ |
√ |
√ |
√ |
R1∪R2 |
√ |
√ |
√ |
× |
× |
R1∘R2 |
√ |
× |
× |
× |
× |
表示形式:
|
集合表达式 |
关系矩阵 |
关系图 |
自反性 |
IA⊆R |
主对角线全是 1 |
每个顶点都有环 |
反自反性 |
IA∩R=∅ |
主对角线全是 0 |
每个顶点都没有环 |
对称性 |
R=R−1 |
是对称矩阵 |
如果两个顶点之间有边,那么是一对方向相反的边(即无单边) |
反对称性 |
R∩R−1⊆IA |
若 rij=1 且 i=j 则 rji=0 |
如果两个顶点之间有边,那么是一条有向边(即无双向边) |
传递性 |
R∘R⊆R |
对 M2 中 1 所在的位置,M 中对应位置也是 1 |
如果顶点 xi 到 xj 有边,xj 到 xk 有边,那么 xi 到 xk 也有边 |
设 R 为 A 上关系,A={a1,⋯,an},其中 M 为 R 的关系矩阵:
- R 自反 ⟺i=1∏nmii=1
- R 反自反 ⟺i=1∑nmii=0
- R 对称 ⟺M=M⊺
- R 反对称 ⟺∀i,j,i=j⟹mij⋅mji=0
- 同阶矩阵 A⩽B 表示 ∀i,j,aij⩽bij
- R 传递 ⟺M⊙M⩽M
- 即 M⊙M=M⟹R 传递,但反之不然
关系闭包
设 R 是集合 A 上的关系,P 是给定的某种性质(如:自反、对称、传递),满足下列所有条件的关系 R1 称为 R 的关于 P 的闭包:
- R⊆R1
- R1 满足性质 P
- 若存在集合 A 上满足性质 P 的关系 R′ 且 R⊆R′,则 R1⊂R′。
特殊闭包:
- 自反闭包:r(R)=R∪IA
- 对称闭包:s(R)=R∪R−1
- 传递闭包:t(R)=R∗
设 R 是集合 A 上的关系,定义 A 上的 R 连通关系 R∗ 为:
对任意 a,b∈A,aR∗b 当且仅当 (a,b)∈R∨∃t1,⋯,tk∈A,(a,t1)∈R,⋯,(tk,b)∈R(即从 a 到 b 存在长度至少为 1 的通路)
于是
R∗=k=1⋃∞Rk
- r(s(R))=s(r(R)),可记为 rs(R)。
- s(t(R))⊆t(s(R)),可记为 st(R)⊆ts(R)(证明通过闭包的定义)。
闭包的存在性
关于性质 P 的闭包是否存在?
令 R′=⋂{X∣R⊆X∧X 有性质 P},则闭包 R1 存在当且仅当 R′ 存在,也即 {X∣R⊆X∧X 有性质 P} 非空。
闭包的计算
自反闭包和对称闭包显然,而传递闭包理论上存在(根据上面的定义)。
对有限集合 A,若 ∣A∣=n,则有 A 上传递闭包
t(R)=k=1⋃nRk
也许会因为上面的定义而认为是 i=1⋃n−1Rk,但额外考虑 (1,n),⋯,(n,1),则有 (1,1) 有长度为 n 的通路(因为是从长度为 1 的通路,如 (1,2) 开始计算的)。
矩阵乘法计算传递闭包
Mt(R)=M∨M2∨⋯∨Mn
运算量为 2n3(n−1)。
Warshall 算法
将 n 个顶点用 n 个正整数 1,⋯,n 进行标号,设 Di,j,k 为从 i 到 j 的通路中只经过 1,⋯,k 的顶点的最短通路的长度。
若最短路径经过 k,则
Di,j,k=Di,k,k−1+Dk,j,k−1
否则
Di,j,k=Di,j,k−1
因而有
Di,j,k=min{Di,j,k−1,Di,k,k−1+Dk,j,k−1}
考虑回传递闭包,设 Rij(k) 为从 i 到 j 的通路中只经过 1,⋯,k 的顶点的通路,则可以写出
Rij(k)=Rij(k−1)∨(Rik(k−1)∧Rkj(k−1))
Warshall 算法高效的根源在于可以直接利用上一步计算结果中的有效信息简化当前步的计算过程。
运算量为 2n3。
等价关系
设 R 是非空集合 A 上的二元关系,若 R 有如下性质:
则称 R 是 A 上的等价关系。
设 R 是非空集合 A 上的等价关系,对于任意 a∈A,a 的等价类定义为
[a]R={b∈A∣aRb}
a 称为这个等价类的代表元素。
显然若 aRb,则 [a]R=[b]R。
设 R 是非空集合 A 上的等价关系,A 的所有等价类构成的集合称为 A 关于 R 的商集,记作 A/R。
A/R 的元素是 A 的等价类。
集合 A 的划分 π(partition)是 A 的一组非空子集的集合,即 π∈P(A) 且满足:
- 对任意 a∈A,则存在某个 Ai∈π 使得 a∈Ai。即 Ai∈π⋃Ai=A。
- 对任意 Ai,Aj∈π 且 i=j,则 Ai∩Aj=∅。
则商集 A/R 是 A 的一个划分。即有公共元素的任意两个等价类必相等。
设 R(a) 是由 R 所诱导的,关于 a∈A 的等价类,即 R(a)=[a]R。
不妨设 R(a)∩R(b)=∅,设 c 是一个公共元素,从而有 aRc,bRc。
任意 x∈R(a),aRx,传递性和对称性有 cRx,再由 bRc 有 bRx,即 x∈R(b)。从而 R(a)⊆R(b)。
同理可证 R(b)⊆R(a),从而 R(a)=R(b)。
于是可以通过划分定义等价关系。
给定 A 上一个划分 π,定义 A 上的等价关系 R:
aRb⟺∃Ai∈π,a,b∈Ai