[学习笔记] Dilworth 定理

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

1. 引入

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

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

2. Sperner 族

若集族 \(\mathcal{A}\) 中任意两个子集 \(A_i,A_j(i \neq j)\) 互不包含,则称 \(\mathcal{A}\) 为 Sperner 族。

2.1 Sperner 定理

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

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

Sperner 定理:若 \(n\) 元集 \(U = \{1,2,\cdots,n\}\) 的子集族 \(\mathcal{A}\) 是 Sperner 族,则 \(\mathcal{A}\) 的元素至多有 \(C_n^{\lfloor \frac{n}{2} \rfloor}\) 个,且 \(n=2k\) 时当且仅当所有元素为所有 \(k\) 元集合时取等;\(n = 2k+1\) 时当且仅当所有元素为所有 \(k\) 元集合或所有 \(k+1\) 元集合时取等。

考虑 \(1 \sim n\) 的全排列,显然其总数为 \(n!\)。另一方面,考虑 \(\mathcal{A}\) 中的某个集合 \(A_i\),设 \(|A_i| = k\),那么前 \(k\) 个元素恰好组成 \(A_i\) 的排列个数为 \(k!(n-k)!\)。而 \(\mathcal{A}\) 为 Sperner 族,那么容易证明对于 \(\mathcal{A}\) 内的所有集合,它们所对应的排列都互不相同。设 \(\mathcal{A}\) 中有 \(f_k\)\(A_i\) 使得 \(|A_i| = k\),则 \(\sum f_k \times k!(n-k)! \leq n!\)。又因为当 \(k = \lfloor \frac{n}{2} \rfloor\)\(C_n^k\) 取最大值,则

\[|\mathcal{A}| = \sum_{k=1}^n \leq C_n^{\lfloor \frac{n}{2} \rfloor} \sum_{k=1}^n f_k \times \frac{k!(n-k)!}{n!} \leq C_n^{\lfloor \frac{n}{2} \rfloor} \]

\(\mathcal{A}\) 由全部 \(\lfloor \frac{n}{2} \rfloor\) 元集组成时上式取等。当 \(n = 2k+1\) 时由 \(C_n^{k} = C_n^{k+1}\) 可知当 \(\mathcal{A}\) 全部由 \(k+1\) 元集组成时上式也取等。


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

\(\mathcal{A} = \{A_1,A_2,\cdots,A_t\}\),设这些集合中元数最小的集合是 \(r\) 元集,共有 \(f_r\) 个。我们尝试向 \(r\) 元集中添加一个 \(U\) 中的元素,由于添加的方案数为 \(n-r\),所以添加后至少有 \(\frac{f_r(n-r)}{r+1}\)\(r+1\) 元集,由 Sperner 族的定义我们知道这些集合与 \(A_1,A_2,\cdots,A_t\) 均不相同。当 \(r \leq \lfloor \frac{n}{2} \rfloor\)\(\frac{n-r}{r+1} > 1\),此时总子集个数增加,所以可得 \(r \geq \lfloor \frac{n}{2} \rfloor\)。运用类似的方法,可以得到元数最大值 \(s \leq \lfloor \frac{n}{2} \rfloor\) 能取到最大值,因此可得当 \(s = r = \lfloor \frac{n}{2} \rfloor\) 时取最大值 \(C_n^{\lfloor \frac{n}{2} \rfloor}\)

2.2 Sperner 定理的推广

\(A_1,\cdots,A_k,B_1,\cdots,B_k\)\(n\) 元集 \(U\) 的子集,满足当且仅当 \(i=j\)\(A_i \cap B_j = \varnothing\),令 \(a_i = |A_i|\)\(b_i = |B_i|\),则有

\[\sum_{i=1}^k \dfrac{1}{C_{a_i + b_i}^{a_i}} \leq 1 \]

类似 Sperner 定理的证明,考虑 \(1 \sim n\) 的全排列,\(A_i\) 中元素全部在 \(B_i\) 中元素前面的排列个数为

\[C_n^{a_i + b_i} \times a_i! b_i! (n-a_i-b_i)! = \frac{n!}{C_{a_i+b_i}^{a_i}} \]

考察集合之间的相对位置,容易证明在每一个排列中至多有一个 \(A_i\)\(B_i\) 之前,对 \(i\) 求和就得到了结论。取 \(B_i = A_i'\)\(A_i'\) 表示 \(A_i\) 的补集),此时原式变为 \(\sum \frac{1}{C_n^{a_i}} \leq 1\),由 \((C_n^{\lfloor \frac{n}{2} \rfloor})_{\max}\) 就得到了 Sperner 定理。

3. 链

