标签:闭包 路径 最小点覆盖 有一个 情况 存在 说明 输入 去掉
证明:
? 1.最小点覆盖>=最大匹配数:如果要覆盖所有点,至少要把所有匹配边选上。
? 2.最小点覆盖<=最大匹配数:
? 1.求最大匹配
? 2.从左边每个非匹配出发,做一次增广标记所有经过的点。
? 得到:左边所有未被标记的点:一定是匹配点 ; 右部所有标记的点:一定是匹配点(如果是非匹配点说明还存在增广路),符合这种情况的左右部点之和为最大匹配。
? 对于一个匹配边:两端点一定同时被标记或同时没有被标记。(好像对证明没有意义)
? 对于任意一条边:如果同时被标记符合右部被标记,如果同时没有被标记符合左部没被标记。
证明:
? 等价于:去掉最少的点,将所有边破坏掉(剩下的点就是最大独立集)
? 等价于:求最小点覆盖
? 等价于:求最大匹配
证明:
? 对于图G,对于有边相连的点边删去,没有边的点加上边,求出它的补图G’,对于G’的最大独立集,就是G的最大团。
证明:
? 将每个点拆成入度和出度点,形成二分图:入度点在左部,出度点在右部。由于每个点只输入一条路径,所有每个点的入度和出度都小于等于1,这就符合二分图的最大匹配了。由于每条路径都有一个终点出度为0,所有左部没有连边的点都代表每条路径的终点。所以总的点数减去匹配点数等于终点的数目等于路径数
求传递闭包后,再求最小路径点覆盖
?
标签:闭包 路径 最小点覆盖 有一个 情况 存在 说明 输入 去掉
原文地址:https://www.cnblogs.com/jjl0229/p/12791232.html