------------------------------------------------------最大独立点集-------------------------------------------------------------
在一个二分图中,能够选取的最大的点的集合,其中的任意两个点相互都不连接
我的理解:
首先定义两个点集,一个点集命名为S,就是最大独立点集,另一个点集命名为T,就是最小边覆盖集
1.首先作为一个二分图是能够求得最大匹配的,然后会发现匹配之后会有一些空闲的点,那么这些点,设为u一定是属于S的,因为如果它存在边,那么一定连向已经匹配上的点,所以只需要将那个已经匹配上的点扔到T集,就不可能再存在点与u相连,证明显然,如果存在未匹配的点与u存在边,那么一定存在更大的匹配,与题设的最大匹配矛盾,那么我们就可以确定这些空闲的点在S集合中,那么与他们相连的已经匹配上的点存在于T集中。
2.接下里已经确定T集的一些点,对于已经匹配上两个点,不可能同时存在于T集,因为对于二分图来说,设两个集合为左集和右集,u属于左集,v属于右集,两个集合内部是不可能有边相连的(根据二分图的定义),所以一定是左集的空闲点推出右集的已匹配点属于T点,反向同理,所以如果一个匹配的两个点,都与空闲点相连,那么可以通过交叉连接,得到更大的匹配,那么我们就证明了一个很有用的结论,就是同一条匹配的两个点一定是只有一个点属于T集
3.那么剩下的不能确定已经匹配的点怎么办,那么只需要满足上一步证明的结论就可以,讲左右两个匹配一个扔到T集,一个扔到S集,就可以了
所以一下子证明三个结论:
1.最小边覆盖集与最大独立点集互为补集,因为S集中不存在边,如果S集中点在原二分图有边的话,又一定是和T集中点相连的,所以T集中的点一下子就涵盖了所有的边
2.我们随便想一下,就能知道最小边覆盖集的规模=最大匹配数,因为每个每个匹配只有一个点属于T集,而空闲点全部属于S集,那么最小边覆盖点集当然就等于最大匹配数了
3.所以,最大独立点集=点的总数-最小边覆盖点集的点数
-------------------------------------------------最小边覆盖点集----------------------------------------------------------------
在一个二分图中,覆盖所有边的最少的点的数量
上面一不小心就把最小边覆盖点集也给介绍了。。。。。
最小边覆盖点集=二分图的最大匹配数
------------------------------------------------最小路径覆盖---------------------------------------------------------------------
在一个二分图,用最少的不相交的路径覆盖所有的点(每个边只能被一个路径持有),路径的条数
1.在有向无环图中的最小不相交路径覆盖
首先我们来看如何建图,我们对于图中的一个点A,拆分为Ax 和Ay ,分别属于新建出二分图的左集和右集,然后如果存在一条有向边A-->B,那么建边Ax--By,那么有向无环图就转化为了一个无向二分图,那么对于每个孤立的点我们都可以当成是一条路径,因为是一条路径,所以每个点拆分的第一个点承受出度,拆分出的另一个点负责出度,入度和出度智能同时为1,或者只有一个为1,那么正好满足二分图的最大匹配,也可以这样想,因为无环,所以不可能有自环,任意点P都不存在Px--Py,所以考虑Px连向其他点,如果超过一条,那么相当于当前的出度为2,那么就变成了一条二岔路,就不再是路径,矛盾!!所以最大匹配数是路径合并的极限,那么最小路径覆盖就是原图的总点数-新建二分图的最大匹配数
2.在有向无环图中最小相交路径覆盖
只需要利用floyd求一下传递关系闭包,然后所有能够到达的点就连接上了,然后无形中加了一些本来不存在,但可以通过走重复的边得到的边,就转化为了1中的情况