algorithmgraph-algorithmford-fulkerson

Modification in the Ford-Fulkerson method


I want to find, among all minimum cuts in a flow network G with integral capacities, one that contains the smallest number of edges. How can we modify the capacities of G to create a new flow network G' in which any minimum cut in G' is a minimum cut with the smallest number of edges in G. Source - Cormen


Solution

  • Lets say the graph G has n vertices.

    We define the capacity for an arc e' in G' which corresponds to the arc e in G as c(e') = c(e) * n + 1.

    Therefore the value of a cut in G' is exactly n times the value of the cut in G + the number of edges in the cut.

    Lets say we have now a minimum cut in G' with value n * x + a. That means the value of the cut in G is x. If there would exist a cut in G with a smaller value y < x this cut would have a value of n * y + b <= n * (y+1) <= n * x < n * x + a which is a contradiction to the fact that the cut with value n * x + a was minimum in G'. We just proved that every minimum cut in G' is also a minimum cut in G. But then it follows that a minimum cut in G' is a minimum cut in G and has a minimum number of edges of all minimum cuts in G.