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 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 OrderedCuts. We also establish new results for 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 OC tree. We define a weaker version of this structure that we call depth-1 OC tree, and show that it is sufficient for constructing the cut tree. Second, we prove results that allow divide-and-conquer algorithms for computing OC tree. We argue that the existence of divide-and-conquer algorithms makes our new approach a good candidate for a practical implementation.
翻译:Gomory-Hu树(也称割树)是一种经典数据结构,用于存储无向加权图中所有节点对$(s,t)$的最小$s$-$t$割。我们提出了一种基于归约的新方法,将割树计算归约为我们称为OrderedCuts的问题。给定节点序列$s,v_1,\ldots,v_\ell$,其目标是计算所有$i\in[\ell]$的最小$\{s,v_1,\ldots,v_{i-1}\}$-$v_i$割。我们证明割树可通过$\tilde O(1)$次OrderedCuts调用来计算。我们还建立了OrderedCuts的新结果,这些结果可能具有独立的意义。首先,我们证明所有$\ell$个割可以紧凑地存储在一种称为OC树的$O(n)$空间数据结构中。我们定义了该结构的弱化版本——深度为1的OC树,并证明它足以用于构建割树。其次,我们证明了支持分治算法计算OC树的结果。我们认为分治算法的存在使得我们的新方法成为实际实现的良好候选方案。