[学习笔记] Dilworth 定理

让我来抄一抄洛谷日报和命题人讲座!内容偏 MO 向,但只要知道集合和集族的基本概念就行了!

1. 引入

以下给出 Dilworth 定理的一个叙述:当集族 A={A1,A2,,At} 分拆为互不相交的链时,所拆出的链的最小条数 m 等于 A 中元素最多的 Sperner 族的元数 s

以下对链以及 Sperner 族做一些讨论。

2. Sperner 族

若集族 A 中任意两个子集 Ai,Aj(ij) 互不包含,则称 A 为 Sperner 族。

2.1 Sperner 定理

考虑这样一个问题:对于 n 元集 U={1,2,,n} 的子集族 A 是 Sperner 族,那么 A 中最多能够有多少个元素?一个简单的想法是,对于 U 中所有 k 元集组成的集族 Ak,其显然是一个 Sperner 族,它的大小为 Cnk,显然当 k=n2 时取最大值。

而事实上这个结论是正确的:

Sperner 定理:若 n 元集 U={1,2,,n} 的子集族 A 是 Sperner 族,则 A 的元素至多有 Cnn2 个,且 n=2k 时当且仅当所有元素为所有 k 元集合时取等;n=2k+1 时当且仅当所有元素为所有 k 元集合或所有 k+1 元集合时取等。

考虑 1n 的全排列,显然其总数为 n!。另一方面,考虑 A 中的某个集合 Ai,设 |Ai|=k,那么前 k 个元素恰好组成 Ai 的排列个数为 k!(nk)!。而 A 为 Sperner 族,那么容易证明对于 A 内的所有集合,它们所对应的排列都互不相同。设 A 中有 fkAi 使得 |Ai|=k,则 fk×k!(nk)!n!。又因为当 k=n2Cnk 取最大值,则

|A|=k=1nCnn2k=1nfk×k!(nk)!n!Cnn2

A 由全部 n2 元集组成时上式取等。当 n=2k+1 时由 Cnk=Cnk+1 可知当 A 全部由 k+1 元集组成时上式也取等。


以下给出 Sperner 定理的另一个证明:

A={A1,A2,,At},设这些集合中元数最小的集合是 r 元集,共有 fr 个。我们尝试向 r 元集中添加一个 U 中的元素,由于添加的方案数为 nr,所以添加后至少有 fr(nr)r+1r+1 元集,由 Sperner 族的定义我们知道这些集合与 A1,A2,,At 均不相同。当 rn2nrr+1>1,此时总子集个数增加,所以可得 rn2。运用类似的方法,可以得到元数最大值 sn2 能取到最大值,因此可得当 s=r=n2 时取最大值 Cnn2

2.2 Sperner 定理的推广

A1,,Ak,B1,,Bkn 元集 U 的子集,满足当且仅当 i=jAiBj=,令 ai=|Ai|bi=|Bi|,则有

i=1k1Cai+biai1

类似 Sperner 定理的证明,考虑 1n 的全排列,Ai 中元素全部在 Bi 中元素前面的排列个数为

Cnai+bi×ai!bi!(naibi)!=n!Cai+biai

考察集合之间的相对位置,容易证明在每一个排列中至多有一个 AiBi 之前,对 i 求和就得到了结论。取 Bi=AiAi 表示 Ai 的补集),此时原式变为 1Cnai1,由 (Cnn2)max 就得到了 Sperner 定理。

3. 链

狭义的链:对于 U 的子集族 A={A1,A2,,At},若其满足 A1A2At,则称 A 为一条长度为 t 的链。

3.1 链的性质

1:设 A1,A2,,AmUm 条链,满足任意两条链之间不存在包含关系。若每条链的长度均为 k+1,则 mmax=Cnknk2

m 条链 Ai0Ai1Aik 满足条件,对 Sperner 定理的推广形式取 Ai=Ai0Bi=Aik,则 ai=|Ai0|bi=n|Aik|n(ai+k),因此 Cai+biaiCnknk2。显然 AiBiAikAik=,若有 ij 使得 AiBj=,那么 Ai0Ajk,矛盾。因此 Ai,Bi 满足条件。故

m=i=1m1i=1mCnknk2Cai+biaiCnknk2

另一方面,设 Mi{k+1,k+2,,n}nk2 元子集,这样的子集共有 Cnknk2 个。而链 MiMi{1}Mi{1,2}Mi{1,2,,k}(1iCnknk2) 恰好满足条件,这就完成了证明。

3.2 对称链

若一条链 A 满足 |Ai+1|=|Ai|+1,|A1|+|At|=n,则称 A 为一条对称链。显然每条对称链都包含 U 的一个 n2 元集。

2U={1,2,,n} 的全体子集可以拆分成 Cnn2 条互不相交的对称链。

n 归纳,n=1 时显然。设命题对于 n1 成立,设 A1A2At (1)n1 时的任意一条链,考虑链 A1A2At{n} (2) 和链 A1{n}A2{n}At1{n} (3),显然上述两条链都是 U 的对称链。

AU,如果 nA,那么 A 一定恰好在一条形如 (1)(2) 的链中,并且不在任意一条 (3) 中。如果 nA,那么 A{n} 恰好在一条 (1) 中,当他等于 AtA 恰在一条 (2) 中,否则 A 恰在一条 (3) 中。所以 U 的全部子集被拆分成了若干条不相交的对称链,而每条对称链恰好含有一个 n2 元子集,所以链条数为 Cnn2

3.3 广义的链

