命题:偏序集能划分成的最少的全序集的个数与最大反链的元素个数相等。

(离散数学结构第六版课本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定理证明的更多相关文章

  1. 洛谷P1020 导弹拦截 题解 LIS扩展题 Dilworth定理

    题目链接:https://www.luogu.com.cn/problem/P1020 题目大意: 给你一串数,求: 这串数的最长不上升子序列的长度: 最少划分成多少个子序列是的这些子序列都是不上升子 ...

  2. 【codevs1044】导弹拦截问题与Dilworth定理

    题目描述 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某 ...

  3. (转载)偏序集的Dilworth定理学习

    导弹拦截是一个经典问题:求一个序列的最长不上升子序列,以及求能最少划分成几组不上升子序列.第一问是经典动态规划,第二问直接的方法是最小路径覆盖, 但是二分图匹配的复杂度较高,我们可以将其转化成求最长上 ...

  4. bzoj 3997 Dilworth定理

    看到这道题感觉像是网络流,如果没有权值,可以用DAG最小路径覆盖,有权值,感觉可以求一个上下界最小可行流,但内存卡了....时间估计也悬. 正解要用到一些数学知识,这里梳理一下: 定义: 偏序关系: ...

  5. Dilworth定理

    来自网络的解释: 定理内容及其证明过程数学不好看不懂. 通俗解释: 把一个数列划分成最少的最长不升子序列的数目就等于这个数列的最长上升子序列的长度(LIS) EXAMPLE 1   HDU 1257 ...

  6. 导弹拦截与Dilworth定理

    这两天被Dilworth.链和反链搞到头昏脑胀,终于有点眉目,现在来总结一下. Dilworth定理说的是:对于一个偏序集,其最少链划分数等于其最长反链的长度. Dilworth定理的对偶定理说的是: ...

  7. [BZOJ1143][CTSC2008]祭祀river(Dilworth定理+二分图匹配)

    题意:给你一张n个点的DAG,最大化选择的点数,是点之间两两不可达. 要从Dilworth定理说起. Dilworth定理是定义在偏序集上的,也可以从图论的角度解释.偏序集中两个元素能比较大小,则在图 ...

  8. dilworth定理的通俗讲解

    度娘定义:在数学理论中的序理论与组合数学中,Dilworth定理根据序列划分的最小数量的链描述了任何有限偏序集的宽度.其名称取自数学家Robert P. Dilworth. 反链是一种偏序集,其任意两 ...

  9. 如何使用Dilworth定理

    相关例题:NOIP 1999导弹拦截 遇到这题不会去网上搜Dilworth定理,太难受了,看不懂证明 但是,我知道怎么使用了,管那么多,会用就完事了 学习自这篇文章 -1.为什么我不想学证明这个定理 ...

随机推荐

  1. 46-Identity MVC:登录逻辑实现

    1- Login.cshtml <h3>Login</h3> @model MvcCookieAuthSample.ViewModel.LoginViewModel <d ...

  2. Sql Server 表间对应关系

    <1>.关联映射:一对多/多对一 存在最普遍的映射关系,简单来讲就如球员与球队的关系:一对多:从球队角度来说一个球队拥有多个球员 即为一对多多对一:从球员角度来说多个球员属于一个球队 即为 ...

  3. ArrayMap java.lang.ArrayIndexOutOfBoundsException

    错误堆栈: java.lang.ArrayIndexOutOfBoundsException: length=0; index=1 at android.support.v4.util.SimpleA ...

  4. 「日常训练」Soldier and Badges (CFR304D2B)

    题意 (Codeforces 546B) 问对一个序列最少需要增减几个1能使其彼此不同. 分析 模拟处理.需要注意的是,尽管题目中说了an<=3000,问题是,如果一群a全是3000呢(滑稽), ...

  5. Windows下nginx作为静态资源服务器使用

    一.Nginx下载与安装 1.nginx官方下载地址:http://nginx.org/ 2.下载完后将压缩包解压即可 3.nginx配置文件为根目录下conf\nginx.conf 二.Nginx常 ...

  6. python发起请求提示UnicodeEncodeError

    具体错误: UnicodeEncodeError: 'latin-1' codec can't encode characters in position 73-74: Body ('测试') is ...

  7. 第三篇 Python执行方式和变量初始

    第一个Python程序 可以打开notepad或者其他文本编辑器,输入:print("Hello Python!"),将文件保存到任意盘符下,后缀名是  .py 两种python程 ...

  8. 数据挖掘算法:DBSCAN算法的C++实现

    (期末考试快到了,所以比较粗糙,请各位读者理解..) 一.    概念 DBSCAN是一种产生划分聚类的基于密度的聚类算法,簇的个数由算法自动地确定.低密度区域中的点被视为噪声而忽略,因此DBSCAN ...

  9. sqlserver 找出字符第N次出现的位置

    [1编写函数]CREATE FUNCTION IndexOf(@str VARCHAR(500),@value VARCHAR(50),@posIndex INT)RETURNS int AS BEG ...

  10. io学习2-磁盘阵列RAID

    磁盘阵列 RAID(Redundant ArrayOf Inexpensive Disks) 如果你是一位数据库管理员或者经常接触服务器,那对RAID应该很熟悉了,作为最廉价的存储解决方案,RAID早 ...