错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

An Efficient Algorithm for All-Pairs Bounded Edge Connectivity

  • Shyan Akmal,
  • Ce Jin

摘要

Our work concerns algorithms for a variant of Maximum Flow in unweighted graphs. In the All-Pairs Connectivity (APC) problem, we are given a graph G on n vertices and m edges, and are tasked with computing the maximum number of edge-disjoint paths from s to t (equivalently, the size of a minimum (st)-cut) in G, for all pairs of vertices (st). Significant algorithmic breakthroughs have recently shown that over undirected graphs, APC can be solved in \(n^{2+o(1)}\) n 2 + o ( 1 ) time, which is essentially optimal. In contrast, the true time complexity of APC over directed graphs remains open: this problem can be solved in \({\tilde{O}}(m^\omega )\) O ~ ( m ω ) time, where \(\omega \in [2, 2.373)\) ω [ 2 , 2.373 ) is the exponent of matrix multiplication, but no matching conditional lower bound is known. Following [Abboud et al. In: 46th International colloquium on automata, languages, and programming, ICALP 2019, July 9-12, 2019, Patras, Greece, Schloss Dagstuhl-Leibniz-Zentrum für Informatik, 2019], we study a bounded version of \({{\textsf {APC}}}\) APC called the k-Bounded All Pairs Connectivity (k-APC) problem. In this variant of APC, we are given an integer k in addition to the graph G, and are now tasked with reporting the size of a minimum (st)-cut only for pairs (st) of vertices with min-cut value less than k (if the minimum (st)-cut has size at least k, we can just report it is “large” instead of computing the exact value). Our main result is an \({\tilde{O}}((kn)^\omega )\) O ~ ( ( k n ) ω ) time algorithm solving k-APC in directed graphs. This is the first algorithm which solves k-APC faster than simply solving the more general APC problem exactly, for all \(k\ge 3\) k 3 . This runtime is \({{\tilde{O}}}(n^\omega )\) O ~ ( n ω ) for all \(k\le {{\,\textrm{poly}\,}}(\log n)\) k poly ( log n ) , which essentially matches the optimal runtime for the \(k=1\) k = 1 case of k-APC, under popular conjectures from fine-grained complexity. Previously, this runtime was only achieved for \(k\le 2\) k 2 in general directed graphs [Georgiadis et al. In: 44th international colloquium on automata, languages, and programming (ICALP 2017), volume 80 of Leibniz International Proceedings in Informatics (LIPIcs), Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 2017], and for \(k\le o(\sqrt{\log n})\) k o ( log n ) in the special case of directed acyclic graphs [Abboud et al. In: 46th international colloquium on automata, languages, and programming, ICALP 2019, July 9–12, 2019, Patras, Greece, Schloss Dagstuhl-Leibniz-Zentrum für Informatik, 2019]. Our result employs the same algebraic framework used in previous work, introduced by [Cheung et al. In: FOCS, 2011]. A direct implementation of this framework involves inverting a large random matrix. Our new algorithm is based off the insight that for solving k-APC, it suffices to invert a low-rank random matrix instead of a generic random matrix. We also obtain a new algorithm for a variant of k-APC, the k-Bounded All-Pairs Vertex Connectivity (k-APVC) problem, where we are now tasked with reporting, for every pair of vertices (st), the maximum number of internally vertex-disjoint (rather than edge-disjoint) paths from s to t if this number is less than k, and otherwise reporting that there are at least k internally vertex-disjoint paths from s to t. Our second result is an \({\tilde{O}}(k^2n^\omega )\) O ~ ( k 2 n ω ) time algorithm solving k-APVC in directed graphs. Previous work showed how to solve an easier version of the k-APVC problem (where answers only need to be returned for pairs of vertices (st) which are not edges in the graph) in \({{\tilde{O}}}((kn)^\omega )\) O ~ ( ( k n ) ω ) time [Abboud et al. In: 46th International colloquium on automata, languages, and programming, ICALP 2019, July 9–12, 2019, Patras, Greece, Schloss Dagstuhl-Leibniz-Zentrum für Informatik, 2019]. In comparison, our algorithm solves the full k-APVC problem, and is faster if \(\omega > 2\) ω > 2 .