狭义的链:对于 \(U\) 的子集族 \(\mathcal{A} = \{A_1,A_2,\cdots,A_t\}\),若其满足 \(A_1 \subset A_2 \subset \cdots A_t\),则称 \(\mathcal{A}\) 为一条长度为 \(t\) 的链。

3.1 链的性质

\(1\):设 \(\mathcal{A}_1,\mathcal{A}_2,\cdots,\mathcal{A}_m\)\(U\)\(m\) 条链,满足任意两条链之间不存在包含关系。若每条链的长度均为 \(k+1\),则 $$m_{\max} = C_{n-k}^{\lfloor \frac{n-k}{2} \rfloor}$$

\(m\) 条链 \(A_{i0} \subset A_{i1} \subset \cdots \subset A_{ik}\) 满足条件,对 Sperner 定理的推广形式取 \(A_i = A_{i0}\)\(B_i = A_{ik}'\),则 \(a_i = |A_{i0}|\)\(b_i = n - |A_{ik}| \leq n - (a_i + k)\),因此 \(C_{a_i+b_i}^{a_i} \leq C_{n-k}^{\lfloor \frac{n-k}{2} \rfloor}\)。显然 \(A_i \cap B_i \subseteq A_{ik} \cap A_{ik}' = \varnothing\),若有 \(i \neq j\) 使得 \(A_i \cap B_j = \varnothing\),那么 \(A_{i0} \subset A_{jk}\),矛盾。因此 \(A_i,B_i\) 满足条件。故

\[m = \sum_{i=1}^m 1 \leq \sum_{i=1}^m \frac{C_{n-k}^{\lfloor \frac{n-k}{2} \rfloor}}{C_{a_i+b_i}^{a_i}} \leq C_{n-k}^{\lfloor \frac{n-k}{2} \rfloor} \]

另一方面,设 \(M_i\)\(\{k+1,k+2,\cdots,n\}\)\(\lfloor \frac{n-k}{2} \rfloor\) 元子集,这样的子集共有 \(C_{n-k}^{\lfloor \frac{n-k}{2} \rfloor}\) 个。而链 \(M_i \subset M_i \cup \{1\} \subset M_i \cup \{1,2\} \subset \cdots \subset M_i \cup \{1,2,\cdots,k\}(1 \leq i \leq C_{n-k}^{\lfloor \frac{n-k}{2} \rfloor})\) 恰好满足条件,这就完成了证明。

3.2 对称链

若一条链 \(\mathcal{A}\) 满足 \(|A_{i+1}| = |A_i| + 1,|A_1| + |A_t| = n\),则称 \(\mathcal{A}\) 为一条对称链。显然每条对称链都包含 \(U\) 的一个 \(\lfloor \frac{n}{2} \rfloor\) 元集。

\(2\)\(U = \{1,2,\cdots,n\}\) 的全体子集可以拆分成 \(C_n^{\lfloor \frac{n}{2} \rfloor}\) 条互不相交的对称链。

\(n\) 归纳,\(n=1\) 时显然。设命题对于 \(n-1\) 成立,设 \(\boxed{A_1 \subset A_2 \subset \cdots A_t} \ (1)\)\(n-1\) 时的任意一条链,考虑链 \(\boxed{A_1 \subset A_2 \subset \cdots A_t \cup \{n\}} \ (2)\) 和链 \(\boxed{A_1 \cup \{n\} \subset A_2 \cup \{n\} \subset \cdots A_{t-1} \cup \{n\}} \ (3)\),显然上述两条链都是 \(U\) 的对称链。

\(A \subset U\),如果 \(n \notin A\),那么 \(A\) 一定恰好在一条形如 \((1)\)\((2)\) 的链中,并且不在任意一条 \((3)\) 中。如果 \(n \in A\),那么 \(A - \{n\}\) 恰好在一条 \((1)\) 中,当他等于 \(A_t\)\(A\) 恰在一条 \((2)\) 中,否则 \(A\) 恰在一条 \((3)\) 中。所以 \(U\) 的全部子集被拆分成了若干条不相交的对称链,而每条对称链恰好含有一个 \(\lfloor \frac{n}{2} \rfloor\) 元子集,所以链条数为 \(C_n^{\lfloor \frac{n}{2} \rfloor}\)

3.3 广义的链

考虑将链中的 \(\subset\) 关系推广到任意一种偏序关系。即对于某种关系 \(\succ\),满足对某个集合 \(S\) 中的某个元素,这些元素满足 \(x \succ y\)\(y \succ z\) 时有 \(x \succ z\),即这种关系具有传递性。则 \(S\) 中具有这样广义的链:\(x_1 \succ x_2 \succ \cdots \succ x_t\)

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

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

考虑归纳,设 \(P\) 为素数集,当 \(m = p^{\alpha}(p \in P, \alpha \in N)\) 时,\(m\) 的所有因数可以组成 \(1,p,p^2,\cdots,p^{\alpha}\) 一条对称链。

