Dilworth 定理

这是一个关于偏序集的定理,事实上它也可以扩展到图论,dp等中,是一个很有意思的东西

偏序集

偏序集是由集合 S S S以及其上的一个偏序关系 R R R定义的,记为 ( S , R ) (S,R) (S,R)

偏序关系:

对于一个二元关系 R ⊂ S × S R\subset S\times S RS×S,如果其满足:

  • ∀ x ∈ S , x R x \forall x\in S,xRx xS,xRx 自反性
  • ∀ x , y ∈ S \forall x,y\in S x,yS,若 x R y xRy xRy y R x yRx yRx,则 x = y x=y x=y 反对称性
  • x R y , y R z → x R z xRy,yRz\rightarrow xRz xRy,yRzxRz 传递性
    显然自然数集 N N N以及最常见的小于等于关系 ≤ \leq , ( N , ≤ ) (N,\leq) (N,)就构成了一个偏序集
    事实上 ( N ∗ , ∣ ) (N^*,|) (N,)也是一个偏序集,其中 ∣ | 表示正整数的整除关系

以下为了讨论方便,我们将 R R R简记为 ≤ \leq ,当然它可以指代小于等于关系之外的其它关系

此外, ∀ x , y ∈ S \forall x,y\in S x,yS,如果 x ≤ y x\leq y xy y ≤ x y\leq x yx,那么我们就说它们是可比的,否则说它们是不可比

定义完了偏序集,我们可以从图上来看看它具体的样子

哈斯图(Hasse 图)

考虑一个偏序集 ( S , ≤ ) (S,\leq) (S,), ∀ x , y ∈ S \forall x,y\in S x,yS,如果 x ≤ y x\leq y xy且不存在 z S . T . x ≤ z ≤ y z\ S.T. \ x\leq z\leq y z S.T. xzy,我们称为 y y y覆盖 x x x,那么此时我们就连一条从 x x x指向 y y y的有向边,最后得到的图就称为这个偏序集 ( S , ≤ ) (S,\leq) (S,)的Hasse图

比如下图是 x , y , z {x,y,z} x,y,z的幂集关于包含关系得到的Hasse图
image.png|370

由于偏序关系满足了反对称性,所以Hasse图里面一定没有自环(否则就会合并成一个点),所以我们可以说Hasse图一定是一张DAG

其它偏序集的前置芝士

还是记我们要讨论的偏序集为 ( S , ≤ ) (S,\leq) (S,)


偏序集中的一个全序子集。形式化地说,若集合 C ⊂ S C\subset S CS,且 ∀ a , b ∈ C \forall a,b\in C a,bC, a , b a,b a,b是可比的,那么 C C C就是 S S S的一个链
链这个名字起的就很有水平,因为我们不难发现,偏序集中的一个全序子集,其在Hasse图中似乎就一定表现为一条链。比如上图中的 { { x , y , z } , { x , z } , { x } , { ϕ } } \{\{x,y,z\},\{x,z\},\{x\},\{\phi\}\} {{x,y,z},{x,z},{x},{ϕ}}就是一个全序子集,在图中刚好也表现成一条链。但我没有严格证明,这边搁置。
类似地,我们定义一个反链
反链
若集合 C ⊂ S C\subset S CS,且 ∀ a , b ∈ C \forall a,b\in C a,bC, a , b a,b a,b是不可比的,那么 C C C就是 S S S的一个反链
在图上看的话, { { x } , { y } , { z } } \{\{x\},\{y\},\{z\}\} {{x},{y},{z}}就是一个反链

深度:
最长链大小

宽度
最长反链大小

以上两个定义也是相当的形象。因为我们不难发现,如果把Hasse图按照偏序关系从低到高排列的话,链在图中往往就是一条竖着的,而反链是横着的,由此给出如上定义

最小链划分
将集合 S S S划分为最少的若干个不相交的链

最小反链划分
将集合 S S S划分为最少的若干个不相交的反链

Dilworth 定理

现在可以给出Dilworth 定理的具体内容了

Lemma1 对于任意有限偏序集,其最长反链大小必等于最小链划分中链的数目
其对偶形式也成立:
Lemma2 对于任意有限偏序集,其最长链大小必等于其最小反链划分中反链的数目

以下讨论均假定偏序集有限

总结以下:
最小链划分 = 最长反链大小 = 偏序集宽度
最小反链划分 = 最长链大小 = 偏序集深度

先来证Lemma2:

