偏序集

发布时间 2023-04-16 17:46:19作者: DennyQi

偏序集的定义

我们要讨论偏序集,与它对应的是我们熟悉的“全序集”。比如,实数就是一个全序集,给定任意两个实数\(a,b\),那么“\(a \leq b\)”和“\(b \geq a\)”中总有一个是成立的,所以这种“序结构是完全的”,任何两个元素都可以“比较大小”。而对于偏序集来说,这却是不一定的。我们定义的一种比较方法可能并不能对任何两个元素适用。比如我们可以把集合间的包含关系看作一种序结构,如果一个集合\(S \subseteq T\),我们就说\(S \leq T\)。而对于两个有交集却不包含的集合,就无法比较大小。由此可见,偏序集比全序集更广泛,全序集是一种特殊的偏序集。

严格来说,一个偏序集是集合\(P\)和比较关系\(\leq\)组成的二元组\((P,\leq)\)。这个二元组是偏序集当且仅当满足三个性质:自反性(\(a \leq a\)),反对称性(\(a \leq b \ \and \ b \leq a \Rightarrow a=b\)),传递性(\(a \leq b \ \and \ b \leq c \Rightarrow a\leq c\))。如果\(a \leq b\)\(a \neq b\),我们就说\(a < b\)

在偏序集中,极值和最值是完全不同的概念。如果一个元素没有任何比它大的元素,它就是极大值;而一个元素要是最大值,它必须比其他所有元素都要大。后者一般是很难做到的,因为那样就要求这个最大元素要能和所有元素作比较。作比较这一做法在偏序集中本身就是不一定能完成的事。

我们可以用Hasse图来表示一个偏序集。Hasse图是一个DAG,两个元素\(a,b\)间有\(a\)\(b\)的边当且仅当\(a<b\),同时不存在任何元素\(c\)夹在他们中间使得\(a<c<b\)

整数的整除关系\((\Z,|)\)也是一个偏序集。可以对他们验证上面三条性质。同时,刚才已经举例说明了\((2^U,\subseteq)\)是一个偏序集(\(2^U\)代表\(U\)的所有子集构成的集合)。我们能够发现,集合的包含关系是一种最一般的偏序关系(仅讨论有限的偏序集),任何一个偏序集我们都可以同构地构造一个子集关系——只需在Hasse图上把所有子节点元素都加入到父节点的元素集合上,这样父节点就一定包含子节点了。如果按照元素个数来给Hasse图分层,那么最底下的源点就是空集,最上面的汇点就是全集。

偏序集中的链

如果在偏序集中选出一个两两可比较的元素集合(全序集),那么这个集合一定能在Hasse图上被表示成一条链(或者几条,因为他们不一定是连续的,但它们一定能看成某条更长的链的一部分),我们称它为偏序集的一个链。

我们说一条链是极大的,当且仅当增添任何一个其他元素它都不再是链。而最大(最长)的链指的是拥有元素最多的链。偏序集的高度定义为最大链的长度(元素个数)。

我们还可以定义“反链”,它是任意两个元素都不能互相比较的一个元素集合。对于反链,我们也用同样的方法定义极大和最大。其中,最大反链的长度称为偏序集的宽度。

链划分

如果我们找到若干条互不相交的链,它们恰好覆盖了所有元素,那么就称这是一个“链划分”。同理,也可以定义反链划分。一个划分的大小就是这个划分包含的链的个数。

关于链划分和反链划分,有两个对偶的定理:

对于任何偏序集,最小反链划分的大小等于最长链的大小(高度)。设最长链大小为\(h\),如果存在一个小于\(h\)的最小反链划分,那么最长链上至少有两个点属于同一个反链,而最长链上的任意两点都是可以比较大小的,因此矛盾。所以最小反链划分一定大于等于\(h\)。那么只需构造一个长度为\(h\)的反链划分。我们对\(h\)归纳。当\(h=1\)时,即当偏序集只有一个元素时,这个元素本身就构成了反链划分,显然成立。假设对于任何高度小于\(h\)的偏序集这个定理都已经成立,那么对于高度为\(h\)的偏序集,它有若干条长度为\(h\)的链。对于每个长度为\(h\)的链,我们取最顶端(Hasse图上)元素。所有这些被取出的元素之间一定两两不可比较,否则我们就能构造出一条长度为\(h+1\)的链,矛盾。因此这些元素构成了一条反链。把这些元素从原图上删掉之后,原图的高度一定小于\(h\),否则就存在一条长度为\(h\)的链,添加上删掉的元素就会形成长度为\(h+1\)的链,矛盾。因此删点后的原图的最小反链划分为\(h-1\),加上删掉的点构成的反链,我们就构造出了一个大小为\(h\)的反链划分。证毕。

对于任何偏序集,最小链划分的大小等于最长反链的大小(宽度)。