Abstract 1 Introduction 2 Technical Overview 3 Organization of the Paper 4 Preliminaries 5 Faster Algorithm for Weak Expander Decomposition 6 Sufficient Conditions for Constructing a Congestion-Approximator 7 Building Our Congestion-Approximator References

Faster Weak Expander Decompositions and Approximate Max Flow

Henry Fleischmann ORCID Department of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA    George Z. Li ORCID Department of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA    Jason Li ORCID Department of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA
Abstract

We give faster algorithms for weak expander decompositions and approximate max flow on undirected graphs. First, we show that it is possible to “warm start” the cut-matching game when computing weak expander decompositions, avoiding the cost of the recursion depth. Our algorithm is also flexible enough to support weaker flow subroutines than previous algorithms.

Our second contribution is to streamline the recent non-recursive approximate max flow algorithm of Li, Rao, and Wang (SODA, 2025) and adapt their framework to use our new weak expander decomposition primitive. Consequently, we give an approximate max flow algorithm within a few logarithmic factors of the limit of expander decomposition-based approaches.

Keywords and phrases:
max flow, expander decompositions, congestion approximators, cut-matching game
Category:
Track A: Algorithms, Complexity and Games
Copyright and License:
[Uncaptioned image] © Henry Fleischmann, George Z. Li, and Jason Li; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Network flows
Related Version:
Full Version: https://arxiv.org/abs/2511.02943
Funding:
This material is based upon work supported by the National Science Foundation Graduate Research Fellowship Program under Grant No. DGE2140739. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.
Editors:
Sayan Bhattacharya, Danupon Nanongkai, Michael Benedikt, and Gabriele Puppis

1 Introduction

In the maximum flow problem, we are given a set of vertex demands, where each vertex is required to send or receive a certain amount of flow, and the goal is to route these demands while minimizing the maximum congestion along any edge. It is one of the oldest problems in theoretical computer science [10], with connections to other famous problems including minimum cut, bipartite matching, and Gomory-Hu trees [13]. Modern algorithmic techniques have produced exciting breakthroughs in both the exact directed setting [9, 24, 6] and the approximate undirected setting [20, 32, 18, 33, 1]. These techniques include the interior point method from continuous optimization [9, 24, 6], electrical flows and Laplacian solvers [35, 20, 24, 12], expander decompositions and congestion approximators [32, 30], and dynamic data structures [6].

On the other hand, despite the rapid advancement of modern flow algorithms, progress towards understanding max flow, especially its underlying structural properties, has arguably lagged behind:

  1. 1.

    The first (1ϵ)-approximate max flow algorithm on undirected graphs runs in O(mlog41n) time even for constant ϵ>0 [27]. The algorithm is fairly complex, recursively alternating between multiple different problems, and it took a decade before the first non-recursive algorithm was developed [23], improving the runtime to O(mlog17n).111We suppress O(loglogn) factors in these running times for simplicity.

  2. 2.

    While the exact max flow algorithms based on interior point methods are impressive, they do not shed light on the combinatorial structure of max flow. In response, a recent trend of studying combinatorial max flow has emerged [7, 8, 4, 3], obtaining augmenting path-style algorithms that are more faithful to traditional approaches.

This paper is dedicated to refining our understanding of approximate max flow in undirected graphs. Our starting point is the recent non-recursive algorithm for approximate max flow [23], which computes a hierarchy of so-called weak expander decompositions, using previously computed levels of the hierarchy to build the next level. From this hierarchy, a congestion approximator is extracted and used in Sherman’s framework [33] to obtain the desired approximate max flow. However, [23] do not state an explicit running time, since the weak expander hierarchy construction requires calls to fair cut/flow [22], which introduce a large running time overhead.

The contribution of this paper is twofold:

  1. 1.

    First, we develop a faster weak expander decomposition algorithm by “warm starting” the cut-matching game [19] whenever a sparse cut is found. This algorithm can be implemented using O(log2n) calls to max flow, compared to O(log3n) for the standard weak expander decomposition implementation [31], and may be of independent interest.

  2. 2.

    Next, we streamline the framework of [23] to obtain a non-recursive approximate max flow algorithm with an improved running time of O(mlog9nloglogn). In particular, we are able to implement our weak expander decomposition using approximate max flow, compared to prior algorithms which require fair cut/flow or similarly strong guarantees [31, 23]. Similar to [23], these max flow calls are specialized enough to be solvable using the existing levels of the hierarchy. However, a weaker flow oracle introduces a number of technical difficulties which we discuss in the technical overview.

Theorem 1 (Informal version of Corollary 19).

Given an undirected graph with integral and polynomially-bounded edge capacities, there is an O(mlog9n) time algorithm to construct a congestion-approximator with quality O(log5n). Together with Sherman’s framework [33], we obtain an (1ϵ)-approximate max flow algorithm in time O(mlog9nloglogn+ϵ1mlog6n).

While the logarithmic exponent of 9 is too large to be practical, we remark that expander decomposition-based algorithms have historically led to similarly large constants. For example, the state of the art (strong) ϕ-expander decomposition [2] deletes O(ϕlog2n) fraction of edges and runs in time O(mlog4n/ϕ+mlog7m) on capacitated graphs; to delete a constant fraction of edges, we require ϕ1/log2n which results in O(mlog7n) time. Even our faster implementation of weak expander decomposition runs in O(mlog4n) time in the most ideal setting. Therefore, our max flow algorithm is within a few logarithmic factors of the limit to any expander decomposition-based approaches, and substantial future improvements will require either breakthroughs in computing expander decompositions, or bypassing expander decompositions altogether.

Further related work

Our result builds on a long line of work on efficiently constructing a small collection of cuts, called congestion approximators, which approximately capture the congestion required to route any feasible demand [28, 5, 15, 29, 30, 26, 27, 14, 1, 16]. To construct an α-congestion approximator for α=polylogn, these algorithms required (approximate) max flow as a subroutine. In a breakthrough work, [32] showed that an α-congestion approximator could also be used to compute (1ϵ)-approximate max flow. There is a chicken-and-egg problem here as congestion-approximators and approximate max-flow need each other, which [27] resolved using a costly recursion combined with ultra-sparsifiers. Recent work [23] was able to avoid this recursion by building a congestion-approximator bottom-up without requiring an approximate max-flow oracle, which is the focus of our work.

A stronger cut player?

Our expander decomposition algorithm is adapted from the cut-matching game from [19], despite the fact that cut-matching games with better parameters have since been developed. Most notably, the cut-matching game of [25] uses a stronger spectral cut player to save an O(logn) factor in their expansion guarantees. However, our warm starting analysis relies on a simple property of the potential function used in [19]: if we partition a set S=S1S2, then the sum of the induced potentials on S1 and S2 is at most the potential on S. The same property is not obviously true of the matrix-based potential function of [25].

Our work also relies essentially on the “nonstop” variant of KRV used in [30, 31] to give an efficient expander decomposition algorithm. Until the recent works of [2, 16], such a nonstop version of [25] was unknown. Given this development, we believe it may be a promising direction to adapt our warm starting analysis to this OSVV-based nonstop cut-matching game. We leave this as an open problem in our work.

2 Technical Overview

Faster weak expander decompositions

All known algorithms for computing expander decompositions in near-linear time rely on the cut-matching game. Our first main technical contribution is a faster algorithm for computing weak expander decompositions. We do this by observing that it is possible to “warm start” our recursive instances of the cut-matching game. Importantly for our application to approximate max flow, our algorithm is robust enough to support general vertex weights and to implement the matching steps using approximate max flow oracles.

We now describe the techniques in more detail. In the standard cut-matching game (on an unweighted graph), we have T=Θ(log2n) rounds in total. In each round, the cut player finds two disjoint sets LA and RA. The matching player then tries to route a flow from LA to RA, implicitly defining a matching between the sets. If at any iteration the matching player fails to route the flow, the cut certifying infeasibility of the flow is a sparse cut, showing that the graph is not an expander. Otherwise, if all matching step flows are feasible, the cut player is defined so that the union of the matchings found in the T iterations is itself an expander. Combined with the fact that the matchings embed into the original graph with low congestion, this proves that G must be an expander.

