针对欧几里德中的完全二分匹配优化的最小成本流 Space

Min Cost Flow Optimized for a Complete Bipartite Matching in Euclidean Space

要点是...我们有两组点 AB。集合AB的点数相同n

形式化问题:

AB中的点之间构建最小成本完全二分匹配。匹配 (a, b) 的成本是 distance(a, b)。是否存在比 O(n^3) 更快的算法?

备注:

示例:

解法:

匹配 1: (a, b) (d, c)

总和(距离(a, b), 距离(d, c) ) = 2 + 开方(5) ~ 4.23

匹配 2: (a, c) (d, b)

总和(距离(a, c), 距离(d, b) ) = 1 + 平方根 (20) ~ 5.47

匹配1(a,b)(d,c)是min cost完全二分匹配!

是的。如果将顶点之间的距离作为它们之间的边的权重,那么这是一个加权二分图。找到 maximum/minimum 权重匹配的任务称为 assignment problem.

使用 Fredman and Tarjan (1987) 中开发的方法可以在 O(|V|(|E|+|V| log |V|) 时间内解决问题。

欧几里得空间还有进一步改进的可能。正如所讨论的 here. Notably, Vaidya (1988) presents a O(n² log n) algorithm for the L1, L2, and L∞ metrics which improves to O(n² (log n)³) for the L1 and L∞ metrics. Agarwal, Efrat, and Sharir (2006, Section 7) 对此进行了改进,给出了一个在 O(n^(2+ε)) 时间内运行的算法。

如果牺牲准确性,您可以做得更好。 Agarwal and Varadarajan (2004) 给出一个概率算法,给定一个值 0<ε<1,在 O(n^(1+ε)) 在最优的乘法 O(log(1/ε)) 内对预期成本进行匹配。

你的点是否恰好位于凸多边形的边缘?然后 Marcotte and Suri (1991) 会很有趣:他们为此提供了一个精确的 O(n log n) 算法。如果多边形是非凸的,但仍然很简单,那么您可以在同一篇论文中使用他们的 O(n² log n) 算法。