【问题标题】:Why is the blossom algorithm more well used than the Micali-Vazirani algorithm为什么开花算法比 Micali-Vazirani 算法更好用
【发布时间】:2020-07-30 22:26:12
【问题描述】:

据了解,Micali-Vazirani 算法 (1980) 在时间复杂度上显着优于开花算法 (1961)(Micali-Vazirani 是 O(V^{1/2} E),Bloom 是 O(V^2 E)一般图中的最大基数匹配。然而,即使在最近(1),开花似乎也得到了更广泛的使用。即使是旨在解决这些问题的包也实现了在 Micali-Vazirani 上开花(1)。这是为什么呢?

【问题讨论】:

  • “更好”是什么意思?
  • @EJoshuaS-ReinstateMonica 的时间复杂度。我编辑了问题以使其更清楚。
  • 我明白了.... 那么这实际上是一个非常有趣的问题。我将关注我认为 b/c 我也想知道答案的问题。
  • 请注意,易于实施在实践中至关重要。所以,时间复杂度一直都不够。实用主义和绩效之间是一种痛苦和收获。当性能的权重变得更高时,您可以看到其他实现。
  • 有没有人计算出 Micali-Vazirani 的详细信息以进行一般 加权 匹配? M-V作为primal-dual框架中的primal algorithm可能不会比Blossom快,而且我不科学的感觉是加权一般匹配是比未加权更常见的问题。

标签: algorithm math graph-theory graph-algorithm


【解决方案1】:

Micali-Vazirani 不支持权重,您从networkx 链接的例程用于查找最大权重 匹配。如果你的图是二分图并且你不需要权重,人们也会求助于更简单的 Hopcroft-Karp,它与 Micali-Vazirani 的界相匹配,这也阻碍了它的流行。我认为,主要障碍是实施 Micali-Vazirani 的复杂性。

最大权重匹配的完全无条件状态并不比 Edmonds O(mn2) 好多少,有来自Data structures for weighted matching and nearest common ancestors with linking 的 1990 年算法由 HN Gabow 在 O(mn + n2 log n) 中解决。但是在这么小的加速下,算法和常数因子规则的实现很简单。

如果您对近似值满意,那么 Ran Duan 和 Seth Pettie 在 2014 年的论文 Linear-Time Approximation for Maximum Weight Matching 中发现了一个有趣的复杂性(也包含一个很好的算法调查),它可以解决 O(m/ɛ log (1/ɛ)) 时间用于 (1-ɛ) 近似。也就是说,如果您可以接受匹配的权重,例如最大权重匹配的 10%,您将获得 O(m) 复杂度。

【讨论】:

  • 我猜Blum (1990)Gabow and Tarjan (1990)Mucha and Sankowski(2006)取得的结果有类似的问题?
  • Blum (1990) 是未加权的,Gabow 和 Tarjan (1990),我偶然看到的是整数权重的最新技术(在渐近上比 Gabow (1990) 好得多),但看起来非常复杂而不是适用于非整数权重。该算法已进一步改进here。如果你可以实现它并且你对整数权重没问题,那么它就是最先进的,但要做好准备。 Mucha 和 Sankowski 纯粹是理论上的,因为高效(其中 ω
  • 进一步阅读,看来 Mucha 和 Sankowski (2006) 目前适用于一些应用程序,但实际上对大多数应用程序来说效果更差。
猜你喜欢
  • 2014-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-05
  • 2015-12-29
  • 2013-11-21
相关资源
最近更新 更多