dilworth 定理 证明

最小链覆盖显然不小于最长反链。
下面证明可以构造出一组最小链覆盖使最小链覆盖等于最长反链。
归纳法证明。
设当前偏序集 \(P\) 中一个极大元素 \(u\),删掉 \(u\) 后最长反链长度为 \(k\),某个最小链覆盖为 \(\left\{C_1,C_2,\dots,C_k\right\}\)
\(C_i\) 中所有元素中在某个最长反链中的元素集合为 \(S_i\),显然 \(S_i\) 非空。令 \(x_i=\max\left\{S_i\right\}\)\(x_i\) 所在的某个最长反链为 \(A_i\)

定理:\(\forall 1\le i\ne j\le k,x_i\not\gt x_j\)
证明:显然 \(\left|A_i\cap S_j\right|=1\)。令 \(y\in A_i\cap S_j\),则 \(y\le x_j,x_i\not\gt y\to x_i\not\gt x_j\)
推论:\(\left\{x_i\right\}\) 是一个最长反链。

如果不存在 \(i\) 使得 \(x_i\lt u\),则最长反链长度增加 \(1\),令 \(\forall 1\le i\le k, C'_i=C_i,C'_{k+1}=\left\{u\right\}\) 即可。
否则设 \(x_i\lt u\),设 \(P'=\left\{\left\{z\in C_i,z\le x_i\right\}\cup\left\{u\right\}\right\}\),则 \(P\setminus P'\) 中最长反链长度恰好为 \(k-1\),所以最小链覆盖长度为 \(k-1\),此时对于 \(\forall 1\le i\le k-1\),令 \(C'_i\)\(P\setminus P'\) 的最小链覆盖,再令 \(C'_k=P'\) 即可。

posted @ 2021-04-26 11:15  Binary_Search_Tree  阅读(418)  评论(0编辑  收藏  举报