目录见右上
站内文章欢迎各位转载,但是请注明出处(毕竟码字很辛苦哈)。

主题

关于二分图点覆盖集与点独立集的笔记

搬论文耳。

以下讨论均基于二分图:

  • 点覆盖集:每条边中至少有一个点在点集内。

  • 点独立集:点之间相互没有边。


一个点覆盖集 对偶于 一个点独立集。

证明:

  • 如果一个点集是覆盖集,那么其补集为独立集:

考虑使用反证法。

假设一个点集为覆盖集,补集不是独立集。那么存在一条边<u,v>在其补集中,而这条边没有被覆盖到。因此矛盾。

  • 如果一个点集是独立集,那么其补集为覆盖集:

仍然考虑反证法:

假设一个点集为独立集,补集不是覆盖集。那么存在一条边<u,v>不在补集中,那么这条边会在独立集中。因此矛盾。

得证。


最小点覆盖集 对偶于 最大点独立集。

由于点的总数固定。两个点集的点数之和不变。当点独立集最大时,点覆盖集最小。


最小点覆盖集算法:

对于一张二分图,我们且把这张二分图的两个互不相交的子集称为X集与Y集。(本蒟不会称呼)

那么我们从原点向X集连一条容量为1的边。Y向汇点连一条容量为1的边。X与Y之间按照原图的连接方式,但都改为容量为正无穷、从X向Y的有向边。

我们考虑一条流<s,u>+<u,v>+<u,t>。首先由于我们已经令<u,v>为正无穷,不可能被割去。于是这条流的割,意味着<s,u>或者<u,t>或者<s,u>+<u,t>被割去。

根据最小割划分点集的思想,在这里被割去意味着选择到覆盖集中。

于是我们最小割,即为最小点覆盖集。


最小点权覆盖集:

最小点权覆盖集 对偶于 最大点权独立集。证明类似。

最小点权覆盖集的做法与最小点覆盖集类似。将<s,u>与<v,t>一部分的容量修改为u、v的点权即可。

正确性类似。


搬一个应用:

以前做过的题,今天发现原来可以这样思考。

Destroying The Graph

对于一条边<u,v>,考虑到必须由u的删去入边或者v的删去出边(或者两个都操作),删去这条边。联想到,把删去入边这一操作视为X点集,删去出边这一操作视为Y点集。

那么这就转换为了一个最小点权覆盖集问题了。

评论
热度(1)
©主题 —— Powered by LOFTER