In class we saw an algorithm to find -approximate max-flows in time for undirected graphs with unit capacities. In class, we said: if there exists a flow of value that respects all the capacities, we find flows that achieve value and violate the capacities by . We can scale down this flow to respect all capacities but get flow value . Finally, binary search means we get flow value .

Aram asked about capacities: indeed, everything extends naturally to general capacities (see, e.g., Kurt Mehlhorn’s notes or the original paper). (One tricky part is controlling the width; we will also talk about a general width-reduction idea in Problem #4 on the next HW.) In summary, we get that for all undirected flow networks, we can get -approximate flows in time .

For the icing on the cake: there’s a sampling technique of Karger’s that changes the dependence of the number of rounds from to — giving a total time of . Also in the original paper.

All this was for undirected graphs. What about *directed graphs*? We don’t yet know how to achieve similar results. But it is possible to show the following (easy) fact:

Suppose there is an algorithm that, given any directed flow network with edge capacities, finds an -approximate max-flow in time . Then there exists an algorithm that finds an -approximate max-flow in time .

Hint: given a flow we can define the residual graph (which is another directed graph). Suppose we can find a feasible flow that sends flow. How would you recurse?

Since the rate of convergence depends as , this means that if we can find approximate max-flows in any directed graph in time, we can find exact max-flows in time that is only an factor worse. Which hints at the complexity

### Like this:

Like Loading...

*Related*