Lec5 Relations(6)
Lec5 Relations(6)
我认为这一章是最难的,图论和树论那里都很简单,一开始的逻辑那里其实感觉比较多。
就把你放到最后解决好了,关系!😎
这一节所讲解的是偏序关系。
这是关系的最后一小节了,记得上一次数据结构也大概是在这个时间来到最后一节的,很巧呢。
做完这个可以准备进入计算机组成原理了,留了周五和双休去应付计组。
计组:这是我应得的!!!
部分排序与全序
一个可能会比较陌生的概念就是良序,需要满足全序和拥有一个最小值这两个条件。
定义:部分排序(Partial Order)
一个集合 $ S $ 上的关系 $ R $ 被称为部分排序(partial ordering),如果它满足以下三个条件:
- 自反性(Reflexive):对于所有的 $ a S $,都有 $ a a $。
- 反对称性(Antisymmetric):如果 $ a b $ 且 $ b a $,则 $ a = b $。
- 传递性(Transitive):如果 $ a b $ 且 $ b c $,则 $ a c $。
当一个集合 $ S $ 与一个部分排序关系 $ R $ 配对时,我们称其为部分有序集(poset),并表示为 $ (S, R) $。
部分排序的例子:
- “大于或等于”($ $)关系是整数集合 $ $ 上的一个部分排序。
- “整除关系”($ | $)是正整数集合 $ ^+ $ 上的部分排序。
- “包含关系”($ $)是集合的幂集上的部分排序。例如,集合 $ S $ 的幂集 $ P(S) $ 上,$ A B $ 表示集合 $ A $ 包含于集合 $ B $。
可比性与不可比性:
在一个部分有序集 $ (S, ) $ 中,两个元素 $ a $ 和 $ b $ 被称为可比的,如果满足:
- $ a b $,或
- $ b a $。
如果 $ a $ 和 $ b $ 既不满足 $ a b $,也不满足 $ b a $,则称 $ a $ 和 $ b $ 为不可比的。
例子:
- 在部分有序集 $ (^+, |) $ 中,整数 3 和 9 是可比的,因为 $ 3 | 9 $(3 整除 9)。
- 在 $ (^+, |) $ 中,整数 5 和 7 是不可比的,因为 5 不整除 7,也没有 7 整除 5。
全序与线性序:
如果一个部分有序集 $ (S, ) $ 中的每一对元素都是可比的,即对于任意 $ a, b S $,要么 $ a b $,要么 $ b a $,则称 $ (S, ) $ 是一个全序或线性序列,并称 $ $ 为全排序或线性排序。
- 全序集(Totally Ordered Set):一个全序集又被称为链(chain)。
- 例子:$ (, ) $ 是一个全序集,因为对于任意的整数 $ a $ 和 $ b $,总有 $ a b $ 或 $ b a $。
- 例子:$ (^+, |) $ 不是全序集,因为有些整数对(例如 5 和 7)既不满足 $ a | b $,也不满足 $ b | a $,因此它不是全排序。
良序(Well-Ordering)
一个部分有序集 $ (S, ) $ 被称为良序(Well-Ordered Set),如果它满足以下条件:
- $ $ 是总排序(全序)。
- $ S $ 中的每个非空子集都有一个最小元素。
- 例子:$ (^+, ) $ 是一个良序集,因为它是一个全序集,并且每个非空子集(例如 $ { 3, 5, 7 } $)都有一个最小元素(例如 3)。
精华部分
- 部分排序:满足自反性、反对称性和传递性的二元关系。
- 全序(线性序):在部分排序的基础上,每一对元素都是可比的。
- 良序:全序集,且每个非空子集有最小元素。
- 可比性与不可比性:可比的元素满足排序关系,不可比的元素无法比较。
中文 | 英文 |
---|---|
部分排序 | Partial Order |
自反性 | Reflexive |
反对称性 | Antisymmetric |
传递性 | Transitive |
部分有序集 | Poset (Partially Ordered Set) |
全序 | Total Order (Linear Order) |
线性排序 | Linear Order |
可比性 | Comparable |
不可比性 | Incomparable |
良序 | Well-Ordered Set |
整除关系 | Divisibility Relation |
包含关系 | Inclusion Relation |
最小元素 | Least Element |
集合的幂集 | Power Set |
整数集合 | Set of Integers |
线性序列(链) | Chain |
总排序(全序) | Total Ordering |
字典序排列(Lexicographic Ordering)
字典序很简单,如果知道C++的
pair
就了解这种比较的原理了。
字典序是一种基于元素顺序的排列方式,特别适用于多元组或字母序列的排序。对于两个元组 \((a_1, a_2)\) 和 \((b_1, b_2)\),它们的字典序比较规则如下:
- 如果 \(a_1 < b_1\),则 \((a_1, a_2) < (b_1, b_2)\)
- 如果 \(a_1 = b_1\),则比较 \(a_2\) 和 \(b_2\),如果 \(a_2 < b_2\),则 \((a_1, a_2) < (b_1, b_2)\)
例子:
- \((3,5) < (4,8)\)
- \((3,8) < (4,5)\)
- \((4,9) < (4,11)\)
- \((1,2,3,5) < (1,2,4,3)\)
字典序比较中的例子
- "discreet" < "discrete"
- "discreet" < "discreetness"
Hasse 图(Hasse Diagrams)
主要删除的是能够进行传递的边,我记得还会删除掉自环。
Hasse 图是表示部分排序关系的一种图形化方式,它展示了元素之间的大小关系,不显示具体的箭头,而是只保留有向边的结构。以下是创建 Hasse 图的步骤:
- 删除冗余边:如果 \((a,b)\) 和 \((b,c)\) 存在于部分排序中,那么应删除 \((a,c)\) 这一边。同理,如果 \((c,d)\) 也存在于部分排序中,应该删除 \((a,d)\)。
- 排列边:每一条边的起点应该位于终点的下方,表示排序关系。
- 删除箭头:由于所有的边都指向“上方”,因此可以去掉有向边的箭头。
部分排序(Partial Ordering)例子
- 整除关系:对于集合 \(\{1,
2, 3, 4, 6, 8, 12\}\),其中的部分排序是基于整除关系。例如:
- \((1,4)\), \((1,6)\), \((1,8)\), \((1,12)\)
- \((2,8)\), \((2,12)\)
- \((3,12)\)
- 集合包含关系:对于集合 \(S = \{a, b, c\}\) 的幂集 \(\mathcal{P}(S)\),部分排序关系是基于集合的包含关系
\(\subseteq\),例如:
- \((\emptyset, \{a,b\})\), \((\emptyset, \{a,c\})\), \((\emptyset, \{b,c\})\), \((\emptyset, \{a,b,c\})\)
- \((\{a\}, \{a,b,c\})\), \((\{b\}, \{a,b,c\})\), \((\{c\}, \{a,b,c\})\)
关于偏序的一些常考概念
最大元素与最小元素 (Maximal and Minimal Elements)
在一个偏序集合(poset)\((S, \leq)\) 中:
- 最大元素(Maximal Element):如果不存在元素 \(b \in S\) 使得 \(a < b\),则 \(a\) 是最大元素。
- 最小元素(Minimal Element):如果不存在元素 \(b \in S\) 使得 \(b < a\),则 \(a\) 是最小元素。
在偏序图中,最大元素和最小元素通常位于图的“顶端”和“底端”。
示例 1:求偏序集合 \(\{2, 4, 5, 10, 12, 20, 25\}\) 在整除关系 \((|)\) 下的最大元素和最小元素
- 最大元素:12, 20, 25 (因为这些元素没有任何元素能够整除它们)
- 最小元素:2, 5 (因为2和5能整除集合中的其他元素)
示例 2:求偏序集合 \((P(S), \subseteq)\) 中的最大元素和最小元素
对于集合 \(S\) 的幂集 \(P(S)\) 和包含关系 \(\subseteq\),
- 最大元素:\(S\) (因为任何集合都可以包含 \(S\))
- 最小元素:\(\emptyset\) (因为任何集合都可以包含空集)
示例 3:在偏序集合 \((\mathbb{Z}^+, |)\) 中是否存在最大元素和最小元素?
在正整数集 \(\mathbb{Z}^+\) 上的整除关系 \((|)\) 中:
- 最大元素:不存在,因为没有任何正整数能够整除所有其他正整数。
- 最小元素:1 (因为1能够整除任何正整数)
上界与下界 (Upper and Lower Bounds)
假设 \(A\) 是偏序集合 \((S, \leq)\) 中的一个子集:
- 上界(Upper Bound):如果存在元素 \(u \in S\),使得对所有 \(a \in A\),都有 \(a \leq u\),则 \(u\) 是 \(A\) 的上界。
- 下界(Lower Bound):如果存在元素 \(l \in S\),使得对所有 \(a \in A\),都有 \(l \leq a\),则 \(l\) 是 \(A\) 的下界。
最小上界与最大下界 (Least Upper Bound and Greatest Lower Bound)
- 最小上界 (Least Upper Bound, LUB):
- 元素 \(x\) 被称为子集 \(A\) 的最小上界(也叫上确界),如果:
- \(x\) 是 \(A\) 的上界,即对于所有 \(a \in A\),都有 \(a \leq x\);
- 对于所有 \(A\) 的上界 \(z\),都有 \(x \leq z\)。
- 换句话说,最小上界是所有上界中的最小元素。
- 元素 \(x\) 被称为子集 \(A\) 的最小上界(也叫上确界),如果:
- 最大下界 (Greatest Lower Bound, GLB):
- 元素 \(y\) 被称为子集 \(A\) 的最大下界(也叫下确界),如果:
- \(y\) 是 \(A\) 的下界,即对于所有 \(a \in A\),都有 \(y \leq a\);
- 对于所有 \(A\) 的下界 \(z\),都有 \(z \leq y\)。
- 换句话说,最大下界是所有下界中的最大元素。
- 元素 \(y\) 被称为子集 \(A\) 的最大下界(也叫下确界),如果:
示例:
- 最小上界(LUB):在集合 \(\{2, 4, 5\}\) 和整除关系(\(|\))下,最小上界是 20,因为 20 是 2, 4 和 5 的上界,并且没有其他小于 20 的上界。
- 最大下界(GLB):在集合 \(\{2, 3, 5\}\) 和整除关系(\(|\))下,最大下界是 1,因为 1 是 2, 3 和 5 的下界,并且没有其他大于 1 的下界。
精华所在:
- 最小上界是最小的能够大于或等于集合所有元素的元素。
- 最大下界是最大的能够小于或等于集合所有元素的元素。
Lattice(格)
刚刚开始看的时候有一个误区,以为是一个元素的。
要记住,上下界是要看一对元素的,如果有一对元素的上界出现了两个或两个以上的元素,那么它就不是格了。
格(Lattice)定义
- 格
是一个偏序集(poset),在其中每一对元素都具有最小上界(Least Upper
Bound,LUB)和最大下界(Greatest Lower Bound,GLB)。
- 换句话说,格 是一个满足每对元素都有最小上界和最大下界的偏序集。
例子:
Poset \({ \mathbb{Z}^+ }, |\) 是一个格:
在正整数集合中,整数的整除关系是一个格,因为对于任意两个正整数 \(a\) 和 \(b\),都有最小上界和最大下界。Poset \(\{ 1, 2, 3, 4, 5 \}, |\) 不是格:
这个集合的整除关系不是格,因为某些元素对(例如 3 和 5)没有最小上界。Poset \(\{ 1, 2, 4, 8, 16 \}, |\) 是一个格:
这个集合的整除关系是一个格,因为对于每一对元素,都可以找到最小上界和最大下界。Poset \(P(S), \subseteq\) 是格,其中 \(S\) 是一个集合:
在集合 \(S\) 的幂集上,包含关系 \(\subseteq\) 构成一个格,因为每对集合都有最小上界和最大下界。
不成立为格的情况:
- 如果在偏序集中某些元素对没有最小上界或最大下界,那么这个偏序集不是格。
例如,假设在一个偏序集中的元素 \(b\) 和 \(c\) 没有最小上界,那么这个偏序集就不是格。
格的性质总结:
- 在格中,对于每一对元素 \(a\) 和 \(b\),都存在最小上界 \(a \vee b\) 和最大下界 \(a \wedge b\)。
- 在格中,所有元素的组合(通过最小上界和最大下界)确保了其满足完全的结构特性。
拓扑排序与兼容的全序
兼容的全序
- 兼容的全序(Compatible Total Ordering):如果一个全序 $ $ 满足对于偏序集中的任意元素 $ a $ 和 $ b $,只要 $ a $ 和 $ b $ 满足偏序关系 $ a , R , b $,则 $ a b $,那么这个全序就叫做兼容的全序。
拓扑排序(Topological Sorting)
- 拓扑排序是从偏序关系中构造兼容全序的过程,通常用于对有向无环图(DAG)中的元素进行排序。通过拓扑排序,可以根据部分顺序关系将元素进行排列,使得所有的依赖关系得到满足。
定理:
- 每一个有限的非空偏序集 $ (S, ) $
都有一个最小元素。
这意味着,在每一个有限的偏序集中,必定存在至少一个元素,它不大于任何其他元素。
拓扑排序算法(Procedure topological sort)
- 输入:一个有限偏序集 \(S\)。
- 输出:一个符合 \(S\) 中部分顺序关系的兼容全序(即拓扑排序)。
算法步骤:
1 | k := 1 |
解释:
- 该算法通过不断从偏序集中取出一个最小元素,并将其从集合中删除,最终得到一个符合偏序关系的全序排列。
- 每次选出的最小元素 $ a_k $ 都是当前集合中的最小元素,它是唯一不大于其他元素的元素。通过这种方式逐步构造出一个兼容的全序。
结论:
- 每个有限的非空偏序集都可以通过拓扑排序算法进行排序,得到一个兼容的全序。
应用题
问题描述: 设 $ P $ 为正整数集 $ ^+ $ 关于整除关系的子集,求集合 $ P $ 中某个元素 $ T $ 的上界、下界、上确界和下确界。
解答过程:
整除关系的偏序集:
在正整数集 $ ^+ $ 上,定义“整除关系”作为偏序关系:对于任意 $ a, b ^+ $,如果 $ a $ 能整除 $ b $(即 $ a b $),则我们说 $ a b $。上界(Upper Bound):
对于集合 $ P $ 中的元素 $ T $,若 $ T $ 的上界是集合 $ P $ 中的某个元素 $ x $,则对于集合 $ P $ 中的每个元素 $ y $,有 $ y x $。- 对于 $ T = { 2, 3, 5 } $,其上界可以是 60、120、180、240 等等,这些都是能被 $ 2, 3, 5 $ 整除的数。
上确界(Least Upper Bound, LUB):
上确界是所有上界中最小的元素,即最小的满足 $ T x $ 的 $ x \(。 - 在本例中,\) T = { 2, 3, 5 } $ 的上确界是 60,因为 60 是所有上界中的最小值,且 60 能被 2、3 和 5 整除。下界(Lower Bound):
对于集合 $ P $ 中的元素 $ T $,若 $ T $ 的下界是集合 $ P $ 中的某个元素 $ y $,则对于集合 $ P $ 中的每个元素 $ x $,有 $ y x $。- 对于 $ T = { 2, 3, 5 } $,其下界为 1,因为 1 能整除 $ T $ 中的所有元素。
下确界(Greatest Lower Bound, GLB):
下确界是所有下界中最大的元素,即最大的满足 $ y T $ 的 $ y \(。 - 在本例中,\) T = { 2, 3, 5 } $ 的下确界是 1,因为 1 是所有下界中的最大值,且 1 能整除集合 $ T $ 中的所有元素。
总结:
- 上界:60、120、180、240 等;
- 上确界:60;
- 下界:1;
- 下确界:1。
通过这种方式,正整数集 $ ^+ $ 的整除关系偏序集的上界、下界、上确界和下确界可以在给定集合中明确找到。