设命题对不同素因子个数 \(\leq n\)\(m\) 成立,考虑 \(m = m_1p^{\alpha}, p \nmid m_1\),并且 \(m_1\) 的素因子个数 \(\leq n\),将 \(m_1\) 的所有因数分解成若干条不相交的对称链,设 \(d_1,d_2,\cdots,d_h\) 是其中一条。作表:

\[\begin{bmatrix} d_1 &d_2 &\cdots &d_{h-2} &d_{h-1} &d_h \\ d_1p &d_2p &\cdots &d_{h-2}p &d_{h-1}p &d_hp \\ \vdots &\vdots &\ddots &\vdots &\vdots &\vdots \\ d_1p^{\alpha} &d_2p^{\alpha} &\cdots &d_{h-2}p^{\alpha} &d_{h-1}p^{\alpha} &d_hp^{\alpha} \end{bmatrix} \]

其中每一层均为一条对称链,以最外层为例:\(d_1,d_2,\cdots,d_{h-1},d_h,d_hp,d_hp^2,\cdots,d_hp^{\alpha}\) 构成对称链。容易知道 \(m\) 的所有因子都在表中出现过,因此命题成立。

3.4 分拆链

\(P_1,P_2,\cdots,P_n\) 均为 \(U\) 的分拆,若 \(P_1\) 仅有一个集合 \(U\)\(P_i\)\(A_1,A_2\cdots,A_i\) 组成,且其中某两个集合合并后可以组成 \(P_{i-1}\),那么 \(P_1,P_2,\cdots,P_n\) 是一个长为 \(n\) 的分拆链。容易对其计数。

4. Dilworth 定理

回到最开始给出的叙述:

\(4\):试证明 Dilworth 定理:当集族 \(\mathcal{A} = \{A_1,A_2,\cdots,A_t\}\) 分拆为互不相交的链时,所拆出的链的最小条数 \(m\) 等于 \(\mathcal{A}\) 中元素最多的 Sperner 族的元数 \(s\)

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

接下来只需证明 \(s \geq m\)。考虑对 \(t\) 归纳,当 \(t=1\) 时显然成立。假设结论对 \(< t\) 的情况成立,考虑此时的 \(\mathcal{A}\),对 \(\mathcal{A}\) 中任一元数 \(s\) 的 Sperner 集 \(\mathcal{B}\),不在 \(\mathcal{B}\) 中的元 \(A\) 必与 \(\mathcal{B}\) 中的某个元 \(B\) 有包含关系,否则与 \(\mathcal{B}\) 的最大性矛盾。将满足 \(B \subset A\)\(A\) 归入 \(\mathcal{B}_1\) 一族,满足 \(A \subset B\)\(A\) 归入 \(\mathcal{B}_2\) 一族,如果 \(\mathcal{B}_1,\mathcal{B}_2\) 均非空,令 \(\mathcal{A}_1 = \mathcal{B} \cup \mathcal{B}_1,\mathcal{A}_2 = \mathcal{B} \cup \mathcal{B}_2\)\(|\mathcal{A}_1|,|\mathcal{A}_2| < t\)

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

如果对 \(\mathcal{A}\) 中任意元数为 \(s\) 的 Sperner 族 \(\mathcal{B}\)\(\mathcal{B}_1,\mathcal{B}_2\) 至少有一个为空,那么 \(\mathcal{A}\) 中至多有两个元数为 \(s\) 的 Sperner 族,即 \(\mathcal{A}\) 的最大元所成的族 \(\mathcal{E}\)\(\mathcal{A}\) 的最小元所成的族 \(\mathcal{F}\)。于是有以下三种情况:

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

  • 仅族 \(\mathcal{F}\)\(s\) 个元。同理可知 \(\mathcal{A}\) 可分拆为 \(s\) 条链。

  • \(\mathcal{E},\mathcal{F}\) 均有 \(s\) 个元。任取 \(B \in \mathcal{F}\),必有 \(A \in \mathcal{E}, B \subset A\)。去掉 \(A,B\) 后剩下的元组成 \(s-1\) 条链,加上链 \(B \subset A\)\(s\) 条链。

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


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

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

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


\(6\):证明:实数数列 \(a_1,a_2,\cdots,a_{nm+1}\) 中一定能够找出一个 \(m+1\) 项的递增子列,或能够找出一个 \(n+1\) 项的递减子列。

\(a_i \leq a_j,i<j\),则称 \(a_i \succ a_j\)。如果原数列中递增的子序列至多 \(m\) 项,那么由 \(\lceil \frac{nm + 1}{m} \rceil = 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 @ 2022-07-27 23:40  came11ia  阅读(487)  评论(0编辑  收藏  举报