We give a combinatorial algorithm for computing exact maximum flows in directed graphs with $n$ vertices and edge capacities from $\{1,\dots,U\}$ in $\tilde{O}(n^{2}\log U)$ time, which is near-optimal on dense graphs. This shaves an $n^{o(1)}$ factor from the recent result of [Bernstein-Blikstad-Saranurak-Tu FOCS'24] and, more importantly, greatly simplifies their algorithm. We believe that ours is by a significant margin the simplest of all algorithms that go beyond $\tilde{O}(m\sqrt{n})$ time in general graphs. To highlight this relative simplicity, we provide a full implementation of the algorithm in C++. The only randomized component of our work is the cut-matching game. Via existing tools, we show how to derandomize it for vertex-capacitated max flow and obtain a deterministic $\tilde{O}(n^2)$ time algorithm. This marks the first deterministic near-linear time algorithm for this problem (or even for the special case of bipartite matching) in any density regime.
翻译:我们提出了一种组合算法,用于计算具有$n$个顶点、边容量取自$\{1,\dots,U\}$的有向图中的精确最大流,时间复杂度为$\tilde{O}(n^{2}\log U)$,这在稠密图上接近最优。该算法将[Bernstein-Blikstad-Saranurak-Tu FOCS'24]最新结果中的$n^{o(1)}$因子进一步削减,更重要的是,极大地简化了他们的算法。我们相信,在超越一般图$\tilde{O}(m\sqrt{n})$时间复杂度的所有算法中,本算法在简洁性上具有显著优势。为突出这种相对简洁性,我们提供了该算法的完整C++实现。我们工作中唯一的随机化成分是割匹配博弈。借助现有工具,我们展示了如何针对顶点容量最大流问题对其去随机化,从而获得确定性$\tilde{O}(n^2)$时间算法。这标志着在任何密度范围内,针对该问题(甚至针对二分图匹配这一特例)的首个确定性近线性时间算法的诞生。