记定理中的最长链大小为n,我们对n做数学归纳法
显然n=1时定理成立
若n=k时定理成立,我们来证 n=k+1时定理成立
此时偏序集中的最长链长度为k+1,我们取出集合 S S S的所有极大元,组成集合 M M M,显然 M M M是一个反链,并且考虑 S − M S-M SM,其最大链长一定为k(因为取出了所有的极大元),根据之前的归纳假设, S − M S-M SM的最小反链划分数目为 k,再加上M自己是一个反链,从而此时S的最小反链划分数为 k+1 = 最长链长度 □ \square

再来看Lemma1:

考虑偏序集 ( S , ≤ ) (S,\leq) (S,),记 ∣ S ∣ = m |S|=m S=m,我们对m进行归纳
m = 1 m=1 m=1时Lemma1显然成立
m = k m=k m=k时定理成立,我们来证 m = k + 1 m=k+1 m=k+1时定理成立:

A A A是集合 S S S的一条最长反链,记为
A = { a 1 , a 2 , . . . a w } A = \{a_1,a_2,...a_w\} A={a1,a2,...aw}
其中 ∣ A ∣ = w |A|=w A=w
我们取
D ( A ) = { x ∉ A ∣ ∃ α ∈ S , x ≤ a } D(A) = \{x\notin A|\exists \alpha \in S,x\leq a\} D(A)={x/A∣∃αS,xa}
U ( A ) = { x ∉ A ∣ ∃ α ∈ S , a ≤ x } U(A) = \{x\notin A|\exists \alpha \in S,a\leq x\} U(A)={x/A∣∃αS,ax}
显然 D ( A ) ⋃ U ( A ) ⋃ A = S D(A)\bigcup U(A)\bigcup A = S D(A)U(A)A=S

若存在最长反链 A A A使得 D ( A ) , U ( A ) D(A),U(A) D(A),U(A)均非空:
A A A S S S的最长反链,故 A A A也是 A ⋃ D ( A ) A\bigcup D(A) AD(A)的一个最长反链。注意到 ∣ U ( A ) ∣ ≥ 1 |U(A)|\geq 1 U(A)1,故 ∣ A ⋃ D ( A ) ∣ ≤ k |A\bigcup D(A)|\leq k AD(A)k,从而由归纳假设, A ⋃ U ( A ) A\bigcup U(A) AU(A)可以划分为 w w w条链 c 1 , c 2 , . . . c w c_1,c_2,...c_w c1,c2,...cw,其中 c i c_i ci的极大元是 a i a_i ai.(这一点显然)
同理, A ⋃ D ( A ) A\bigcup D(A) AD(A)也可以划分为 w w w条链 d 1 , d 2 , . . . d w d_1,d_2,...d_w d1,d2,...dw,其中 d i d_i di的极小元是 a i a_i ai
从而,我们就可以将 S S S划分为 w w w条链: c 1 ∪ d 1 , . . . . c w ∪ d w c_1\cup d_1,....c_w\cup d_w c1d1,....cwdw

若对于任意最长反链 A A A,都有 D ( A ) = ϕ D(A)=\phi D(A)=ϕ U ( A ) = ϕ U(A)=\phi U(A)=ϕ
由假设,任一条反链 A A A必定构成全上界或者全下界。在 S S S中选一个极大元 y y y,再选一个极小元 x x x满足 x ≤ y x\leq y xy, { x , y } \{x,y\} {x,y}构成一条链 C C C,从而在集合 S − C S-C SC中,任一条最长反链的大小为 w − 1 w-1 w1(必定去除了一个元素),从而根据归纳假设, S − C S-C SC的最小链划分数为 w − 1 w-1 w1,再加上 C C C自己是一条链,故 S S S的最小链划分数为 w w w

□ \square

应用举例

求一个序列的最大非递增序列长度以及其最少可以划分为多少个非递增序列

考虑由(位置,元素大小)这个二元组组成的集合,再定义一个偏序关系 < < <:
a < b a<b a<b当且仅当 a a a的位置< b b b的位置且 a a a的值 < b <b <b的值

从而这就构成了一个偏序集 ( s , < ) (s,<) (s,<),并且要求的分别就是集合的最长反链以及最小反链划分数
第一个问题可以直接dp即可,第二个问题,根据Dilworth 定理,实际上就是求偏序集的最长链大小,实际上也就是序列的LIS,非常妙的一个转化。

与DAG

之前说过,Hasse图就是一个DAG,而反过来,我们将DAG的点作为集合 S S S的元素,将偏序关系 ≤ \leq 定义为点之间的可达性,就定义了一个偏序集 ( S , ≤ ) (S,\leq) (S,)
从而DAG上的最小可重路径覆盖(要求覆盖所有点)就等价于偏序集 ( S , ≤ ) (S,\leq) (S,)上的最小链覆盖