In the non-stop version of the cut-matching game [30, 31], when the matching player fails to route the flow from LA to RA, thus finding a sparse cut S, the algorithm does not (necessarily) immediately terminate. Instead, the cut-matching game continues on VS. More generally, let A be the current set on which the cut-matching game is being played; when the matching player finds a cut S, the algorithm continues on AS. It can be shown that after T iterations, the remaining set A is a near-expander in G, meaning that its degree vertex weighting mixes in G (but possibly not G[A]) with low congestion.

To convert the non-stop cut-matching game into a weak expander decomposition algorithm, [11] adds an early termination condition: if vol(A)99vol(V)/100 at any point, the non-stop cut-matching game terminates and recurses on A and VA. Otherwise, if the cut-matching game terminates in certifying that A is a near-expander, we recurse onto VA if it is non-empty. If A is certified as a near-expander in some iteration, we then know that vol(VA)vol(V)/100 so the recursive call decreases by a constant factor in size. If we reach the early termination condition, then vol(A)99vol(V)/100 and we have the additional guarantee that VA is partitioned by sparse cuts into subsets of at most 2/3 of the volume each. Hence, the recursive calls also decrease in size by a constant factor in this case. As a result, the recursive depth is at most O(logn), so we can compute a weak expander decomposition in O(log3n) iterations of the cut-matching game.

We give a new weak expander decomposition algorithm which only uses O(log2n) iterations of the cut-matching game. Let A again be the current set of vertices. If we find a matching successfully, then we continue the cut-matching game on A. Otherwise, we find a sparse cut SA. In the previous algorithm, we would only continue on AS, delaying continuing on S until reaching the early termination condition or certifying that some subset of AS is a near-expander in G. Our main observation is that we can continue the cut-matching game on both AS and S simultaneously without a loss in the runtime. This amounts to “warm-starting” on S. Slightly more formally, we maintain a partition of V into kt sets 𝒜t={A1,,Akt} at each iteration t. At the beginning of the algorithm, we set 𝒜0={V} and at each iteration t, we run the cut-matching game on each Ai𝒜t simultaneously. When we find some cut SiAi, we add Si (if nonempty) and AiSi to 𝒜t+1. After T rounds, we will certify that each component in 𝒜T is a near-expander. We remark that warm-starting crucially uses the fact that we are ultimately constructing a weak expander decomposition, not a strong one. Indeed, the matching embeddings from steps prior to restricting to a subgraph (from finding a cut) are not guaranteed to embed into our current subgraph. This is fine for certifying near-expansion but too weak a guarantee for strong expansion.

Importantly for our application to approximate max flow, this algorithm still reveals sufficient structure when implementing the matching steps with an approximate max flow oracle. To this end, we give our algorithm in two steps. The first step is to compute a weak expander decomposition where there can be a small “deleted,” non-expanding portion of the input vertex weighting (Section 5.1). The non-deleted portion is certified to mix simultaneously (i.e., each component expands with respect to the non-deleted portion of the vertex weighting) and there are guaranteed to be few intercluster edges, as usual. Then, in the second step (Section 5.2), we attempt to graft the demand deleted in each cluster back into the cluster, as in [11]. After this step, every expanding cluster will not have any deleted demand, and nearly all demand will belong to an expanding cluster. We state an informal version of our result in Theorem 2.

Theorem 2 (Informal version of Theorem 15).

Suppose we have G=(V,E,𝐜) with integer edge capacities at most poly(n). In addition, suppose we have vertex weighting 𝐝0V, expansion parameter ϕ>0, and a suitable approximate max flow oracle running in time F(n,m,ε). Then, there is an algorithm computing a partition 𝒜=𝒜𝒜× of V with the following properties:

  1. 1.

    The algorithm runs in time O(F(n,m,ε)log2n+mlog4n).

  2. 2.

    𝐝(A𝒜×A)=O((εlog2n+ϕlogn)𝐝(V)).

  3. 3.

    The total capacity of edges cut by 𝒜 is at most O(ϕ𝐝(V)logn).

  4. 4.

    Each A𝒜 is a (ϕ/log2n,𝐝)-near-expander in G.

Importantly for our applications, we actually obtain a stronger simultaneous mixing expansion property instead of (4), but we omit that here for simplicity (see Theorem 15). Also note that, unlike standard weak expander decompositions, our result does not exactly decompose all vertices into near-expanders (i.e., usual decompositions would get 𝒜×= or the guarantee of (2) to be 0). However, this relaxation is critical for obtaining such a result and still suffices for some important applications of weak expander decompositions. Indeed, the relaxation of (2) suffices for our application to constructing congestion-approximators and approximate max flow, as we discuss next.

Faster congestion-approximators

Recall that a laminar family 𝒞 of subsets of V forms an α-congestion-approximator if for every vertex demand, the minimum ratio over cuts C𝒞 between the capacity of the cut and the demand crossing the cut is an α-approximation to the optimal congestion of any flow routing the demand. Our goal is to construct α-congestion-approximators faster and with smaller α. To discuss our improvement over previous work, we restate the informal Theorem 2.1 from [23], which gave a novel approach for constructing congestion-approximators.

Theorem 3 (Theorem 2.1 of [23]).

Consider a capacitated graph G=(V,E,𝐜), and let α1 and β1 be parameters. Suppose there exist partitions 𝒫1,𝒫2,,𝒫L of V such that

  1. 1.

    𝒫1 is the partition {{v}:vV} of singleton clusters, and 𝒫L is the partition {V} with a single cluster.

  2. 2.

    For each i[L1], for each C𝒫i+1, the intercluster edges of 𝒫i internal to C along with the boundary edges of C mix in the graph G. Moreover, the mixings over all the clusters C𝒫i+1 have congestion α simultaneously.

  3. 3.

    For each i[L1], there is a flow in G with congestion β such that each intercluster edge of 𝒫i+1 sends its capacity in flow, and each intercluster edge of 𝒫i receives half its capacity in flow.

For each i[L], let partition i be the common refinement of partitions 𝒫i,𝒫i+1,,𝒫L, i.e.,

i={CiCL:Ci𝒫i,,CL𝒫L,CiCL}.

Then, their union 𝒞=i[L]i is a congestion-approximator with quality 16αβL2.

The partitions 𝒫i described in the theorem essentially form a weak expander hierarchy, where each level is essentially a (boundary-linked) weak expander decomposition. Using the existence of routings guaranteed by (2) and (3), [23] show that a demand respecting the congestion-approximator can be iteratively routed. They then show that this weak expander hierarchy can be constructed using existing tools for constructing expander decompositions [31, 22]. By doing this, they construct a sequence of partition 𝒫1,,𝒫L satisfying properties (1), (2), and (3) with parameters α=O(log5n) and β=O(log3n).

Our main observation is that we do not need the full power of a weak expander decomposition at each level in order to show the existence of this routing. If a small constant fraction of the vertices (measured in terms of volume in the subgraph) do not have the expander mixing property, this is still sufficient to show that the congestion-approximator routing exists. Specifically, we relax conditions (2) and (3) on the partitions 𝒫i to allow for a small constant fraction of edges to not participate in the routings at level i and be instead be handled at level i+1. More formally, we let 𝒫1,,𝒫L be partitions of subsets V1,,VLV. We only require the mixing properties (2) and (3) on Vi+1 for each i[L1], so we should think of 𝒫i as a weak expander decomposition of Vi. To extend the partitions 𝒫i of Vi to a partition 𝒫¯i of V, we define 𝒬i to be the induced partition from the previous level 𝒫¯i1 on VVi. That is, we define

Qi={C(VVi):C𝒫¯i1,C(VVi)}.

Then we can define 𝒫¯i=𝒫i𝒬i. Intuitively, when we only have a partition on Vi, we are giving up on routing the demand from the intercluster edges from 𝒫¯i1 in VVi and dealing with it at a higher level. In order to move it to the higher level, we include it in 𝒫¯i through the definition of 𝒬i.

We now state a morally true version of our relaxed conditions for constructing congestion-approximators.

