Dilworth定理证明
命题:偏序集能划分成的最少的全序集的个数与最大反链的元素个数相等。
(离散数学结构第六版课本P245:把一个偏序集划分成具有全序的子集所需要的最少子集个数与元素在偏序下都是不可比的最大集合的基数之间有什么关系?)
证明:
设偏序集S。S能划分成的最少的全序集的个数为K,S的最大反链的元素个数为M。
1. 先证明K>=M。设反链A={a1,a2,...,aM}。假设K<M,那么由抽屉原理,必然有两个元素ai,aj在同一个全序集中。那么ai,aj可比。与ai,aj不可比矛盾。
2. 再证明K=M。用第二数学归纳法。
设全序集S中有m个元素。
(1)当m=0和m=1时,对于命题结论显然成立。
(2)假设m<n(n∈N+)时命题成立,现在证m=n时,命题也成立。
设x为S中的一个极大元。考虑S'=S-{x}这个偏序集。由于|S'|<n,由归纳假设,S'满足命题。设 S' 能划分成的最小的全序集个数为k,最大反链的元素个数也为k。那么我们设S'被划分成了k个链分别为C1,C2,...,Ck。设所有长度为k的反链分别为A1,A2,...,Ar。(假设有r条长度为k的反链)
那么对于任意一个Ai,Ai的元素必定是k条链上,每条链取一个元素。设为ai1,ai2,...,aik。
那么我们考虑集合B= {b1,b2,...,bk}={ max(ai1), max(ai2), max(ai3), ... , max(aik) }。 这个集合一定也是一条反链。(用反证法很容易证明:假设存在两个元素bi,bj可比,不妨设bi<=bj,其中bi和bj分别位于链Ci和Cj上。那么bi所在链的每个aix都与bj可比,与Ci上存在一个aix与bj不可比矛盾。)(加粗的地方之所以是正确的,是因为Ci与Cj上肯定有两个元素属于同一条反链)
现在考虑加入元素x的集合S。一个显然的事实是,加入一个极大元,不可能让划分的最少链个数更少,但是也不能让链的个数增加2及以上(否则肯定不满足最少链)。也不能让反链的最大长度更小。
分两种情况:
①如果x这个极大元与B中每个元素都不可比。那么考虑B∪{x},就是一个长度为k+1的反链。那么最少能划分的链的个数至少是k+1。而加入一个元素,链的条数至多增加1。因此,链的最少条数就是k+1。这样,对于这种情况,命题对于m=n时也成立了。
②如果x与B中的某个元素可比,假设x与bi可比,那么显然x>=bi:
考虑集合 D={ai1,ai2,...,air}∪{x}。D显然也是一条链。 现在考虑S''=S-D这个集合。由于每个长度为k的链都被我们抽掉了一个元素,所以集合S''不会有长度为k的反链了,而长度为k-1的反链显然是存在的(按照原来的构造)。由归纳假设,S''最少能划分成的链也是k-1。不妨设划分为了C'1,C'2,...,C'k-1。
那么,我们对S就构造出了k条链的情况:C'1,C'2,...,C'k-1,D。
所以反链的长度最大为k了。而去掉x就已经可以构造出长度为k的反链,因此S的最大反链至少是k。因此最大反链就是k。
至此,证明结束。
参考文献:http://aleph.math.louisville.edu/teaching/2009FA-681/notes-091119.pdf
Dilworth定理证明的更多相关文章
- 洛谷P1020 导弹拦截 题解 LIS扩展题 Dilworth定理
题目链接:https://www.luogu.com.cn/problem/P1020 题目大意: 给你一串数,求: 这串数的最长不上升子序列的长度: 最少划分成多少个子序列是的这些子序列都是不上升子 ...
- 【codevs1044】导弹拦截问题与Dilworth定理
题目描述 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某 ...
- (转载)偏序集的Dilworth定理学习
导弹拦截是一个经典问题:求一个序列的最长不上升子序列,以及求能最少划分成几组不上升子序列.第一问是经典动态规划,第二问直接的方法是最小路径覆盖, 但是二分图匹配的复杂度较高,我们可以将其转化成求最长上 ...
- bzoj 3997 Dilworth定理
看到这道题感觉像是网络流,如果没有权值,可以用DAG最小路径覆盖,有权值,感觉可以求一个上下界最小可行流,但内存卡了....时间估计也悬. 正解要用到一些数学知识,这里梳理一下: 定义: 偏序关系: ...
- Dilworth定理
来自网络的解释: 定理内容及其证明过程数学不好看不懂. 通俗解释: 把一个数列划分成最少的最长不升子序列的数目就等于这个数列的最长上升子序列的长度(LIS) EXAMPLE 1 HDU 1257 ...
- 导弹拦截与Dilworth定理
这两天被Dilworth.链和反链搞到头昏脑胀,终于有点眉目,现在来总结一下. Dilworth定理说的是:对于一个偏序集,其最少链划分数等于其最长反链的长度. Dilworth定理的对偶定理说的是: ...
- [BZOJ1143][CTSC2008]祭祀river(Dilworth定理+二分图匹配)
题意:给你一张n个点的DAG,最大化选择的点数,是点之间两两不可达. 要从Dilworth定理说起. Dilworth定理是定义在偏序集上的,也可以从图论的角度解释.偏序集中两个元素能比较大小,则在图 ...
- dilworth定理的通俗讲解
度娘定义:在数学理论中的序理论与组合数学中,Dilworth定理根据序列划分的最小数量的链描述了任何有限偏序集的宽度.其名称取自数学家Robert P. Dilworth. 反链是一种偏序集,其任意两 ...
- 如何使用Dilworth定理
相关例题:NOIP 1999导弹拦截 遇到这题不会去网上搜Dilworth定理,太难受了,看不懂证明 但是,我知道怎么使用了,管那么多,会用就完事了 学习自这篇文章 -1.为什么我不想学证明这个定理 ...
随机推荐
- latex03-LaTeX中的中文处理办法
编译含中文的tex文件的前提有三个: 默认编译器为XeLaTeX: 编辑器的默认字体编码格式为UTF-8: 引入ctex的宏包. 效果: 源码: %导言区 \documentclass{article ...
- 初识python 文件读取 保存
上一章最后一题的答案:infors.sort(key=lambda x:x['age'])print(infors)--->[{'name': 'laowang', 'age': 23}, {' ...
- JAVA学习一 对象数组
对象数组 今天在写一个代码,才发现自己对于对象数组的理解是不够的,那么就讲讲自己现在的理解. 对于数组中的每一个元素都是一个针对对象的引用 他会指向你的具体的一个堆上的对象,它本身知识一个地址值,与其 ...
- 创建react
cnpm install -g create-react-app 安装项目create-recat-app myapp
- (3)分布式下的爬虫Scrapy应该如何做-递归爬取方式,数据输出方式以及数据库链接
放假这段时间好好的思考了一下关于Scrapy的一些常用操作,主要解决了三个问题: 1.如何连续爬取 2.数据输出方式 3.数据库链接 一,如何连续爬取: 思考:要达到连续爬取,逻辑上无非从以下的方向着 ...
- Java泛型的基本介绍与使用
为什么要使用泛型? 在Java中增加泛型之前,泛型程序设计是用继承来实现的,例如ArrayList,只维护Object引用的数组: public class ArrayList{ private Ob ...
- Selenide 简单实现自动化测试
Selenide 网址:http://selenide.org/ github 地址:https://github.com/codeborne/selenide Selenide 早些年一直使用,中间 ...
- git安装后Gitbase闪退,gui无法使用问题解决
一般是因为null.sys导致,根本原因应该还是你装的盗版系统有问题,解决办法如下 cmd 打开命题提示符后 输入 sc start null 看 null.sys是否有问题,如果有问题,重新 ...
- LeetCode 24——两两交换链表中的节点
1. 题目 2. 解答 新建一个哨兵结点作为头结点,然后每次交换相邻两个结点.并依次将它们连接到新链表中去,再将原链表中后面的结点也串到新链表后面.直至到达链尾或者剩余一个节点,则此时返回新链表的头结 ...
- mysql语法总结
增: 删: 改: 查: 索引: 建: alter table: sql一些常用的经典语句,最后是select as的用法