二分图若干性质
二分图
主要整理了一下二分图的一些概念和性质,至于证明,已经有很多dalao讲过了,个人的理解也没有他们深刻,因此贴一下讲解比较好的博主的博客。
二分图中对最小顶点覆盖、最小边覆盖、最大独立集的理解
以下着重总结概念和结论:
最小点覆盖
以我的理解,点覆盖就是,图上点的子集,且满足能使每条边至少有一个点属于这个子集。
而最小点覆盖即是这些子集中含点个数最少的那个。
结论:最小点覆盖=最大匹配数
证明:这篇讲的比较详细具体,不过有点绕
最小边覆盖
边覆盖,即图上边的子集,且满足图上任意点均与其中的边关联。(含孤立点的图没有 边覆盖)
最小边覆盖即使这些子集中含边数最少的那个。
结论:最小边覆盖=点数-最小点覆盖(最大匹配数)
证明:记点数为n,最大匹配数为m,除去得到匹配的点后剩余的点数为a。则2m+a=n,最小边覆盖=m+a。故n-m=最小边覆盖。
DAG的最小路径覆盖
DAG的不可相交最小路径覆盖
把原图的每个点V拆成Vx和Vy两个点,如果有一条有向边A->B,那么就加边Ax−>By。这样就得到了一个二分图。那么
最小路径覆盖=原图的结点数-新图的最大匹配数。
DAG的可相交最小路径覆盖
先用floyd求出原图的传递闭包,即如果a到b有路径,那么就加边a->b。然后就转化成了最小不相交路径覆盖问题。
最大独立集
独立集,即点的子集且满足两两不连边,最大独立集即含点最多的那个
结论:最大独立集=点数-最小点覆盖(最大匹配数)。