Theorem 4 (Informal version of Theorem 16).

Consider a capacitated graph G=(V,E,𝐜), and let α1 and β1 be parameters. Let 𝒫1,,𝒫L be partitions of V1,,VL, respectively and extend these to partitions 𝒫¯1,,𝒫¯L as described above. Suppose the partitions 𝒫¯1,,𝒫¯L satisfy:

  1. 1.

    𝒫¯1 is the partition {{v}:vV} of singleton clusters and 𝒫¯L is the partition {{V}} with a single cluster.

  2. 2.

    For each i[L1], for each C𝒫i+1, the intercluster edges of 𝒫¯i internal to C along with the boundary edges of C mix in the graph G. Moreover, the mixings over all the clusters C𝒫i+1 have congestion α simultaneously.

  3. 3.

    For each i[L1], there is a flow in G with congestion β such that each intercluster edge of 𝒫i+1 sends its capacity in flow, and each intercluster edge of 𝒫¯i receives at most a quarter its capacity in flow.

For each i[L], let partition i be the common refinement of partitions 𝒫¯i,𝒫¯i+1,,𝒫¯L, i.e.,

i={CiCL:Ci𝒫¯i,,CL𝒫¯L,CiCL}.

Then, their union 𝒞=i[L]i is a congestion-approximator with quality 48αβL2.

The first advantage of this relaxation is that our algorithm for constructing the partitions 𝒫1,,𝒫L is faster. In particular, we can use approximate max flow algorithms to implement the cut-matching game. This may cause some nodes to be “deleted,” as described in the previous subsection, but this is okay for us since we only need expander mixing guarantees on a (large) constant fraction of the vertices for property (2). In contrast, [23] used a fair-cuts algorithm [22] to implement the same step in their paper, which incurred several additional log factors in their runtime.

The second advantage is for obtaining smaller β. In [23], they prove that the flow from 𝒫i+1 to 𝒫i exists using the boundary-linkedness property of the expander decompositions. This approach naturally suffers from β=Ω(log3n) because the flows guaranteed by the expander decomposition have congestion Ω(log3n). Instead, our approach is to directly attempt to send flow from 𝒫i+1 to 𝒫i at each level. Using a max-flow/min-cut algorithm, we will find a (possibly empty) cut and a flow which saturates the cut. If we simply remove the vertices which are cut out, we have that in the remainder of the graph, there is a flow from 𝒫i+1 to 𝒫i (since the flow saturates the cut). This gives us the desired β=O(1), and also crucially uses our relaxation of properties (2) and (3).

Finally, we note that we obtain a smaller α=O(log3n) in our construction. This is because we construct a weak expander decomposition on each level, which we observed is sufficient for the simultaneous mixing guarantees required by property (2). This enables us to avoid the costly trimming step used in [23], and also enables our speedup using warm-starting, which no longer helps for strong expander decompositions.

The approximate max flow algorithm

We apply Sherman’s framework [33] to convert a congestion-approximator into an approximate max flow algorithm. Our approach for constructing a congestion-approximator is to construct a weak expander hierarchy using the cut-matching game. In implementing the cut-matching game, we need to solve flow problems (approximately), and we do this using the previous layers of the hierarchy as a “pseudo”-congestion-approximator. Our (pseudo)-congestion-approximators have quality αβL2=O(log5n), giving us an O(mlog6nloglogn) time algorithm for solving the flow problems in the cut-matching game. Our improved weak expander decomposition algorithm takes T=O(log2n) rounds to obtain a full weak expander decomposition. Finally, there are L=O(logn) layers of the hierarchy, totalling O(mlog9nloglogn) runtime.

3 Organization of the Paper

In Section 5 we give a faster algorithm for weak expander decompositions. This algorithm supports implementing its flow subroutines with weaker than usual properties, which are described in Oracle 1 and Oracle 2. In Section 6 and Section 7 we give a faster algorithm for computing a congestion-approximator from the bottom up, using the faster weak expander decomposition as a critical subroutine. To do this, we show how to efficiently implement Oracle 1 and Oracle 2. As a direct consequence of our new algorithm for constructing a congestion-approximator, we obtain the fastest known approximate max flow algorithm. We defer all proofs to the full online version of the paper.

4 Preliminaries

Functions

For two functions f,g:X let fg denote that, for all xX, f(x)g(x). We write supp(f) to denote the subset of X on which f takes nonzero values. For SX and S finite, we also write f(S) as shorthand for xSf(x). We use f|S to mean the restriction of f to S. When clear from context, we sometimes abuse notation and use f|S to denote the function f on the same domain but set equal to 0 outside of S. We also use all of the above notation for vectors, interpreting those vectors as functions. We often bold vectors to distinguish them from scalars (e.g., write 𝐝V).

Graphs

We consider capacitated (weighted) graphs G=(V,E,𝐜) where 𝐜[1,W]. Unless otherwise specified, we use n to denote the order of G and m to denote its size. Sometimes we write VG (or V(G)), EG (or E(G)), and 𝐜G to clarify that they are the parameters of the graph G. For SV, denote the induced subgraph of G as G[S]. In other words, G[S] is the subgraph of G formed by retaining exactly vertices in S and edges between vertices in S.

Given a partition 𝒜 of V, we write 𝒜 to denote the set of intercluster edges in G. When 𝒜 is just a single cut (S,VS), we sometimes write S instead. We often consider 𝒜 as an edge subgraph of G. We also use the notation δ𝒜=𝐜(𝒜) and δS=𝐜(S) (or δ(𝒜) and δ(S)) as shorthand denoting the total capacity of intercluster or cut edges. For uV, we denote the (weighted) degree of u in G as degG(u)=δG({u}). We will often also consider deg𝒜(u)=δ𝒜({u}) which treats 𝒜 as an edge subgraph of G. Finally, throughout we consider vertex weights 𝐝0V, with the most common weight function being 𝐝=degG or degH for H a subgraph of G.

Flow

A demand is a vector 𝐛V whose entries sum to 0. We say a flow f:E routes a demand 𝐛 if for each vV the net flow at v in f is 𝐛(v). We say that f has congestion κ if the flow through any edge in f is at most κ times its capacity. Given a flow f, a path decomposition of f is a collection of weighted paths in G such that, for each (u,v)E, the flow from u to v in f is the sum of weights of paths containing the edge from u to v in the path decomposition.

Expansion

Let G=(V,E,𝐜) be a capacitated graph, and let 𝐝0V be a vertex weighting. Let SV. Then, the conductance of S in G with respect to 𝐝 is

ΦG,𝐝(S)=δG(S)min(𝐝(S),𝐝(VS)).

We say that a cut S is ϕ-sparse (in G with respect to 𝐝) if ΦG,𝐝(S)ϕ. We say that G is a (ϕ,𝐝)-expander if, for all SV, we have ΦG,𝐝(S)ϕ. For AV, we say that A is ϕ-nearly 𝐝-expanding in G (or A is a (ϕ,𝐝)-near-expander in G) if, for all SA, we have

δG(S)min(𝐝(S),𝐝(AS))ϕ.

Note that if A is ϕ-nearly 𝐝-expanding in G, then the same holds for all AA, since the denominators of the relevant expressions only decrease. When 𝐝=degG or 𝐝 is clear from context we say G is a ϕ-expander (respectively, near-expander).

We can also define expansion with respect to flows. We say that a vertex weighting 𝐝0V mixes in G with congestion κ if, for all demands 𝐛V with |𝐛|𝐝, we have that 𝐛 is routable in G with congestion at most κ. In fact, 𝐝 mixes in G with congestion 1/ϕ if and only if G is a (ϕ,𝐝)-expander. Note that while 𝐝|A mixing in G with congestion κ implies that A is a (ϕ,𝐝)-near-expander in G, the converse does not hold in general. Flow-based expansion is stronger than cut-based expansion for near-expanders.

Sometimes we require an even stronger notion of expansion with respect to multi-commodity flows. We say that a collection of vertex weights {𝐝i:iI} mixes simultaneously in G with congestion κ if, for all tuples of demands (𝐛i)iI with each 𝐛iV satisfying |𝐛i|𝐝i, there exists a multicommodity flow 𝐅 with one commodity per demand which routes all 𝐛i and has total congestion κ.

