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

(离散数学结构第六版课本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. Andrew Ng Machine Learning Coursera学习笔记

    课程记录笔记如下: 1.目前ML的应用 包括:数据挖掘database mining.邮件过滤email anti-spam.机器人autonomous robotics.计算生物学computati ...

  2. ruby中将数字转化为字符串格式时差

        工作中有时候会碰到需要把数值展示成比较直观的时间差格式,divmod方法很适合做这个操作.   divmod #输出商和余数的数组    60.divmod(50) #=> [1, 10 ...

  3. C语言实例解析精粹学习笔记——34(用“结构”统计学生成绩)

    实例34: 设学生信息包括学号.姓名和五门功课的成绩,要求编写输入输出学生信息的函数.在输入学生信息后,以学生成绩的总分从高到低顺序输出学生信息. 思路: 程序引入一个结构数组依次存储输入的学生信息, ...

  4. poj2230 欧拉回路

    http://poj.org/problem?id=2230 Description Bessie's been appointed the new watch-cow for the farm. E ...

  5. struts2学习笔记一

    一.框架概述 1.框架的意义与作用: 所谓框架,就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经历放到业务需求的分析和理解上面. 特点:封装了很多细节,程序员在使用的时候会非常简单. 2 ...

  6. xss挑战赛小记 0x03(xssgame)

    0x00 继续做xss吧 这次是xssgame 地址 http://www.xssgame.com/ 一共八关 学到了很多东西 0x01 啥也没有 <svg/onload="alert ...

  7. js 实现字符串转日期进行比较大小

    代码如下 var a = '2016-01-01 12:12:12'; var b = '2016-01-01 12:12:13'; var al = new Date(a).getTime(); v ...

  8. babel配置

      首页 首页 首页 博客园 博客园 博客园 联系我 联系我 联系我 demo demo demo GitHub GitHub GitHub 管理 管理 管理 魔魔魔芋芋芋铃铃铃 [02]websto ...

  9. Python简要标准库(3)

    shelve 若只需要一个简单的存储方案,那么shelve模块可以满足你大部分的需要,你所需要的只是为它提供文件名.shelve中唯一有趣的函数是open,在调用的时候他会返回一个Shelf对象 注意 ...

  10. storm_jdbc 最完整的版本

    开头:我这里是根据bolt与trident进行分类的,写入和读取的方法可能会在同一个类中,最后会展示一个测试的类来说明怎么用. JdbcSpout:这个类是我写入数据和读取数据的公用spout,细节注 ...