Lec5 Relations(6)

我认为这一章是最难的,图论和树论那里都很简单,一开始的逻辑那里其实感觉比较多。

就把你放到最后解决好了,关系!😎

这一节所讲解的是偏序关系。

这是关系的最后一小节了,记得上一次数据结构也大概是在这个时间来到最后一节的,很巧呢。

做完这个可以准备进入计算机组成原理了,留了周五和双休去应付计组。

计组:这是我应得的!!!

部分排序与全序

一个可能会比较陌生的概念就是良序,需要满足全序和拥有一个最小值这两个条件。

定义:部分排序(Partial Order)

一个集合 $ S $ 上的关系 $ R $ 被称为部分排序(partial ordering),如果它满足以下三个条件:

  1. 自反性(Reflexive):对于所有的 $ a S $,都有 $ a a $。
  2. 反对称性(Antisymmetric):如果 $ a b $ 且 $ b a $,则 $ a = b $。
  3. 传递性(Transitive):如果 $ a b $ 且 $ b c $,则 $ a c $。

当一个集合 $ S $ 与一个部分排序关系 $ R $ 配对时,我们称其为部分有序集(poset),并表示为 $ (S, R) $。

部分排序的例子:

  1. “大于或等于”($ $)关系是整数集合 $ $ 上的一个部分排序。
  2. “整除关系”($ | $)是正整数集合 $ ^+ $ 上的部分排序。
  3. “包含关系”($ $)是集合的幂集上的部分排序。例如,集合 $ 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),如果它满足以下条件:

  1. $ $ 是总排序(全序)。
  2. $ S $ 中的每个非空子集都有一个最小元素。
  • 例子:$ (^+, ) $ 是一个良序集,因为它是一个全序集,并且每个非空子集(例如 $ { 3, 5, 7 } $)都有一个最小元素(例如 3)。

精华部分

  1. 部分排序:满足自反性、反对称性和传递性的二元关系。
  2. 全序(线性序):在部分排序的基础上,每一对元素都是可比的。
  3. 良序:全序集,且每个非空子集有最小元素。
  4. 可比性与不可比性:可比的元素满足排序关系,不可比的元素无法比较。
中文 英文
部分排序 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 图的步骤:

  1. 删除冗余边:如果 \((a,b)\)\((b,c)\) 存在于部分排序中,那么应删除 \((a,c)\) 这一边。同理,如果 \((c,d)\) 也存在于部分排序中,应该删除 \((a,d)\)
  2. 排列边:每一条边的起点应该位于终点的下方,表示排序关系。
  3. 删除箭头:由于所有的边都指向“上方”,因此可以去掉有向边的箭头。
image-20241121182304975
image-20241121182332709

部分排序(Partial Ordering)例子

  1. 整除关系:对于集合 \(\{1, 2, 3, 4, 6, 8, 12\}\),其中的部分排序是基于整除关系。例如:
    • \((1,4)\), \((1,6)\), \((1,8)\), \((1,12)\)
    • \((2,8)\), \((2,12)\)
    • \((3,12)\)
  2. 集合包含关系:对于集合 \(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\) 的下界。
image-20241121180221105
image-20241121180313202

最小上界与最大下界 (Least Upper Bound and Greatest Lower Bound)

  1. 最小上界 (Least Upper Bound, LUB)
    • 元素 \(x\) 被称为子集 \(A\) 的最小上界(也叫上确界),如果:
      • \(x\)\(A\) 的上界,即对于所有 \(a \in A\),都有 \(a \leq x\)
      • 对于所有 \(A\) 的上界 \(z\),都有 \(x \leq z\)
    • 换句话说,最小上界是所有上界中的最小元素。
  2. 最大下界 (Greatest Lower Bound, GLB)
    • 元素 \(y\) 被称为子集 \(A\) 的最大下界(也叫下确界),如果:
      • \(y\)\(A\) 的下界,即对于所有 \(a \in A\),都有 \(y \leq a\)
      • 对于所有 \(A\) 的下界 \(z\),都有 \(z \leq y\)
    • 换句话说,最大下界是所有下界中的最大元素。

示例:

  • 最小上界(LUB):在集合 \(\{2, 4, 5\}\) 和整除关系(\(|\))下,最小上界是 20,因为 20 是 2, 4 和 5 的上界,并且没有其他小于 20 的上界。
  • 最大下界(GLB):在集合 \(\{2, 3, 5\}\) 和整除关系(\(|\))下,最大下界是 1,因为 1 是 2, 3 和 5 的下界,并且没有其他大于 1 的下界。

精华所在:

  • 最小上界是最小的能够大于或等于集合所有元素的元素。
  • 最大下界是最大的能够小于或等于集合所有元素的元素。
image-20241121180601566

Lattice(格)

刚刚开始看的时候有一个误区,以为是一个元素的。

要记住,上下界是要看一对元素的,如果有一对元素的上界出现了两个或两个以上的元素,那么它就不是格了。

格(Lattice)定义

  • 是一个偏序集(poset),在其中每一对元素都具有最小上界(Least Upper Bound,LUB)和最大下界(Greatest Lower Bound,GLB)。
  • 换句话说, 是一个满足每对元素都有最小上界和最大下界的偏序集。

