偏序关系

偏序关系

非空集合 AA 上的自反、反对称、传递关系称为 AA 上的偏序关系(partial order),记为 ≼\preccurlyeq。

(a,b)∈≼(a, b) \in \preccurlyeq 常写作 a≼ba \preccurlyeq b,读作「aa 小于等于 bb」。

使用 a≺ba \prec b 表示 a≼b∧a≠ba \preccurlyeq b \land a \ne b。

这里的偏序称为非严格偏序或自反偏序,若将「自反」换成「反自反」,则称为严格偏序或反自反偏序。

偏序集

集合 AA 及其上的偏序关系 ≼\preccurlyeq 称为 AA 上的偏序集,记为 (A,≼)(A, \preccurlyeq)。

设 ≼\preccurlyeq 为非空集合 AA 上的偏序关系,对 x,y∈Ax, y \in A,若有 x≼yx \preccurlyeq y 或 y≼xy \preccurlyeq x,则称 xx 和 yy 可比。

设 RR 是 AA 上的偏序关系,若 AA 中任意两个元素都可比,则称 RR 是 AA 上的全序关系(或线性序,total order)

若 x≺yx \prec y 且不存在 z∈Az \in A 使得 x≺z≺yx \prec z \prec y,则称 yy 覆盖(cover)xx。

哈斯图(Hasse)

  • 自反性省略圈
  • 反对称性省略箭头
  • 传递性省略箭头和中间节点

特殊元素

xx 是 AA 上的偏序集 (A,≼)(A, \preccurlyeq) 中的极大元,当且仅当 ∀y∈A(x≼y→x=y)\forall y \in A (x \preccurlyeq y \to x = y)。

xx 是 AA 上的偏序集 (A,≼)(A, \preccurlyeq) 中的极小元,当且仅当 ∀y∈A(y≼x→x=y)\forall y \in A (y \preccurlyeq x \to x = y)。

极大(小)元不一定存在,有穷集合一定有极大(小)元。

极大(小)元不一定唯一。一个元素可以同时为极大和极小元。

xx 是 AA 上的偏序集 (A,≼)(A, \preccurlyeq) 中的最大元,当且仅当 ∀y∈A(y≼x)\forall y \in A (y \preccurlyeq x)。

xx 是 AA 上的偏序集 (A,≼)(A, \preccurlyeq) 中的最小元,当且仅当 ∀y∈A(x≼y)\forall y \in A (x \preccurlyeq y)。

最大(小)元不一定存在,若存在必唯一。

对于偏序集 (A,≼)(A, \preccurlyeq) 与 AA 的子集 BB,若存在 y∈Ay \in A 使得 ∀x∈B(x≼y)\forall x \in B (x \preccurlyeq y),则称 yy 是 BB 的上界。

若 BB 的上界构成的偏序集有最小元,则称 BB 有上确界(最小上界,least upper bound)。

同理可定义下界和下确界(最大下界,greatest lower bound)。

良序

给定集合 AA 上的偏序关系 ≼\preccurlyeq,若 AA 的任意非空子集有最小元,则称 ≼\preccurlyeq 是 AA 上的良序(well order)。

良序必为全序,全序不一定为良序(对于无穷集合,全序不一定有最小元)。

良序的逆关系也未必是良序,例如 (N,⩽)(\N, \le)

链

设 CC 是偏序集 (P,≼)(P, \preccurlyeq) 的一个子集,若 CC 中任意两个元素都可比,则称 CC 构成一个链(chain)。

若链 CC 不是任何其它链的子链,则称 CC 是极大化的,即 CC 外没有一个元素与 CC 中所有元素都可比。

设 AA 是偏序集 (P,≼)(P, \preccurlyeq) 的一个子集,若 AA 中任意两个元素都不可比,则称 AA 构成一个反链(anti-chain)。

若反链 AA 不是任何其它反链的子链,则称 AA 是极大化的,即 AA 外没有一个元素与 AA 中所有元素都不可比。

有限偏序集中最长链的元素个数称为该偏序集的高度(height),最大反链的元素个数称为该偏序集的宽度(width)。

任务调度

  • 链内步骤有顺序依赖
  • 反链内步骤可并发执行

并发任务调度

并发调度(concurrent scheduling)是将 AA 划分为 A0,⋯ ,AnA_0, \cdots, A_n 使得对于 0⩽i<j⩽n, ∀xi∈Ai,xj∈Aj(xj⋠xi)0 \le i < j \le n,\, \forall x_i \in A_i, x_j \in A_j (x_j \not\preccurlyeq x_i)。

即不可使得 AiA_i(前的)中的任务依赖于 AjA_j(后的)中的任务。

结束于 aa 的最长链称为到达 aa 的关键路径(critical path)。该路径除 aa 之外的元素个数称为 aa 的深度(depth)。

偏序的划分

Mirsky 定理

设有限偏序集 (P,≼)(P, \preccurlyeq) 的高度为 tt,则可将其划分为 tt 个反链。

推论

对有限偏序集 (P,≼)(P, \preccurlyeq),对于任意 t>0t > 0,要么有长度大于 tt 的链,要么有长度至少为 ∣P∣t\dfrac{|P|}{t} 的反链。

从而可知,对于任意有限偏序集 (P,≼)(P, \preccurlyeq),要么有长度大于 ∣P∣\sqrt{|P|} 的链,要么有长度至少为 ∣P∣\sqrt{|P|} 的反链。

