二分图匹配二分图匹配匈牙利算法和匈牙利算法和KMKM算法简介算法简介二分图的概念二分图的概念二分图又称作二部图,是图论中的一种特二分图又称作二部图,是图论中的一种特殊模型
设设G=(V,{R})G=(V,{R})是一个无向图
如顶点集是一个无向图
如顶点集VV可分割为两个互不相交的子集,并且图中可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属两个不同的每条边依附的两个顶点都分属两个不同的子集
则称图GG为二分图
112233445最大匹配最大匹配给定一个二分图给定一个二分图GG,在,在GG的一个子图的一个子图MM中,中,MM的边集的边集{E}{E}中的任意两条边都不依附于同中的任意两条边都不依附于同一个顶点,则称一个顶点,则称MM是一个匹配
选择这样的边数最大的子集称为图的最大匹选择这样的边数最大的子集称为图的最大匹配问题配问题(maximalmatchingproblem)(maximalmatchingproblem)如果一个匹配中,图中的每个顶点都和图中如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,也某条边相关联,则称此匹配为完全匹配,也称作完备匹配
称作完备匹配
匈牙利算法匈牙利算法求最大匹配的一种显而易见的算法是:先找求最大匹配的一种显而易见的算法是:先找出全部匹配,然后保留匹配数最多的
但是出全部匹配,然后保留匹配数最多的
但是这个算法的复杂度为边数的指数级函数
因这个算法的复杂度为边数的指数级函数
因此,需要寻求一种更加高效的算法
此,需要寻求一种更加高效的算法
增广路的定义增广路的定义((也称增广轨或交错轨也称增广轨或交错轨))::若若PP是图是图GG中一条连通两个未匹配顶点的路中一条连通两个未匹配顶点的路径,并且属径,并且属MM的边和不属的边和不属MM的边的