• 二分图总结


    二分图大概有一下几个性质:

    1.点覆盖集:
    集合中的点:图G中每一条边的至少有一个顶点在这个集合中;

    2.点独立集:
    集合中的点:任意2个点在图G中都不相邻。

    3.路径覆盖:
    在图中找一些路径(注意是路径不是边!!),这些路径覆盖图中所有的顶点,每个顶点都只与一条路径相关联。

    a为覆盖集,b为独立集。

                       图1

    4.最小点覆盖集:
    集合中点最少的覆盖集。
    最小覆盖数=最大匹配数。

    覆盖集与独立集互补。(如上图1)

    5.最大点独立集:
    集合中点最多的独立集。
    方法:最大独立数=点数n-最大匹配数。

    6.最小路径覆盖:
    在所有的路径覆盖中,路径个数最小的就为最小路径覆盖数。
    方法:最小路径覆盖数=总结点个数-最大匹配数。

    7.最小点权覆盖集:
    带点权的图G中,权值最小的覆盖集。
    方法:最大流建图求最小割。
    正的与源点相连,负的与汇点相连,建图。
    c(v,u)=INF,(s,v),(u,t)中至少一条边在最小割中,正好与点覆盖集限制条件的形式相符。
    而目标是最小化点权之和,恰好也是最小割的优化目标。

    例题:poj2125   题解:http://www.cnblogs.com/sweat123/p/4924380.html

    8.最大点权独立集:
    带点权的图G中,权值最大的独立集。
    最大点独立集是最小点覆盖集的对偶问题,所以最大点权独立集=总的权值-最小点权覆盖集。

    例题:poj3692   题解:http://www.cnblogs.com/sweat123/p/4925629.html 

    9.最优完备匹配:

    二分图中每个点有权值,|x|=|y|=匹配数时,我们称该匹配方案为完备匹配,所有匹配边的权和最大,记做最优完备匹配。

    方法:KM算法。

  • 相关阅读:
    01.Markdown学习
    微信小程序开发基础
    如何在本地搭建微信小程序服务器
    Golang | 报错
    Golang | 扩展
    Golang | 基础
    Golang | 基础
    Golang | 基础
    Chrome——书签同步码云
    Rustlings_structs
  • 原文地址:https://www.cnblogs.com/sweat123/p/4924204.html
Copyright © 2020-2023  润新知