查找包含所有负循环的最小子图

时间:2012-09-11 07:30:46

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

我遇到了以下问题:给定加权有向图G,我想构造包含G的所有负(简单)周期的G的最小子图。

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

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

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

非常感谢提前!

干杯,罗伯特

1 个答案:

答案 0 :(得分:4)

对于任何对类似问题感兴趣或陷入困境的人:它是NP完全的。感谢我指着我在cstheory中的主题。

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

现在,让边E为权重w的E =(u,v)。我们想知道是否存在从v到u的具有总权重W的路径,使得W + w

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

非常感谢您一起思考!