Congestion-approximators

Given a graph G=(V,E,𝐜), a congestion-approximator 𝒞 of quality α is a family of subsets of V such that, for any demand 𝐛 satisfying |𝐛(C)|δG(C) for all C𝒞, there is a flow routing demand 𝐛 with congestion α.

5 Faster Algorithm for Weak Expander Decomposition

Our input is an undirected, capacitated graph G=(V,E,𝐜) of order n, size m, and with 𝐜[1,W]; an expansion parameter ϕ>0; and a vertex weighting 𝐝:V0. For intuition, it may be helpful to think of 𝐝 as degG. Our goal is to compute a decomposition of V, 𝒜T, and some 𝐝T𝐝 such that:

  1. 1.

    Decomposition into expanders: {𝐝T|A:A𝒜T} mix simultaneously in G with congestion O(1/ϕ).

  2. 2.

    Few cut edges: The total capacity of edges cut by 𝒜T is O(ϕ𝐝(V)lognW).

  3. 3.

    Limited deleted demand: 𝐝(V)𝐝T(V)ϵ𝐝(V), for some small constant ϵ>0.

In the case of implementing the matching steps of cut-matching with an exact max flow oracle or a fair cuts-based approximate max flow oracle, we can set ϵ=0. For our application to approximate max flow, our max flow oracles are too weak to achieve such a guarantee ϵ=0, but the guarantee of (3) still suffices. We defer stating the main result of this section, Theorem 15, so it can be stated in the context of the flow oracles it assumes.

5.1 Weak Expander Decomposition with Deleted Demand

We begin by stating some basic definitions. For AV and a vertex weighting 𝐝:A0, define an A-commodity flow as a multicommodity flow where each vA is a source of 𝐝(v) of its unique flow commodity.

For the purposes of our analysis, we will implicitly maintain a flow matrix 𝐅0V×V throughout. We say a flow matrix 𝐅 is routable with congestion κ if there exists a V-commodity flow f such that for each (u,v)V2, f simultaneously routes 𝐅(u,v) of u’s commodity to v with no edge e having more than κ𝐜(e) flow passing through it.

We initialize our flow matrix as 𝐅0=diag(𝐝), where we view 𝐝 as a vector in 0V. We also initialize our set of “deleted vertices” as the empty set; D0=. At each step t1, 𝐝t is equal to 𝐝, except set equal to 0 on Dt1. The algorithm then proceeds in T rounds.

Some components of 𝒜t become inactive over the course of the algorithm. The components that are active are those for which we have not marked all nodes as deleted and for which we have not certified that the component is an expander. We decompose 𝒜t=𝒜t𝒜t× into the active and inactive portions, respectively. In each step, we will make progress towards certifying expansion on some 𝒜t𝒜t. For each active component A𝒜t, we maintain a counter xtA recording how many times we have made progress on this set. When the counter is high enough, we have certified expansion on A with high probability and we can set the component to be inactive. We state the algorithm more formally in Algorithm 1.

Algorithm 1 Weak Expander Decomposition with Deletions.

Cut Player

We implement our cut step as follows.

  • Sample 𝒓tV, a random unit vector.

  • For each A𝒜t1:

    • For each uA={vA:𝐝t1(v)>0}, compute

      pt(u)=𝐅t1(u)𝐝(u),𝒓t.
    • Compute a partition LARA=A such that:

      1. 1.

        𝐝t1(LA)=𝐝t1(A)/8.

      2. 2.

        maxuLApt(u)ηminuRApt(u) or maxuRApt(u)ηminuLApt(u).

In particular, we compute a partition of A such that LA is guaranteed to contain a set of vertices certifying progress towards expansion. We show the existence of such a set certifying progress via a technical lemma. This is a variant of Lemma 5.15 of [11] adapted to the undirected setting.

Lemma 5.

Let X be a finite multi-subset of with |X|2. There exists η inducing a partition X=LηRη with max(Lη)ηmin(Rη) or max(Rη)ηmin(Lη), |Lη|=|X|/8, and with the following additional guarantees. Define μ¯=1|X|xXx. There exists SLη such that

  1. 1.

    For each sS, we have (sη)219(sμ¯)2.

  2. 2.

    sS(sμ¯)2136xX(xμ¯)2.

The proof is similar to the proof of Lemma 5.15 in [11]. To construct our partition LARA, we apply Lemma 5 to the multiset of pt(u), where each value is repeated 𝐝t(u) times. Elements whose duplicates appear in both Lη and Rη have pt(u)=η and will not be relevant for our potential reduction analysis.

Lemma 6.

For each tT, we can compute the cut step partitions for all A𝒜t1 in total time O(mt).

Matching Player

In the tth matching step, we consider the following flow problem. Let Gt be the graph with all edges between different components in 𝒜t1 deleted and all remaining edges with capacity scaled by 2/ϕ. For vLA for some A𝒜t1, we set its source to be Δ(v)=𝐝t1(v). For vRA, we set its sink to be (v)=𝐝t1(v).

We assume access to an approximate max flow oracle with the following guarantees.

Oracle 1 (Matching Player Flow Oracle).

On such a flow instance, we find 𝒜t1𝒜t1 with

𝐝t1(A𝒜t1A)12𝐝t1(A𝒜t1A)

such that, for each A𝒜t1:

  1. 1.

    We find a (possibly empty) cut CAA with 𝐝t1(CA)𝐝t1(A)/2. In addition, we have that the total capacity of computed cuts (CA,ACA) is at most

    ϕ8A𝒜t1𝐝t1(CA)+2γ𝐝(V).
  2. 2.

    We find a flow routing at least Δ(ACA)2γ𝐝(A) source of Δ|ACA within A, for γ<1/2.

 Remark 7.

Note that, if given access to a (1γ)-approximate max flow oracle, we could apply the oracle on each A𝒜t1 and get the desired properties with 𝒜t1=𝒜t1.

Updating the flow matrix

Each application of the flow oracle induces a weighted matching in each component between the source and the sink. We update the implicit flow matrix 𝐅 accordingly. In particular, let 𝐌tV×V be the symmetric matrix where, for u a source vertex, 𝐌t(u,v) is the amount of flow sent from vertex u to vertex v in the flow (after computing some path decomposition using link-cut trees). Importantly, since 𝐌t(u,v) is formed by a path decomposition, we can guarantee that 𝐌t(u,v) has at most m nonzero entries. For convenience, for uA, define 𝐌t(u):=vA𝐌t(u,v). Also define A:={vA:𝐝t1(v)>0}. We can then define 𝐅t recursively from 𝐅t1 and 𝐌t as follows. For uA𝒜t1,

𝐅t(u)=(1𝐌t(u)2𝐝(u))𝐅t1(u)+12wA𝐌t(u,w)𝐝(w)𝐅t1(w). (1)

For uA𝒜t1×, u is not involved in the matching step, so 𝐅t(u)=𝐅t1(u).

Claim 8.

For all t and for all uV with 𝐝t(u)>0,

wV𝐅(u,w)=𝐝(u).
Claim 9.

For all t0, 𝐅t is routable with congestion 2t/ϕ.

Convergence Analysis

To prove that we achieve the desired decomposition after T=O(lognlognW) total steps, we consider the following potential function. For each A𝒜t, first define the average flow vector

μtA=1𝐝t(A)uA𝐅t(u).

As before, A:={uA:𝐝t(u)>0}. Then,

ψt(A)=𝐝t(A)uA𝐝(u)𝐅t(u)𝐝(u)μtA22.

Small potential implies simultaneous mixing, as stated in the following lemma.

Lemma 10.

Suppose that ψt(A)<1/(mW)8 for all A𝒜t with A. Then,

{𝐝t|A:A𝒜t}

mix simultaneously in G with congestion 4t/ϕ.

 Remark 11.

