Abstract 1 Introduction 2 Preliminaries 3 Expander Decomposition Algorithm 4 Heavy-Component Case 5 Open Questions References Appendix A Proof of Fact 2.1

Expander Decomposition with Almost Optimal Overhead

Nikhil Bansal ORCID University of Michigan, Ann Arbor, MI, USA    Arun Jambulapati Independent Researcher, USA    Thatchaphol Saranurak ORCID University of Michigan, Ann Arbor, MI, USA
Abstract

We present the first polynomial-time algorithm for computing a near-optimal flow-expander decomposition. Given a graph G and a parameter ϕ, our algorithm removes at most a ϕlog1+o(1)n fraction of edges so that every remaining connected component is a ϕ-flow-expander (a stronger guarantee than being a ϕ-cut-expander). This achieves overhead log1+o(1)n, nearly matching the Ω(logn) graph-theoretic lower bound that already holds for cut-expander decompositions, up to a logo(1)n factor. Prior polynomial-time algorithms required removing O(ϕlog1.5n) and O(ϕlog2n) fractions of edges to guarantee ϕ-cut-expander and ϕ-flow-expander components, respectively.

Keywords and phrases:
Graph algorithms, expander decomposition, flow expansion, sparse cuts
Category:
Track A: Algorithms, Complexity and Games
Funding:
Nikhil Bansal: Supported by NSF awards CCF-2327011 and CCF-2504995.
Arun Jambulapati: Supported by the NWO VICI grant 639.023.812 awarded to NB.
Thatchaphol Saranurak: Supported by NSF Grant CCF-2238138 and a Sloan Fellowship.
Copyright and License:
[Uncaptioned image] © Nikhil Bansal, Arun Jambulapati, and Thatchaphol Saranurak; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Graph algorithms analysis
; Theory of computation Approximation algorithms analysis
Related Version:
Full Version: https://arxiv.org/abs/2602.15015
Editors:
Sayan Bhattacharya, Danupon Nanongkai, Michael Benedikt, and Gabriele Puppis

1 Introduction

Expander decomposition is a central structural primitive in graph algorithms – where one removes a small fraction of edges from a given graph G, so that every connected component in the resulting graph has some desired expansion. This notion first appeared implicitly in property testing [23] and was defined explicitly in [31].

As many problems can be solved better on expanders, over the last two decades, expander decomposition has been used widely in approximation algorithms [11, 20, 10], fast graph algorithms [43, 32, 42, 18, 14], dynamic data structures [37, 36, 7, 25, 24, 30, 44], parallel and distributed algorithms [8, 9, 27, 13, 26], and streaming algorithms [16, 21, 15]. A lot of these works have also focussed on speeding up constructions in various models of computation, or extending the notion of expansion in various interesting ways to obtain new applications.

Edges removed vs. Expansion

A basic and natural question is to understand how many edges must be removed to achieve a desired expansion ϕ. Equivalently, given a budget on the number of edges that can be removed, what is the best achievable expansion.

Remarkably, this question is completely understood existentially – for any graph on m edges, removing O(ϕmlogn) edges always suffices. Moreover, removing Ω(ϕmlogn) edges is necessary in general. However, when restricted to polynomial time constructions of expander decompositions (which are necessary for most applications), all known results incur an additional polylogarithmic factor loss over this existential bound.

In this work, we give the first polynomial-time cut-expander and flow-expander decompositions with only an logo(1)n factor extra loss. Before describing our results formally, we review the relevant definitions, describe the cut-and-recurse framework that achieves the existential bound, and explain why current polynomial time algorithms incur additional logarithmic losses.

Cut and Flow Expander Decomposition

Let G=(V,E) be an undirected graph with n vertices and m edges. We say that G is a ϕ-cut-expander if for every subset SV, we have

|E(S,VS)|ϕmin{degG(S),degG(VS)},

where degG(S)=uSdeg(u).

Next, G is a ϕ-flow-expander if every multi-commodity demand respecting degG can be routed in G with congestion at most 1/ϕ. See Section 2 for detailed definitions.

A ϕ-(cut/flow)-expander decomposition is specified by an edge set CE such that each connected component of GC is a ϕ-(cut/flow)-expander. We say that a ϕ-(cut/flow)-expander decomposition has overhead γ if the number of removed edges |C|γϕm. The overhead γ is the main quality measure.

Flow expansion is stronger requirement than cut expansion: every ϕ-flow-expander is a ϕ-cut-expander, while every ϕ-cut-expander is only guaranteed to be an Ω(ϕ/logn)-flow expander by the well-known flow–cut gap [33]. Many flow-based applications – including all-or-nothing flow [11], edge-disjoint paths [20], flow vertex sparsifiers [17], and oblivious routing [39] – therefore require decompositions with flow expansion guarantees.

Benchmark: 𝛀(𝐥𝐨𝐠𝒏) overhead is unavoidable

As mentioned above, already for cut-expander decompositions, there is an inherent Ω(logn) lower bound on the overhead. In particular, for the n-vertex hypercube, standard isoperimetric bounds imply that if |C|m/2, then some connected component of GC is not a Ω(1/logn)-cut expander [2]. Equivalently, setting ϕ=Θ(1/logn), any ϕ-cut-expander decomposition must have overhead γ=Ω(logn). Since flow expansion implies cut expansion, the same lower bound applies to flow-expander decompositions as well. Thus, Θ(logn) is the best possible target for γ.

Cut-and-recurse and polynomial-time limitations

The most basic expander decomposition procedure is to cut and recurse: if G is already a ϕ-cut-expander, return C=. Otherwise, there exists some ϕ-sparse cut S satisfying

|E(S,VS)|ϕmin{degG(S),degG(VS)},

and we recurse on G[S] and G[VS], returning E(S,VS) and the cuts produced recursively.

So assuming that we can solve ϕ-sparse cut exactly, the above procedure, together with a standard charging argument,111For each cut (S,VS) charge |E(S,VS)| to vertices on the smaller side so that each such vertex v is charged at most ϕdeg(v). Each vertex can lie on the smaller side at most logn times, yielding total charge at most 2ϕ(logn)m and hence γ=O(logn). gives overhead γ=O(logn). Together with the hypercube lower bound above, this overhead is graph-theoretically optimal (for appropriate ϕ).

