偏序关系

偏序关系

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

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

使用 aba \prec b 表示 ababa \preccurlyeq b \land a \ne b

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

偏序集

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

\preccurlyeq 为非空集合 AA 上的偏序关系,对 x,yAx, y \in A,若有 xyx \preccurlyeq yyxy \preccurlyeq x,则称 xxyy 可比

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

xyx \prec y 且不存在 zAz \in A 使得 xzyx \prec z \prec y,则称 yy 覆盖(cover)xx

哈斯图(Hasse)

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

特殊元素

xxAA 上的偏序集 (A,)(A, \preccurlyeq) 中的极大元,当且仅当 yA(xyx=y)\forall y \in A (x \preccurlyeq y \to x = y)

xxAA 上的偏序集 (A,)(A, \preccurlyeq) 中的极小元,当且仅当 yA(yxx=y)\forall y \in A (y \preccurlyeq x \to x = y)

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

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

xxAA 上的偏序集 (A,)(A, \preccurlyeq) 中的最大元,当且仅当 yA(yx)\forall y \in A (y \preccurlyeq x)

xxAA 上的偏序集 (A,)(A, \preccurlyeq) 中的最小元,当且仅当 yA(xy)\forall y \in A (x \preccurlyeq y)

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

对于偏序集 (A,)(A, \preccurlyeq)AA 的子集 BB,若存在 yAy \in A 使得 xB(xy)\forall x \in B (x \preccurlyeq y),则称 yyBB上界

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

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

良序

给定集合 AA 上的偏序关系 \preccurlyeq,若 AA任意非空子集有最小元,则称 \preccurlyeqAA 上的良序(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 使得对于 0i<jn,xiAi,xjAj(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 的链,要么有长度至少为 Pt\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,命题成立;

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

对于某最长的反链 AA,令

D(A)={xaA,xa}U(A)={xaA,xa}\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=AD(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,在 AD(A)A \cup D(A) 上应用归纳假设(因为 U(A)U(A) 非空,所以 AD(A)<P=k+1|A \cup D(A)| < |P| = k + 1,即 AD(A)k|A \cup D(A)| \le k)。不失一般性,有 AD(A)A \cup D(A) 一个链覆盖 C1,,CwC_1, \cdots, C_w,且 aia_iCiC_i 的最大元素。

再在 AU(A)A \cup U(A) 上应用归纳假设,有 AU(A)A \cup U(A) 一个链覆盖 C1,,CwC'_1, \cdots, C'_w,且 aia_iCiC'_i 的最小元素。

于是 CiCiC_i \cup C'_i 是一个链,且这 ww 个链覆盖了 PP

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

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

PCP - C 的宽度为 w1w - 1

由归纳假设,可划分 PCP - Cw1w - 1 条链,再加上 CC,共有 ww 条链即可。


PP 中元素进行归纳证明。

aaPP 中的一个极大元素,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_iPP' 中大小为 kk 的任意反链均有唯一元素属于 CiC_i,这些元素中最大元记为 xix_i

于是 A={x1,,xk}A = \left\lbrace x_1, \cdots, x_k \right\rbrace 为反链。否则设 AA 中有两个元素 xixjx_i \preccurlyeq x_j,根据 xjx_j 的定义,PP' 中有一个大小为 kk 的反链 AjA_jxjx_jAjA_jCjC_j 的公共元素,假设 yyAjA_jCiC_i 的公共元素,则 yxiy \preccurlyeq x_i,从而 yxjy \preccurlyeq x_j,与 AjA_j 是反链矛盾。

{a,x1,,xk}\left\lbrace a, x_1, \cdots, x_{k} \right\rbracePP 中的反链,则 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 中的反链,即存在 xmax_m \preccurlyeq a(因 aa 为极大元,不会有 axma \preccurlyeq x_m)。

K={a}{zCmzxm}K = \left\lbrace a \right\rbrace \cup \left\lbrace z \in C_m \mid z \preccurlyeq x_m \right\rbrace。显然 KKPP 中的一条链。

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

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

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