DennyQi's Log

04 偏序集

偏序集的定义

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

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

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

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

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

偏序集中的链

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

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

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

链划分

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

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

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

对于任何偏序集,最小链划分的大小等于最长反链的大小(宽度)。设最长反链大小为ww,如果存在一个小于ww的最小链划分,那么最长反链上至少有两个点属于同一个链,矛盾。所以我们只需要构造一个长度为ww的最小链划分。现在,我们对偏序集的元素个数来归纳地证明最小链划分的大小等于最长反链的大小。当P=1|P|=1时,宽度为1,最小链划分为1,成立。假设对于任何元素个数小于P|P|的偏序集这个定理已经成立。我们找出PP的一条最长链并把它删除,得到偏序集PP'PP'的宽度不可能变得更大(不然PP中也会有更长的最长反链),因此PP'宽度要么更小要么相同。对PP'可以用归纳假设。如果宽度变小,那么PP'有大小不超过w1w-1的最小链划分,加上这条最长链就构造出了不超过ww的划分。如果宽度不变,那我们在PP'中依然可以找出一个长度为ww的反链,这些元素记为集合AA。我们把PP中所有能够大于AA中某个元素的元素收集起来构成集合UAU_A,所有能够小于AA中某个元素的元素收集起来构成集合DAD_A(都是在原来的偏序集里讨论)。这三个集合一定覆盖了PP中所有元素(如果没有覆盖,那么存在某个元素又不能大于AA中某个元素也不能小于AA中某个元素也不属于AA,因此可以把这个元素加入AA,这就与PP的宽度为ww矛盾),并且互相没有交集。由于AA是在删除最长链的情况下找出来的,因此当我们把最长链加回来的时候,最长链上的元素一定在UAU_ADAD_A里。考虑最长链上最大的元素x+x^+,它要么在UAU_A里要么在DAD_A里,如果它在DAD_A里,那么链上的元素全都小于AA中某个元素,把这个元素加进链上就会形成更长的链,矛盾,因此x+x^+一定在UAU_A里;同理,最长链上最小的元素xx^-一定在DAD_A里,这就证明了UAU_ADAD_A非空,所以UAA<P|U_A \cup A|<|P|,可以用归纳假设,找出ww条链覆盖它;同样地,可以找出ww条链覆盖DAA|D_A \cup A|。由于AA是反链,这ww条链(两边都是)都是独立的以AA中一个元素为顶端或末尾的,所以把这两部分链合并起来就一定能得到ww条链,它覆盖了所有元素。这个定理称为Dilworth定理。

Min-Max定理

像Dilworth定理这样最小的什么等于最长的什么这样的定理称为Min-Max定理,这种定理出现在数学的很多领域,它们往往是某种对偶定理的具体表现形式。

Hall婚姻定理就是一个Min-Max定理(抽象了的):一个两边各nn个节点的二分图中,记左侧节点集合SS的函数N(S)N(S)表示右侧节点中与SS中节点有边相连的点的集合,该二分图存在完美匹配当且仅当对任何SS恒有N(S)S|N(S)| \geq |S|。“\Rightarrow”很容易,如果有完美匹配,那么作为任何SS的匹配的点的集合就已经有S|S|个,因此显然有N(S)S|N(S)| \geq |S|。对于“\Leftarrow”,我们用偏序集的Dilworth定理来证明。把二分图左侧和右侧的点都看作偏序集里的元素,二分图的边(li,rj)(l_i,r_j)就定义为偏序关系lirjl_i \leq r_j。我们发现,如果我们给边都带上从左到右的方向,二分图本身就形成了偏序集的Hasse图。那么,单侧的节点就可以构成一个反链,所以最长反链至少为nn。有没有可能大于nn?如果存在,那么它一定同时动用了左侧和右侧的节点。那么设左侧用到的点集为LL,右侧用到的点集为RR。那么对应的N(L)L|N(L)| \geq |L|。由于LRL \cup R形成了反链,所以N(L)N(L)RR一定是无交的,因此N(L)RL+R>n|N(L) \cup R| \geq |L|+|R|>n,这与右侧只有nn个节点矛盾。因此,这个偏序集的最长反链就是nn!根据Dilworth定理,其最小链划分也是nn。在这里,每条链就是二分图的一条边,这些没有公共点(因为分划要求没有交集),所以二分图一定有完美匹配。

推论:用类似的方法可以证明,如果把条件改为左侧节点个数L|L|小于右侧节点个数R|R|,可以由N(S)S|N(S)| \geq |S|恒成立推出存在一个大小为L|L|的匹配。

