最小点集覆盖=最大匹配

最小点集覆盖:选出最少的点使得每条边都至少有一个端点被选。

  • 先证最小点集覆盖 ≥\ge≥ 最大匹配

    假设最大匹配为 xxx,即有 xxx 条边两两之间没有公用点。

    光覆盖这些边就要用到 xxx 个点。

    “不少于”已证。

  • 再证最小点集覆盖 ≤\le≤ 最大匹配。

    假设最小点集覆盖为 xxx。那么这些点都至少能分别找到一条边不共用顶点(不出现多对一的情况)。

    因为如果一个点有两条边的对应端点都在最小点集覆盖里面,且对应的两个端点都只能找到这个点的边,不如将两个端点扔掉,将这个点加入。

    只要每个端点都选择一个这样的边,就必然能转化为一个匹配数与点集覆盖的点数相等的匹配方案。

    所以最大匹配至少为最小点集覆盖数。

    “不大于”已证。

综上,我们可以说最小点集覆盖等于最大匹配。

最小不交路径覆盖=总点数-最大匹配数

最小不交路径覆盖:在有向无环图中,选出最少的路径数使得每个点都至少被遍历一次,且路径两两无交点。

对原图(共 nnn 个点)中的每个点 iii 建立左部点 i1i_1i1​ 和右部点 i2i_2i2​ 。

若 x→yx\rightarrow yx→y 有边,则在二分图上连一条 x1→y2x_1\rightarrow y_2x1​→y2​ 的边。

原图最小不交路径覆盖条数 =n−=n-=n− 新二分图上的最大匹配数。

初始时将每个点都看成一条路径,原图如果两点间有边,那么就相当于可以用一条路径覆盖这两个点,路径数减一,对应二分图上两点间的一个匹配。

利用递归地思想,可以扩展出原图的一条路径拆成了若干个二分图上的匹配。

二分图上每个点只会匹配一次也就是只会对一条路径产生减一的效果,这正好对应了“不交”的要求。

最小可交路径覆盖

floyd\text{floyd}floyd 传递闭包后建新图,问题直接转化为在新图上的最小不交路径覆盖。

即,若 x→y→z⇒x→zx\rightarrow y\rightarrow z\Rightarrow x\rightarrow zx→y→z⇒x→z。

只要原图两个点之间有路径可以到达就在二分图上进行连边。

这样虽然跑出来 x−zx-zx−z 的一条匹配边,但其实在原图上是经过了 yyy 点的,由于“可交”仍然起到了将 xxx 和 zzz 路径合并减少一条的效果。

最大独立集=总点数-最小覆盖集

最大独立集:选出若干个点使得点两两之间没有边相连。

最小覆盖集:就是最小点集覆盖。

显然,最大独立集 +++ 最大匹配 === 总点数。

如果不是最大匹配,也就是说剩下的点集中存在两个点之间有边相连,不符合最大独立集定义,匹配就要 +1+1+1,去掉两个点中的任意一个。

因为最小覆盖集等于最大匹配。

结论得证。

最大点权独立集=总权值-最小点权覆盖集=总权值-最小割

最大流等于最小割。

证明类比上面。

