令G =(V,E)为任意流网络,每个边e具有源s和目标t以及正整数容量c(e)。设(S,T)是相对于这些容量的最小s-t切割。现在假设我们将每个边缘的容量增加一个,即所有边缘的c_new(e)= c(e)+ 1,那么(S,T)相对于这些新容量{c_new}仍然是最小的切割?
我的直觉是,如果G包含不同容量的边缘,增加的容量可能导致不同的最小切割。但是当所有边缘具有相同的容量时,最小切割将保持相同。
我说错了吗?怎么证明这个?
答案 0 :(得分:7)
是的,你的直觉是正确的。
当G包含不同容量的边时,将每个边的容量增加1 可能会更改最小切割。通过示例可以很容易地证明这一点,如下所示。最小切割(红色)具有容量3.增加每个边缘的容量增加,切割为6.因此从S到A的连接成为容量为5的新的最小切割。
当所有边缘具有相同的容量时,将每个边缘的容量增加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>。