【问题标题】:Partitioning perfect matchings in a bipartite graph在二分图中划分完美匹配
【发布时间】:2009-08-31 10:57:42
【问题描述】:

在“婚姻问题”中,我们有 N 个男孩和 N 个女孩以及一个 NxN 二进制矩阵,告诉我们哪些配对是合适的,并且希望将每个女孩与一个男孩配对。 (即我们想在二分图中找到完美匹配)。

霍尔定理说,如果男孩节点的每个集合都与至少同样多的女孩节点共同相邻,则可以找到完美匹配;并且有快速的增广路径算法可以找到完美的这些匹配。

我正在寻找一种有效的方法来找到与 恰好 数量的女孩节点共同相邻的男孩节点集合(即,我们在 Hall 的标准中具有相等性)。这些男孩必须与这些女孩配对,其余男孩与其余女孩配对,以便所有完美匹配尊重这种划分。

我的图论有点生疏了,肯定有比枚举所有 2^N 个子集并计算每个邻域更好的方法吗?

【问题讨论】:

  • 我不确定我得到,如果有完美匹配,那么由N个男孩组成的节点集合将具有相等性。
  • 对,我正在寻找男孩的真子集,比如 M 和 M
  • 正如 jcd 所回答的,构建流网络是正确的方法。请参阅 Narsingh Deo “图论及其在计算机科学中的应用”或“Cormen et. al. Introduction to algorithm”。已经有很好的库来计算流量。

标签: graph-theory


【解决方案1】:

这在多项式时间内是可能的。将您的二分匹配问题建模为有向图中的最大流量问题。然后使用一种算法来枚举最小割。在 Google 上搜索“枚举最小削减”,或 Vazirani & Yannakakis 或 Yeh & Wang 的论文。

【讨论】:

    【解决方案2】:

    如果我理解你想要什么,那么可惜的是,在多项式时间内没有聪明的方法可以做到这一点。在一般图上找到这样的分区是一个 NP 完全问题。

    【讨论】:

    • 关于匹配的维基百科文章指出,您可以在 O(|V|*|E|) 或 O(sqrt(|V|)*|E|) 中计算 M en.wikipedia.org/wiki/…跨度>
    猜你喜欢
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2010-10-27
    • 2019-12-18
    相关资源
    最近更新 更多