【问题标题】:Is this bipartite graph optimization task NP-complete?这个二部图优化任务是 NP 完全的吗?
【发布时间】:2016-03-13 16:51:28
【问题描述】:

我一直试图找出一个多项式时间算法来解决这个问题,但徒劳无功。我不熟悉NP完全的东西。只是想知道这个问题是否实际上是 NP 完全的,我不应该浪费任何进一步的精力来尝试提出多项式时间算法。

这个问题很容易描述和理解。给定一个bipartite graph,您必须从一个顶点集合(例如 A)中选择的最少顶点数是多少,以便 B 中的每个顶点至少与一个选定顶点相邻。

【问题讨论】:

    标签: algorithm time-complexity graph-theory np-complete bipartite


    【解决方案1】:

    不幸的是,这是 NP 难的;从Set Cover 可以轻松减少(实际上它可以说只是表达相同问题的不同方式)。在 Set Cover 中,我们给定了一个基集 F、一个 F 的子集的集合 C 和一个数字 k,我们想知道我们是否可以通过选择最多 k 个集合来覆盖 F 的所有 n 个基集元素C. 为了减少你的问题:在 B 中为每个地面元素创建一个顶点,在 A 中为 C 中的每个集合创建一个顶点,并在地面元素 v 在集合 u 中时添加一条边 uv。如果有某种算法可以有效地解决您描述的问题,它可以解决我刚刚描述的实例,这将立即为原始 Set Cover 问题(已知为 NP-hard)提供解决方案。

    有趣的是,如果允许我们从整个图中选择顶点(而不仅仅是从 A 中选择顶点),由于Kőnig's Theorem,这个问题可以使用二分最大匹配算法在多项式时间内解决。

    【讨论】:

    • 不错的减少。希望这次我能把Set Cover问题铭刻在我的记忆中。
    • 很高兴我能帮上忙 :) 实际上我在几周前遇到了这个确切的问题,所以它在我的脑海中很新鲜。
    猜你喜欢
    • 2017-09-19
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2023-03-03
    • 2010-09-23
    • 1970-01-01
    • 2011-07-18
    • 2011-03-08
    相关资源
    最近更新 更多