【问题标题】:Finding the minimal subgraph that contains all negative cycles找到包含所有负循环的最小子图
【发布时间】:2012-09-11 07:30:45
【问题描述】:

我遇到了以下问题:给定一个加权有向图 G,我想构建 G 的最小子图,其中包含 G 的所有负(简单)循环。

我知道如何使用 Bellman-Ford 找到负循环,而且我知道有向图中的简单循环数是指数级的。

解决问题的一种天真的方法是简单地迭代所有简单的循环并选择那些为负数的循环,但我感觉可能存在多项式时间算法。我通过 Google 找到的大多数文章都是关于寻找(而不是全部)负循环的。

我希望在这里找到一些关于 stackoverflow 的专家,他们可能会给出一些关于多项式时间解决方案的提示,或者提示证明它不能在多项式时间内解决。

提前非常感谢!

干杯,罗伯特

【问题讨论】:

  • 这可能更适合于数学或 CStheory 交流。
  • @ninjagecko:[homework] 标签现在正在逐步淘汰;见元。

标签: algorithm math cycle graph-theory discrete-mathematics


【解决方案1】:

对于任何对类似问题感兴趣或陷入困境的人:它是 NP 完全的。感谢 wich 将我指向 cstheory 中的线程。

要了解它为什么是 NP 完全的,首先观察问题可以表述如下:给定一个具有 N 个顶点和一条边 E 在 G 上的加权有向图 G,找出 E 是否位于一个(简单)负循环。如果是,E应该在子图H中。如果不是,它不应该在H中。

现在,让边 E 为 E = (u, v),权重为 w。我们想知道是否存在一条从 v 到 u 且总权重为 W 且 W + w

为边 E 分配 N - 1.00001 的权重。为图中的所有其他边分配 -1 的权重。现在该图的唯一负环是 E 所在的环,是包含所有顶点的环(该环的权重为 -0.00001),因此是哈密顿环。

非常感谢您的考虑!

【讨论】:

    猜你喜欢
    • 2020-04-19
    • 2018-05-15
    • 2016-09-08
    • 2020-11-06
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多