In polynomial time however, one cannot find such sparse cuts exactly. In particular, when G is not a ϕ-cut-expander, using the best known O(logn)-approximation to sparsest cut [4], we can only find an O(ϕlogn)-sparse cut. For flow expansion, the obstruction is even more fundamental: when G is not a ϕ-flow-expander, there may not even exist any o(ϕlogn)-sparse cut due to the flow–cut gap; and thus we can only find an O(ϕlogn)-sparse cut [33]. Plugging these extra losses into cut-and-recurse procedure yields, for any ϕ,

  • a ϕ-cut-expander decomposition with overhead O(log1.5n) in polynomial time, and

  • a ϕ-flow-expander decomposition with overhead O(log2n) in polynomial time.

State of the art: the long-standing gap

Surprisingly, despite extensive research on expander decomposition and its extensions, no polynomial-time algorithm is known that improves upon the overhead bounds described above. In particular, it has remained open for over two decades whether one can match the Ω(logn) existential benchmark in polynomial time, and more strongly, whether one can do so for flow-expansion.

Our result

Even though improving upon the O(logn)-approximation to sparsest cut is a major open problem, and the O(logn) flow-cut gap loss may seem inherently unavoidable, we are able to circumvent these natural barriers and match the Ω(logn) benchmark up to a logo(1)(n) factor. This holds even for flow expanders. In particular, we show the following.

Theorem 1.1.

There is a polynomial-time algorithm that, given an undirected graph G=(V,E) with n vertices and m edges and parameter ϕ, returns an edge set CE such that each connected component of GC is a ϕ-flow-expander and |C|ϕγm, where γ=O(log(n)exp(loglogn)).

Theorem 1.1 yields the first polynomial-time expander decomposition construction with optimal overhead up to a logo(1)n factor. It improves the state-of-the-art by log0.5o(1)n and log1o(1)n factors for cut-expander decompositions and flow-expander decompositions, respectively. The result also extends to capacitated graphs, the terminal version, and more general node-weighting versions; see Theorem 3.1 for the theorem in full generality.

At a high level, we adapt the recent approach of graph clustering on top of a spreading-metric LP solution in [5] – developed to obtain improved approximations for cutwidth – to the expander decomposition setting, enabling a strictly better structural tradeoff than cut-and-recurse in polynomial time. A high-level intuition of the algorithm appears in Section 3.2.

2 Preliminaries

All logs are base 2. We work with an undirected graph G=(V,E) where edges have unit capacity. For a vertex set SV, let δG(S):=E(S,VS) be the set of edges crossing the cut (S,VS).

Node-weighting

A node-weighting is a function A:V0. For SV we use the shorthand

A(S):=vSA(v),|A|:=A(V)=vVA(v).

We also use the restriction AS:V0 defined by AS(v)=A(v) if vS and AS(v)=0 otherwise, so that |AS|=A(S). The degree node-weighting is degG:V0 where degG(v) is the degree of v in G and degG(S)=vSdegG(v).

Multi-commodity Demands

A demand is a function D:(V2)0, where D(u,v) specifies how much flow must be sent between the (unordered) pair {u,v}. We say that D respects A (or is A-respecting) if for every xV,

yV{x}D(x,y)A(x).

We say that a demand D is routable in G with congestion ρ if there exists a feasible multi-commodity flow that routes each pair-demand D(u,v) in G such that the total flow on every edge eE is at most ρ (recall that edge capacities are 1). Given A, the A-product demand is the demand DA defined by

DA(u,v):=A(u)A(v)|A|for all {u,v}(V2).

Note that DA respects A, as vDA(u,v)A(u) for each u.

Cut Expansion

We recall two notions of expansion with respect to a node-weighting A and parameter ϕ>0. The weighting A is ϕ-cut-expanding in G if for every nontrivial SV,

|δG(S)|ϕmin{A(S),A(VS)}.

A set S is a ϕ-sparse cut (with respect to A) if it violates the above inequality.

Flow Expansion

The weighting A is ϕ-flow-expanding in G if every A-respecting demand is routable in G with congestion at most 1/ϕ. Fact 2.1 below shows that, upto a factor of 2, A is ϕ-flow-expanding in G iff the A-product demand DA is routable in G with congestion 1/ϕ. That is, DA is the “hardest” A-respecting demand. (The proof is given in Appendix A for completeness.)

Fact 2.1.

If the A-product demand DA is routable in G with congestion 1/ϕ, then A is (ϕ/2)-flow-expanding in G.

Expanders

Finally, G is a ϕ-flow-expander (resp., ϕ-cut-expander) if degG is ϕ-flow-expanding (resp., ϕ-cut-expanding) in G.

3 Expander Decomposition Algorithm

We now prove the following main result of the paper:

Theorem 3.1.

For any undirected graph G=(V,E), an integral node-weighting A:V0, and parameter ϕ, we can efficiently compute CE such that

  • |C|ϕ|A|log(|A|)exp(O(loglog|A|)), and

  • For each connected component U in GC, AU is ϕ-flow-expanding in G[U].

This implies Theorem 1.1 by setting A=degG.

Organization

In this section, we first describe the algorithm in Section 3.1 and give its high-level explanation in Section 3.2. Then, we prove that the algorithm is well-defined in Section 3.3. We formally prove the expansion guarantee and bound the cut size of the decomposition in Section 3.4.

3.1 Algorithm Description

Algorithm 1 uses two standard tools including the Concurrent Multi-Commodity Flow linear program and sparse neighborhood covers, described below.

Concurrent Flow Linear Program

Let D be the A-product demand where D(u,v)=A(u)A(v)A(V) for all u,v. We consider the following LPs which are dual to each other:

(Primal) (Dual)
min κ max u,vD(u,v)dist(u,v)
s.t. pefpκ eE s.t. eEe1
p:(u,v) pathsfp=D(u,v) u,v e0 eE
fp0 path p

The primal LP is the problem of finding a multi-commodity flow that routes the A-product demand D with minimum congestion. The dual LP is a relaxation of finding sparse cuts w.r.t. A (see e.g., [45]). Both LPs can be solved in polynomial time (e.g., via a compact formulation for flow LP).