Given demands 𝐛i respecting 𝐝t|Ai for each i[r], we can compute the mixing routing in O(mtlognW) time by rescaling the paths in the path decompositions computed in the prior rounds’ matching steps. Like the original path decomposition computation, we can implement this using link-cut trees [34].

With some work, we can show a decrease in potential in each step. Combined with standard concentration bounds, we can deduce the following.

Corollary 12.

Let A𝒜t such that 𝐝t(A)>0, and recall the variable xtA from Algorithm 1. If xtA>105ClognlognW, then ψt(A)<1/(mW)8 with high probability in n.

To complete the proof of the main result of this section, we also need to show that 𝐝(V)𝐝T(V)ϵ𝐝(V). Indeed, we have the following.

Lemma 13.

For all t0, we have

𝐝(V)𝐝t(V)64tγ𝐝(V).

Putting all of this together yields our first main result.

Theorem 14 (Weak Expander Decomposition with Partial Deletions).

Given G=(V,E,𝐜),𝐝0V,ϕ>0, and access to an approximate max flow oracle as in Oracle 1 with parameter 1γ>0, running in time R(n,m,γ) per query, there is an algorithm running T=O(lognlognW) rounds of cut-matching which computes a partition 𝒜T of V and 𝐝T𝐝 with the following properties:

  1. 1.

    For each A𝒜T with 𝐝T(A)>0, 𝐝T(A)15𝐝(A)/16. Moreover, with high probability {𝐝T|A:A𝒜} mix simultaneously in G with congestion 4T/ϕ.

  2. 2.

    The total capacity of edges cut by 𝒜T is at most O((ϕlognW+γT)𝐝(V)).

  3. 3.

    𝐝(V)𝐝T(V)64Tγ𝐝(V).

  4. 4.

    The algorithm runs in time O(T(R(n,m,γ)+mT)).

5.2 Grafting in Deleted Demand

One potential weakness of the partition from Theorem 14 is property (1), its mixing guarantee. It is not quite the case that every A𝒜T is either certified as a (simultaneously mixing) (ϕ,𝐝)-near-expander or entirely deleted. Instead, the expanding components might have some deleted nodes inside them still (i.e., 𝐝T(A)<𝐝(A)). Moreover, it might be the case that we want some stronger notion of expansion, e.g., boundary-linked expansion [14].

Fortunately, we can strengthen the decomposition with one additional grafting step, similarly to [11]. Let deg𝒜T:V0 be the additional vertex weighting on G corresponding to the boundary of 𝒜T. Let ψ>0 be a parameter. Think of ψ as ϕ in the case of expander decompositions; for our application, we will set ψ=Ω(1). Consider the flow instance on a subgraph of G, generated as follows.

  • Let 𝒜T+={A𝒜T:𝐝T(A)>0}.

  • For each A𝒜T+:

    • For each uA, add Δ(u)=deg𝒜T(u)+𝐝(u)𝐝T(u) source.

    • For each uA with 𝐝T(u)=𝐝(u), add sink (u)=𝐝(u)/5.

  • Remove all edges cut by 𝒜T from G, and scale the capacity of remaining edges by 1/ψ.

The intuition for this flow instance is the following. If it is feasible, then we can route all the deleted and boundary demand to non-deleted demand that is certified to mix. (We set the sinks as 𝐝(u)/5 rather than 𝐝(u) purely to streamline our specific application.) As such, at the cost of a slight increment in the congestion, we certify that all the expanding components A mix simultaneously with respect to demands (𝐝+deg𝒜T(u))|A, not just 𝐝T|A. If the flow is not feasible, because we scaled the edges and since the source is small relative to the sink, we will find sparse cuts in most components. We want the additional guarantee that any remaining source is almost entirely routed and the new boundary can be routed as well. This condition is achievable with fair cut-based max flow algorithms (e.g., [22, 21]), and we require something analogous in the definition of our flow oracle.

Oracle 2 (Grafting Flow Oracle).

On such a flow instance, for some parameter γ>0, we find a flow with the following properties:

  1. 1.

    For each A𝒜T+, if deg𝒜T(A)𝐝T(A)/8, we find a pair (CA,ACA) such that:

    1. (a)

      For each uACA with Δ(u)>0, we route at least (1γ)Δ(u) source from u to ACA.

    2. (b)

      The flow saturates at least a (1γ) fraction of the capacity of each edge from CA to ACA.

    3. (c)

      We have A𝐜G(E(CA,ACA))8ψ𝐝(V).

  2. 2.

    We have

    𝐝(A𝒜T+CA)30(𝐝(V)𝐝T(V)+deg𝒜T(V)).

We can now state the main result of this section, a strengthening of Theorem 14 using a grafting post-processing step.

Theorem 15 (Weak Expander Decomposition with Deletions).

Suppose we have G=(V,E,𝐜), 𝐝0V, ϕ>0, ψ>0, and access to Oracle 1 with parameter 1γ1>0 and Oracle 2 with parameter γ21/10, running in time R1(n,m,γ1) and R2(n,m,γ2) per query, respectively. Let T=O(lognlognW). Then, there is an algorithm computing a partition 𝒜=𝒜𝒜× of V with the following properties:

  1. 1.

    The algorithm runs in time O(T(R1(n,m,γ1)+mT)+R2(n,m,γ2)).

  2. 2.

    𝐝(A𝒜×A)=O((γ1T+ϕlognW)𝐝(V)).

  3. 3.

    The total capacity of edges cut by 𝒜 is at most O((ϕlognW+γ1T+ψ)𝐝(V)).

  4. 4.

    {(𝐝+deg𝒜)|A:A𝒜} mix simultaneously in G with congestion T/ϕ+2ψ.

  5. 5.

    There exists a flow of congestion 2ψ such that each uA𝒜 sends deg𝒜(u) flow and each vV receives at most 𝐝(v)/4 flow.

6 Sufficient Conditions for Constructing a Congestion-Approximator

In this section, we show that the following properties suffice to obtain a congestion-approximator.

Theorem 16.

Consider a capacitated graph G=(V,E,𝐜), and let α1 and β1 be parameters. Consider a sequence of partitions 𝒫1,,𝒫L of V1,,VLV. For ease of notation, let 𝒫¯0 denote the singleton partition. For each i[L], define 𝒬i to be the induced partition of 𝒫¯i1 on VVi i.e.,

𝒬i={C(VVi):C𝒫¯i1,C(VVi)},

and let 𝒫¯i=𝒫i𝒬i for each i[L]. Suppose the partitions 𝒫¯1,,𝒫¯L satisfy:

  1. 1.

    𝒫¯1 is a partition {{v}:vV} of singleton clusters, and 𝒫¯L is a partition {{V}} with a single cluster.

  2. 2.

    For each i[L1], the collection of vertex weightings {deg𝒫¯iC|C0V:C𝒫¯i+1,CVi+1} mixes simultaneously in G with congestion α.

  3. 3.

    For each i[L1], there is a flow in G with congestion β such that each vVi+1 sends deg𝒫¯i+1(v) flow and receives at most 14deg𝒫¯i(v) flow.

For each i[L], let partition i be the common refinement of partitions 𝒫¯i,,𝒫¯L, i.e.,

i={CiCL:Ci𝒫¯i,,CL𝒫¯L,CiCL}.

Then, their union 𝒞=i[L]i is a congestion-approximator with quality 48αβL2.

Note that in most natural algorithms, we have VL=V in the top layer. The rest of the section proves the theorem. As in [23], we will actually need a pseudo-congestion-approximator analogue of Theorem 16, where 𝒫¯L is not necessarily the partition {{V}}. The precise guarantees are given below. In particular, note that assumptions (2) and (3) remain unchanged.

Lemma 17.

Consider a capacitated graph G=(V,E,𝐜) with 𝐜[1,W], and let α1 and β1 be parameters. Consider a sequence of partitions 𝒫1,,𝒫L of V1,,VLV. For ease of notation, let 𝒫¯0 denote the singleton partition. For each i[L], define 𝒬i to be the induced partition of 𝒫¯i1 on VVi i.e.,

Qi={C(VVi):C𝒫¯i1,C(VVi)},