例子:

  1. Poset \({ \mathbb{Z}^+ }, |\) 是一个格:
    在正整数集合中,整数的整除关系是一个格,因为对于任意两个正整数 \(a\)\(b\),都有最小上界和最大下界。

  2. Poset \(\{ 1, 2, 3, 4, 5 \}, |\) 不是格:
    这个集合的整除关系不是格,因为某些元素对(例如 3 和 5)没有最小上界。

  3. Poset \(\{ 1, 2, 4, 8, 16 \}, |\) 是一个格:
    这个集合的整除关系是一个格,因为对于每一对元素,都可以找到最小上界和最大下界。

  4. Poset \(P(S), \subseteq\) 是格,其中 \(S\) 是一个集合:
    在集合 \(S\) 的幂集上,包含关系 \(\subseteq\) 构成一个格,因为每对集合都有最小上界和最大下界。

不成立为格的情况:

  • 如果在偏序集中某些元素对没有最小上界或最大下界,那么这个偏序集不是格。
    例如,假设在一个偏序集中的元素 \(b\)\(c\) 没有最小上界,那么这个偏序集就不是格。

格的性质总结:

  • 在格中,对于每一对元素 \(a\)\(b\),都存在最小上界 \(a \vee b\) 和最大下界 \(a \wedge b\)
  • 在格中,所有元素的组合(通过最小上界和最大下界)确保了其满足完全的结构特性。
image-20241121181725972
image-20241121181734513
image-20241121181850590

拓扑排序与兼容的全序

兼容的全序

  • 兼容的全序(Compatible Total Ordering):如果一个全序 $ $ 满足对于偏序集中的任意元素 $ a $ 和 $ b $,只要 $ a $ 和 $ b $ 满足偏序关系 $ a , R , b $,则 $ a b $,那么这个全序就叫做兼容的全序

拓扑排序(Topological Sorting)

  • 拓扑排序是从偏序关系中构造兼容全序的过程,通常用于对有向无环图(DAG)中的元素进行排序。通过拓扑排序,可以根据部分顺序关系将元素进行排列,使得所有的依赖关系得到满足。

定理:

  • 每一个有限的非空偏序集 $ (S, ) $ 都有一个最小元素。
    这意味着,在每一个有限的偏序集中,必定存在至少一个元素,它不大于任何其他元素。

拓扑排序算法(Procedure topological sort)

  1. 输入:一个有限偏序集 \(S\)
  2. 输出:一个符合 \(S\) 中部分顺序关系的兼容全序(即拓扑排序)。

算法步骤:

1
2
3
4
5
6
7
8
k := 1
while S ≠ Ø
begin
ak := S 中的一个最小元素 {根据定理1}
S := S - {ak} // 从集合 S 中移除最小元素 ak
k := k + 1
end
{a1, a2, ..., an 就是符合 S 的兼容全序排列}

解释:

  • 该算法通过不断从偏序集中取出一个最小元素,并将其从集合中删除,最终得到一个符合偏序关系的全序排列。
  • 每次选出的最小元素 $ a_k $ 都是当前集合中的最小元素,它是唯一不大于其他元素的元素。通过这种方式逐步构造出一个兼容的全序。

结论:

  • 每个有限的非空偏序集都可以通过拓扑排序算法进行排序,得到一个兼容的全序。
image-20241121182039155
image-20241121182031811

应用题

问题描述: 设 $ P $ 为正整数集 $ ^+ $ 关于整除关系的子集,求集合 $ P $ 中某个元素 $ T $ 的上界、下界、上确界和下确界。

解答过程:

  1. 整除关系的偏序集
    在正整数集 $ ^+ $ 上,定义“整除关系”作为偏序关系:对于任意 $ a, b ^+ $,如果 $ a $ 能整除 $ b $(即 $ a b $),则我们说 $ a b $。

  2. 上界(Upper Bound)
    对于集合 $ P $ 中的元素 $ T $,若 $ T $ 的上界是集合 $ P $ 中的某个元素 $ x $,则对于集合 $ P $ 中的每个元素 $ y $,有 $ y x $。

    • 对于 $ T = { 2, 3, 5 } $,其上界可以是 60、120、180、240 等等,这些都是能被 $ 2, 3, 5 $ 整除的数。
  3. 上确界(Least Upper Bound, LUB)
    上确界是所有上界中最小的元素,即最小的满足 $ T x $ 的 $ x \(。 - 在本例中,\) T = { 2, 3, 5 } $ 的上确界是 60,因为 60 是所有上界中的最小值,且 60 能被 2、3 和 5 整除。

  4. 下界(Lower Bound)
    对于集合 $ P $ 中的元素 $ T $,若 $ T $ 的下界是集合 $ P $ 中的某个元素 $ y $,则对于集合 $ P $ 中的每个元素 $ x $,有 $ y x $。

    • 对于 $ T = { 2, 3, 5 } $,其下界为 1,因为 1 能整除 $ T $ 中的所有元素。
  5. 下确界(Greatest Lower Bound, GLB)
    下确界是所有下界中最大的元素,即最大的满足 $ y T $ 的 $ y \(。 - 在本例中,\) T = { 2, 3, 5 } $ 的下确界是 1,因为 1 是所有下界中的最大值,且 1 能整除集合 $ T $ 中的所有元素。

总结:

  • 上界:60、120、180、240 等;
  • 上确界:60;
  • 下界:1;
  • 下确界:1。

通过这种方式,正整数集 $ ^+ $ 的整除关系偏序集的上界、下界、上确界和下确界可以在给定集合中明确找到。