Sparse Neighborhood Cover

The second tool is the standard sparse neighborhood cover. We use the formulation from [5].

Lemma 3.2 (Lemma 6 of [5]).

For any weighted graph G=(V,E), terminal set T={v1,,v|T|}V, radius parameter R, there is an efficient algorithm cluster(G,T,R) that returns a collection 𝒮={S1,,S|T|} of disjoint vertex sets where

  1. 1.

    (Cut size):S𝒮|δ(S)|O(log|T|)eEweR,

  2. 2.

    (Covering): S𝒮SvTB(v,R),

  3. 3.

    (Diameter): SiB(vi,2R) for each viT.

The first condition bounds the total cut size of all clusters S𝒮. It is very crucial that the overhead factor is O(log|T|) and not just O(logn). The second shows that all clusters cover R-radius balls around every terminal. The third implies that the weak diameter of each cluster is at most 4R. Now, consider the following algorithm.

Algorithm 1 ED(G=(V,E),A,ϕ).

3.2 High-level Explanation of the Algorithm

This section is informal: the goal is to explain how we adapt the spreading-metric clustering idea of [5] to beat the usual “cut-and-recurse” overhead in polynomial time.

From routability to a spreading metric

Algorithm 1 begins by solving the concurrent flow LP for the A-product demand D(u,v)=A(u)A(v)/|A|. If the optimum congestion κ<1/ϕ, then the A-product demand is routable with congestion 1/ϕ, and hence A is already (ϕ/2)-flow-expanding by Fact 2.1; we can safely stop.

So the interesting case is when κ1/ϕ. By LP duality, we obtain a nonnegative length function on edges such that

eEe1andu,vD(u,v)dist(u,v)1ϕ.

Equivalently, if we sample a random pair (u,v) according to the A-product distribution, then

𝔼[dist(u,v)]1ϕ|A|.

Thus, in the metric defined by the lengths , a typical pair of A-mass points is far apart: is a spreading metric for the demand.

Warm-up: why a single “good scale” would solve the problem

To see the key idea, imagine the following idealized situation. Suppose there exists a radius Δ=Θ(1/(ϕ|A|)) and a mass scale a such that for every vertex x,

aA(B(x,Δ))A(B(x,4Δ)) 2a, (1)

where B(x,r) denotes the ball of radius r around x in the -metric. Intuitively, (1) says that at the “right zoom level” Δ, every point sees about a units of A-mass nearby, and that increasing the radius by a constant factor does not suddenly swallow much more A-mass.

Now take a maximal packing net N of Δ-balls: the balls {B(x,Δ)}xN are disjoint, but the 2Δ-balls cover V.222The factor 2 for covering the whole V here is the crucial reason why our end result suffers the exp(loglog|A|) factor and does not achieve O(loglog|A|). The factor 2 is tight; there exists a metric (the projective plane) where, for every R<2Δ, the R-balls can cover only a square root fraction of the metric. By disjointness and (1), the size of the net is at most

|N||A|a.

Following the clustering step of [5], run the neighborhood cover routine from Lemma 3.2 with terminals T:=N and radius R:=2Δ, obtaining disjoint clusters 𝒮. By Lemma 3.2 the number of cut edges satisfies

S𝒮|δ(S)|O(log|N|)ee2Δϕ|A|log|A|a.

Moreover, by the diameter guarantee of Lemma 3.2, each cluster S𝒮 lies inside some ball of radius 4Δ around its terminal, so by (1) it satisfies A(S)2a. Therefore the total recursive cost on the clusters, under the standard potential ϕA()logA(), is at most

S𝒮ϕ|AS|log|AS|S𝒮ϕ|AS|log(2a)ϕ|A|loga.

Putting the two contributions together yields the telescoping expression

ϕ|A|log|A|a+ϕ|A|loga=ϕ|A|log|A|.

This is the guiding principle of the whole algorithm:

