点覆盖 边覆盖 独立集 最大匹配 链划分 对应及构造

点覆盖 边覆盖 独立集 最大匹配 链划分 对应及构造

发现不是很熟,所以整理一下。

无向图

  • 在任意无向图中,最大独立集和最小点覆盖互补。(指其中一个取反得到另一个)

二分图

  • König 定理:二分图最小点覆盖大小等于最大匹配大小。

构造:从每个失配点走增广路,走到的点打标记(走出来的叫交错路)。左侧的未标记点右侧的标记点组成了最小点覆盖。

  • 二分图最小边覆盖等于最大独立集大小。

:每条边至多覆盖一个独立集中的点。

构造:选出所有匹配边,然后选出非匹配点任意选个邻边。

选的边数:点数 最大匹配 点数 最小点覆盖 最大独立集。

DAG

(点不相交,选出最少路径覆盖所有点)

对于图 G,每个点复制一下,DAG 中有 (u,v) 就连上左侧 u 和右侧 v,得到二分图 H

  • G最小路径覆盖等于 n H最大匹配

最大匹配中有什么边,最小路径覆盖中的路径就选择上哪条边。每次相当于将两个路径合并,所以是互补的。

有向图

最大权闭合子图转最小割:

超源连向正权(存在表示选),负权连向超汇(存在表示不选),权值均为点权绝对值。原图边为 inf.

Dilworth 定理:最长反链长度(两两不可比的最大集合)等于最小链覆盖大小(划分成尽量少的两两可比的集合)

注意:严谨的 Dilworth 定理定义在偏序集中,或者说是一个已经传递闭包后的 DAG,那么这里链覆盖能不能经过重复点是一样的。但如果在普通 DAG 中,并不去求它的传递闭包,不可比定义为不可达,那么这里链覆盖实际上就是点可以相交的路径覆盖。

也就是:传递闭包前的 G,点可以相交;传递闭包后 G" 无区分,都一样。所以可以传递闭包后跑上面那个 DAG 最小路径覆盖。

最长反链构造:先求出二分图 H 的最大独立集(最大匹配 最小点覆盖 最大独立集),然后 xx 都在最大独立集中的点加入到最长反链中。

设最小点覆盖为 m,那么最大独立集(S)为 2nm,设构造出的反链长度为 t,那么一定有 t+x[(xS)(xS)]=2nm,而由于右边那个 n,所以 tnm,但因为 G 最长反链 = G 最小路径覆盖 = n H 最大匹配 =nm.所以 tnm,那么构造出来的反链长度一定是 nm

这里不知道有没有循环论证,因为我不会证 Dilworth,只是提供一种理解。

posted @   do_while_true  阅读(102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?

This blog has running: 1845 days 1 hours 33 minutes 47 seconds

点击右上角即可分享
微信分享提示