zoukankan      html  css  js  c++  java
  • 二分图若干性质

    二分图

    主要整理了一下二分图的一些概念和性质,至于证明,已经有很多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。然后就转化成了最小不相交路径覆盖问题。

    最大独立集

    独立集,即点的子集且满足两两不连边,最大独立集即含点最多的那个
    结论:最大独立集=点数-最小点覆盖(最大匹配数)。

  • 相关阅读:
    JAVAGUI设计步骤
    JAVA接口基础知识总结
    静态关键字static用法。
    JAVA面向对象的多态性
    java封装的概念
    多线程
    关于集合类间的区别
    JAVA——异常
    java——内部类
    Java——接口
  • 原文地址:https://www.cnblogs.com/orangee/p/9418205.html
Copyright © 2011-2022 走看看