zoukankan      html  css  js  c++  java
  • 二分图定理的一些证明:

    二分图定理的一些证明:

    1.最小顶点覆盖

    定义:能覆盖所有的边的最少顶点数(或是最小点权和)

    最小顶点覆盖 = 最大匹配数

    证明:假设最大匹配是M。为了求最少的点让每条边都至少和期中一个点关联。 M个点是足够的。就是说他们覆盖最大匹配的那M条边后,假设有某边没被覆盖,那么把它加入后会得到一个更大的匹配,出现矛盾。 M个点是必需的。匹配的M条边,由于他们两两无公共点,就是说至少有M个点才能把他们覆盖,所以啊,最小顶点覆盖 = 最大匹配数 。

    2.最大独立点集

    定义:在二分图中,选择一些点,使得这些点两两没有边直接相连。

    最大独立点集=总点数-最小顶点覆盖

    证明:可以这么想,最小顶点覆盖里的每一个点,会去尽可能多的覆盖更多的边,这样一来,这个点覆盖的边的对面的一群点,就全会被算到最大独立点集中,如果最大独立点集中的点有边,那最大匹配数会更优,最小顶点覆盖 也会更大,所以最大独立点集=总点数-最小顶点覆盖。

    3.DAG最小路径覆盖

    定义:能覆盖所有点的最少路径数

    最小路径覆盖 = 原图上的点数 - 最大匹配数

    证明:先说一下建图

    DAG转化成二分图:将一个点拆分成两个点:入点和出点,如果A,B之间有边,就把A的出点和B的入点相连。

    RT↓

    这张图建完转成二分图是这个样子(且已经匹配完

    匹配完了就是这个样子:

    三种颜色即代表了三条路径

    可以这样想:如果图不连通,最小路径覆盖即为点数,每多一次匹配,会多覆盖一个点,最小路径数-1。又因为每个点只能用一次,所以最小路径覆盖 = 原图上的点数 - 最大匹配数 。

  • 相关阅读:
    关于使用Java Mail进行邮件发送,抛出Could not connect to SMTP host: xx@xxx.com, port: 25的异常可能
    百度地图和solr展示资源和附近等功能的实现 四
    Python爬虫入门-3
    Python爬虫入门-2
    Python爬虫入门-1
    Python装饰器专题-限制函数调用次数(10s调用一次)
    32个Python爬虫项目让你一次吃到撑
    时间复杂度趣图分析
    各类数据库默认端口总结
    ansible使用三(ansible roles)
  • 原文地址:https://www.cnblogs.com/enceladus-return0/p/10030030.html
Copyright © 2011-2022 走看看