We want one clustering step whose boundary cost is log(#clusters)log(|A|/a), while ensuring each cluster has mass a, so that recursion only pays loga.

Reality: different vertices have different good scales, so we “vote” over scales

As in [5], the main difficulty is that, in general, there is no single radius Δ that satisfies (1) for all x. Instead, Algorithm 1 discretizes radii and masses into L scales: for 0iL and 1jL,

Δi:=14ϕ|A| 8i,aj:=|A|2γj, (2)

where γ=exp(loglog|A|) and L=logγlog|A|+1=O(loglog|A|). 333These parameters are chosen to optimize the various tradeoffs that arise in the analysis later.

For a fixed vertex x, consider the growth curve of ball masses as we zoom in:

A(B(x,Δ0)),A(B(x,Δ1)),,A(B(x,ΔL)).

Since A is integral, A(B(x,ΔL))1 always. On the other hand, if already A(B(x,Δ0))|A|/2, then x lies inside a very large “heavy” ball, which is handled separately in Step 3 (we discuss this case below). So in the balanced regime we may assume A(B(x,Δ0))|A|/2 for all xsupp(A).

Now define the radius scale ix of x to be the first index where the ball stops shrinking “too fast” in a logarithmic sense:

log(|A|A(B(x,Δix)))γlog(|A|A(B(x,Δix1))).

Intuitively, we keep zooming in until the “difficulty measure” log(|A|/A(B(x,Δi))) fails to increase by a factor γ in one step. Such an index must exist (and indeed ixL), because if the measure increased by a factor γ at every step, then after L steps it would exceed log|A|, forcing A(B(x,ΔL))<1, which is impossible.

Example 3.3.

Suppose that as we zoom in by a factor 8 in radius, the A-mass near x shrinks like

A(B(x,Δ0))|A|/2,A(B(x,Δ1))|A|/2γ10,A(B(x,Δ2))|A|/2γ11.

Then log(|A|/A(B(x,Δ1))) is much larger than log(|A|/A(B(x,Δ0))) by a γ10 factor, but the increase from Δ1 to Δ2 is mild (only a γ factor). Then, ix=2 is the first such “stabilization” scale.

Next define the mass scale jx by bucketing the mass at the stabilization radius:

A(B(x,Δix))(ajx,ajx1].

Observe that indeed 1jxL as calculated in Proposition 3.5.

So each xsupp(A) chooses one pair (ix,jx)[L]×[L]. We now let the vertices “vote” for their chosen pair: for each (i,j), define Vi,j:={xsupp(A)ix=i,jx=j}, and pick

(i,j):=argmax(i,j)A(Vi,j).

Since there are only L2 choices, this guarantees a large consensus class

A(Vi,j)|A|L2. (3)

You should think of Vi,j as a large set of vertices that agree on (1) the same “good zoom level” Δi, and (2) the same local mass scale aj.

The clustering step at the consensus scale

We now rerun the warm-up argument, but only using terminals from the consensus class. Let NVi,j be a maximal packing net of Δi-balls. Disjointness and the definition of j imply

|N||A|/aj.

We call cluster(G,T:=N,R:=2Δi) and obtain disjoint clusters 𝒮.

Two properties make this step useful.

(i) We cut around a nontrivial amount of A-mass. Because N is maximal, the 2Δi-balls around N cover Vi,j, and the covering guarantee of Lemma 3.2 then implies that the union of clusters V(𝒮) contains all of Vi,j. By (3), this means the recursion peels off at least |A|/L2 mass in one shot.

(ii) Each cluster is “small” in A-mass. By the diameter guarantee of Lemma 3.2, each cluster S𝒮 lies inside a ball of radius 4Δi around its terminal vN. Since v has radius scale i, the mass of a (Θ(Δi))-ball around v cannot jump too much when we expand the radius by a constant factor; combined with the fact that A(B(v,Δi))aj (by the definition of j), this yields an upper bound of the form

A(S)ajO(1).

(Section 3.4 makes this precise; the point here is that the stabilization rule defining ix is exactly what prevents a cluster of weak diameter O(Δi) from capturing much more than the local scale aj.)

Boundary accounting. Finally, Lemma 3.2 bounds the total boundary of the clusters by

S𝒮|δ(S)|O(log|N|)ee2Δiϕ|A|log|N|ϕ|A|log|A|aj.

This is exactly the “log(#clusters)” term from the warm-up. Meanwhile, since each cluster has A-mass at most ajO(1), the recursion on these clusters only pays logaj in the potential. Thus the same telescoping intuition from the ideal case survives:

(boundary)log|A|aand(recursion)logatotallog|A|.

The technical work in Sections 3.3 and 3.4 is to make the words “” precise and to keep the losses within logo(1)|A| factors (coming from the L and γ discretization).

Why we need the heavy-cluster case

The only way the “zoom until stabilization” story can fail is if we start with a vertex x whose coarsest ball already contains a constant fraction of the total mass, A(B(x,Δ0))|A|/2. In this situation there is a dense core K:=B(x,Δ0) of small -diameter containing a large fraction of A. The dual constraint u,vD(u,v)dist(u,v)1/ϕ then forces a significant amount of demand to cross any sweep cut that moves away from K. A Leighton-Rao sweep algorithm (formalized in Section 4) finds a cut SK that is O(ϕ)-sparse with respect to A. Since we only pay O(1) overhead factor in this level, we can revert to the standard cut-and-recurse step on G[S] and G[VS]. This is exactly Step 3 of Algorithm 1.

Why Seymour’s telescoping trick does not directly apply

Readers familiar with telescoping-volume arguments may wonder whether one can do even better, for example by charging each level by log(vol(parent)/vol(child)). The obstruction is that our metric is not fixed across recursion. When we recurse on an induced subgraph G[S], we re-solve the flow LP inside G[S], producing a new dual metric S that can be essentially unrelated to the restriction of . Therefore, any “-volume” potential need not be consistent: a set that looks small in the parent metric can become large again under the new metric, preventing a clean telescoping argument.

Our approach avoids this instability by telescoping with a quantity that is invariant under recursion: the true A-mass. We explicitly choose clusters so that the boundary cost depends on log(|A|/a) (how many clusters we create), while the recursive cost depends on loga (how large clusters are in true mass). Because A() does not change when we recurse, these logs add up cleanly to log|A|.

3.3 Validity of the Algorithm

First, we show that indeed the radius scale of each x is ix<L. The idea is, otherwise, A(B(x,Δi+1)) would shrink rapidly compared to A(B(x,Δi)). But even the smallest ball B(x,ΔL) has A(B(x,ΔL))1. So, this can happen only when A(B(x,Δ0))>|A|/2. But this contradicts that there is no heavy cluster from Step 3.

Proposition 3.4.

For any xsupp(A), 1ixL.

Proof.

Suppose that ix>L. Then, for all 1iL, log|A|A(B(x,Δi))>γlog|A|A(B(x,Δi1)). Thus,

log|A|A(B(x,ΔL))γLlog|A|A(B(x,Δ0)).

We have A(B(x,ΔL))1 as A is integral and A(B(x,Δ0))|A|/2, otherwise the algorithm would be in the heavy-cluster case. So,

log|A|log|A|A(B(x,ΔL)) and log|A|A(B(x,Δ0))1

and, hence,

log|A|γL.

But, the choice of γ and L, we have γL>log|A| which is a contradiction.

Proposition 3.5.

For any xsupp(A), 1jxL.

Proof.

We have

aL<1A(B(x,ΔL1))A(B(x,Δ0))|A|/2=a0

because, again, A is integral and there is no heavy cluster in Step 3. Since we assign the mass scale jx to x if A(B(x,Δix))(ajx,ajx1], the claim follows.

3.4 Correctness

We verify that the expansion guarantee in each component of GC.

Proposition 3.6.

For each connected component U in GC, AU is (ϕ/2)-flow-expanding in G[U].

Proof.

When the optimal solution of the LP is κ<1/ϕ. This means that the A-product demand is routable in G with congestion less than 1/ϕ. So, A is a ϕ/2-flow-expanding in G. The claim follows from applying this argument on each induced subgraph in the recursion. The next two lemmas bound the cut size (excluding the recursion). The heavy-cluster case is easy and we obtain an O(1)-approximate sparsest cut by closely following the technique by Leighton and Rao [33]. Thus, we defer this standard proof to Section 4.

Lemma 3.7.

|δ(S)|12ϕmin{A(S),A(VS)} and S can be found efficiently.

In the balanced case, we bound the cut size as follows.

Lemma 3.8.

S𝒮|δ(S)|c0ϕ8Lγ2|A|log|A|aj2 for some constant c0.

Proof.

For each xN, we have A(B(x,Δi))>aj since x has radius scale i and mass scale j. But the Δi-radius balls around each xN are disjoint. So |N||A|/aj. As from definition log(|A|/aj)=γj for all j, we have the bound

log|N|log|A|aj=γ2log|A|aj2. (4)

By the cut size guarantee of cluster from Lemma 3.2, we have that

S𝒮(i,j)|δ(S)| =O(log|N|)eEe2Δi
c0ϕ8Lγ2|A|log|A|aj2

for some large enough constant c0. Here, in the second line we used that eEe1, the bound in (4) and that Δi=1/(4ϕ|A|8i)1/(4ϕ|A|8L). The next two lemmas are needed for our the induction proof.

Lemma 3.9.

For each cluster S𝒮, |AS|aj2

Proof.

By the diameter bound of cluster from Lemma 3.2, SB(x,4Δi)B(x,Δi1) for some xN. By the definition of radius scale, we have

|A|A(B(x,Δi))(|A|A(B(x,Δi1)))γ.

Thus,

A(B(x,Δi1)) |A|11/γA(B(x,Δi))1/γ
|A|11/γaj11/γ
=aj2.

where the second line is because x has mass scale j. To see the last line, write a=|A|. Observe that

|A|11/γaj11/γ=a11/γa1/γ2(γj1)/γ=a2γj2=aj2.

Lemma 3.10.

A(V(𝒮))|A|/L2.

Proof.

By the covering property of cluster from Lemma 3.2, and as the Algorithm invokes Lemma 3.2 with R=2Δi, we have that

V(𝒮)=S𝒮S vNB(v,2Δi)Vi,j

where the final inclusion follows as N is a maximal packing of balls of radius Δi centered at vertices in Vi,j. The claim now follows because A(Vi,j)|A|/L2 by the choice of (i,j). Now, we are ready to conclude the bound on |C|. This would complete the proof.

Lemma 3.11.

Let C=ED(G,A,ϕ). We have |C|ϕβ(|A|)|A|log|A| where β(|A|)=c18LL2γ2=exp(O(loglog|A|) and c1 is some constant.

Proof.

There are two cases.

Heavy-component case.

Assume w.l.o.g. that A(S)|A|/2. By Lemma 3.7, we have

|C| 12ϕA(S)+|ED(G[S],AS,ϕ)|+|ED(G[VS],AVS,ϕ)|
12ϕ|AS|+ϕβ(|A|)|AS|(log|A|1)+ϕβ(|A|)|AVS|log|A|
ϕβ(|A|)|AS|log|A|+ϕβ(|A|)|AVS|log|A|
=ϕβ(|A|)|A|log|A|.

The second inequality is because A(S)|A|/2 and the third is because 12β(|A|).

Balanced case.

We have
|C| c0ϕ8Lγ2|A|log|A|aj2+S𝒮|ED(G[S],AS,ϕ)|+|ED(G[VV(𝒮)],AVV(𝒮),ϕ)| c0ϕL28Lγ2|AV(𝒮)|log|A|aj2+S𝒮ϕβ(|AS|)|AS|log|AS|+ϕβ(|AVV(𝒮)|)|AVV(𝒮)|log|AVV(𝒮)| ϕβ(|A|)|AV(𝒮)|log|A|aj2+ϕβ(|A|)|AV(𝒮)|logaj2+ϕβ(|A|)|AVV(𝒮)|log|A| =ϕβ(|A|)|A|log|A|.

The first line is by Lemma 3.8. The second line is by Lemma 3.10 and the induction hypothesis. The third line is because β(|A|)=c18LL2γ2c0L28Lγ2 and Lemma 3.9.

4 Heavy-Component Case

Throughout this section, diam(K):=maxu,vKdist(u,v) denotes the (strong) diameter of K in the shortest-path metric induced by .

Observe that the lemma below implies Lemma 3.7.

Lemma 4.1.

Let G=(V,E) be a graph with edge length and A be a node-weighting. Suppose that eEe1 and u,vD(u,v)dist(u,v)1/ϕ. Let KV be a set where A(K)A(V)/3 and diameter diam(K)14ϕ|A|. Then, there is an efficient algorithm that finds a set SK where

|δ(S)|12ϕmin{A(S),A(VS)}.

Algorithm Sweep Cut

Define π(v):=dist(v,K) and sort vertices so that π(v1)π(v2)π(vn). Let Sk={v1,,vk} Return

Sargmin1k<n|δ(Sk)|D(Sk,VSk)

where D(S,T)=sS,tTD(s,t).

Analysis

Since D respects A, we have

|δ(Sk)|min{A(Sk),A(VSk)}|δ(Sk)|D(Sk,VSk).

So, it suffices to show

min1k<n|δ(Sk)|D(Sk,VSk)12ϕ.

We have

min1k<n|δ(Sk)|D(Sk,VSk) =min1k<n|δ(Sk)||π(vk)π(vk+1)|D(Sk,VSk)|π(vk)π(vk+1)|
k<n|δ(Sk)||π(vk)π(vk+1)|k<nD(Sk,VSk)|π(vk)π(vk+1)|
=(u,v)E|π(u)π(v)|u,vD(u,v)|π(u)π(v)|. (5)

To see the last equality, for each (u,v)=(vi,vj), its total contribution to k<n|δ(Sk)||π(vk)π(vk+1)| is exactly

|π(vi)π(vi+1)|++|π(vj1)π(vj)|=|π(vi)π(vj)|.

For each demand pair D(vi,vj), its total contribution to k<nD(Sk,VSk)|π(vk)π(vk+1)| is exactly

D(vi,vj)|π(vi)π(vi+1)|++D(vi,vj)|π(vj1)π(vj)|=D(vi,vj)|π(vi)π(vj)|.

Numerator is 𝟏

We bound each term in the sum. For each edge (u,v), we have

|π(u)π(v)|=|dist(u,K)dist(v,K)|dist(u,v)uv

So

e=(u,v)E|π(u)π(v)|eEe1.

Denominator 𝟏/𝟏𝟐ϕ

Since π(v)=0 for all vK,

u,vD(u,v)|π(u)π(v)| uπ(u)D(u,K)13uπ(u)A(u). (6)

where the last inequality is by the product structure of D: D(u,K)=A(u)A(K)|A|13A(u). Next, we have

1/ϕ u,vD(u,v)dist(u,v)
u,vD(u,v)(dist(u,K)+diam(K)+dist(K,v))
2uπ(u)A(u)+u,vD(u,v)14ϕ|A|. (diam(K)14ϕ|A|,vD(u,v)A(u))

As u,vD(u,v)14ϕ|A|=1/4ϕ, plugging this above and rearranging gives

14ϕuπ(u)A(u).

Together with (6) this implies that denominator in (5) is at least 1/12ϕ. Thus we have that

min1k<n|δ(Sk)|D(Sk,VSk)12ϕ,

which completes the proof of the heavy-component case.

5 Open Questions

All-or-nothing Flow: From 𝐥𝐨𝐠𝟐𝒌 to 𝐥𝐨𝐠𝟏+𝒐(𝟏)𝒌?

In the all-or-nothing flow problem [12], we are given an undirected graph G=(V,E) with unit edge capacities and a set of k demand pairs P={(s1,t1),,(sk,tk)}. The goal is to choose a subset PP and, for each (si,ti)P, route one unit of (splittable) flow from si to ti so that the total load on every edge is at most 1. Equivalently, we seek a maximum-cardinality subset of pairs that can be routed simultaneously with congestion 1.

This problem can be viewed as a relaxation of the edge-disjoint paths (EDP) problem, where each selected commodity must be routed on a single path. All-or-nothing flow was introduced as a “nice” intermediate model that admits polylogarithmic approximation guarantees, whereas EDP with congestion 1 appears substantially harder even in very restricted graph classes [19].

The current best approximation ratio for all-or-nothing flow in general graphs is O(log2k) [11]. A key bottleneck is the O(log2k) overhead incurred by the well-linked decomposition for all-or-nothing flow. Informally, it repeatedly finds sparse cuts and recurses (in the spirit of expander decomposition), and the loss can be viewed as the product of (i) an O(logk) flow–cut gap (when there are Θ(k) terminals) and (ii) an O(logk) recursion depth.

Our new flow-expander decomposition suggests that one might be able to telescope the loss across levels of recursion and reduce the total overhead to log1+o(1)k. However, the connection is not black-box: the well-linked decomposition used for all-or-nothing flow interleaves concurrent multicommodity flow computations with maximum-throughput multicommodity flow steps, whereas flow-expander decomposition mostly only needs concurrent-flow computation at each recursive call.

Can we construct the well-linked decomposition of [11] with log1+o(1)k overhead using our technique? If so, it would immediately imply the following.

Conjecture 5.1.

There is a polynomial-time (log1+o(1)k)-approximation algorithm for the all-or-nothing flow problem.

Tree sparsifiers

Tree cut/flow sparsifiers can be viewed as a hierarchical analogue of expander decomposition and underlie many routing and graph-optimization applications, including oblivious routing [39], online multicut [3], near-linear-time approximate maximum flow [41, 38], almost-linear-time minimum-cost flow [44], and dynamic graph algorithms for connectivity and more [25].

For disjoint sets S,TV, let mincutG(S,T) be the value of a minimum cut separating S from T in G. A tree cut sparsifier for G with quality γ is a tree T (with edge capacities and V(T)V) such that for all disjoint S,TV,

mincutG(S,T)mincutT(S,T)γmincutG(S,T).

A tree flow sparsifier for G with quality γ is a tree T such that for every degG-respecting demand matrix D (i.e., uD(v,u)degG(v) for all v),

  • if D is routable in G with congestion 1, then D is routable in T with congestion 1, and

  • if D is routable in T with congestion 1, then D is routable in G with congestion at most γ.

As with cut vs. flow expansion, tree flow sparsifiers are strictly stronger: every tree flow sparsifier of quality γ is also a tree cut sparsifier of quality γ, whereas a tree cut sparsifier of quality γ only implies a tree flow sparsifier with an additional O(logn) loss in general.

The qualitative picture here mirrors expander decomposition. There is an Ω(logn) graph-theoretic lower bound (already for tree cut sparsifiers, e.g. on grids) [35, 6]. Existentially, this barrier can be matched up to lower-order factors: tree cut sparsifiers of quality O(lognloglogn) exist for every graph [40].

However, all known polynomial-time constructions lose an additional polylogarithmic factor beyond the existential bound: the best current algorithms achieve roughly O(log1.5nloglogn) for tree cut sparsifiers [40] and O(log2nloglogn) for tree flow sparsifiers [28]. Recent work [41, 29, 1] focused on faster construction time but did not lead to improved quality.

Given that our work essentially removes the analogous extra loss for flow-expander decompositions, it is natural to ask whether the same is possible for tree flow sparsifiers.

Conjecture 5.2.

There is a polynomial-time algorithm that constructs a tree flow sparsifier with quality log1+o(1)n for every n-vertex undirected graph.

Vertex and directed expander decompositions

Our results concern edge-based decompositions in undirected graphs. A very natural next step is to ask whether the same near-optimal overhead guarantees extend to (i) vertex-expander decompositions as defined in [34] and (ii) directed-expander decompositions as defined in [7, 22]. Can we obtain log1+o(1)n-overhead analogues in these settings as well?

References

  • [1] Daniel Agassy, Dani Dorfman, and Haim Kaplan. Improved tree sparsifiers in near-linear time. arXiv preprint arXiv:2511.06574, 2025. doi:10.48550/arXiv.2511.06574.
  • [2] Vedat Levi Alev, Nima Anari, Lap Chi Lau, and Shayan Oveis Gharan. Graph Clustering using Effective Resistance. In 9th Innovations in Theoretical Computer Science Conference (ITCS 2018), volume 94 of Leibniz International Proceedings in Informatics (LIPIcs), pages 41:1–41:16. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2018. doi:10.4230/LIPIcs.ITCS.2018.41.
  • [3] Noga Alon, Baruch Awerbuch, Yossi Azar, Niv Buchbinder, and Joseph Naor. A general approach to online network optimization problems. ACM Transactions on Algorithms (TALG), 2(4):640–660, 2006. doi:10.1145/1198513.1198522.
  • [4] Sanjeev Arora, Satish Rao, and Umesh Vazirani. Expander flows, geometric embeddings and graph partitioning. Journal of the ACM (JACM), 56(2):1–37, 2009. doi:10.1145/1502793.1502794.
  • [5] Nikhil Bansal, Dor Katzelnick, and Roy Schwartz. On approximating cutwidth and pathwidth. In 2024 IEEE 65th Annual Symposium on Foundations of Computer Science (FOCS), pages 713–729. IEEE, 2024. doi:10.1109/FOCS61266.2024.00051.
  • [6] Yair Bartal and Stefano Leonardi. On-line routing in all-optical networks. In International Colloquium on Automata, Languages, and Programming, pages 516–526. Springer, 1997. doi:10.1007/3-540-63165-8_207.
  • [7] Aaron Bernstein, Maximilian Probst Gutenberg, and Thatchaphol Saranurak. Deterministic decremental reachability, scc, and shortest paths via directed expanders and congestion balancing. In 2020 IEEE 61st Annual Symposium on Foundations of Computer Science (FOCS), pages 1123–1134. IEEE, 2020. doi:10.1109/FOCS46700.2020.00108.
  • [8] Yi-Jun Chang, Seth Pettie, Thatchaphol Saranurak, and Hengjie Zhang. Near-optimal distributed triangle enumeration via expander decompositions. Journal of the ACM (JACM), 68(3):1–36, 2021. doi:10.1145/3446330.
  • [9] Yi-Jun Chang and Thatchaphol Saranurak. Deterministic distributed expander decomposition and routing with applications in distributed derandomization. In 2020 IEEE 61st Annual Symposium on Foundations of Computer Science (FOCS), pages 377–388. IEEE, 2020. doi:10.1109/FOCS46700.2020.00043.
  • [10] Chandra Chekuri and Julia Chuzhoy. Polynomial bounds for the grid-minor theorem. Journal of the ACM (JACM), 63(5):1–65, 2016. doi:10.1145/2820609.
  • [11] Chandra Chekuri, Sanjeev Khanna, and F Bruce Shepherd. Multicommodity flow, well-linked terminals, and routing problems. In Proceedings of the thirty-seventh annual ACM symposium on Theory of computing, pages 183–192, 2005. doi:10.1145/1060590.1060618.
  • [12] Chandra Chekuri, Sanjeev Khanna, and F Bruce Shepherd. The all-or-nothing multicommodity flow problem. SIAM Journal on Computing, 42(4):1467–1493, 2013. doi:10.1137/100796820.
  • [13] Daoyuan Chen, Simon Meierhans, Maximilian Probst Gutenberg, and Thatchaphol Saranurak. Parallel and distributed expander decomposition: Simple, fast, and near-optimal. In Proceedings of the 2025 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 1705–1719. SIAM, 2025. doi:10.1137/1.9781611978322.53.
  • [14] 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.
  • [15] Yu Chen, Michael Kapralov, Mikhail Makarov, and Davide Mazzali. On the Streaming Complexity of Expander Decomposition. In 51st International Colloquium on Automata, Languages, and Programming (ICALP 2024), volume 297 of Leibniz International Proceedings in Informatics (LIPIcs), pages 46:1–46:20. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2024. doi:10.4230/LIPIcs.ICALP.2024.46.
  • [16] Yu Chen, Sanjeev Khanna, and Huan Li. On weighted graph sparsification by linear sketching. In 2022 IEEE 63rd Annual Symposium on Foundations of Computer Science (FOCS), pages 474–485. IEEE, 2022. doi:10.1109/FOCS54457.2022.00052.
  • [17] Julia Chuzhoy. On vertex sparsifiers with steiner nodes. In Proceedings of the forty-fourth annual ACM symposium on Theory of computing, pages 673–688, 2012. doi:10.1145/2213977.2214039.
  • [18] Julia Chuzhoy, Yu Gao, Jason Li, Danupon Nanongkai, Richard Peng, and Thatchaphol Saranurak. A deterministic algorithm for balanced cut with applications to dynamic connectivity, flows, and beyond. In 2020 IEEE 61st Annual Symposium on Foundations of Computer Science (FOCS), pages 1158–1167. IEEE, 2020. doi:10.1109/FOCS46700.2020.00111.
  • [19] Julia Chuzhoy, David HK Kim, and Rachit Nimavat. Almost polynomial hardness of node-disjoint paths in grids. In Proceedings of the 50th Annual ACM SIGACT Symposium on Theory of Computing, pages 1220–1233, 2018.
  • [20] Julia Chuzhoy and Shi Li. A polylogarithmic approximation algorithm for edge-disjoint paths with congestion 2. In 2012 IEEE 53rd Annual Symposium on Foundations of Computer Science, pages 233–242. IEEE, 2012. doi:10.1109/FOCS.2012.54.
  • [21] Arnold Filtser, Michael Kapralov, and Mikhail Makarov. Expander Decomposition in Dynamic Streams. In 14th Innovations in Theoretical Computer Science Conference (ITCS 2023), volume 251 of Leibniz International Proceedings in Informatics (LIPIcs), pages 50:1–50:13. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2023. doi:10.4230/LIPIcs.ITCS.2023.50.
  • [22] Henry Fleischmann, George Z Li, and Jason Li. Improved directed expander decompositions. arXiv preprint arXiv:2507.09729, 2025. doi:10.48550/arXiv.2507.09729.
  • [23] Oded Goldreich and Dana Ron. A sublinear bipartiteness tester for bounded degree graphs. In Proceedings of the thirtieth annual ACM Symposium on Theory of Computing, pages 289–298, 1998. doi:10.1145/276698.276767.
  • [24] Gramoz Goranci, Monika Henzinger, Danupon Nanongkai, Thatchaphol Saranurak, Mikkel Thorup, and Christian Wulff-Nilsen. Fully dynamic exact edge connectivity in sublinear time. In Proceedings of the 2023 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 70–86. SIAM, 2023. doi:10.1137/1.9781611977554.CH3.
  • [25] 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.
  • [26] Bernhard Haeupler, Yonggang Jiang, Yaowei Long, Thatchaphol Saranurak, and Shengzhe Wang. Parallel (1+ϵ)-approximate multi-commodity mincost flow in almost optimal depth and work. arXiv preprint arXiv:2510.20456, 2025. doi:10.48550/arXiv.2510.20456.
  • [27] Bernhard Haeupler, Harald Räcke, and Mohsen Ghaffari. Hop-constrained expander decompositions, oblivious routing, and distributed universal optimality. In Proceedings of the 54th Annual ACM SIGACT Symposium on Theory of Computing, pages 1325–1338, 2022. doi:10.1145/3519935.3520026.
  • [28] Chris Harrelson, Kirsten Hildrum, and Satish Rao. A polynomial-time tree decomposition to minimize congestion. In Proceedings of the fifteenth annual ACM symposium on Parallel algorithms and architectures, pages 34–43, 2003. doi:10.1145/777412.777419.
  • [29] 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.
  • [30] Wenyu Jin, Xiaorui Sun, and Mikkel Thorup. Fully dynamic min-cut of superconstant size in subpolynomial time. In Proceedings of the 2024 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 2999–3026. SIAM, 2024. doi:10.1137/1.9781611977912.107.
  • [31] Ravi Kannan, Santosh Vempala, and Adrian Vetta. On clusterings: Good, bad and spectral. Journal of the ACM (JACM), 51(3):497–515, 2004. doi:10.1145/990308.990313.
  • [32] 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.
  • [33] Tom Leighton and Satish Rao. Multicommodity max-flow min-cut theorems and their use in designing approximation algorithms. Journal of the ACM (JACM), 46(6):787–832, 1999. doi:10.1145/331524.331526.
  • [34] Yaowei Long and Thatchaphol Saranurak. Near-optimal deterministic vertex-failure connectivity oracles. In 2022 IEEE 63rd Annual Symposium on Foundations of Computer Science (FOCS), pages 1002–1010. IEEE, 2022. doi:10.1109/FOCS54457.2022.00098.
  • [35] Bruce M Maggs, F Meyer auf der Heide, Berthold Vocking, and Matthias Westermann. Exploiting locality for data management in systems of limited bandwidth. In Proceedings 38th Annual Symposium on Foundations of Computer Science, pages 284–293. IEEE, 1997.
  • [36] Danupon Nanongkai, Thatchaphol Saranurak, and Christian Wulff-Nilsen. Dynamic minimum spanning forest with subpolynomial worst-case update time. In 2017 IEEE 58th Annual Symposium on Foundations of Computer Science (FOCS), pages 950–961. IEEE, 2017. doi:10.1109/FOCS.2017.92.
  • [37] Mihai Patrascu and Mikkel Thorup. Planning for fast connectivity updates. In 48th Annual IEEE Symposium on Foundations of Computer Science (FOCS’07), pages 263–271. IEEE, 2007. doi:10.1109/FOCS.2007.59.
  • [38] Richard Peng. Approximate undirected maximum flows in o(mpolylog(n)) time. In Proceedings of the twenty-seventh annual ACM-SIAM symposium on Discrete algorithms, pages 1862–1867. SIAM, 2016. doi:10.1137/1.9781611974331.CH130.
  • [39] Harald Racke. Minimizing congestion in general networks. In The 43rd Annual IEEE Symposium on Foundations of Computer Science, 2002. Proceedings., pages 43–52. IEEE, 2002.
  • [40] Harald Räcke and Chintan Shah. Improved guarantees for tree cut sparsifiers. In European Symposium on Algorithms, pages 774–785. Springer, 2014. doi:10.1007/978-3-662-44777-2_64.
  • [41] Harald Räcke, Chintan Shah, and Hanjo Täubig. Computing cut-based hierarchical decompositions in almost linear time. In Proceedings of the twenty-fifth annual ACM-SIAM symposium on Discrete algorithms, pages 227–238. SIAM, 2014. doi:10.1137/1.9781611973402.17.
  • [42] 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.
  • [43] Daniel A. Spielman and Shang-Hua Teng. Nearly-linear time algorithms for graph partitioning, graph sparsification, and solving linear systems. In Proceedings of the 36th Annual ACM Symposium on Theory of Computing (STOC), pages 81–90. ACM, 2004. doi:10.1145/1007352.1007372.
  • [44] Jan Van Den Brand, Li Chen, Rasmus Kyng, Yang P Liu, Simon Meierhans, Maximilian Probst Gutenberg, and Sushant Sachdeva. Almost-linear time algorithms for decremental graphs: Min-cost flow and more via duality. In 2024 IEEE 65th Annual Symposium on Foundations of Computer Science (FOCS), pages 2010–2032. IEEE, 2024. doi:10.1109/FOCS61266.2024.00120.
  • [45] Vijay V. Vazirani. Approximation Algorithms, volume 1 of Algorithms and Combinatorics. Springer, 2001. doi:10.1007/978-3-662-04565-7.

Appendix A Proof of Fact 2.1

Let D be any A-respecting demand. Consider routing D in the following complete graph GA with capacities given by DA as follows: for each unordered pair {x,y} and each intermediate vertex zV, send an amount D(x,y)A(z)|A| from x to z and an equal amount from z to y. This defines a feasible (fractional) two-hop routing.

Fix an (undirected) edge {x,z} in GA. The total flow sent on {x,z} is at most

yV{x}D(x,y)A(z)|A|A(x)A(z)|A|=DA(x,z),

and the same bound holds for the load contributed when x appears as the second endpoint. Thus every edge {u,v} is used with congestion at most 2 compared to its capacity DA(u,v).

Therefore, D is routable in GA with congestion 2. Composing this routing with a congestion-1/ϕ routing of DA in G yields a routing of D in G with congestion 2/ϕ, proving that A is (ϕ/2)-flow-expanding in G.