English

Nearly Maximum Flows in Nearly Linear Time

Data Structures and Algorithms 2013-04-09 v1

Abstract

We introduce a new approach to the maximum flow problem in undirected, capacitated graphs using α\alpha-\emph{congestion-approximators}: easy-to-compute functions that approximate the congestion required to route single-commodity demands in a graph to within a factor of α\alpha. Our algorithm maintains an arbitrary flow that may have some residual excess and deficits, while taking steps to minimize a potential function measuring the congestion of the current flow plus an over-estimate of the congestion required to route the residual demand. Since the residual term over-estimates, the descent process gradually moves the contribution to our potential function from the residual term to the congestion term, eventually achieving a flow routing the desired demands with nearly minimal congestion after O~(α\eps2log2n)\tilde{O}(\alpha\eps^{-2}\log^2 n) iterations. Our approach is similar in spirit to that used by Spielman and Teng (STOC 2004) for solving Laplacian systems, and we summarize our approach as trying to do for \ell_\infty-flows what they do for 2\ell_2-flows. Together with a nearly linear time construction of a no(1)n^{o(1)}-congestion-approximator, we obtain 1+\eps1+\eps-optimal single-commodity flows undirected graphs in time m1+o(1)\eps2m^{1+o(1)}\eps^{-2}, yielding the fastest known algorithm for that problem. Our requirements of a congestion-approximator are quite low, suggesting even faster and simpler algorithms for certain classes of graphs. For example, an α\alpha-competitive oblivious routing tree meets our definition, \emph{even without knowing how to route the tree back in the graph}. For graphs of conductance ϕ\phi, a trivial ϕ1\phi^{-1}-congestion-approximator gives an extremely simple algorithm for finding 1+\eps1+\eps-optimal-flows in time O~(mϕ1)\tilde{O}(m\phi^{-1}).

Keywords

Cite

@article{arxiv.1304.2077,
  title  = {Nearly Maximum Flows in Nearly Linear Time},
  author = {Jonah Sherman},
  journal= {arXiv preprint arXiv:1304.2077},
  year   = {2013}
}
R2 v1 2026-06-21T23:55:20.427Z