【问题标题】:Maximum weighted bipartite matching for two sets of vertices of drastically different sizes两组大小截然不同的顶点的最大加权二分匹配
【发布时间】:2023-03-09 13:50:01
【问题描述】:

抽象问题

我想在完整的加权二分图中找到最佳的最大匹配,其中两组顶点的大小差异很大,即一组顶点非常大而另一组非常小。

Hungarian algorithm 不是解决这个问题的好方法,因为它将虚拟顶点添加到较小的集合中,使得两个集合具有相同的大小,所以我失去了一个顶点集合的所有潜在效率增益非常小。

更具体的

我已将对象(边界框)分成两组,并且我有一个相似性度量(Jaccard 重叠)来衡量任何两个对象的相似程度。我想产生两组之间的匹配,使得所有单个匹配的相似性总和最大。

问题是其中一组只包含很少的对象,例如 10 个,而第二组非常大,例如 10,000 个对象。第一组中的 10 个对象中的每一个都需要与第二组中的 10,000 个对象中的一个进行匹配。

这两组大小的不对称让我想知道如何有效地做到这一点。我无法使用匈牙利算法并生成 10,000 x 10,000 矩阵。

【问题讨论】:

    标签: algorithm graph-theory graph-algorithm matching bipartite


    【解决方案1】:

    就可用软件而言,这可能是最简单的方法:使用最小成本网络流求解器。这个公式对矩形成本矩阵没有问题!基本思想很简单,简介是here(如下图所示的一张幻灯片):

    有很多可用的软件(例如 Coin-OR Lemon/C++;Google 的 ortools/C++ 有很多包装器)。

    Google 的 ortools 在this 上也有自己的文档条目。

    尽管如此,这本书:

    Burkard、Rainer E.、Mauro Dell'Amico 和 Silvano Martello。作业问题,修改重印。卷。 125. 暹罗,2009 年。

    有一个很小/很小的章节(5.4.4 矩形成本矩阵)概述了其他方法,主要是对其他线性分配算法的修改。

    该章的部分内容如下:

    或者,可以使用第 4.4.1 节的最小成本流问题的转换,它不需要顶点集 U 和 V 具有相等的基数。

    【讨论】:

    • 你太棒了!向我指出理论和现成的实现,我希望我能两次投票。
    猜你喜欢
    • 2012-09-09
    • 2011-04-26
    • 2013-01-27
    • 2013-01-27
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 2018-11-27
    • 2019-12-18
    相关资源
    最近更新 更多