https://github.com/patmjen/maxflow_algorithms
Minimum cut / maximum flow (min-cut/max-flow) algorithms are used to solve a variety of problems in computer vision and thus significant effort has been put into developing fast min-cut/max-flow algorithms. This makes it difficult to choose an optimal algorithm for a given problem - especially for parallel algorithms, which have not been thoroughly compared. In this paper, we review the state-of-the-art min-cut/max-flow algorithms for unstructured graphs in computer vision. We evaluate run time performance and memory use of various implementations of both serial and parallel algorithms on a set of graph cut problems. Our results show that the Hochbaum pseudoflow algorithm is the fastest serial algorithm closely followed by the Excesses Incremental Breadth First Search algorithm, while the Boykov-Kolmogorov algorithm is the most memory efficient. The best parallel algorithm is the adaptive bottom-up merging approach by Liu and Sun. Additionally, we show significant variations in performance between different implementations the same algorithms highlighting the importance of low-level implementation details. Finally, we note that existing parallel min-cut/max-flow algorithms can significantly outperform serial algorithms on large problems but suffers from added overhead on small to medium problems. Implementations of all algorithms are available at