We present a parallel algorithm for the $(1-\epsilon)$-approximate maximum flow problem in capacitated, undirected graphs with $n$ vertices and $m$ edges, achieving $O(\epsilon^{-3}\text{polylog} n)$ depth and $O(m \epsilon^{-3} \text{polylog} n)$ work in the PRAM model. Although near-linear time sequential algorithms for this problem have been known for almost a decade, no parallel algorithms that simultaneously achieved polylogarithmic depth and near-linear work were known. At the heart of our result is a polylogarithmic depth, near-linear work recursive algorithm for computing congestion approximators. Our algorithm involves a recursive step to obtain a low-quality congestion approximator followed by a "boosting" step to improve its quality which prevents a multiplicative blow-up in error. Similar to Peng [SODA'16], our boosting step builds upon the hierarchical decomposition scheme of R\"acke, Shah, and T\"aubig [SODA'14]. A direct implementation of this approach, however, leads only to an algorithm with $n^{o(1)}$ depth and $m^{1+o(1)}$ work. To get around this, we introduce a new hierarchical decomposition scheme, in which we only need to solve maximum flows on subgraphs obtained by contracting vertices, as opposed to vertex-induced subgraphs used in R\"acke, Shah, and T\"aubig [SODA'14]. In particular, we are able to directly extract congestion approximators for the subgraphs from a congestion approximator for the entire graph, thereby avoiding additional recursion on those subgraphs. Along the way, we also develop a parallel flow-decomposition algorithm that is crucial to achieving polylogarithmic depth and may be of independent interest.
翻译:我们提出了一种针对带容量无向图的$(1-\epsilon)$-近似最大流问题的并行算法,该图包含$n$个顶点和$m$条边,在PRAM模型下实现了$O(\epsilon^{-3}\text{polylog} n)$深度和$O(m \epsilon^{-3} \text{polylog} n)$工作量。尽管该问题的近线性时间顺序算法已存在近十年,但此前尚未有同时达到多对数深度和近线性工作量的并行算法。我们结果的核心在于一种用于计算拥塞近似器的多对数深度、近线性工作量递归算法。该算法包含一个获取低质量拥塞近似器的递归步骤,随后通过"提升"步骤改进其质量,从而避免误差的乘性增长。与Peng [SODA'16]类似,我们的提升步骤基于Räck、Shah和Täubig [SODA'14]的层次分解方案。然而,直接实现该方法仅能得到深度为$n^{o(1)}$且工作量为$m^{1+o(1)}$的算法。为解决这一问题,我们引入了一种新的层次分解方案:仅需对通过收缩顶点得到的子图求解最大流问题,而无需像Räck、Shah和Täubig [SODA'14]那样采用由顶点诱导的子图。特别地,我们能够直接从整个图的拥塞近似器中提取子图的拥塞近似器,从而避免对这些子图进行额外递归。在此过程中,我们还开发了一种并行流分解算法,该算法对实现多对数深度至关重要,并可能具有独立的研究价值。