zoukankan      html  css  js  c++  java
  • 二分图最大匹配问题

    对匈牙利算法的概括:

    这里的匈牙利算法值指的是找二分图最优匹配的算法,在有的资料中,这个算法叫KM算法,匈牙利算法指的是找最大匹配的算法。

    匈牙利算法看起来挺复杂,但是概括起来也就干了下面的事情:

    基于这样一个定理:

    若由二分图中所有满足A[ i ]+B[j]=w[i,j]的边(i,j)构成的子图(称做相等子图)有完备匹配,那么这个完备匹配就是二分图的最大权匹配。[4]

    然后就是在相等子图中找完备匹配,如果找不到,有两个改进方案:1)修改相等子图,通过重新分配label ;   2)增广路径,扩大匹配边的数目

    然后继续找完备匹配,找不到继续改,继续找,总会找到的,找到就结束了。

    参考资料:

    阅读下面三篇文章,已经能够很好的了解,二分图最大匹配问题,KM算法,匈牙利算法

    (1)维基百科关于匈牙利算法的描述,参考文献,意义很大

    http://en.wikipedia.org/wiki/Hungarian_algorithm

    (2)对相关概念讲的很清楚,没有特别针对二分图

    http://people.scs.carleton.ca/~maheshwa/courses/573/talk01/bipartitematching.ps

    (3)二分图匹配和匈牙利算法,来龙去脉讲的和清楚

    但是这篇文献里面有个问题,它一直说要找perfect matching,他这个对perfect matching的定义就是每个点都要匹配上,但这必然要求二分图的两部分的顶点数目相等。其实,看了看其他资料,perfect matching是不需要的,complete matching就可以了,complect matching要求两部分有一个达到所有点匹配就可以了。

    http://www.cse.ust.hk/~golin/COMP572/Notes/Matching.pdf

    (4) 百度百科

    http://baike.baidu.com/view/739278.htm

  • 相关阅读:
    Transformation
    Yet Another Number Sequence
    Table
    K个联通块
    Acyclic Organic Compounds
    Sandy and Nuts
    tetrahedron
    BZOJ4750 密码安全
    实现商品秒杀 时间倒计时
    实现qq登录
  • 原文地址:https://www.cnblogs.com/naniJser/p/2688988.html
Copyright © 2011-2022 走看看