码迷,mamicode.com
首页 > 编程语言 > 详细

二分图匹配的重要概念以及匈牙利算法

时间:2015-11-20 23:08:58      阅读:276      评论:0      收藏:0      [点我收藏+]

标签:

算是图论系列中的第一个算法,努力。

   写博客时看到的:  http://www.renfei.org/blog/bipartite-matching.html

二分图

       简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二分图。准确地说:把一个图的顶点划分为两个不相交集 U 和V ,使得每一条边都分别连接UV中的顶点。如果存在这样的划分,则此图为一个二分图。二分图的一个等价定义是:不含有「含奇数条边的环」的图。图 1 是一个二分图。为了清晰,我们以后都把它画成图 2 的形式。

技术分享 技术分享 技术分享技术分享

匹配:在图论中,一个「匹配」(matching)是一个边的集合,其中任意两条边都没有公共顶点。例如,图 3、图 4 中红色的边就是图 2 的匹配。

我们定义匹配点匹配边未匹配点非匹配边,它们的含义非常显然。例如图 3 中 1、4、5、7 为匹配点,其他顶点为未匹配点;1-5、4-7为匹配边,其他边为非匹配边。

最大匹配:一个图所有匹配中,所含匹配边数最多的匹配,称为这个图的最大匹配。图 4 是一个最大匹配,它包含 4 条匹配边。

完美匹配:如果一个图的某个匹配中,所有的顶点都是匹配点,那么它就是一个完美匹配。图 4 是一个完美匹配。显然,完美匹配一定是最大匹配(完美匹配的任何一个点都已经匹配,添加一条新的匹配边一定会与已有的匹配边冲突)。但并非每个图都存在完美匹配。

【无向图的最大团】:  从V个顶点选出k个顶,使得这k个顶构成一个完全图,即该子图任意两个顶都有直接的边。

点覆盖集:无向图G的一个点集,使得该图中所有边都至少有一点端点在该集合内。

点独立集:无向图G的一个点集,使得任两个在该集合中的点在原图中不相邻。

最小点覆盖集:无向图G中点数最少的点覆盖集。

最大点独立集:无向图G中,点数最多的点独立集

最小点权覆盖集:带点权的无向图中,点权之和最小的点覆盖集

最大点权独立集:实在带点权无向图中,点权之和最大的点独立集

性质:

 

1、最大团点的数量=补图中最大独立集点的数量

 

2、二分图中,最大独立集点的数量+最小覆盖点的数量=整个图点的数量

 

3、二分图中,最小覆盖点的数量=最大匹配的数量

 

4、图的染色问题中,最少需要的颜色的数量=最大团点的数量

二分图匹配的重要概念以及匈牙利算法

标签:

原文地址:http://www.cnblogs.com/forwin/p/4982441.html

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