偏序集,哈斯图与Dilworth定理
本文章主要讨论偏序集的定义,如何由偏序集得到哈斯图,以及相关的 Dilworth 定理,忽略了一些关系不大的知识。
偏序集
偏序集是由集合
下面介绍什么是偏序关系。
偏序关系
对于二元关系
自反性
反对称性
传递性
注意:
对于
以上是偏序集的数学定义,过于抽象,为了更好理解偏序关系,我们引入哈斯图。
哈斯图( Hasse 图)
定义
对于元素
例如,集合
看起来哈斯图并不是有向图,这是否与上面所说的违背?
其实不然,在哈斯图中,把较大元放在较小元的上方,以此来隐式地表示有向。
性质
由于偏序关系满足反对称性,所以哈斯图中一定不能出现回路。
不难发现,哈斯图是一个有向无环图( DAG )!
一个经典的应用就是拓扑排序:从偏序构造一个相容的全序。相关内容在此不再赘述。
接下来给出一个定理。
Dilworth 定理
对于任意有限偏序集,其最大反链中元素的数目必等于最小链划分中链的数目。此定理的对偶形式亦真。
补充一下对链和反链的定义:
设
这个定义非常形象,链对应到哈斯图上就是一条从下至上的 “链”(有向路径)。
以上面的哈斯图为例,红圈就是一条链,蓝圈就是一条反链。
在这个图中,反链元素个数最多是 2 ,而且,整个图至少需要 2 条链 (
通过观察哈斯图,我们可以直观地发现 Dilworth 定理成立。
严格的数学证明如下:
设有限偏序集
当
假设该命题对于
设
则
- 存在最长反链
A 使得D(A) 和U(A) 均不为空。因为A 是S 的最长反链,所以A 也是A∪D(A) 的最长反链,由归纳假设:A∪D(A) 可以划分为c_1,c_2,...,c_w 共w 条链,其中c_i 的极大元是a_i 。同理,A∪U(A) 也可以划分为d_1,d_2,...,d_w 共w 条链,其中d_i 的极小元是a_i 。于是S 可以划分为c_1∪d_1 ,c_2∪d_2 ,...,c_w∪d_w 共w 条链。 - 对于每一个最长反链
A 都有D(A) 或U(A) 为空。那么每条反链A 要么构成全上界,要么构成全下界。在S 中选择一个极大元y ,再选择一个满足x≤y 的极小元x ,\{x ,y\} 必构成一条链C ,且x 一定包含在全下界,y 一定包含在全上界,因此S-C 中每个最长反链的元素个数都较S 减去 1 ,S-C 的宽度是w-1 。应用归纳假设,S-C 可划分为w-1 条链,再加上C 得到w 条链。
归纳证明完毕。
例题
P1020 [NOIP1999 普及组] 导弹拦截
多年后看到这题感慨颇丰
如何在这道题里应用偏序集有关知识?
不妨先构造出偏序集。
假设导弹高度序列为
具体含义就是:第
画出偏序集对应的哈斯图,对于第一问,很明显,我们需要求出最长链的长度。
关键的问题是第二问:最少的拦截系统个数?
不妨把每一个拦截系统拦截的导弹看作一个集合,那么就是若干个链,题目就转化为了至少需要几条链才能覆盖哈斯图?
这正好是 Dilworth 定理!
求出最大反链即可。
一个巧妙的做法就是将偏序关系置反,再次求一次最长链。
最近发现导弹拦截是一题研究 Dilworth 定理的好题,以往题解很少给出相关证明,仅仅给出做法,借此机会发一篇文章好好讲一下,感谢阅读。