and let 𝒫¯i=𝒫i𝒬i for each i[L]. Suppose the partitions 𝒫¯1,,𝒫¯L satisfy:

  1. 1.

    𝒫¯1 is the partition {{v}:vV} of singleton clusters.

  2. 2.

    For each i[L1], the collection of vertex weightings {deg𝒫¯iC|C0V:C𝒫¯i+1,CVi+1} mixes simultaneously in G with congestion α.

  3. 3.

    For each i[L1], there is a flow in G with congestion β such that each vVi+1 sends deg𝒫¯i+1(v) flow and each vVi+1 receives at most 14deg𝒫¯i(v) flow.

For each i[L], let partition i be the common refinement of partitions 𝒫¯i,,𝒫¯L, i.e.,

i={CiCL:Ci𝒫¯i,,CL𝒫¯L,CiCL}.

Consider their union 𝒞=i[L]i. For any demand 𝐛V satisfying |𝐛(C)|δC for all C𝒞, there exists a demand 𝐛V satisfying |𝐛|deg𝒫¯L and a flow routing 𝐛𝐛 with congestion 48αβL2.

Instead of proving Theorem 16 directly, we prove Lemma 17, which is needed for the algorithm. The proof of Lemma 17 is technical and deferred to the full version of the paper. Note that Lemma 17 implies Theorem 16.

7 Building Our Congestion-Approximator

The partitioning algorithm starts with the partition 𝒫¯1={{v}:vV} of singleton clusters. The algorithm then iteratively constructs partition 𝒫¯i+1 given the current partitions 𝒫¯1,,𝒫¯i. The lemma below establishes this iterative algorithm, where we substitute L for i.

Theorem 18.

Consider a capacitated graph G=(V,E,𝐜). Suppose there exists partitions 𝒫¯1,,𝒫¯L that satisfy the following properties:

  1. 1.

    𝒫¯1 is the partition {{v}:vV} of singleton clusters.

  2. 2.

    For each i[L1], the collection of vertex weightings {deg𝒫¯iC|C0V:C𝒫¯i+1,CVi+1} mixes simultaneously in G with congestion α=O(log3(nW)).

  3. 3.

    For each i[L1], there is a flow in G with congestion β=O(1) such that each vVi+1 sends deg𝒫¯i+1(v) flow and each vVi+1 receives at most 14deg𝒫¯i(v) flow.

  4. 4.

    For each i[L1], the size of the boundaries are decreasing: δ𝒫¯i+1δ𝒫¯i/2.

Then, there is an algorithm running in O(mlog8(nW)) time that constructs a partition 𝒫¯L+1 such that properties (2), (3), and (4) hold for i=L as well.

Note that the first three properties of Theorem 18 are the same as those in Lemma 17. As suggested in Lemma 17, the new partitions will be constructed by finding a partition 𝒫L+1 of a subset VL+1V and combining it with the induced partition from 𝒫¯L on the remaining vertices VVL+1. This will be done via our faster algorithm for weak expander decompositions from Section 5. Before describing our algorithm further, we first note that L=O(log(nW)) iterations suffice to obtain a congestion-approximator.

Corollary 19.

Let G=(V,E,𝐜) be a capacitated graph with 𝐜[1,W]. There is an
O(mlog9(nW)loglog(nW)) time algorithm to construct a congestion-approximator 𝒞 of G with quality O(log5(nW)). This implies an O(mlog9(nW)loglog(nW)+mlog6(nW)/ϵ) time algorithm for (1ϵ)-approximate max flow.

In the remainder of the section, we prove Theorem 18. To do so, we apply our weak expander decomposition algorithm from Section 5, which requires us to implement Oracles 1 and 2 of Theorem 15. An approximate max flow oracle suffices to implement both of these oracles, but that is exactly the problem we are trying to solve. To resolve this, [23] observed that the pseudo-congestion-approximator is a real congestion-approximator on some modified graph. They then use the real congestion-approximator on the modified graph to obtain the required flow oracles via additional post-processing, at the loss of additional log factors. Instead, we directly show that the pseudo-congestion-approximator made up of the partitions 𝒫¯1,,𝒫¯L suffices for solving the approximate max flow instances required by the cut-matching game, with no log factor loss. This suffices for achieving properties (2) and (3) of Theorem 18 for the next iteration of our partitioning algorithm, as stated in Section 5.

7.1 Cut-Matching via a Pseudo-Congestion-Approximator

We apply our weak expander decomposition algorithm from Section 5. The main difficulty here is developing an efficient algorithm for the matching player (i.e., implementing Oracle 1), which requires solving a max flow problem (approximately). Previous work [33] shows how to convert a congestion-approximator into an approximate max flow algorithm. In this section, we build on [33] to show that our pseudo-congestion-approximator is sufficient to approximately solve our specific max flow instance arising in the cut-matching game.

We first recall the flow instance which we need to solve for the matching player. We start with a demand 𝐝=degP¯L and the starting partition 𝒜0={V}. At each iteration t of the cut-matching game, we will maintain a collection 𝒜t of disjoint subsets of V. From the cut player, we obtain sets LARA=A for each A𝒜t. We wish to solve the following flow problem guaranteeing the properties of Oracle 1. Let Gt be the graph of G with all edges between components in 𝒜t removed and all edge capacities scaled up by a factor of 2/ϕ. Add a source vertex s and a sink vertex t. For A𝒜t, we do the following: for each uLA, we add an edge (s,u) with capacity 𝐝t1(u), and, for each vRA, we add an edge (v,t) with capacity 𝐝t1(v).

To solve this flow problem, We use the following instantiation of Sherman’s algorithm [33] as stated in [21], but with the running time speedup from [17] (see Section 5 of their arXiv version), which partially routes the demand, leaving a small amount of residual demand.

Lemma 20 (Almost-Route).

Consider a graph G=(V,E,𝐜), two vertices s,tV, parameters ϵ,τ>0, and a laminar family of vertex subsets 𝒞. There is an O(mlog(n)/ϵ) time algorithm that computes either

  1. 1.

    An (s,t)-cut in G of value less than τ, or

  2. 2.

    A flow f in G routing a demand 𝐝 such that the residual demand 𝐝~=τ(𝟏s𝟏t)𝐝 satisfies
    |𝐝~(C)|ϵδC for all C𝒞.

In the setting where 𝒞 is a congestion-approximator, the residual demand can be routed via the congestion-approximator so that the flow satisfies the input demand. We show that, in our case, a pseudo-congestion-approximator also suffices to route the residual demand.

Lemma 21.

Given a laminar family of sets 𝒞 defined as in Lemma 17 for G=(V,E,𝐜), there is an algorithm running in O(mlog6(nW)loglog(nW)) time which satisfies the guarantees of Oracle 1.

With this, we have an implementation of Oracle 1 in O(mlog6(nW)loglognW) time, which we can already use to apply Theorem 14. Next, we will also implement Oracle 2, so we can apply Theorem 15.

7.2 Grafting Deleted Nodes

In this section, we will use the pseudo-congestion-approximator to solve another approximate max flow problem needed to construct the weak expander decomposition, Oracle 2 from Section 5. We are using Oracle 2 to guarantee boundary-linkedness in our weak expander decomposition and obtain the full guarantees given in Theorem 15.

Now, we restate the flow problem which we want to solve. Recall that in our setting, 𝐝T(u) is either 0 or 𝐝(u) for all uV, and ψ=Θ(1).

  • Let 𝒜T+={C𝒜T:𝐝T(C)>0} and V+=C𝒜T+C.

  • For each C𝒜T+:

    • For each uC, add Δ(u)=degC(u)+𝐝(u)𝐝T(u) source.

    • For each uC with 𝐝T(u)=𝐝(u), add sink (u)=𝐝(u)/5.

  • Remove all edges cut by 𝒜T+ from G, and scale the capacity of remaining edges by 1/ψ.

Note that this flow problem on G is the combination of independent flow problems in each component of 𝒜T+. We wish to find a fair flow-cut pair for this flow problem. In order to solve this, we first state our subroutine for one-sided fair cuts, which we prove in the full version of the paper.

Theorem 22.