考虑将链中的 关系推广到任意一种偏序关系。即对于某种关系 ,满足对某个集合 S 中的某个元素,这些元素满足 xyyz 时有 xz,即这种关系具有传递性。则 S 中具有这样广义的链:x1x2xt

常见的偏序关系:大于/小于,包含,整除,OI 中图论里的有向边等等。

3:证明:对于 mN+m 的所有正因数可分为互不相交的对称链(定义偏序关系为整除)。

考虑归纳,设 P 为素数集,当 m=pα(pP,αN) 时,m 的所有因数可以组成 1,p,p2,,pα 一条对称链。

设命题对不同素因子个数 nm 成立,考虑 m=m1pα,pm1,并且 m1 的素因子个数 n,将 m1 的所有因数分解成若干条不相交的对称链,设 d1,d2,,dh 是其中一条。作表:

[d1d2dh2dh1dhd1pd2pdh2pdh1pdhpd1pαd2pαdh2pαdh1pαdhpα]

其中每一层均为一条对称链,以最外层为例:d1,d2,,dh1,dh,dhp,dhp2,,dhpα 构成对称链。容易知道 m 的所有因子都在表中出现过,因此命题成立。

3.4 分拆链

P1,P2,,Pn 均为 U 的分拆,若 P1 仅有一个集合 UPiA1,A2,Ai 组成,且其中某两个集合合并后可以组成 Pi1,那么 P1,P2,,Pn 是一个长为 n 的分拆链。容易对其计数。

4. Dilworth 定理

回到最开始给出的叙述:

4:试证明 Dilworth 定理:当集族 A={A1,A2,,At} 分拆为互不相交的链时,所拆出的链的最小条数 m 等于 A 中元素最多的 Sperner 族的元数 s

首先可以做一个简单的观察,由于 Sperner 族中 s 个元素互不包含,因此每条链中至多包含一个这样的元素,因此 ms

接下来只需证明 sm。考虑对 t 归纳,当 t=1 时显然成立。假设结论对 <t 的情况成立,考虑此时的 A,对 A 中任一元数 s 的 Sperner 集 B,不在 B 中的元 A 必与 B 中的某个元 B 有包含关系,否则与 B 的最大性矛盾。将满足 BAA 归入 B1 一族,满足 ABA 归入 B2 一族,如果 B1,B2 均非空,令 A1=BB1,A2=BB2|A1|,|A2|<t

我们称集合 A 是族 A 的最小元当且仅当 A 不包含族 A 中的其他元。称集合 A 是族 A 的最大元当且仅当 A 不被族 A 中的其他元包含。由归纳假设,A1,A2 均可以分拆为 s 条链,而 B 为 Sperner 族,所以在 A1 中,B 的元都是最小元,从而 A1s 条链终端正是 Bs 个元;同理,A2s 条链的始端正是 Bs 个元(作为最大元)。因此可以将 A1 的链与 A2 的链逐对连接起来形成 A 的链,因此有 sm

如果对 A 中任意元数为 s 的 Sperner 族 BB1,B2 至少有一个为空,那么 A 中至多有两个元数为 s 的 Sperner 族,即 A 的最大元所成的族 EA 的最小元所成的族 F。于是有以下三种情况:

  • 仅族 Es 个元。这时从 E 中去掉一个元 AA 剩下 s1 个元,并且 A 中最大的 Sperner 族仅剩 s1 个元,所以由归纳假设可以分拆为 s1 条链,加上 A 单独形成的链,共 s 条。

  • 仅族 Fs 个元。同理可知 A 可分拆为 s 条链。

  • E,F 均有 s 个元。任取 BF,必有 AE,BA。去掉 A,B 后剩下的元组成 s1 条链,加上链 BAs 条链。

综上,Dilworth 定理得证。值得一提的是,将集族改为任意偏序集, 改成任意偏序关系 ,定理仍然成立。


5:设 A 为偏序集。证明:若 A 不含长为 m+1 的链,则 A 可以表为至多 m 个 Sperner 族的并。

考虑归纳:当 m=0 时结论显然。设命题对 m1 成立。设 A 的最大元组成 Sperner 族 B,那么 AB 中不含长为 m 的链。由归纳假设,AB 可表为至多 m1 个 Sperner 族的并,加上 B 即为 m 个 Sperner 族。

事实上,例 5 是 Dilworth 定理的对偶。


6:证明:实数数列 a1,a2,,anm+1 中一定能够找出一个 m+1 项的递增子列,或能够找出一个 n+1 项的递减子列。

aiaj,i<j,则称 aiaj。如果原数列中递增的子序列至多 m 项,那么由 nm+1m=n+1 可知原数列至少能分为 n+1 条链。从而有 n+1 项组成 Sperner 族,即有一个 n+1 项的递增子序列。


7:LG4928 [CTSC2008]祭祀

给定一个 n 个点,m 条边的 DAG,求其最大 Sperner 族,并构造方案。

别忘了自己还是个 OIer!Dilworth 定理在 OI 中一般表述成这样的形式:最小链覆盖数 = 最长反链长度(即最大 Sperner 族大小),然后就可以使用最大流等方法求解了。这题也可以当做是 OI 中 Dilworth 定理的板子题。

5. 总结

MO 相关的东西咱也不敢乱说......不过 Dilworth 定理在 OI 中的应用形式似乎是比较简单的,也很难见到相关的题,学着就图一乐(大雾)。不过咱也不懂为啥这点东西能搞一天,可能 MO 水平太低就是这样的吧!

posted @   came11ia  阅读(602)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示