所有边缘的边缘容量增​​加1后,图表的最小切割是否相同?

时间:2016-10-27 06:26:12

标签: algorithm network-flow

令G =(V,E)为任意流网络,每个边e具有源s和目标t以及正整数容量c(e)。设(S,T)是相对于这些容量的最小s-t切割。现在假设我们将每个边缘的容量增加一个,即所有边缘的c_new(e)= c(e)+ 1,那么(S,T)相对于这些新容量{c_new}仍然是最小的切割?

我的直觉是,如果G包含不同容量的边缘,增加的容量可能导致不同的最小切割。但是当所有边缘具有相同的容量时,最小切割将保持相同。

我说错了吗?怎么证明这个?

3 个答案:

答案 0 :(得分:7)

是的,你的直觉是正确的。

当G包含不同容量的边时,将每个边的容量增加1 可能会更改最小切割。通过示例可以很容易地证明这一点,如下所示。最小切割(红色)具有容量3.增加每个边缘的容量增加,切割为6.因此从S到A的连接成为容量为5的新的最小切割。

enter image description here

当所有边缘具有相同的容量时,将每个边缘的容量增加1 将不会更改最小切割。证明背后的基本思想是切割的容量为nc,其中n是切割的边数,c是每条边的容量。由于c是常量,因此最小割数是最小n。我们将该最小值称为N

现在,如果每条边的容量增加1,则每次切割的新容量为n(c+1)。因此,曾经是最小削减的新削减能力是N(c+1)。假设存在容量大于N(c+1)的剪切:由于所有边都具有权重c+1,因此对于某些M,此剪切必须为M > N - 边缘剪切。但是在原始图表中,同样的切割将具有容量Mc > Nc,这与N - 边缘切割在那里是最优的假设相矛盾,因此不存在这样的M - 边切割,这意味着N - 边缘剪切(现在有容量N(c+1))在新图中保持最佳状态。

答案 1 :(得分:2)

如果所有边缘容量增​​加一个常数,则最小切割量相同。如果图中的边缘容量相同。否则可能会改变。

一个简单的解释是 -

我们使用BFS通过dinic算法计算最小割/最大流量。我们从源到接收器应用bfs,并在bfs路径中对最小容量/瓶颈容量边缘进行替换。我们添加了这个边缘wt。流动。我们继续这样做,直到从源头到下沉没有路径。

如果要将边缘容量增​​加一个常数,则切割将始终保持不变。由于此算法的所有迭代中的BFS路径都是相同的。只有最大流量值才会改变。

答案 2 :(得分:0)

如果所有边的容量相同,则问题等于: “ 如果所有边缘容量都乘以一个正数,则最小削减保持不变。(A)” 证明(A)很容易。这个问题应该是(A)的特例,其中所有边缘容量都乘以 c + 1 / c < / strong>。