同理,将DAG上的有向边作为集合 T T T的元素,将偏序关系 ≤ ′ \leq' 定义为边之间的可达性,就得到的另一个偏序集 ( T , ≤ ′ ) (T,\leq') (T,)
从而DAG上的最小可重路径覆盖(要求覆盖所有)就等价于偏序集 ( T , ≤ ′ ) (T,\leq') (T,)上的最小链覆盖

Erdős–Szekeres 定理

含至少 r s + 1 rs+1 rs+1个元素的实数序列 { a } \{a\} {a}要么有一个长为 r + 1 r+1 r+1的不下降子序列,要么有一个长为 s + 1 s+1 s+1 的不上升子序列
Proof:
设序列长度为 n ≥ r s + 1 n\geq rs+1 nrs+1,定义偏序集 { ( i , a i ) } i = 1 n \{(i,a_i)\}_{i=1}^{n} {(i,ai)}i=1n,其上的偏序关系 ≤ \leq 定义为:
( i , a i ) ≤ ( j , a i ) ⇔ ( i ≤ j ∧ a i ≤ a j ) (i,a_i)\leq (j,a_i)\Leftrightarrow (i\leq j \ \wedge \ a_i\leq a_j) (i,ai)(j,ai)(ij  aiaj)
假设该偏序集的宽度 ≤ s \leq s s,则由Dilllworth定理可知其最小链覆盖数 ≤ s \leq s s,若这些链的长度都 ≤ r \leq r r,则总元素数 ≤ r s < r s + 1 ≤ n \leq rs< rs+1\leq n rs<rs+1n
矛盾。
□ \square

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/15114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用 vue3 + phaser 实现经典小游戏:飞机大战

本文字数&#xff1a;7539字 预计阅读时间&#xff1a;30分钟 01 前言 说起小游戏&#xff0c;最经典的莫过于飞机大战了&#xff0c;相信很多同学都玩过。今天我们也来试试开发个有趣的小游戏吧&#xff01;我们将从零开始&#xff0c;看看怎样一步步实现一个H5版的飞机大战&a…

C# 串口通讯之艰难排错之路 —— system.ObjectDisposedException已关闭 Safe handle

今天写了一个串口通讯扫码枪驱动&#xff0c;程序运行后&#xff0c;不出意外的全线崩溃&#xff0c;开始了漫长的排查之旅&#xff0c;具体情况报错如下&#xff1a; 解决未处理 System.ObjectDisposedException Message已关闭 Safe handle Sourcemscorlib ObjectName"&…

【pyspark速成专家】4_Spark之RDD编程2

目录 四&#xff0c;常用PairRDD的转换操作 五&#xff0c;缓存操作 四&#xff0c;常用PairRDD的转换操作 PairRDD指的是数据为长度为2的tuple类似(k,v)结构的数据类型的RDD,其每个数据的第一个元素被当做key&#xff0c;第二个元素被当做value. reduceByKey #reduceByKey…

层次式架构设计理论与实践

层次式体系结构概述 软件体系结构为软件系统提供了结构、行为和属性的高级抽象&#xff0c;由构成系统的元素描述这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。 层次式体系结构的每一层最多只影响两层&#xff0c;同时只要给相邻层提供相同的接口&#xff…

禁用win10自动更新

services.msc——Windows Update——常规——启动类型——禁用 services.msc——Windows Update——恢复——三个无操作&#xff0c;9999天。 gpedit.msc——计算机配置——管理模板——Windows组件——Windows更新——配置自动更新——已启用——2-通知下载和自动更新 Windows…

如何参与github开源项目并提交PR

&#x1f47d;System.out.println(“&#x1f44b;&#x1f3fc;嗨&#xff0c;大家好&#xff0c;我是代码不会敲的小符&#xff0c;目前工作于上海某电商服务公司…”); &#x1f4da;System.out.println(“&#x1f388;如果文章中有错误的地方&#xff0c;恳请大家指正&…

高速公路定向广播(声光一体) HT-600D

1、产品概述&#xff1a; HT-600D声光一体平面波IP定向广播是北京恒星科通创新性研发产品&#xff0c;采用公司自主研发的平面波传声技术&#xff0c;该产品具有高声压、强指向性、高清晰度等特点&#xff0c;采用定向声传声技术将声音聚集到正前方定向传输,周边声压级明显降低…

BTC系列-系统学习铭文(二)-序数理论

Ordinals的BIP: https://github.com/ordinals/ord/blob/master/bip.mediawiki 序数理论概述 序数是一种比特币的编号方案&#xff0c;允许跟踪和转移单个聪。这些数字被称作序号。比特币是按照它们被挖掘的顺序编号的&#xff0c;并从交易输入转移到交易输出&#xff08;遵循先…

面试题:对已经关闭的channel进行读写

在Go语言中对已经关闭的channel进行读写&#xff0c;结果会有所不同。 读操作 我们可以安全地从一个已经关闭的channel中进行读取数据。如果channel中还有未读取的数据&#xff0c;读操作将成功并返回数据以及一个用于表示数据是否有效的标记(如果channel已经关闭并且该数据有…

YOLOV10实时端到端目标检测

代码地址&#xff1a;GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection 论文地址&#xff1a;https://arxiv.org/pdf/2405.14458 本文介绍了YOLO系列目标检测器在实时和高效方面的优势&#xff0c;但是仍然存在一些缺陷&#xff0c;包括依赖非极大值…

[240525] VMware Pro 个人可免费使用 | 人机交互角度 解释 AI 同事出错虽多但深得青睐之奥义

目录 VMware Workstation Pro 个人可免费使用人机交互研究 ChatGPT 52%回答失实&#xff0c;78%逻辑不一致然却备受青睐之奥义 VMware Workstation Pro 个人可免费使用 VMware 宣布 Fusion Pro&#xff08;Mac&#xff09;和 Workstation Pro&#xff08;Windows 和 Linux&…

纯度高的安卓和混血安卓

安卓阵营纯安卓和改装安卓&#xff0c;纯安卓好用&#xff0c;权限控制力度做到很小&#xff0c;每相权限都交用户控制&#xff0c;权限控制层面可以精确到文件夹和文件&#xff0c;剪切板读和写&#xff0c;而且有精确权限追踪功能&#xff0c;国产高度定制安卓系统只有粗糙访…

React useState修改对象

在 React 中&#xff0c;useState 是一个 Hook&#xff0c;它可以让函数组件拥有状态。当想要改变一个对象类型的状态时&#xff0c;我们需要使用展开运算符&#xff08;...&#xff09;或者 Object.assign 来确保状态是正确地更新。 以下是一个使用 useState 来更新对象的例子…

webstorm新建vue项目相关问题

前言 这个迭代后端需求偏少&#xff0c;前端code的键盘都起火星子了。来了4个外包支持&#xff0c;1个后端3个前端&#xff0c;还是不够用啊。刚好趁这个机会稍微学习下vue&#xff0c;其实之前环境也配置过了&#xff0c;所以这里就不分享环境配置了&#xff0c;主要分享下新建…

基于单片机电梯控制系统设计与实现

摘 要: 介绍了电梯控制系统架构 &#xff0c; 指出了该系统的硬件设计和控制系统的软件设计以及系统调试 &#xff0c; 使系统可根据按键 要求完成载客任务&#xff0c;为电梯控制系统的优化提供了参考 。 关键词 : 电梯控制 ; 单片机 ; 系统设计 0 引言 在高层建筑中发挥…

Java开发大厂面试第22讲:Redis 是如何保证系统高可用的?它的实现方式有哪些?

高可用是通过设计&#xff0c;减少系统不能提供服务的时间&#xff0c;是分布式系统的基础也是保障系统可靠性的重要手段。而 Redis 作为一款普及率最高的内存型中间件&#xff0c;它的高可用技术也非常的成熟。 我们今天分享的面试题是&#xff0c;Redis 是如何保证系统高可用…

GPT-4o之多模态

前言 想必&#xff0c;很多小伙伴都知道GPT-4o已经发布了&#xff0c;一手基于多模态的问答显示&#xff0c;看起来挺厉害的&#xff08;也就是看起来&#xff0c; &#xff09;。然后&#xff0c;我就顺手看了看什么是多模态。 简介 多模态&#xff08;Multimodal&#xff…

什么是组态?什么是工业控制中的组态软件?

随着工业4.0和智能制造的发展&#xff0c;工控软件的应用越来越广泛&#xff0c;它们在提高生产效率、降低能耗和减少人力成本等方面发挥着越来越重要的作用。 什么是工控软件&#xff1f; 工控软件是指用于工业控制系统的软件&#xff0c;主要应用于各种生产过程控制、自动化…

标准库算法

欢迎访问我的博客首页。 标准库算法 1. 查找对象的算法2. 其它只读算法3. 二分搜索算法4. 写容器元素的算法5. 划分与排序算法6. 通用重排操作7. 排列算法8. 有序序 列的 集合算法9. 最 小值和 最大值10. 数值算法11. 参考 Pred 表示返回值为布尔类型的可调用对象。 1. 查找对…

Python序列的概念与使用-课后作业[python123题库]

序列的概念与使用-课后作业 一、单项选择题 1、关于Python组合数据类型&#xff0c;以下描述错误的是&#xff1a;‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬…