Computing a minimum $s$-$t$ cut in a graph is a solution to a wide range of computer vision problems, and is often done using the Boykov-Kolmogorov (BK) algorithm. In this paper, we revisit the BK algorithm from both a theoretical and practical point of view. We improve the analysis of the time complexity of the BK algorithm to $O(mn|C|)$ and propose a new algorithm, the fast and compact BK (fcBK) algorithm, with a time complexity of $O(m|C|)$, where $m$, $n$, and $|C|$ are the number of edges, number of vertices, and the capacity of the cut, respectively. We additionally propose a compact graph representation that allows our implementation to find a minimum $s$-$t$ cut in a graph with upwards of $10^9$ vertices and $10^{10}$ edges on a machine with 128 GB of memory. We find our implementation of the BK algorithm to be the fastest available implementation of the BK algorithm when evaluating on a comprehensive set of benchmark datasets, highlighting the importance of memory-efficient implementations. We make our implementations publicly available for further research and implementation development within minimum $s$-$t$ cut algorithms.
翻译:计算图上的最小$s$-$t$割是解决众多计算机视觉问题的一个方法,通常采用Boykov-Kolmogorov (BK) 算法。本文从理论和实践两个角度重新审视了BK算法。我们将BK算法的时间复杂度分析改进为$O(mn|C|)$,并提出一种新算法——快速紧凑BK算法(fcBK),其时间复杂度为$O(m|C|)$,其中$m$、$n$和$|C|$分别表示边数、顶点数和割的容量。此外,我们提出了一种紧凑图表示方法,使得我们的实现能够在128GB内存的机器上,对包含超过$10^9$个顶点和$10^{10}$条边的图找到最小$s$-$t$割。在一组全面的基准数据集上进行评估时,我们发现我们的BK算法实现是现有最快的BK算法实现,这突显了内存高效实现的重要性。我们公开了我们的实现,以促进最小$s$-$t$割算法领域的进一步研究和实现开发。