Consider a graph G=(V,E,𝐜) with 𝐜[1,W], a vertex subset UV, and a vertex tU. Let 𝒞 be a laminar family of vertex subsets of V{t} of total size z, such that any demand vector 𝐛V satisfying |𝐛(C)|δC can be routed in G with congestion q in time T. There is an algorithm in time O(zlognW+ϵ1qmlog3nW+TlognW) that computes a set AU containing t and a flow f such that

  1. 1.

    δA4δU.

  2. 2.

    Each edge (u,v)A with uA,vA sends at least (1ϵ) fraction capacity of flow into A.

  3. 3.

    Each vertex vA{t} carries a net flow of zero.

In order to simulate the independent flow problems on each component of 𝒜T+, we need to define a slightly augmented graph Gflow starting from G=(V,E,𝐜), on which we will define our flow problems. Start with the graph G. For each C𝒜T+ and each edge e=(u,v) on the boundary C, we add a new “split node” xe, remove the edge (u,v), and add two edges, (u,xe) and (xe,v), each with capacity 𝐜(e). We also add a new node t, and, for each C𝒜T+, add an edge connecting every node uC satisfying 𝐝T(u)=𝐝(u) to t. This node t will represent the sink in the flow problem, and we specify the rest of the capacities next.

We set the capacities of edges (u,t) to be 𝐝(u)/5, simulating the sink in the original flow problem. Then for each vertex uV+ with 𝐝T(u)=0, add a “leaf node” from u denoted u~ and an edge (u~,u) with capacity 𝐝(u)𝐝T(u)=𝐝(u). We ensure that uU and u~U, which intuitively simulates a source of 𝐝(u) at each such uV+. In particular, note that if, for example, uA, then (1ϵ)𝐜(e) flow is sent along (u~,u) from (2) of Theorem 22. Furthermore, for each edge e=(u,v)C for C𝒜T+, we ensure that u,vU and xeU; since the capacity of (u,xe) and (xe,v) are both 𝐜(e) and these are the only edges incident to split node xe, this intuitively simulates having source of 𝐜(e) on u and v, with the additional property that no flow can be sent between components.

For technical reasons, we also connect each leaf node u~ to t with an edge (u~,t) of capacity (𝐝(u)𝐝T(u))/5=𝐝(u)/5. For similar technical reasons, we also add an edge connecting each vertex uV+ to t with an edge of capacity of 𝐝(u)/5. All flow using these edges will be removed, so our solution is a valid flow for Oracle 2, but we need these edges for routing some residual demands.

Finally, to apply Theorem 22, we define U=V{t} (not including the additional leaf nodes or split nodes). Importantly, the total capacity of the boundary is still not too much larger than the total source.

Claim 23.

We have δGflowU6Δ(V)/5.

Let 𝒞 be defined as in Lemma 17, so that 𝒞 is a pseudo-congestion-approximator. We augment 𝒞 to a congestion-approximator 𝒞flow in Gflow as follows. For each C𝒞, define C~=C{u~:uV+C}{xe:e=(u,v),u,vC} as the set with the copy u~ added (if it exists) for each uC, and split node xe added if both endpoints are in C. Now define

𝒞flow={C~:C𝒞}{{u~}:uV+}{{xe}:split node xe}.

We show that 𝒞flow has the required properties to apply Theorem 22.

Lemma 24.

𝒞flow is a laminar family of vertex subsets excluding t of total size z=O(nL) such that any demand vector 𝐛 on Gflow satisfying |𝐛(C)|δGflowC for each C𝒞flow can be routed with congestion O(αβL2) in time O(mlog4(nW)).

Lemma 25.

Assuming the conditions of Theorem 18, there is an algorithm implementing the guarantees of Oracle 2 in time O(mlog8(nW)).

7.3 Proof of Theorem 18

In this previous two subsections, we have shown how to implement Oracles 1 and 2, so we can apply Theorem 15. We restate it here for convenience:

Theorem 15 (Weak Expander Decomposition with Deletions). [Restated, see original statement.]

Suppose we have G=(V,E,𝐜), 𝐝0V, ϕ>0, ψ>0, and access to Oracle 1 with parameter 1γ1>0 and Oracle 2 with parameter γ21/10, running in time R1(n,m,γ1) and R2(n,m,γ2) per query, respectively. Let T=O(lognlognW). Then, there is an algorithm computing a partition 𝒜=𝒜𝒜× of V with the following properties:

  1. 1.

    The algorithm runs in time O(T(R1(n,m,γ1)+mT)+R2(n,m,γ2)).

  2. 2.

    𝐝(A𝒜×A)=O((γ1T+ϕlognW)𝐝(V)).

  3. 3.

    The total capacity of edges cut by 𝒜 is at most O((ϕlognW+γ1T+ψ)𝐝(V)).

  4. 4.

    {(𝐝+deg𝒜)|A:A𝒜} mix simultaneously in G with congestion T/ϕ+2ψ.

  5. 5.

    There exists a flow of congestion 2ψ such that each uA𝒜 sends deg𝒜(u) flow and each vV receives at most 𝐝(v)/4 flow.

Now, we prove Theorem 18. Choose γ1=T/1010, γ2=1/1010, ϕ=log(nW)/1010, ψ=1/1010, and define 𝐝=deg𝒫¯L. Assuming the conditions given in Theorem 18, we have given an algorithm implementing Oracle 1 in time R1(m,n,γ1)=O(mlog6(nW)loglog(nW)) and Oracle 2 in time R2(m,n,γ2)=O(mlog8(nW)) (see Lemmas 21 and 25). Hence, we can apply Theorem 15, to obtain a partition 𝒜=𝒜𝒜× of V with properties (1)–(5) in time O(mlog8(nW)loglog(nW)).

We define 𝒫L+1=𝒜, VL+1=A𝒜A, and extend 𝒫L+1 from a partition of VL+1 to a partition of V by defining 𝒬L+1={C(VVL+1):C𝒫¯L} and 𝒫¯L+1=𝒫L+1𝒬L+1. We now verify properties (2), (3), and (4) in Theorem 18. Property (2) follows by property (4) from Theorem 15. Property (3) follows from property (5) from Theorem 15. Finally, consider property (4). The capacity of edges cut by 𝒫L+1 is upper bounded by the capacity of edges cut by 𝒜 and the capacity of edges cut by 𝒬L+1 and not already cut by 𝒫L+1 is upper bounded by deg𝒫¯L(A𝒜×A)=𝐝(A𝒜×A). By properties (2) and (3) from Theorem 15, the claimed bound follows.