链覆盖是 (P,≼)(P, \preccurlyeq ) 中一组互不相交的链,它们一起包含了 PP 中的所有元素。即对互不相交的链 CiC_i,有

⋃i=1kCi=P\bigcup_{i=1}^{k} C_i = P

Dilworth 定理

设 (P,≼)(P, \preccurlyeq) 是有限偏序集,其宽度为 ww,则可将其划分为 ww 个链。

归纳证明

Perles 1963 证明:

若 ∣P∣=1|P| = 1,则 w=1w = 1,命题成立;

设命题对于 ∣P∣⩽k|P| \le k 时成立,现证明对于 ∣P∣=k+1|P| = k + 1 时成立。

对于某最长的反链 AA,令

D(A)={x∣∃a∈A,x≺a}U(A)={x∣∃a∈A,x≻a}\begin{aligned} D(A) = \left\lbrace x \mid \exists a \in A, x \prec a \right\rbrace\\ U(A) = \left\lbrace x \mid \exists a \in A, x \succ a \right\rbrace \end{aligned}

显然 P=A∪D(A)∪U(A)P = A \cup D(A) \cup U(A) 且三者互不相交。

情况一:存在一个最长的反链 AA 使得 D(A)D(A) 与 U(A)U(A) 均非空。

记 AA 中元素为 a1,⋯ ,awa_1, \cdots, a_w,在 A∪D(A)A \cup D(A) 上应用归纳假设(因为 U(A)U(A) 非空,所以 ∣A∪D(A)∣<∣P∣=k+1|A \cup D(A)| < |P| = k + 1,即 ∣A∪D(A)∣⩽k|A \cup D(A)| \le k)。不失一般性,有 A∪D(A)A \cup D(A) 一个链覆盖 C1,⋯ ,CwC_1, \cdots, C_w,且 aia_i 是 CiC_i 的最大元素。

再在 A∪U(A)A \cup U(A) 上应用归纳假设,有 A∪U(A)A \cup U(A) 一个链覆盖 C1′,⋯ ,Cw′C'_1, \cdots, C'_w,且 aia_i 是 Ci′C'_i 的最小元素。

于是 Ci∪Ci′C_i \cup C'_i 是一个链,且这 ww 个链覆盖了 PP。

情况二:对于每一个最长的反链 AA,D(A),U(A)D(A), U(A) 都至少有一个为空。

在 PP 中选择一个极大元素 yy,再选择一个满足 x≼yx \preccurlyeq y 的极小元素 xx,则 C={x,y}C = \left\lbrace x, y \right\rbrace 构成一条链。

则 P−CP - C 的宽度为 w−1w - 1。

由归纳假设,可划分 P−CP - C 为 w−1w - 1 条链,再加上 CC,共有 ww 条链即可。


按 PP 中元素进行归纳证明。

设 aa 为 PP 中的一个极大元素,P′=P−{a}P' = P - \left\lbrace a \right\rbrace。

设 (P′,≼)(P', \preccurlyeq ) 有一个大小为 kk 的反链 {a1,⋯ ,ak}\left\lbrace a_1, \cdots, a_k \right\rbrace,并有一个规模为 kk 的链覆盖 {C1,⋯ ,Ck}\left\lbrace C_1, \cdots, C_k \right\rbrace。

对任意 CiC_i,P′P' 中大小为 kk 的任意反链均有唯一元素属于 CiC_i,这些元素中最大元记为 xix_i。

于是 A={x1,⋯ ,xk}A = \left\lbrace x_1, \cdots, x_k \right\rbrace 为反链。否则设 AA 中有两个元素 xi≼xjx_i \preccurlyeq x_j,根据 xjx_j 的定义,P′P' 中有一个大小为 kk 的反链 AjA_j,xjx_j 为 AjA_j 和 CjC_j 的公共元素,假设 yy 是 AjA_j 和 CiC_i 的公共元素,则 y≼xiy \preccurlyeq x_i,从而 y≼xjy \preccurlyeq x_j,与 AjA_j 是反链矛盾。

若 {a,x1,⋯ ,xk}\left\lbrace a, x_1, \cdots, x_{k} \right\rbrace 是 PP 中的反链,则 PP 的链覆盖 {{a},C1,⋯ ,Ck}\left\lbrace \left\lbrace a \right\rbrace, C_1, \cdots, C_{k} \right\rbrace 为规模为 k+1k+1 的覆盖,得证。

若 {a,x1,⋯ ,xk}\left\lbrace a, x_1, \cdots, x_{k} \right\rbrace 不是 PP 中的反链,即存在 xm≼ax_m \preccurlyeq a(因 aa 为极大元,不会有 a≼xma \preccurlyeq x_m)。

令 K={a}∪{z∈Cm∣z≼xm}K = \left\lbrace a \right\rbrace \cup \left\lbrace z \in C_m \mid z \preccurlyeq x_m \right\rbrace。显然 KK 是 PP 中的一条链。

P−KP - K 中最大反链大小为 k−1k - 1(P−KP - K 中没有含 kk 个元素的反链,否则与 xmx_m 的定义矛盾)。

由归纳假设,P−KP - K 有大小为 k−1k - 1 的一个链覆盖,该覆盖与 KK 构成 PP 的链覆盖(链数为 kk),已知 {x1,⋯ ,xk}\left\lbrace x_1, \cdots, x_{k} \right\rbrace 是 PP 中的反链,得证。

从而得到对任意有限偏序集 (A,≼)(A, \preccurlyeq),覆盖 AA 的最小链数等于 AA 的最长反链的长度(元素个数)。