OrderedCuts: A new approach for computing Gomory-Hu tree
Vladimir Kolmogorov
TL;DR
The results suggest that the {\tt OrderedCuts}-based approach is the most robust: on many family of problems it outperforms other algorithms by 1-2 orders of magnitude, and is never slower by more than a small factor.
Abstract
The Gomory-Hu tree, or a cut tree, is a classic data structure that stores minimum $s$-$t$ cuts of an undirected weighted graph for all pairs of nodes $(s,t)$. We propose a new approach for computing the cut tree based on a reduction to the problem that we call {\tt OrderedCuts}. Given a sequence of nodes $s,v_1,\ldots,v_\ell$, its goal is to compute minimum $\{s,v_1,\ldots,v_{i-1}\}$-$v_i$ cuts for all $i\in[\ell]$. We show that the cut tree can be computed by $\tilde O(1)$ calls to {\tt OrderedCuts}. We also establish new results for {\tt OrderedCuts} that may be of independent interest. First, we prove that all $\ell$ cuts can be stored compactly with $O(n)$ space in a data structure that we call an {\em {\tt OC} tree}. Second, we prove results that allow divide-and-conquer algorithms for computing OC tree. Finally, we describe a practical implementation based on {\tt OrderedCuts}, and compare it experimentally with two existing implementations of the classical Gomory-Hu tree algorithm as well as with our implementations. The results suggest that the {\tt OrderedCuts}-based approach is the most robust: on many family of problems it outperforms other algorithms by 1-2 orders of magnitude, and is never slower by more than a small factor. Our implementation is publicly available at https://pub.ist.ac.at/~vnk/software.html.
