巨坑 二分图学习笔记 [2017年6月计划 学习二分图]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了巨坑 二分图学习笔记 [2017年6月计划 学习二分图]相关的知识,希望对你有一定的参考价值。

1、二分图:

    ①把一个图的点集划为两个不相交的集合U,V,使得每一条边都连接U,V中的节点。 

   ②(等价定义,更方便看)不含边数为奇数的环的图

2、匹配(matching):

  边集,每一条边所连顶点互不相同

3、最大匹配:

  所含边数最大的匹配

4、完美匹配:

  所有顶点都被匹配,完美匹配一定是最大匹配。

5、交替路:

  从一个非匹配点出发,依次走非匹配边,匹配边,非匹配边....交替走,形成交替路

6、增广路:

  从一个非匹配点出发,走交替路,经过另一个非匹配点,则这条路径叫做增广路

    增广路特性:非匹配边比匹配边多1

    意义:改进匹配。把增广路匹配边与非匹配边交换位置即可,不会破坏原来的性质,且边数多一条

    匈牙利算法便是不断寻找增广路,直到找不到为止

  增广路性质:

  1、有奇数条边

  2、起点‘终点不在二分图的同一侧

  3、整条路径上没有重复的点

  4、起点和终点是非匹配点,路径上其余点均是匹配点

  5、路径上所有第奇数条边都不在原匹配上,所有第偶数条边都在原匹配上

7、匈牙利树

  从未匹配点出发,走交替路,一直到无法扩展为止,形成一颗匈牙利树

8、增广路定理

  一个匹配是最大匹配当且仅当没有增广路

9、匈牙利算法

  算法流程:

   令M为图G上的任一匹配,初始时M为空:

   1、从一个未匹配点开始,走交替路,直到遇到非匹配点位置,并将

     2、交换增广路上的匹配点、非匹配边,两个非匹配点标记为匹配点

     3、重复步骤1、2,直到找不到一条增广路为止

     时间复杂度:O(nm)

10、完备匹配

  匹配了二分图两个点集中较小集合的匹配

11、点覆盖相关概念

  点覆盖集是一个点集,使图中的边都与点集向邻接

  极小点覆盖是真子集不是点覆盖的点覆盖

  最小点覆盖是点数最小的点覆盖

      点覆盖数是最小点覆盖的点数

12、边覆盖相关概念

   边覆盖是一个边集,使所有的点都与边集中的点相邻接

  极小边覆盖是真子集不是边覆盖的边覆盖

  最小边覆盖是边数最小的边覆盖

       最小边覆盖是边数最小的边覆盖

  边覆盖数是最小边覆盖的边数

13、独立集相关概念

   独立集是一个点集。集合中任意两点不相邻,称为点集V的独立集。或者说导出子图(图G(V,E),若V‘是’V的一个子集,则V与其所连点构成的图G‘叫做V‘的导出子图;若E‘是E的一个子集,则E‘与其所连点构成的图G‘叫做E‘的导出子图)是零图的点集

     极大独立集是再加入其他点将不再是独立集的独立集

   最大独立集是点数最多的独立集

   独立数是最大独立集的点数

14、团

  团是一个点集。集合中任意两个点相连,或者说导出子图是完全图的点集。

       极大团是加入任何一个点都不是团的团

       最大团是点数最多的团

       团数是最大团的点数

15、边独立集

  边独立集是一个边集。集合中任意两条边不邻接

   极大边独立集是再加入任何边都不是独立集的独立集

       最大边独立集是边数最多的边独立集

       边独立数是最大边独立集的边数

  边独立集又称匹配,相应得有极大匹配、最大匹配、匹配数

16、支配集

  支配集是一个点集。使得所有点至少有一个相邻点在这个点集中。或者说是一部分点支配了另一部分点

  极小支配集是真子集不是支配集的支配集

  最小支配集是点数最少的支配集

  支配数是最小支配集的点数

17、边支配集

    边支配集是一个边集。使得所有边至少有一个邻接边在这个边集中。或者说是一部分边支配了另一部分边。

    极小边支配集是真子集不是边支配集的边支配集

    最小边支配集是点数最少的边支配集

    边支配数是最小边支配集的边数

18、边覆盖集

  最小路径覆盖,即用最少的不相交的简单路径,覆盖DAG上的所有点,即每个点严格属于一条路径。路径长度可能为0(一个点)

  边覆盖集:边覆盖集是图中所有顶点均是集合中边的邻接点且一条边只能覆盖2个顶点

  极小边覆盖:真子集不是边覆盖集的边覆盖集

  最小边覆盖:边数最小的边覆盖集

  边覆盖数:最小边覆盖的边数

19、最小边覆盖

  最小路径覆盖,即用最少的不相交的简单路径,覆盖DAG上的所有点,即每个点严格属于一条路径。路径长度可能为0(一个点)

    最小边覆盖数:最小边覆盖的路径条数

20、一些性质

  1、最小边覆盖数 = 独立数 = 节点数 - 匹配数

  2、DAG上最小边覆盖的求法:把一个点拆分成两个点i,i‘,最小边覆盖数即为原图节点数 - 拆分后匹配数。符合要求的一条路径:i -> j‘, j -> k‘, k -> q‘。。。。

  3、匹配数 = 二分图一边的非匹配点数 + 另一边的匹配点数

 

(还有很多东西有待补充。基础学习先到这里为止吧。绝大多数内容改(抄)编(录)于博客http://dsqiu.iteye.com/blog/1689505)

 

以上是关于巨坑 二分图学习笔记 [2017年6月计划 学习二分图]的主要内容,如果未能解决你的问题,请参考以下文章

自强队视觉组备战2018训练计划(2017年12月)

51CTO-风哥-ORACLE学习计划(持续更新中)

2017年6月19号课堂笔记

ECMAScript 6 学习笔记

2017年10月24日制定的3个月的学习目标与计划!!!!!

154173526颜灵营 现代软件工程工作室半月(2017年2月20日~2017年5月31日)学习情况总结