接下来我们用Hall婚姻定理证明Kőnig定理:二分图的最大匹配等于最小点覆盖(一个点覆盖是原图的一个点集,要求每条边至少有一个点在这个点集里,换言之这个点集“覆盖”到了所有边)。假设二分图有一个大小为kk的匹配,那么这些匹配边是互相独立的,想要覆盖这些边就已经至少需要kk个节点,因此原图的点覆盖至少大于等于kk。也就是说,最大的匹配也不可能比某个点覆盖的大小还大。匹配大小本身就是被点覆盖给bounded的了。当我们取出一个最小的点覆盖,就知道所有可能的最大匹配都不可能超过这个最小点覆盖。于是我们只需证明存在一个与最小点覆盖大小相同的匹配!我们设最小点覆盖为ADA \cup D,其中点集AA在左侧,点集DD在右侧,设AA中的子集SS,与SS的点相连的边形成集合E1E_1,与ADA \cup D中其余的点相连的边形成E2E_2E1E2E_1 \cup E_2覆盖了所有边。如果把SS全部换成N(S)N(S),那么E1E_1依然被N(S)N(S)完全覆盖,同时E2E_2也依然被覆盖。所以N(S)DN(S) \cup D也是一个点覆盖,同时我们依然能控制所有的边。我们取N(S)N(S)中与DD没有交集的那部分,构成集合FF,那么FDF \cup D也是一个点覆盖。因为ADA \cup D是最小的,所以有F+DA+D|F|+|D| \geq |A|+|D|,即FA|F| \geq |A|,因此FAS|F| \geq |A| \geq |S|。设二分图左边的点集去掉AA以后为BB,右边的点集去掉DD以后是CC,那么在子图ACA \cup C中,它满足N(S)S|N(S)| \geq |S|恒成立的条件,根据Dilworth定理的推论,可以推出ACA \cup C中存在大小为A|A|的匹配(C|C|一定大于等于A|A|,因为CN(A)A|C| \geq |N(A)| \geq |A|)。对称地,我们在DD中选子集重复一遍刚才的证明,可以推出在BDB \cup D中存在一个大小为D|D|的匹配。由于ACA \cup CBDB \cup D无交,我们就在原图找到了一个A+D|A|+|D|的匹配——一个大小和最小点覆盖相等的匹配!

现在我们用Kőnig定理反过来证明Dilworth定理。我们可以把一个偏序集构造成一个二分图,设偏序集大小为nn,那么我们就构造左右各nn个节点的二分图,如果有偏序关系iji \leq j,就让左侧的第ii个点与右侧的第jj个点之间连一条边。现在假设这个二分图有一个任意的匹配MM,我们可以根据这个匹配来构造一个偏序集上的链划分:把匹配上的边对应回偏序集上,已经形成了若干条链了,剩下的节点加入没有在匹配中覆盖,可以一个节点孤立地自成一条链。总之,我们能构造出一个mm条链的链分划。容易计算得到,由于mm条链覆盖了nn个点,因此链分划里的边的总数就是nmn-m。(nn个点,mm棵树,一共nmn-m条边)而这个匹配的大小M|M|恰好就是链分划中的边数,因此有nm=Mn-m=|M|。同时,我们可以根据这个二分图的任意一个点覆盖SS构造偏序集中的一条反链。点覆盖不一定触碰到了所有11nn中的节点(左边也没碰到,右边也没碰到),所有这样的节点形成的集合在二分图里是相互没有边的,不然这条边就没有被点覆盖覆盖了。因此这些节点在偏序集里就对应着一条反链。设刚才的点覆盖在偏序集里触碰到的节点个数为TT,那么反链的长度AA就是nTn-T。现在,我们选择最大匹配MM'和最小点覆盖SS'。根据Kőnig定理,M=S|M'|=|S'|。最小点覆盖触碰到的节点个数TT'一定满足TST' \leq |S'|,因此此时的反链的长度A=nTnS=nM=mA'=n-T' \geq n-|S'|=n-|M'|=m。其中mm是最大匹配对应的链分划的大小。因此我们证明了,存在一条反链,其长度大于等于链分划的大小。而再一次,如果反链长度大于某个链分划的大小,那么反链上一定有两个点落在同一条链中,矛盾。因此最长的反链的长度也一定小于等于最小的链分划大小。而我们找到了一条长度大于等于某个链分划的反链,它的长度一定大于等于最小链分划的大小。所以,它就是最长反链,并且它的大小必须等于最小链划分的大小。这正是Dilworth定理!