[学习笔记] 二分图基础定理的相关证明相关推荐

  1. php基础教学笔记,php学习笔记:基础知识

    php学习笔记:基础知识 2.每行结尾不允许有多余的空格 3.确保文件的命名和调用大小写一致,是由于类Unix系统上面,对大小写是敏感的 4.方法名只允许由字母组成,下划线是不允许的,首字母要小写,其 ...

  2. 【学习笔记--FMCW基础知识】

    学习笔记--FMCW基础知识 前言 mmWave测距原理 mmWave区分多个物体 mmWave的距离分辨率(Range Solution) mmWave的最大测量距离 前言 由于工作原因需要了解TI ...

  3. C基础学习笔记——01-C基础第02天(用户权限、VI操作、Linux服务器搭建)

    在学习C基础总结了笔记,并分享出来.有问题请及时联系博主:Alliswell_WP,转载请注明出处. 01-C基础第02天(用户权限.VI操作.Linux服务器搭建) 打开终端:ctrl+alt+t ...

  4. Python入门学习笔记1-Python基础

    Python入门学习笔记1-Python基础 前言:本文介绍了Python学习的前导知识概念以及必记基础函数,如善用help方法查看帮助文档,以及内置对象类型的概念以及常用函数的详解. 一.Pytho ...

  5. BGP协议学习笔记——BGP基础

    BGP协议学习笔记--BGP基础(BGP概念.BGP报文.BGP状态机.BGP关系建立.BGP路由通告) 说明:本文学习笔记整理自网络.华为公开产品文档.华为公开PPT及部分的自我理解 一.BGP简介 ...

  6. Java学习笔记之基础篇

    Java学习笔记之基础篇 目录 Java如何体现平台的无关性? 面向对象(OO)的理解 面向对象和面向过程编程的区别 面向对象三大特征 静态绑定和动态绑定(后期绑定) 延伸:类之间的关系 组合(聚合) ...

  7. Linux学习笔记之——Linux系统内部相关介绍

    Linux学习笔记之--Linux系统内部相关介绍 摘要:主要记录一些比较有用的能够帮助理解和使用Linux的知识.比如一些相关概念.没兴趣的看看就好.知道有这么个东西.注意事项.和一些常用目录的作用 ...

  8. 1、Latex学习笔记之基础入门篇

    目录 一.Latex基础 1.架构 2.引用.脚注 3.单栏.双栏 4.常用快捷键 5.宏包 6.空格 7.换行.行间距 8.换段 9.下划线 10.引号 11.注释 12.字体 13.缩进 14.超 ...

  9. HTML5学习笔记 —— JavaScript基础知识

    HTML5学习笔记 -- JavaScript基础知识 标签: html5javascriptweb前端 2017-05-11 21:51 883人阅读 评论(0) 收藏 举报 分类: JavaScr ...

最新文章

  1. 如何系统学习机器学习?
  2. t3修改计算机后就无法登录了,电脑更换系统后,用友T3登录不上了,一直显示这个,怎么处理,这个怎么解决...
  3. 信息学奥赛一本通 1044:判断是否为两位数 | OpenJudge NOI 1.4 06
  4. 泛型 typescript_如何把你的头围绕Typescript泛型
  5. 人脸检测江湖的那些事儿——从旷视说起
  6. Angular (Full App) with Angular Material, Angularfire NgRx 第3章 21节
  7. java压缩和解压ZIP和RAR文件踩坑实践
  8. 企业信息系统网络安全整改方案
  9. 电工知识:常用电子元件名称及其对应图片实用大全
  10. 新能源电动汽车设计与生成
  11. 贪心科技机器学习训练营(八)
  12. 千千静听界面模拟(C#)
  13. 海归首选“北上广” 薪资期望不太高 元芳你怎么看?
  14. easyui分页查询为什么会有下拉框_Easyui 添加分页组件_EasyUI 教程
  15. RecyclerView状态异常Cannot call this method while RecyclerView is computing a layout or scrolling
  16. 一文探究OR值和RR值区别
  17. 互联网公司招聘--阿里巴巴--运营岗--2015年笔试题
  18. 智能车的“耳朵”电磁检测传感器
  19. 《算法笔记》学习 入门篇
  20. 【HTML+CSS】制作文字依次闪烁的霓虹灯特效

热门文章

  1. 递推与储存,是动态规划的关键
  2. linux内核分析与移植,内核分析移植
  3. jq中法可以发起ajax请求的方法有,jQuery实现监控页面所有ajax请求的方法
  4. python关联分析sklearn_Python3利用pandas,sklearn进行关联度分析以及预测的demo
  5. jdbc mysql user_tab_comments_mysql/jdbc:设置useInformationSchema=true读取表注释信息(table_comment)...
  6. 如何给柱状图柱子添加阴影_【LeetCode日记】84. 柱状图中最大的矩形
  7. 与ln的指数转化公式_高考数学48条秒杀型公式与方法
  8. baseresponse响应类_Java response响应体和文件下载实现原理
  9. UVA - 11059 Maximum Product-暴力枚举
  10. [蓝桥杯2016初赛]剪邮票-dfs+next_permutation(好题)