摘要:
匈牙利算法的核心是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法。学习匈牙利算法之前了解的概念,下面M是G的一个匹配。M-交错路:p是G的一条通路,如果p中的边为属于M中的边与不属于M但属于G的边交替出现,则称p是一条M-交错路。M-饱和点:对于v∈V(G),如果v与M中的某条边关联,则称v是M-饱和点,否则称v是非M-饱和点。M-可增广路:p是一条M-交错路,如果p的起点和终点都是非M-饱和点,则称p为M-可增广路。增广路的定义:若p是G中一条连通两个未匹配顶点的路径,并且是M-交错路,则称p为相对于M的一条增广路径。算法轮廓:⑴置M为空⑵找出一条增广路径P,通过异或操作获得更大的匹 阅读全文
摘要:
二分图:设G是一个无向图,顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点分别属于这两个顶点集,则称G为二分图匹配:给定一个二分图,在G的一个子图G'中,如果G'的边集中的任意两条边都不依附于同一个顶点,则称G'的边集为G的一个匹配。最大匹配:在所有匹配中,边数最多的那个匹配就是二分图的最大匹配。顶点覆盖:在顶点集合中,选取一部分顶点,这些顶点能够把所有的边都覆盖,这些点就是顶点覆盖集。最小顶点覆盖:在所有顶点覆盖集中,顶点数最小的那个交最小顶点集合。最小顶点覆盖等于二分图的最大匹配。独立集:在所有的顶点中选取一些顶点,这些顶点两两 阅读全文