这样,我们就证明了Dilworth定理、Hall婚姻定理、Kőnig定理全都是等价的!

Sperner定理

任何一个偏序关系都可以“看作”是集合的包含关系,但是这些集合并不一定构成了某个全集的所有可能子集。现在我们就特别地来关注一个集合所有子集间以包含关系为偏序的偏序集,即考虑P=(2[n],)P=(2^{[n]}, \subseteq)这个偏序集。我们有结论,这个偏序集的宽度(最长反链大小)一定是(nn2)\dbinom{n}{\lfloor\frac{n}{2}\rfloor}。这个定理叫做Sperner定理。

如今偏序集的一个节点是{1,,n}\{1,\cdots,n\}的一个子集。一条反链就是一系列互相不包含的子集。如果这些子集的大小相同,那么它们之间一定无法相互包含。那么假如规定子集的大小都为kk,就可以构造一个大小为(nk)\dbinom{n}{k}的反链。那么根据组合数的单调性,这个值最大可以达到(nn2)\dbinom{n}{\lfloor\frac{n}{2}\rfloor}。也就是说我们已经找到了Sperner定理中要求的反链了,我们只需要证明所有反链(最长反链)都不可能长度超过它。假设这个偏序集的一个最长反链为S1,,SwS_1,\cdots,S_w。那么我们记CiC_i表示所有包含SiS_i的极大链的集合。由于我们偏序的元素是所有子集,在Hasse图上任何一个经过SiS_i的极大链都向上抵达了[n][n]向下抵达了\empty,即每条极大链长度都是n+1n+1(否则一定可以加上漏掉的集合形成更大的链,与极大矛盾)。因此容易写出Ci=(nSi)!Si!|C_i|=(n-|S_i|)!|S_i|!。并且容易观察到,C1C_1CwC_w就一定无交,因此i=1wCi\sum\limits_{i=1}^{w}|C_i|一定小于等于所有长度为n+1n+1的链的总数(共n!n!条),于是n!i=1w(nSi)!Si!n! \geq \sum\limits_{i=1}^{w}(n-|S_i|)!|S_i|!,这个结构和组合数非常类似,因此我们配凑出1i=1w(nSi)!Si!n!=i=1w1(nSi)1 \geq \sum\limits_{i=1}^{w}\dfrac{(n-|S_i|)!|S_i|!}{n!}=\sum\limits_{i=1}^{w}\dfrac{1}{\binom{n}{|S_i|}},把所有(nSi)\dbinom{n}{|S_i|}都放缩为(nn2)\dbinom{n}{\lfloor\frac{n}{2}\rfloor},就有1i=1w1(nSi)i=1w1(nn2)=w(nn2)1 \geq \sum\limits_{i=1}^{w}\dfrac{1}{\binom{n}{|S_i|}} \geq \sum\limits_{i=1}^{w}\dfrac{1}{\binom{n}{\lfloor\frac{n}{2}\rfloor}}=\dfrac{w}{\binom{n}{\lfloor\frac{n}{2}\rfloor}},于是证明了w(nn2)w \leq \dbinom{n}{\lfloor\frac{n}{2}\rfloor},即最长反链长度不超过(nn2)\dbinom{n}{\lfloor\frac{n}{2}\rfloor}。因此偏序集的宽度就必须是(nn2)\dbinom{n}{\lfloor\frac{n}{2}\rfloor}

我们尝试用Sperner定理来证明一个“Erdős定理”:给定nn个大于等于1的实数xix_i,把它们累加时每个xix_i都可以取正或取负,这样得到2n2^n个结果S(N)S(N)NN可以理解为取正数的下标集合),那么任取一个实数轴上长度为22的开区间,最多只有(nn2)\dbinom{n}{\lfloor\frac{n}{2}\rfloor}个结果落在这个开区间里。

每一个结果都可以理解为是由NN的选取决定的,因此整个结果可以看作是关于NN的包含关系的偏序集。对于互相包含的两个偏序集中的元素,它们的结果之差的绝对值就是若干2xj2x_j的和。因为xj1x_j \geq 1,所以任意两个在偏序集中能比较大小的元素其结果之差2\geq 2,因此它们一定不能落在同一个开区间里,所以能落在开区间里的元素一定不能互相比较大小,所以它们对应偏序集上的一条反链。而我们的偏序集恰恰是一个完全的子集集合,所以根据Sperner定理最长反链就是(nn2)\dbinom{n}{\lfloor\frac{n}{2}\rfloor},因此能落在同一个开区间里的元素个数最多就是(nn2)\dbinom{n}{\lfloor\frac{n}{2}\rfloor}