二分图匹配问题
二分图: 若无向图G=(V,E)的顶点集V可分为两个子集X和Y,满足X∩Y=∅;X∪Y=V,G中的任何一条边的两个端点,一个在X中,另一个在Y中,则称图G是二分图或偶图。
定理:图G是二分图,当且仅当G中没有奇数长度的回路。-------(提供一方法,判断一个图是否是二分图)
证明:(1)必要性;
若G=(X∪Y)二分图,假定p:v0v1v2…vkv0是一条回路,并令v0∈X。则对所有的i≥0,有v2i∈X,v2i+1∈Y。因为vk∈Y,则存在某个i使得k=2i+1,则p的长度为2i+2.所以G中没有奇数长度的回路。
(2)充分性
假定G=(V,E)是连通的,否则可以对某个连通分支进行证明。任取v0∈V,记d(v0,v)为从顶点v0到达顶点v的通路上的边数。令X=﹛v| d(v0,v)为偶数且v∈V﹜,Y=V-X,则X∩Y=∅;X∪Y=V。对所有的边(xi,yj)∈E,如果xi,yj∈X,则有X的定义知必定存在P1:v0u1u2…u2s+1xi以及P2:,并且P1、P2的边都为偶数。因为(xi,yj)∈E,所以,存在回路L:v0u1u2…u2s+1xi yjw2t+1…w2 w1v0,并且回路L的边数|L|=|P1|+|P2|+1为奇数。这与“G中没有奇数长度的回路”相矛盾。所以,xi,yj不能同时属于X,同样也不能同时属于Y。这样xi,yj必有一个在X中,一个在Y中,所以G是二分图。
(1)匹配 M---如果M是无向图G的边子集(不含环),且M中的任意两条边没有共同顶点,则称M是G的一个匹配或对集或边独立集。
(2)如果G中顶点v是G的匹配 M中某条边的端点,称它为M饱和点,否则为M非饱和点
(3) 最大匹配 M---如果M是图G的包含边数最多的匹配,称M是G的一个最大匹配。特别是,若最大匹配饱和了G的所有顶点,称它为G的一个完美匹配。
(4)M交错路---如果M是图G的匹配,G中一条由M中的边和非M中的边交错形成的路,称为G中的一条M交错路。特别地,若M交错路的起点与终点是M非饱和点,称这种M交错路为M可扩路。
定理1 (贝尔热定理) G的匹配M是最大匹配,当且仅当G不包含M可扩路。
偶图匹配存在性判定----Hall定理
定理2 (Hall定理)设G=(X, Y)是偶图,则G存在饱和X的每个顶点的匹配的充要条件是:
(即:X中的任意s个点至少与Y中的s个点相邻。)
Hall定理是二分图匹配问题中匈牙利算法的基础
例1,在下面偶图中,是否存在饱和X={A, B, C, D, E, F, G}的每个顶点的匹配?
解: (1) 当S取X中单元点时,容易验证:|N(S)|>|S|
(2) 当S取X中二元点集时,容易验证:|N(S)|≧|S|
(3) 当S取X中三元点集时,容易验证:|N(S)|≧|S|
(4) 当S取X中四元点集时,若取S={A,C,D,F},则有3=|N(S)|<|S|=4
所以,不存在饱和X每个顶点的匹配。
证明:“必要性”
如果G存在饱和X每个顶点的匹配,由匹配的定义,X的每个顶点在Y中至少有一个邻接点,所以:
“充分性”
如果G是满足条件(*)的偶图,但是不存在饱和X每个顶点的匹配。令M*是G的一个最大匹配,但是不饱和X的顶点u.
又令Z是通过M*与点u相连形成的所有M*交错路上的点集。因M*是最大匹配,所以u是所有交错路上唯一的一个未饱和点。
令S=X∩Z , T=Z∩Y
显然,S-{u}中点与T中点在M*下配对,即:
|T| = |S| -1< |S|
即: |N(S)| = |T| = |S| -1< |S| ,与条件矛盾。
注: (1) G=(X,Y)存在饱和X每个顶点的匹配也常说成存在由X到Y的匹配。
各顶点的度均相同的无向简单图称为正则图(regulargraph)。各顶点度均为k的正则图称为k-正则图。
定义1:图的点覆盖 ---G的一个顶点子集K称为G的一个点覆盖,如果G的每条边都至少有一个端点在K中。G的一个包含点数最少的点覆盖称为G的最小点覆盖,其包含的点数称为G的覆盖数,记为α(G).
定理3 设M是G的匹配,K是G的覆盖,若|M|=|K|,则M是最大匹配,而G是最小覆盖。
定理4 (哥尼定理)在偶图中,最大匹配的边数等于最小覆盖的顶点数。
(偶图的点覆盖与偶图匹配间的关系)
例矩阵的一行或一列称为矩阵的一条线。证明:布尔矩阵中,包含了所有“1”的线的最少数目,等于具有性质“任意两个1都不在同一条线上的1的最大数目”。
例如:在如下布尔矩阵中:
证明:设布尔阵是n行m列矩阵,把它模型为一个偶图如下:每行每列分别用一个点表示,X表示行点集合,Y表示列点集合,两点连线。当且仅当该行该列元为1.
于是,包含了所有“1”的线的最少数目对应偶图中的最小点覆盖数。而具有性质“任意两个1都不在同一条线上的1的最大数目”对应偶图的最大匹配包含的边数。
由哥尼定理,命题得到证明。