離散數學之集合論【中】
一、有序組
- 有序組
〉 元素的無序性是集合的特徵之一,那麼元素的有序組合又該如何從集合定義?
〉 二元有序組,又稱二元組(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 算法。擴展問題是過河問題。關於這兩個算法,單獨陳述。