为什么找到最大切割NP-hard?

时间:2017-08-29 14:16:35

标签: algorithm graph graph-algorithm

我最近发现在加权边的图中找到最大切割是NP难的。然而,找到最小切割并非NP难。 如果我在所有边上反转权重然后搜索最小切割,那么这不会给我原始图上的最大切割吗?如果没有,为什么?

3 个答案:

答案 0 :(得分:4)

图表的最大切割不是具有反向权重的图形的最小切割。请看下面的图表:红线是最小切割和绿色最大切割。enter image description here

如果反过来你意味着"对面"然后确实找到一个最大值归结为找到另一个的最小切割。证据很简单。

设G为任何图形,G'具有相反权重的图表。设v_1,..., v_n为要移除的顶点序列以进行G的最大切割,并w_1,..., w_n为相关权重。 M = w_1 + ... + w_n = max(cuts)。显然v_1,..., v_n是G&C 39的缩写。让v'_1,...,v'_m成为G'和w'_1,..., w'_n他们在G'中的权重。

然后v'_1,...,v'_m也是G的切割,重量为-(w'_1+...+w'_q)。根据M的定义,我们有-(w'_1+...+w'_q) <= M,因此w'_1+...+w'_q >= -M。所以我们有--M是G&#39;中的最小切割值。并且v_1,..., v_n实现了这个值,它是G&#39;的最小分割。

至于为什么它不是一个容易解决的问题,请参阅 Peter de Rivaz的回答。

答案 1 :(得分:4)

我假设通过逆你的意思是将重量w改为-w。

在这种情况下,调整后的图形的最小切割确实解决了原始图形的最大切割问题。

不幸的是,只有当所有权重都是非负数时才能知道解决最小割问题的有效算法,这意味着如果所有权重都是非正数,我们只能有效地求解最大割数。

答案 2 :(得分:0)

要查找问题的类(多项式或非多项式),您应该使用Reduction这是一种将问题转换为另一个问题的机制。您可以在https://cs.stackexchange.com/questions/1531/is-logical-min-cut-np-complete中找到更多讨论。