21

We know that computing a maximum flow resp. a minimum cut of a network with capacities is equivalent; cf. the max-flow min-cut theorem.

We have (more or less efficient) algorithms for computing maximum flows, and computing a minimum cut given a maximum flow is neither hard nor expensive, either.

But what about the reverse? Given a minimum cut, how can we determine a maximum flow? Without solving Max-Flow from scratch, of course, and preferably faster than that, too.

Some thoughts:

  • From the minimum cut, we know the maximum flow value. I don't see how this information helps the standard approaches augmenting-path and push-relabel, although adapting the latter seems slightly more plausible.

  • We can not use the minimum cut to split the network in two parts and recurse since that won't shrink the problem in the worst case (if one partition is a singleton); also we would not have a minimum cut of the smaller instances.

  • Does knowing the value of the maximum flow speed up solving the Max-Flow LP, maybe via the complementary slackness conditions?

Raphael
  • 73,212
  • 30
  • 182
  • 400

2 Answers2

9

In the worst case, the minimum cut itself doesn't convey much information about the maximum flow. Consider a graph $G=(V,E)$ in which the minimum $s,t$-cut has value $w$. If I extend $G$ by adding a new vertex $s'$ and an edge $(s',s)$ with weight $w$, a minimum $s',t$-cut in the new graph consists of just the edge $(s', s)$ but that doesn't give any information about how to get $w$ units of flow from $s$ to $t$.

Effectively, the minimum cut tells you the value of the flow, but not how to achieve that flow. This means that knowing the minimum cut can speed up finding the flow by at most a logarithmic factor, since we could do binary search to find the value of the cut.

Tom van der Zanden
  • 13,493
  • 1
  • 39
  • 56
-2

There certainly exist algorithms that let you compute the min cut before computing the maxflow. Two such algorithms are the push relabel and the pseudoflow algorithms which are closely related. The latter is more efficient. Both of these algorithms use special properties of the residual graph they iteratively improve to derive the maxflow from the min cut. For details I highly recommend reading the code and papers.

To elaborate on the push relabel case, when the algorithm can push no more flow to the sink it is guaranteed to have computed a min cut. This part of the algorithm is called phase 1 for lack of a better name. Phase 2 is the more efficient stage where it transforms the min cut into a maxflow by iteratively cancelling cycles in the residual graph using a single depth first search and pushing excess back to the source. I believe phase 2 can be proven to be asymptomatically more efficient than phase 1.

ldog
  • 97
  • 2