码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-06-27 00:09:45      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:http   最小支配集   特性   内容   集合   span   最小路径覆盖   无法   步骤   

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月计划 学习二分图]

标签:http   最小支配集   特性   内容   集合   span   最小路径覆盖   无法   步骤   

原文地址:http://www.cnblogs.com/huibixiaoxing/p/7078251.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!