References

  • [1] Arpit Agarwal, Sanjeev Khanna, Huan Li, Prathamesh Patil, Chen Wang, Nathan White, and Peilin Zhong. Parallel approximate maximum flows in near-linear work and polylogarithmic depth. In Proceedings of the 2024 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 3997–4061. SIAM, 2024. doi:10.1137/1.9781611977912.140.
  • [2] Daniel Agassy, Dani Dorfman, and Haim Kaplan. Expander decomposition with fewer inter-cluster edges using a spectral cut player. In 50th International Colloquium on Automata, Languages, and Programming (ICALP 2023), pages 9:1–9:20. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2023. doi:10.4230/LIPIcs.ICALP.2023.9.
  • [3] Aaron Bernstein, Joakim Blikstad, Jason Li, Thatchaphol Saranurak, and Ta-Wei Tu. Combinatorial maximum flow via weighted push-relabel on shortcut graphs. In 2025 IEEE 66th Annual Symposium on Foundations of Computer Science (FOCS), pages 464–485, 2025. doi:10.1109/FOCS63196.2025.00026.
  • [4] Aaron Bernstein, Joakim Blikstad, Thatchaphol Saranurak, and Ta-Wei Tu. Maximum flow by augmenting paths in n2+o(1) time. In 2024 IEEE 65th Annual Symposium on Foundations of Computer Science (FOCS), pages 2056–2077. IEEE, 2024. doi:10.1109/FOCS61266.2024.00123.
  • [5] Marcin Bienkowski, Miroslaw Korzeniowski, and Harald Räcke. A practical algorithm for constructing oblivious routing schemes. In Proceedings of the Fifteenth Annual ACM Symposium on Parallelism in Algorithms and Architectures (SPAA 2023), pages 24–33, 2003. doi:10.1145/777412.777418.
  • [6] Li Chen, Rasmus Kyng, Yang Liu, Richard Peng, Maximilian Probst Gutenberg, and Sushant Sachdeva. Maximum flow and minimum-cost flow in almost-linear time. Journal of the ACM, 72(3):1–103, 2025. doi:10.1145/3728631.
  • [7] Julia Chuzhoy and Sanjeev Khanna. A faster combinatorial algorithm for maximum bipartite matching. In Proceedings of the 2024 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 2185–2235. SIAM, 2024. doi:10.1137/1.9781611977912.79.
  • [8] Julia Chuzhoy and Sanjeev Khanna. Maximum bipartite matching in n2+o(1) time via a combinatorial algorithm. In Proceedings of the 56th Annual ACM Symposium on Theory of Computing (STOC), pages 83–94, 2024. doi:10.1145/3618260.3649725.
  • [9] Samuel I Daitch and Daniel A Spielman. Faster approximate lossy generalized flow via interior point algorithms. In Proceedings of the fortieth annual ACM symposium on Theory of computing, pages 451–460, 2008. doi:10.1145/1374376.1374441.
  • [10] George B Dantzig. Application of the simplex method to a transportation problem. Activity analysis and production and allocation, 1951.
  • [11] Henry Fleischmann, George Z Li, and Jason Li. Improved directed expander decompositions. arXiv preprint arXiv:2507.09729, 2025. doi:10.48550/arXiv.2507.09729.
  • [12] Yu Gao, Yang Liu, and Richard Peng. Fully dynamic electrical flows: Sparse maxflow faster than Goldberg–Rao. SIAM Journal on Computing, pages FOCS21–85–FOCS21–156, 2021. doi:10.1137/22M1476666.
  • [13] Ralph E Gomory and Tien Chung Hu. Multi-terminal network flows. Journal of the Society for Industrial and Applied Mathematics, 9(4):551–570, 1961.
  • [14] Gramoz Goranci, Harald Räcke, Thatchaphol Saranurak, and Zihan Tan. The expander hierarchy and its applications to dynamic graph algorithms. In Proceedings of the 2021 ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 2212–2228. SIAM, 2021. doi:10.1137/1.9781611976465.132.
  • [15] Chris Harrelson, Kirsten Hildrum, and Satish Rao. A polynomial-time tree decomposition to minimize congestion. In Proceedings of the Fifteenth Annual ACM Symposium on Parallelism in Algorithms and Architectures (SPAA 2023), pages 34–43, 2003. doi:10.1145/777412.777419.
  • [16] Monika Henzinger, Robin Münk, and Harald Räcke. An improved quality hierarchical congestion approximator in near-linear time. arXiv preprint arXiv:2511.03716, 2025. doi:10.48550/arXiv.2511.03716.
  • [17] Arun Jambulapati and Kevin Tian. Revisiting area convexity: Faster box-simplex games and spectrahedral generalizations. NeurIPS, 36:57583–57596, 2023.
  • [18] Jonathan A Kelner, Yin Tat Lee, Lorenzo Orecchia, and Aaron Sidford. An almost-linear-time algorithm for approximate max flow in undirected graphs, and its multicommodity generalizations. In Proceedings of the twenty-fifth annual ACM-SIAM symposium on Discrete algorithms, pages 217–226. SIAM, 2014. doi:10.1137/1.9781611973402.16.
  • [19] Rohit Khandekar, Satish Rao, and Umesh V. Vazirani. Graph partitioning using single commodity flows. J. ACM, 56(4):19:1–19:15, 2009. doi:10.1145/1538902.1538903.
  • [20] Yin Tat Lee, Satish Rao, and Nikhil Srivastava. A new approach to computing maximum flows using electrical flows. In Proceedings of the 45th annual ACM Symposium on Theory of Computing (STOC 2013), pages 755–764, 2013. doi:10.1145/2488608.2488704.
  • [21] Jason Li and Owen Li. A simple and fast algorithm for fair cuts. In Integer Programming and Combinatorial Optimization - 26th International Conference Proceedings (IPCO 2025), volume 15620 of Lecture Notes in Computer Science, pages 400–411, 2025. doi:10.1007/978-3-031-93112-3_29.
  • [22] Jason Li, Danupon Nanongkai, Debmalya Panigrahi, and Thatchaphol Saranurak. Near-linear time approximations for cut problems via fair cuts. In Proceedings of the 2023 ACM-SIAM Symposium on Discrete Algorithms, (SODA), pages 240–275, 2023. doi:10.1137/1.9781611977554.CH10.
  • [23] Jason Li, Satish Rao, and Di Wang. Congestion-approximators from the bottom up. In Proceedings of the 2025 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 2111–2131, 2025. doi:10.1137/1.9781611978322.68.
  • [24] Aleksander Madry. Computing maximum flow with augmenting electrical flows. In 2016 IEEE 57th Annual Symposium on Foundations of Computer Science (FOCS), pages 593–602. IEEE, 2016. doi:10.1109/FOCS.2016.70.
  • [25] Lorenzo Orecchia, Leonard J Schulman, Umesh V Vazirani, and Nisheeth K Vishnoi. On partitioning graphs via single commodity flows. In Proceedings of the 40th annual ACM Symposium on Theory of Computing (STOC 2008), pages 461–470, 2008. doi:10.1145/1374376.1374442.
  • [26] Richard Peng. A note on cut-approximators and approximating undirected max flows. CoRR, 2014. arXiv:1411.7631.
  • [27] Richard Peng. Approximate undirected maximum flows in O(mpolylog(n)) time. In Proceedings of the 27th annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2016), pages 1862–1867. SIAM, 2016. doi:10.1137/1.9781611974331.CH130.
  • [28] Harald Räcke. Minimizing congestion in general networks. In 43rd Symposium on Foundations of Computer Science, FOCS 2002, Vancouver, BC, Canada, November 16-19, 2002, Proceedings, pages 43–52. IEEE Computer Society, 2002. doi:10.1109/SFCS.2002.1181881.
  • [29] Harald Räcke. Optimal hierarchical decompositions for congestion minimization in networks. In Cynthia Dwork, editor, Proceedings of the 40th Annual ACM Symposium on Theory of Computing, Victoria, British Columbia, Canada, May 17-20, 2008, pages 255–264, 2008. doi:10.1145/1374376.1374415.
  • [30] Harald Räcke, Chintan Shah, and Hanjo Täubig. Computing cut-based hierarchical decompositions in almost linear time. In Proceedings of the 25th annual ACM-SIAM Symposium on Discrete algorithms (SODA 2014), pages 227–238. SIAM, 2014. doi:10.1137/1.9781611973402.17.
  • [31] Thatchaphol Saranurak and Di Wang. Expander decomposition and pruning: Faster, stronger, and simpler. In Proceedings of the Thirtieth Annual ACM-SIAM Symposium on Discrete Algorithms, pages 2616–2635. SIAM, 2019. doi:10.1137/1.9781611975482.162.
  • [32] Jonah Sherman. Nearly maximum flows in nearly linear time. In 2013 IEEE 54th Annual Symposium on Foundations of Computer Science, pages 263–269. IEEE, 2013. doi:10.1109/FOCS.2013.36.
  • [33] Jonah Sherman. Area-convexity, regularization, and undirected multicommodity flow. In Proceedings of the 49th Annual ACM SIGACT Symposium on Theory of Computing, pages 452–460, 2017.
  • [34] Daniel Dominic Sleator and Robert Endre Tarjan. A data structure for dynamic trees. J. Comput. Syst. Sci., 26(3):362–391, 1983. doi:10.1016/0022-0000(83)90006-5.
  • [35] Daniel A Spielman and Shang-Hua Teng. Nearly linear time algorithms for preconditioning and solving symmetric, diagonally dominant linear systems. SIAM Journal on Matrix Analysis and Applications, 35(3):835–885, 2014. doi:10.1137/090771430.