二分图学习笔记

偶图定义

若把简单图G的顶点集分成两个不相交的非空集合V1和V2,使得图里的每一条条边都连接着V1里的一个顶点与V2里的一个顶点(因此G里没有边是连接着V1里的两个顶点或V2里的两个顶点),则G称为偶图。当次条件成立,称(V1,V2)为G的顶点集的一个二部划分。偶图也称为二部图,二分图。


判断简单图是否为偶图

一个简单图是偶图,当且仅当能够对图中的每一个顶点赋以两种不同的颜色,而不让相邻接的顶点被赋以相同的颜色。

一个图是偶图,当且仅当从一个顶点出发经过奇数条不同的边再回到它本市是不可能的。


完全偶图

完全偶图Km,n是顶点集分成分别含有m和n个顶点的两个子集的图。两个顶点之间有边当且仅当一个顶点属于第一个子集而另一个顶点术语第二个子集。


二分图最大匹配算法

二分图的最大匹配、完美匹配和匈牙利算法

http://www.renfei.org/blog/bipartite-matching.html


匈牙利算法中,我们每次寻找一条增广路来增加匹配集合M。可以证明,每次找增广路的复杂度是\mathcal{O}\left( \left|E\right| \right),一共需要增广\mathcal{O}\left(\left|V\right|\right)次,因此总时间复杂度为\mathcal{O}\left(\left|V\right|\left|E\right|\right)。为了降低时间复杂度,在霍普克洛夫特-卡普算法中,我们在增加匹配集合M时,每次寻找多条增广路。可以证明,这样迭代次数最多为2\sqrt{\left|V\right|},所以,时间复杂度就降到了\mathcal{O}\left(\sqrt{\left|V\right|}\left|E\right|\right)


霍普克洛夫特-卡普算法Hopcroft Karp算法

http://zh.wikipedia.org/wiki/%E9%9C%8D%E6%99%AE%E5%85%8B%E6%B4%9B%E5%A4%AB%E7%89%B9%EF%BC%8D%E5%8D%A1%E6%99%AE%E7%AE%97%E6%B3%95


二分图大讲堂——彻底搞定最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配

http://dsqiu.iteye.com/blog/1689505



你可能感兴趣的:(Algorithm)