匹配极其相关问题(一)

简介:
匹配问题是图论中一类非常经典的问题,最经典、常见的有二分图最大匹配和二分图最大权匹配,分别可以使用匈牙利算法与KM算法较高效解决。另外,匹配问题通常与支配集、覆盖集、独立集相关联,我们可以通过转化问题,将这些问题转化成匹配问题后套用算法解决。下面先介绍一些基本概念。

基本概念:
匹配问题通常与支配集、覆盖集、独立集等问题相关,下面分别介绍五个基本概念。
1、点支配集:
对无向图G=(V, E),如果存在一个顶点集合V*,满足任意V-V*中的顶点都与至少V*中一个顶点有边连接,则称V*为G的一个点支配集。支配集中顶点v与对应补集中顶点u相连,则称v支配u。
极小支配集:任何真子集都不是点支配集的点支配集;
最小支配集:顶点数最小的点支配集;
点支配数:最小支配集中顶点个数。
2、点覆盖集:
对无向图G=(V, E),如果存在一个顶点集合V*,满足任意E中的边都与至少V*中一个顶点关联,则称V*为G的一个点覆盖集(点覆盖)。点覆盖中顶点v与边e相关联,则称v覆盖e。
极小点覆盖:任何真子集都不是点覆盖集的点覆盖集;
最小点覆盖:顶点数最小的点覆盖集;
点覆盖数:最小点覆盖中顶点个数。
3、点独立集:
对无向图G=(V, E),如果存在一个顶点集合V*,满足V*中任意两个顶点都互不相连,则称V*为G的一个点独立集(点独立)。
极大点独立:任何真子集都不是点独立集的点独立集;
最大点独立:顶点数最大的点独立集;
点独立数:最大点独立中顶点个数。
4、边覆盖集:
对无向图G=(V, E),如果存在一个边集合E*,满足任意V中的顶点都与至少E*中一条边关联,则称E*为G的一个边覆盖集(边覆盖)。边覆盖中边e与顶点v相关联,则称e覆盖v。
极小边覆盖:任何真子集都不是边覆盖集的边覆盖集;
最小边覆盖:顶点数最小的边覆盖集;
边覆盖数:最小边覆盖中边数量。
5、边独立集:
对无向图G=(V, E),如果存在一个顶点集合E*,满足E*中任意两条边都互不相邻,则称E*为G的一个边独立集(边独立)。边独立也是我们经常说的匹配
极大边独立:任何真子集都不是边独立集的边独立集;(极大匹配)
最大边独立:顶点数最大的边独立集;(最大匹配)
边独立数:最大边独立中边数量。(匹配数)

基本定理:
上面所说的五个基本概念,两两之间有一些特定数值上的规律,通过下面一些定理来描述。(N为顶点总数,边独立数即匹配数)
定理1:无向图中,无孤立点,点覆盖数+点独立数=N
定理2:无向图中,无孤立点,边覆盖数+边独立数=N
定理3:二分图中,无孤立点,点覆盖数=边独立数
定理4:二分图中,无孤立点,点独立数=边覆盖数=N-边独立数
若存在M个孤立点,上述定理3、4在顶点数N扣除M后成立。
定理5:无向图中,极大点独立集即极小支配集(逆命题不成立)
定理6:无向图中,无孤立点,V*是点覆盖当且仅当V-V*是独立集
定理7:无向图中,无孤立点,
1)若M为G的一个最大匹配,对于G中M的每个未覆盖点v,选取一条与v相关联的边所组成的边的集合为N,则W=M∪N为G的最小边覆盖;
2)若W为G的一个最小边覆盖,若W中存在相邻的边就移去一条,设移去的边集为N,则M=W-N为G中一个最大匹配。
定理8:无向图中,无孤立点,最小点覆盖集与最大点独立集互补。

总结:
点支配集、点覆盖集和点独立集的求解其实是NP问题,只能通过穷举算法来解决,而这种算法只适用与数据范围小的情况。边覆盖集和边独立集(匹配)的求解可以通过匈牙利算法并结合定理7、8实现算法扩展,根据定理3、4,我们可以通过边覆盖数与边独立数计算点支配数、点覆盖数和点独立数。

你可能感兴趣的:(匹配极其相关问题(一))