Lecture 15: Max-Flows using Electrical Flows

In class we saw an algorithm to find ${(1 + \varepsilon)}$-approximate max-flows in time ${\widetilde{O}(m^{4/3}) \times poly(1/\varepsilon)}$ for undirected graphs with unit capacities. In class, we said: if there exists a flow of value ${F}$ that respects all the capacities, we find flows that achieve value ${F}$ and violate the capacities by ${1 + O(\varepsilon)}$. We can scale down this flow to respect all capacities but get flow value ${F(1 - O(\varepsilon)}$. Finally, binary search means we get flow value ${OPT(1 - O(\varepsilon)}$.

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 ${(1 + \varepsilon)}$-approximate flows in time ${\widetilde{O}(m^{4/3}) \times poly(1/\varepsilon)}$.

For the icing on the cake: there’s a sampling technique of Karger’s that changes the dependence of the number of rounds from ${\widetilde{O}(m^{1/3})}$ to ${\widetilde{O}(n^{1/3})}$ — giving a total time of ${\widetilde{O}(m n^{1/3}) \times poly(1/\varepsilon)}$. 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 ${A}$ that, given any directed flow network with edge capacities, finds an ${(1+\epsilon)}$-approximate max-flow in time ${T(m,n) \cdot poly(1/\varepsilon)}$. Then there exists an algorithm that finds an ${(1+\epsilon)}$-approximate max-flow in time ${T(m,n) \cdot O(\log(1/\varepsilon))}$.

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

Since the rate of convergence depends as ${O(\log(1/\varepsilon))}$, this means that if we can find approximate max-flows in any directed graph in ${T}$ time, we can find exact max-flows in time that is only an ${O(\log (m \cdot c_{\max}))}$ factor worse. Which hints at the complexity