zoukankan      html  css  js  c++  java
  • 关于最大匹配,最小点覆盖,最少路径覆盖和最大独立集的总结

    (1)二分图的最大匹配

    匈牙利算法(可以用最大流做,但一般匈牙利要快不少)。


    (2)二分图的最小点覆盖

    二分图的最小点覆盖 = 二分图的最大匹配


    (3)二分图的最少边覆盖

    二分图的最少边覆盖 = 点数 - 二分图的最大匹配


    (4)二分图的最大独立集

    二分图的最大独立集 = 点数 - 二分图的最大匹配


    (5)有向无环图的最少不相交路径覆盖

    我们把原图中的点V拆成两个点Vx和Vy,对于原图中的边A−>B,我们在新图中连Ax−>By。

    那么最少不相交路径覆盖=原图的点数-新图的最大匹配

     

    (6)有向无环图的最少可相交路径覆盖

    先用floyd求出原图的传递闭包, 如果a到b有路, 那么就加边a->b。 然后就转化成了最少不相交路径覆盖问题。

    (7)有向无环图中最少不相交路径覆盖和最大独立集的相互转化

    用偏序集,一般可以抽象为有向无环图。建议先看看这篇博客

    Dilworth定理:有向无环图的最大独立集=有向无环图最少不相交路径覆盖

    (8)二分图的带权最大匹配

    KM算法。(可以用最小费用最大流做)

  • 相关阅读:
    JavaScript箭头函数 和 generator
    JavaScript闭包
    JavaScript高阶函数 map reduce filter sort
    JavaScript函数定义和调用 变量作用域
    python实现遗传算法求函数最大值(人工智能作业)
    PAT 1003
    制作U盘启动盘之后的恢复
    异步IO
    CCF201703-3 Markdown
    SQLAlchemy
  • 原文地址:https://www.cnblogs.com/vocaloid01/p/9514058.html
Copyright © 2011-2022 走看看