Polynomial Bounds for the Grid-Minor Theorem∗
Chandra Chekuri†

Julia Chuzhoy‡

arXiv:1305.6577v5 [cs.DS] 9 Aug 2016

August 11, 2016

Abstract
One of the key results in Robertson and Seymour’s seminal work on graph minors is the GridMinor Theorem (also called the Excluded Grid Theorem). The theorem states that for every grid
H, every graph whose treewidth is large enough relative to |V (H)| contains H as a minor. This
theorem has found many applications in graph theory and algorithms. Let f (k) denote the largest
value such that every graph of treewidth k contains a grid minor of size (f (k) × f (k)). The best
previous quantitative bound, due to recent work
p of Kawarabayashi and Kobayashi [KK12], and Leaf
and Seymour [LS15], shows that
f
(k)
=
Ω(
log k/ log log k). In contrast, the best known upper
p
bound implies that f (k) = O( k/ log k) [RST94]. In this paper we obtain the first polynomial
relationship between treewidth and grid minor size by showing that f (k) = Ω(k δ ) for some fixed
constant δ > 0, and describe a randomized algorithm, whose running time is polynomial in |V (G)|
and k, that with high probability finds a model of such a grid minor in G.

1

Introduction

The seminal work of Roberston and Seymour on graph minors makes essential use of the notions of treedecompositions and treewidth. A key structural result in their work is the Grid-Minor theorem (also
called the Excluded Grid theorem), which states that for every grid H, every graph whose treewidth is
large enough relative to |V (H)| contains H as a minor. This theorem has found many applications in
graph theory and algorithms. Let f (k) denote the largest value, such that every graph of treewidth k
contains a grid minor of size (f (k) × f (k)). The quantitative estimate for f given in the original proof
of Robertson and Seymour [RS86] was substantially improved by Robertson, Seymour and Thomas
[RST94] who showed that f (k) = Ω(log1/5 k); see [DJGT99, Die12] for a simpler proof with a slightly
weaker bound. There have been recent improvements by Kawarabayashi and
p Kobayashi [KK12], and
by Leaf and Seymour [LS15], giving the best previous bound of f (k) = Ω( log k/ log log k). On the
other hand, the known upper bounds on f are polynomial in k. It is easy to see, for example
by
√
considering the complete graph on n p
nodes, whose treewidth is n − 1, that f (k) = O( k). This
can be slightly improved to f (k) = O( k/ log k) by considering sparse random graphs (or Ω(log n)girth constant-degree expanders) [RST94]. Robertson et al. [RST94] suggest that this value may be
sufficient, and Demaine et al. [DHK09] conjecture that the bound of f (k) = Θ(k 1/3 ) is both necessary
and sufficient. It has been an important open problem to prove a polynomial relationship between a
∗

A preliminary version of this paper appeared in Proceedings of ACM STOC, 2014.
Dept. of Computer Science, University of Illinois, Urbana, IL 61801. chekuri@illinois.edu. Supported in part by
NSF grants CCF-1016684 & CCF-1319376, and by TTI Chicago during a sabbatical visit in Fall 2013.
‡
Toyota Technological Institute, Chicago, IL 60637. Email: cjulia@ttic.edu. Supported in part by NSF CAREER
grant CCF-0844872, NSF grant CCF-1318242 and Sloan Research Fellowship.
†

1

graph’s treewidth and the size of the largest grid minor in it. In this paper we prove the following
theorem, which accomplishes this goal, while also giving a polynomial-time randomized algorithm to
find a model of the grid minor. Given a function f : Z+ → Z+ , we say that f (m) = O(poly(m)), if
f (m) = O(mc ) for some constant c independent of m. Similarly, we say that f (m) = O(poly log m),
if f (m) = O(logc m) for some constant c > 0 independent of m. We use notation Ω(poly m) and
Ω(poly log m) analogously.
Theorem 1.1 There is a universal constant δ > 0, such that for every
 k ≥ 1, every graph G of
δ
δ
treewidth k contains a grid of size Ω(k / poly log k) × Ω(k / poly log k) as a minor. Moreover, there
is a randomized algorithm that, given G, with high probability outputs a model of the grid minor in
time O(poly(|V (G)| · k)).
Our proof shows that δ is at least 1/98 in the preceding theorem. We note that the relationship
between grid minors and treewidth is much tighter in some special classes of graphs. In planar graphs
f (k) = Ω(k) [RST94]; a similar linear relationship is known in bounded-genus graphs [DFHT05] and
graphs that exclude a fixed graph H as a minor [DH08] (see also [KK12]).
We obtain the following corollary by observing that every simple planar graph H is a minor of a grid
of size (k 0 × k 0 ), for k 0 = O(|V (H)|) [RST94].
Corollary 1.2 There is a universal constant c such that, if G excludes a simple planar graph H as a
minor, then the treewidth of G is O(|V (H)|c ).
The Grid-Minor Theorem has several important applications in graph theory and algorithms, and
also in proving lower bounds. The quantitative bounds in some of these applications can be directly
improved by our main theorem. We anticipate that there will be other applications for our main
theorem, and also for the algorithmic and graph-theoretic tools that we develop here.
Our proof and algorithm are based on a combinatorial object, called a path-of-sets system that we
informally describe now; see Figure 1. A path-of-sets system of width w and length ` consists of a
collection of ` disjoint sets of nodes S1 , . . . , S` together with collections of paths P1 , . . . , P`−1 that
are disjoint, which connect the sets in a path-like fashion. The number of paths in each set Pi is w.
Moreover, for each i, the induced graph G[Si ] satisfies the following connectivity properties for the
endpoints of the paths Pi−1 and Pi (sets Ai and Bi of vertices in the figure): for every pair A ⊆ Ai ,
B ⊆ Bi of vertex subsets with |A| = |B|, there are |A| node-disjoint paths connecting A to B in G[Si ].

P1
S1

P2
S2

Pr−1

Pi

Pi−1
...

...

Si
Ai

Sr

Bi

Figure
S`−1 1: A path-of-sets system of width w and lengthS`.` Each set Pi contains w paths. All paths in
i=1 Si .
i=1 Pi are node-disjoint and internally disjoint from
Given a path-of-sets system of width w and length w, we can efficiently find a model of a grid minor
of size Ω(w1/2 ) × Ω(w1/2 ) in G, slightly strengthening a similar recent result of Leaf and Seymour
[LS15], who use a related combinatorial object that they call a (w, `)-grill. Our main contribution
2

is to show that there is a randomized algorithm, that, given a graph G of treewidth k, with high
probability constructs a path-of-sets system of width w and length w in G, if wc ≤ O(k/polylog(k)),
where c is a fixed constant. The running time of the algorithm is polynomial in |V (G)| and k. The
central ideas for the construction build upon and extend recent work on approximation algorithms for
the Maximum Edge-Disjoint Paths problem with constant congestion [Chu12, CL12], and connections
to treewidth [CE13, CC13]. In order to construct the path-of-sets system, we use a closely related
object, called a tree-of-sets system. The definition of the tree-of-sets system is very similar to the
definition of the path-of-sets system, except that, instead of connecting the clusters Si into a single
long path, we connect them into a tree whose maximum vertex degree is at most 3. We extend and
strengthen the results of [Chu12, CL12, CE13], by showing an efficient randomized algorithm, that,
given a graph of treewidth k, with high probability constructs a large tree-of-sets system. We then
show how to construct a large path-of-sets system, given a large tree-of-sets system. We believe that
the tree-of-sets system is an interesting combinatorial object of independent interest and hope that
future work will yield simpler and faster algorithms for constructing it, as well as improved parameters.
This could lead to improvements in algorithms for related routing problems.
Subsequent Work. Building on this work, the authors recently showed in [CC15] an efficient randomized algorithm that, given any graph G of treewidth k, with high probability produces a topological minor H of G (called a treewidth sparsifier ), whose treewidth is Ω(k/ poly log k), maximum vertex
degree is 3, and |V (H)| = O(k 4 poly log k).
More recently, Chuzhoy [Chu15] has improved our bound on δ in Theorem 1.1, proving the theorem
for δ = 1/36, using a different construction of the path-of-sets system. By combining some results and
techniques from this work with this new construction, she further improved the constant δ to 1/19.
Her results use the treewidth sparsifier from [CC15] as a starting point. We note that her proof is
non-constructive, and does not provide an algorithm to find a model of the grid minor (though it is
likely that it can be turned into an algorithm whose running time is polynomial in n and exponential
in k).

2

Preliminaries

In this paper we use the term “efficient algorithm” to refer to a (possibly randomized) algorithm that
runs in time polynomial in the length of its input.
All graphs in this paper are finite, and they do not have loops. We say that a graph is simple to
indicate that it does not have parallel edges; otherwise, parallel edges are allowed. Given a graph
G = (V, E) and a set A ⊆ V of its vertices, we denote by outG (A) the set of all edges with exactly one
endpoint in A and by EG (A) the set of all edges with both endpoints in A. For disjoint sets of vertices
A and B, the set of edges with one endpoint in A and the other in B is denoted by EG (A, B). For a
vertex v ∈ V , we denote the degree of v by dG (v). We may omit the subscript G if it is clear from the
context. Given a set P of paths in G, we denote by V (P) the set of all vertices participating in paths
in P, and similarly E(P) is the set of all edges that participate in paths in P. We sometimes refer
to sets of vertices as clusters. All logarithms are to the base of 2. We say that an event E holds with
high probability, if the probability of E is at least 1 − 1/nc for some constant c > 1, where n is the
cardinality of vertex set of the graph in question. We use the following simple claims several times.
Claim
P2.1 There is an efficient algorithm, that, given a set {x1 , . . . , xn } of non-negative integers,
with
i xi = N , and
P
P xi ≤ 2N/3 for all i, computes a partition (A, B) of {1, . . . , n}, such that
x
≥
N/3
and
i
i∈A
i∈B xi ≥ N/3.
3

Proof: We assume without loss of generality that
Px1 ≥ x2 ≥
P· · · ≥ xn , and process the integers in
this order. When xi is processed, we add P
i to A if Pj∈A xj ≤ j∈B xj , and we add it to B otherwise.
We claim that at the end of this process, i∈A xi , i∈B xi ≥ N/3. Indeed, 1 is always added to A. If
if x1 ≥ N/3, then,P
since x1 ≤P
2N/3, it is easy to see that both subsets of integers sum up to at least
N/3. Otherwise, | i∈A xi − i∈B xi | ≤ maxi {xi } ≤ x1 ≤ N/3.
Claim 2.2 Let T be a rooted tree, and `, p ≥ 1 integers, such that |V (T )| ≥ `p. Then either T has at
least ` leaves, or there is a root-to-leaf path containing at least p vertices in T .
Proof: Suppose T has fewer than ` leaves, and each root-to-leaf path has fewer than p vertices. Then,
since every node belongs to some root-to-leaf path of T , |V (T )| < `p, contradicting our assumption.
The treewidth of a graph G = (V, E) is typically defined via tree-decompositions. A tree-decomposition
of a graph G consists of a tree T = (V (T ), E(T )) and a collection of vertex sets {Xv ⊆ V }v∈V (T ) called
bags, such that the following two properties are satisfied: (i) for each edge (a, b) ∈ E, there is some
node v ∈ V (T ) with both a, b ∈ Xv and (ii) for each vertex a ∈ V , the set of all nodes of T whose bags
contain a induces a non-empty (connected) subtree of T . The width of a given tree-decomposition is
maxv∈V (T ) |Xv |−1, and the treewidth of a graph G, denoted by tw(G), is the width of a minimum-width
tree-decomposition of G.
We say that a simple graph H is a minor of a graph G, if H can be obtained from G by a sequence of
edge deletion, vertex deletion, and edge contraction operations. Equivalently, a simple graph H is a
minor of G if there is a map ϕ, assigning to each vertex v ∈ V (H) a subset ϕ(v) of vertices of G, and
to each edge e = (u, v) ∈ E(H) a path ϕ(e) connecting a vertex of ϕ(u) to a vertex of ϕ(v), such that:
• For every vertex v ∈ V (H), the subgraph of G induced by ϕ(v) is connected;
• If u, v ∈ V (H) and u 6= v, then ϕ(u) ∩ ϕ(v) = ∅; and
• The paths
in set {ϕ(e) | e ∈ E(H)} are internally node-disjoint, and they are internally disjoint
S
from v∈V (H) ϕ(v).
A map ϕ satisfying these conditions is called a model of H in G. (We note that this definition is
slightly different from the standard one, that requires that for each e ∈ E(H), path ϕ(e) consists of a
single edge; but it is immediate to verify that both definitions are equivalent, and it is more convenient
for us to work with the above definition.) For convenience, we may sometimes refer to the map ϕ
as the embedding of H into G, and specifically to ϕ(v) and ϕ(e) as the embeddings of the vertex
v ∈ V (H) and the edge e ∈ E(H), respectively.
The (g × g)-grid is a graph, whose vertex set is: {v(i, j) | 1 ≤ i, j ≤ g}. The edge set consists of
two subsets: a set of horizontal edges E1 = {(v(i, j), v(i, j + 1)) | 1 ≤ i ≤ g; 1 ≤ j < g}; and a set of
vertical edges E2 = {(v(i, j), v(i + 1, j)) | 1 ≤ i < g; 1 ≤ j ≤ g}. The subgraph induced by E1 consists
of g disjoint paths, that we refer to as the rows of the grid ; the ith row is the row incident with v(i, 1).
Similarly, the subgraph induced by E2 consists of g disjoint paths, that we refer to as the columns
of the grid ; the jth column is the column incident with v(1, j). We say that graph G contains a
(g × g)-grid minor if some minor H of G is isomorphic to the (g × g)-grid.

2.1

Flows and Cuts

In this section we define standard single-commodity flows and discuss their relationships with the
corresponding notions of cuts. Most definitions and results from this section can be found in standard
textbooks; we refer the reader to [Sch03] for more details.
4

Let G = (V, E) be an edge-capacitated graph with c(e) > 0 denoting the capacity of edge e ∈ E.
Given two disjoint vertex subsets S, T ⊆ V , let P be the set of all paths that start at S and terminate
at T . An S–TPflow f : P → R+ is an assignment of non-negative values to paths in P. The value
of the flow
P is P ∈P f (P ). Given a flow f , for each edge e ∈ E, we define a flow through e to be:
f 0 (e) = P ∈P:e∈P f (P ). The edge-congestion of the flow is maxe∈E {f 0 (e)/c(e)}. We say that the
flow f is valid, or that it causes no edge-congestion, if its edge-congestion is at most 1. We note that
even though |P| may be exponential in |V |, there are known efficient algorithms to compute a valid
flow of a specified value F (if it exists), and to compute a flow of maximum value. Moreover, in both
cases, the number of paths in P with non-zero flow value f (P ) is guaranteed to be at most |E|. Such
flows can be computed, for example, by using an equivalent edge-based flow formulation together with
Linear Programming, and a flow-path decomposition of the resulting solution (see [Sch03] for more
details). It is also well known that if all edge capacities are integral, then whenever a valid S–T flow
of an integral value F exists in G, there is also a valid S–T flow f˜ of the same value, where f˜(P ) is
integral for all P ∈ P, and the number of paths P with f˜(P ) > 0 is at most |E|. Moreover, such a
flow can be found efficiently. Throughout the paper, whenever the edge capacities of a given graph G
are not specified, we assume that they are all unit.
A cut in a graph G is a bipartition (A, B) of its vertices, with A, B 6= ∅. We sometimes use A to
denote V \ A. The value of the cut is the total capacity of all edges in E(A, B) (if the edge capacities
of G are not specified, then the value of the cut is |E(A, B)|). We say that a cut (A, B) separates S
from T if S ⊆ A and T ⊆ B. The well-known max-flow min-cut theorem states that for a graph G
and disjoint vertex subsets S, T , the value of the maximum S–T flow in G is equal to the value of
the minimum cut separating S from T in G. Notice that if all edges of G have unit capacities, and
the value of the maximum flow from S to T is F , then the maximum number of edge-disjoint paths
connecting the vertices of S to the vertices of T is also F , and if E 0 is a minimum-cardinality set of
edges, such that G \ E 0 contains no path connecting a vertex of S to a vertex of T , then |E 0 | = F .
When S = {s} and T = {t}, then we sometimes refer to the S-T flow and S-T cut as s-t flow and s-t
cut respectively.
Given a subset P 0 ⊆ P of paths connecting vertices of S to vertices of T in G, we say that the paths in
P 0 cause edge-congestion at most η, if for every edge e ∈ E, the total number of paths in P 0 containing
e is at most η · c(e).
A variant of the S–T flow that we sometimes use is when the capacities are given on the graph vertices
and not edges. P
Such a flow f is defined exactly as before, except that now, for every vertex v ∈ V ,
we let f 0 (v) = P ∈P: f (P ), and we define the congestion of the flow to be maxv∈V {f 0 (v)/c(v)}. If
v∈P

the congestion of the flow is at most 1, then we say that it is a valid flow, or that the flow causes no
vertex-congestion. When all vertex capacities are integral, there is a maximum flow f , such that all
values f (P ) for all P ∈ P are integral. In particular, if all vertex-capacities are 1, and there is a valid
S–T flow of value F , then there are F node-disjoint paths connecting vertices of S to vertices of T ,
and this set of paths can be found efficiently.

All the definitions and results about single-commodity flows mentioned above carry over to directed
graphs as well, except that cuts are defined slightly differently. As before, a cut in G is a bipartition
(A, B) of the vertices of G. The value of the cut is the total capacity of edges connecting vertices of A
to vertices of B. The max-flow min-cut theorem remains valid in directed graphs, with this definition
of cuts. For every directed flow network, there exists a maximum S–T flow, in which for every pair
(e, e0 ) of anti-parallel edges, at most one of these edges carries non-zero flow; if all edge capacities
are integral, then there is a maximum flow that is integral and has this property. This follows from
the equivalent edge-based definition of flows. Flows in directed graphs with capacities on vertices are
defined similarly.

5

We will repeatedly use the following simple claim.
Claim 2.3 There is an efficient algorithm, that, given a bipartite graph G = (V1 , V2 , E) with maximum
vertex degree at most ∆, computes a matching E 0 ⊆ E of cardinality at least |E|/∆.
Proof: We set up a directed flow network: start with graph G, assign each of its vertices capacity 1
and direct its edges from V1 to V2 . Add a source s of infinite capacity that connects to every vertex
in V1 with a directed edge, and add a destination vertex t of infinite capacity to which every vertex
of V2 connects with a directed edge. It is immediate to see that this network has a valid s-t flow of
value |E|/∆, by sending 1/∆ flow units on each edge e ∈ E. From the integrality of flow, there is a
valid integral flow of the same value, which defines the desired matching.

2.2

Sparsest Cut

Suppose we are given a graph G = (V, E) and a subset T ⊆ V of k vertices, called terminals. Given
|E(S,S)|
a cut (S, S) in G with S ∩ T , S ∩ T =
6 ∅, the sparsity of (S, S) is ΦT (S, S) = min |S∩T
, and
|,|S∩T |}
{

ΦT (S, S) . In the
the value of the sparsest cut in G with respect to T is: ΦT (G) = min S⊆V :
S∩T ,S∩T 6=∅

sparsest cut problem, the input is a graph G with a set T of terminals, and√the goal is to find a
cut of minimum sparsity. Arora, Rao and Vazirani [ARV09] have shown an O( log k)-approximation
algorithm for the sparsest cut √
problem, where k = |T |. We use AARV to refer to their algorithm,
and we denote by βARV (k) = O( log k) its approximation factor. We will repeatedly use the following
observation.
Observation 2.4 Let G be a graph, and T ⊆ V (G) a subset of its vertices called terminals, where
|T | = k for some k > 0. Assume further that for some 0 < α ≤ 1, ΦT (G) ≥ α. Then for every pair
T 0 , T 00 ⊆ T of disjoint equal-sized subsets of terminals, there is a flow f in G, where every terminal
in T 0 sends one flow unit, every terminal in T 00 receives one flow unit, and the edge-congestion is
bounded by 1/α.
Proof: Let T 0 , T 00 ⊆ T be a pair of disjoint equal-sized sets of terminals. We construct a directed
flow network H from G, by replacing each edge of G with a pair of bi-directed edges, and setting the
capacity c(e) of each such edge e to be 1/α. We then add two special vertices to the graph: the source
s, that connects with a capacity-1 edge to every vertex of T 0 , and the destination t, to which every
vertex of T 00 connects with a capacity-1 edge. Let k 0 = |T 0 | = |T 00 |, and let f be the maximum s-t flow
in H. If the value of f is at least k 0 , then we can use f to define a flow f 0 , where every terminal in T 0
sends one flow unit, every terminal in T 00 receives one flow unit, and the edge-congestion is bounded
by 1/α (as we can assume without loss of generality that for every pair e0 , e00 of anti-parallel edges,
only one of these edges carries non-zero flow). Therefore, we assume from now on that the value of
f is less than k 0 . We will reach a contradiction by showing a cut whose sparsity with respect to T is
less than α.
Let (A0 , B 0 ) be the minimum s-t cut in H, and let E 0 be the set of all edges of H from A0 to B 0 , so
P
0
0
0
e∈E 0 c(e) < k . Let A = A \ {s} and B = B \ {t}, and assume that
P |T ∩ A| ≤ |T ∩ B| - the other
0
0
case is symmetric. Let k1 = |T ∩ A | and k2 = |T 0 ∩ B 0 |. Then e∈E 0 c(e) ≥ k2 + |EG (A, B)|/α.
Therefore, |EG (A, B)| < α(k 0 − k2 ) = αk1 = α|T 0 ∩ A| ≤ α|T ∩ A|, and the cut (A, B) has sparsity
less than α, a contradiction.

6

2.3

Linkedness and Well-Linkedness

We define the notion of linkedness and the different notions of well-linkedness that we use.
Definition. We say that a set T of vertices is α-well-linked1 in G, if for every partition (A, B) of the
vertices of G into two subsets, |E(A, B)| ≥ α · min {|A ∩ T |, |B ∩ T |}.
The following simple observation immediately follows from the definition of well-linkedness.
Observation 2.5 Let G be a graph and T ⊆ V (G) a subset of its vertices, so that T is α-well-linked
in G, for some 0 < α ≤ 1. Then:
• ΦT (G) ≥ α;
• for every subset T 0 ⊆ T , T 0 is α-well-linked in G; and
• T is α0 -well-linked in G for all 0 < α0 < α.
Definition. We say that a set T of vertices is node-well-linked in G, if for every pair (T1 , T2 ) of
equal-sized subsets of T , there is a collection P of |T1 | node-disjoint paths, connecting the vertices of
T1 to the vertices of T2 . (Note that T1 , T2 are not necessarily disjoint, and we allow paths consisting
of a single vertex).
Definition. We say that two disjoint vertex subsets A, B are linked in G if for every pair of equalsized subsets A0 ⊆ A, B 0 ⊆ B there is a set P of |A0 | = |B 0 | node-disjoint paths connecting A0 to B 0 in
G.
Our algorithm starts with a graph G of treewidth k, and then reduces its degree to poly log(k), while
preserving the treewidth to within a factor of poly log(k). As we show below, in bounded-degree
graphs, the notions of edge- and node-well-linkedness are closely related to each other, and we exploit
this connection throughout the algorithm.
Theorem 2.6 Suppose we are given a graph G with maximum vertex degree at most ∆, and two
disjoint subsets T1 , T2 of its vertices, such that T1 ∪ T2 is α-well-linked in G for some 0 < α ≤ 1, and
each one of the sets T1 , T2 is node-well-linked in G. Let T10 ( T1 , T20 ( T2 , be a pair of subsets with
α|T2 |
1|
0
0
0
|T10 | ≤ α|T
2∆ and |T2 | ≤ 2∆ . Then T1 and T2 are linked in G.
Proof: Let T = T1 ∪ T2 . We refer to the vertices of T as terminals. Denote |T1 | = κ1 , |T2 | = κ2 ,
and assume without loss of generality that κ1 ≤ κ2 . Assume for contradiction that T10 and T20 are not
1
linked in G. Then there are two sets A ⊆ T10 , B ⊆ T20 , with |A| = |B| = κ0 for some κ0 ≤ ακ
2∆ , and a
set S of κ0 − 1 vertices, separating A from B in G.

Let A0 ⊆ T1 be the set of all terminals t ∈ T1 , such that t lies in the same component of G \ S as some
vertex of A. We claim that |A0 | ≥ κ1 − κ0 . Indeed, assume otherwise, and let A00 ⊆ T1 \ A0 be a set
of κ0 vertices. Since T1 is node-well-linked in G, there is a set P of κ0 node-disjoint paths, connecting
the vertices of A to the vertices of A00 in G. At most κ0 − 1 of these paths may contain the vertices of
S, and so at least one vertex of T1 \ A0 is connected to some vertex of A in G \ S, a contradiction.
1

This notion of well-linkedness is based on edge-cuts and we distinguish it from node-well-linkedness that is directly
related to treewidth. For technical reasons it is easier to work with edge-cuts and hence we use the term well-linked to
mean edge-well-linkedness, and explicitly use the term node-well-linkedness when necessary.

7

Similarly, we let B 0 ⊆ T2 be the set of all terminals t ∈ T2 , such that t lies in the same component
of G \ S as some vertex of B. From the same arguments as above, |B 0 | ≥ κ2 − κ0 . Finally, we show
that there is some pair a ∈ A0 , b ∈ B 0 of vertices that lie in the same connected component of G \ S.
Indeed, since the terminals of T are α-well-linked in G, there is a set Q of at least κ1 − κ0 paths in
G, where each path originates at a distinct vertex of A0 and terminates at a distinct vertex of B 0 ,
and every edge of G participates in at most 1/α paths. At most (κ0 − 1)∆/α of the paths in Q may
contain the vertices of S. Since |Q| = κ1 − κ0 > (κ0 − 1)∆/α, at least one path of Q belongs to G \ S.
Therefore, there is a path in G \ S from a vertex of A to a vertex of B, a contradiction.

2.4

Boosting Well-Linkedness

Suppose we are given a graph G and a set T of vertices of G called terminals, where T is α-well-linked
in G. Boosting theorems allow us to boost the well-linkedness by selecting an appropriate subset of
the terminals, whose well-linkedness is greater than α. We start with the following simple claim, that
has been extensively used in past work to boost well-linkedness of terminals.
Claim 2.7 Suppose we are given a graph G and a set T of vertices of G, called terminals, such that
T is α-well-linked for some 0 < α < 1. Assume further that we are given a collection S of trees in G,
and for every tree T ∈ S we are given a subset λT ⊆ V (T ) ∩ T of at least d1/αe terminals, such that
for every pair T 6= T 0 of the trees, λT ∩ λT 0 = ∅. Assume further that each edge of G belongs to at
most c trees, and let T 0 ⊆ T be a subset of terminals, containing exactly one terminal from each set
λT for T ∈ S. Then T 0 is 1/(c + 1)-well-linked in G.
Proof: The proof provided here was suggested by an anonymous referee, and it is somewhat simpler
than our original proof. Let (A, B) be a partition of the vertices of G, and let TA = T 0 ∩A, TB = T 0 ∩B.
Assume without loss of generality that |TA | ≤ |TB | and denote |TA | = κ. Our goal is to show that
|E(A, B)| ≥ κ/(c + 1). Assume for contradiction that |E(A, B)| < κ/(c + 1).
Let S1 ⊆ S be the set of trees T with E(T ) ∩ E(A, B) 6= ∅. Since each edge of G belongs to at most c
trees, |S1 | < κc/(c + 1). Let SA ⊆ S be the set of all trees T with V (T ) ∩ TA 6= ∅, and define SB ⊆ S
0 = S \ S . Then |S 0 | > κ − κc/(c + 1) = κ/(c + 1), and
similarly for TB . Then |SA |, |SB | ≥ κ. Let SA
1
A
A
0 is contained in A. Similarly, let S 0 = S \ S , so |S 0 | > κ/(c + 1), and every tree in
every tree in SA
1
B
B
B
0 is contained in B.
SB

0 , and define T 0 ⊆ T ∩ B
Let TA0 ⊆ T ∩ A be the set of all terminals participating in the trees of SA
B
κ
κ
0
0
0
0
similarly for SB . Then |TA | ≥ d1/αe · |S1 | ≥ α(c+1) , and similarly |TB | ≥ α(c+1)
. From the α-welllinkedness of the terminals in T , |E(A, B)| ≥ α·min {|TA0 |, |TB0 |} ≥ κ/(c+1) must hold, a contradiction.

This claim is already sufficient to boost the well-linkedness of a given set of terminals, as follows.
Corollary 2.8 There is an efficient algorithm, that, given a connected graph G, a subset T of its
vertices, such that for some 0 < α ≤ 1, T is α-well-linked in G, and a partition
S T1 , . . . , T` of T ,
|Ti |
computes, for each 1 ≤ i ≤ ` a subset Ti0 ⊆ Ti of at least b 3d1/αe
c vertices, so that `i=1 Ti0 is 1/2-welllinked in G.
Proof: Throughout the proof, we refer to the vertices of T as terminals. For 1 ≤ i ≤ `, denote
|Ti | = κi . We start with the following simple observation.
Observation 2.9 There is an efficient algorithm to compute a collection F of trees in G, and for
every tree T ∈ F, a subset λT ⊆ V (T ) ∩ T of its vertices, such that:
8

• every edge of G belongs to at most one tree;
• for every tree T ∈ F, d1/αe ≤ |λT | ≤ 3d1/αe; and
• the sets {λT }T ∈F define a partition of T .
Proof: Let T ∗ be a spanning tree of G, that we root at some vertex r. We perform a number of
iterations, where in every iteration we delete some edges and vertices from T ∗ . For each vertex v of
the tree T ∗ , let Tv∗ denote the sub-tree rooted at v, and let w(Tv∗ ) denote the total number of terminals
in Tv∗ . We build the set F of the trees gradually. At the beginning, F = ∅. While w(Tr∗ ) > 3d1/αe,
we perform the following iteration:
• Let v be the lowest vertex in the tree T ∗ , such that w(Tv∗ ) > d1/αe.
• If w(Tv∗ ) ≤ 2d1/αe, then we add the tree Tv∗ to F, set λTv∗ = V (Tv∗ ) ∩ T , and delete all vertices
and edges of Tv∗ from the tree T ∗ .
• P
Otherwise, let u1 , . . . , uk be the children of v, and let j be the smallest index, such that
j
w(Tu∗i ) ≥ d1/αe. We add a new tree T 0 to F — a subtree of T ∗ induced by {v} ∪
Si=1
S
( ji=1 V (Tu∗i )), setting λT 0 = ji=1 (V (Tu∗i ) ∩ T ). We delete all edges of T 0 , and all vertices of
V (T 0 ) \ {v} from the tree T ∗ .
Notice that since at the beginning of the current iteration w(Tr∗ ) > 3d1/αe, at the end of the current
iteration, w(Tr∗ ) > d1/αe must hold. In the last iteration, when w(Tr∗ ) ≤ 3d1/αe, we add the tree Tr∗
to F and set λTr∗ = V (Tr∗ ) ∩ T . It is easy to verify that all conditions of the observation hold for the
final collection F of trees.
Next, we show that we can select at most one terminal from each set λT , for T ∈ F, such that enough
terminals from every subset Ti is selected.
Observation 2.10 There is an efficient algorithm that computes, for each 1 ≤ i ≤ `, a subset Ti0 ⊆ Ti
S
κi
c vertices, so that, if we denote T 0 = `i=1 Ti0 , then for every tree T ∈ F, |λT ∩T 0 | ≤ 1.
of at least b 3d1/αe
From Claim 2.7, the resulting set T 0 of terminals is 1/2-well-linked in G. It now remains to prove
Observation 2.10.
Proof: We build a node-capacitated directed flow network N , as follows. We start from a source
vertex s and a destination vertex s0 that have infinite capacity. We then add ` vertices u1 , . . . , u` , each
κi
of capacity κ0i = 3d1/αe
, and connect s to each of these vertices. Each vertex ui will represent the set
Ti of the terminals. For each terminal t ∈ T , we add a unit-capacity vertex vt to N , and, if t ∈ Ti ,
then we connect ui to vt with a directed edge.
For every tree T ∈ F, we add a unit-capacity vertex xT , that connects to the destination vertex s0
with a directed edge. Finally, for every tree T ∈ F, and for
λT , we add a directed
P`every0 terminal t ∈
0
edge (vt , xT ). We claim that there is a valid flow of value i=1 κi from s to s in N . Indeed, consider
1
flow units along this
a directed s-s0 path, and assume that the path is (s, ui , vt , xT , s0 ). We send 3d1/αe
P
path. Since for all T ∈ F, |λT | ≤ 3d1/αe, we obtain a valid s-s0 flow of value `i=1 κ0i . If we reduce
the capacity of every vertex ui , for 1 ≤ i ≤ `, to bκ0i c, we can still obtain a valid s-s0 flow of value
P`
0
i=1 bκi c, by appropriately reducing flows on some paths. Since all vertex capacities are now integral,
there is an integral flow f of the same value. We are now ready to define the set Ti0 of terminals for
each 1 ≤ i ≤ `: it contains all terminals t ∈ Ti , such that the edge (si , vt ) carries one flow unit in f .
9

κi
It is immediate to verify that |Ti0 | = bκ0i c ≥ b 3d1/αe
c, and since the capacities of all vertices {xT 0 }T 0 ∈F
S
`
0
0
are unit, if we denote by T = i=1 Ti , then for every tree T ∈ F, |λT ∩ T 0 | ≤ 1.

The above claim gives a way to boost the well-linkedness of a given set T of terminals to 1/2-welllinkedness. This type of argument has been used before extensively, usually under the name of the
“grouping technique” [CKS13, CKS05, RZ10, And10, Chu12]. However, we need a stronger result:
given a set T of terminals, that are α-well-linked in G, we would like to find a large subset T 0 ⊆ T ,
such that T 0 is node-well-linked in G. The following theorem allows us to achieve this, generalizing
a similar theorem for edge-disjoint routing in [CKS13]. The proof2 appears in the Appendix.
Theorem 2.11 Suppose we are given a connected graph G = (V, E) with maximum vertex degree at
most ∆, where ∆ ≥ 3, and a subset T of κ vertices called terminals, such that T is α-well-linked in G,
3ακ
for some 0 < α ≤ 1. Then there is a subset T 0 ⊆ T of d 10∆
e terminals, such that T 0 is node-well-linked
in G. Moreover, there is an algorithm whose running time is polynomial in |V | and κ, that computes
a subset T 0 ⊆ T of at least 32∆4 βαARV (κ) · κ terminals, such that T 0 is node-well-linked in G.
Corollary 2.12 There is an efficient algorithm, that, given a connected graph G = (V, E) with maximum vertex degree ∆ ≥ 3, a subset T of κ vertices of G that are α-well-linked in G for some 0 < α ≤ 1,
and a partition T1 , . . . , T` of T into disjoint subsets, computes, for each 1 ≤ i ≤ `, a subset Ti0 ⊆ Ti of
S`
i|
0 is node-well-linked in G; (ii)
0
b 210 ∆α·|T
c
terminals,
such
that:
(i)
for
all
1
≤
i
≤
`,
set
T
5β
i
i=1 Ti
ARV (κ)
0
0
is 1/2-well-linked in G[Si ]; and (iii) for all 1 ≤ i < j ≤ `, Ti and Tj are linked in G.
Proof: For all 1 ≤ i ≤ `, let κi = |Ti |. We use Corollary S
2.8 to compute, for each 1 ≤ i ≤ `, a subset
κi
ακi
1
Ti ⊆ Ti of at least b 3d1/αe c ≥ b 8 c terminals, such that `i=1 Ti1 is 1/2-well-linked in G.
Next, for each 1 ≤ i ≤ `, we apply Theorem 2.11 to Ti1 , to compute a subset Ti2 ⊆ Ti1 of at least

|Ti1 |
i
≥ 256∆4ακ
terminals, so that Ti2 is node-well-linked in G. We then let Ti0 ⊆ Ti2 be a
32∆4 βARV (κi )
βARV (κ)
S
|Ti2 |
i
subset of b 4∆
c ≥ b 210 ∆5ακ
c terminals. Since the terminals of `j=1 Tj1 are 1/2-well-linked in G,
βARV (κ)
from Theorem 2.6, for all 1 ≤ j < j 0 ≤ `, Tj0 and Tj00 are linked in G.

2.5

Treewidth and Well-Linkedness

The following lemma summarizes an important connection between the graph treewidth, and the size
of the largest node-well-linked set of vertices.
Lemma 2.13 [Ree97] Let k be the size of the largest node-well-linked vertex set in G. Then
tw(G) ≤ k − 1.

k
4

−1≤

Lemma 2.13 guarantees that a graph G of treewidth k contains a set X of Ω(k) vertices, that is nodewell-linked in G. Kreutzer and Tazari [KT10] give a constructive version of this lemma, obtaining a
set X with slightly weaker properties. Lemma 2.14 below rephrases, in terms convenient to us, Lemma
3.7 in [KT10]3 .
Lemma 2.14 There is an efficient algorithm, that, given a graph G of treewidth k, finds a set X of
Ω(k) vertices, such that X is α∗ = Ω(1/ log k)-well-linked in G and |X| is even. Moreover, for every
2

Some of our theorems on well-linked sets including this one appear to have alternate proofs via tangles and related
matroids from graph minor theory [RS91]; this was suggested to us by a reviewer. However, it is unclear whether the
alternate proofs yield polynomial-time algorithms.
3
Lemma 2.14 is slightly weaker than what was shown in [KT10]. We use it since it suffices for our purposes and avoids
the introduction of additional notation.

10

partition (X1 , X2 ) of X into two equal-sized subsets, there is a collection P of paths connecting every
vertex of X1 to a distinct vertex of X2 , such that every vertex of G participates in at most 1/α∗ paths
in P.

2.6

A Tree with Many Leaves or a Long 2-Path

Suppose we are given a connected n-vertex graph Z. A path P in Z is called a 2-path if every vertex
v ∈ P has degree 2 in Z. The following theorem, due to Leaf and Seymour [LS15] states that we
can find either a spanning tree with many leaves or a long 2-path in Z. For completeness, the proof
appears in the Appendix.
Theorem 2.15 There is an efficient algorithm, that, given a connected n-vertex graph Z, and integers
n
L ≥ 1, p ≥ 1 with 2L
≥ p + 5, either finds a spanning tree T with at least L leaves in Z, or a 2-path
containing at least p vertices in Z.

2.7

Re-Routing Two Sets of Disjoint Paths

Suppose we are given a directed graph Ĝ, a set U ⊆ V (Ĝ) of its vertices, and an additional vertex
s ∈ V (Ĝ) \ U . A set X of directed paths that originate at the vertices of U and terminate at s is
called a set of U -s paths. We say that the paths in X are nearly disjoint, if except for vertex s they
do not share other vertices. We need the following lemma, that was proved by Conforti, Hassin and
Ravi [CHR03]. We provide a simpler proof, suggested to us by Paul Seymour [Sey] in the Appendix.
Lemma 2.16 There is an efficient algorithm, that, given a directed graph Ĝ, two subsets U1 , U2 of
its vertices, and an additional vertex s ∈ V (Ĝ) \ (U1 ∪ U2 ), together with a set X1 of `1 nearly disjoint
U1 -s paths and a set X2 of `2 nearly disjoint U2 -s paths in Ĝ, where `1 > `2 ≥ 1, finds a set X 0 of `1
nearly-disjoint (U1 ∪ U2 )-s paths, and a partition (X10 , X20 ) of X 0 , such that |X20 | = `2 , the paths of X20
originate from U2 , and X10 ⊆ X1 .

2.8

Cut-Matching Game and Degree Reduction

We say that a graph G = (V, E) is an α-expander, if min

n
S⊆V :

0<|S|≤|V |/2

|E(S,S)|
|S|

o

≥ α. Equivalently, G is

an α-expander if ΦV (G) ≥ α.
We use the cut-matching game of Khandekar, Rao and Vazirani [KRV09]. In this game, we are given
a set V of N vertices, where N is even, and two players: a cut player, whose goal is to construct an
expander X on the set V of vertices, and a matching player, whose goal is to delay its construction.
The game is played in iterations. We start with the graph X containing the set V of vertices, and no
edges. In each iteration j, the cut player computes a bipartition (Aj , Bj ) of V into two equal-sized
sets, and the matching player returns some perfect matching Mj between the two sets. The edges of
Mj are then added to X. Khandekar, Rao and Vazirani have shown that there is a strategy for the
cut player, guaranteeing that after O(log2 N ) iterations we obtain a 12 -expander with high probability.
Subsequently, Orecchia et al. [OSVV08] have shown the following improved bound:
Theorem 2.17 ([OSVV08]) There is a randomized algorithm for the cut player, such that, no matter how the matching player plays, after γCMG (N ) = O(log2 N ) iterations, graph X is an αCMG (N ) =
Ω(log N )-expander, with constant probability.

11

2.9

Starting Point

Let G be a graph with tw(G) = k. The proof of Theorem 1.1 uses the notion of edge-well-linkedness
as well as node-well-linkedness. In order to be able to translate between both types of well-linkedness
and the treewidth, we need to reduce the maximum vertex degree of the input graph G. Using the
cut-matching game, one can reduce the maximum vertex degree to O(log3 k), while only losing a
poly log k factor in the treewidth, as was noted in [CE13] (see Remark 2.2). The following theorem,
whose proof appears in the Appendix, provides the starting point for our algorithm.
Theorem 2.18 There is an efficient randomized algorithm, that, given a graph G with tw(G) =
k, computes a subgraph G0 of G with maximum vertex degree ∆ = O(log3 k), and a subset Z of
Ω(k/ poly log k) vertices of G0 , such that Z is node-well-linked in G0 , with high probability.
We note that one can also reduce the degree to a constant with an additional polylog(k) factor loss
in the treewidth [CE13], however that result also relies on the preceding theorem as a starting point.
The constant can be made 4 with a polynomial factor loss in treewidth [KT10] which we would not
wish to lose. We also note that in [CC15] the authors have shown that the degree can be reduced to
3, and a set X of cardinality Ω(k/ poly log k) as in the theorem can be computed efficiently, but that
proof builds on the present work.

3

A Path-of-Sets System

In this section we define our main combinatorial object, called a path-of-sets system. We start with a
few definitions.
Suppose we are given a collection S = {S1 , . . . , S` } of disjoint vertex subsets of V (G). Let Si , Sj ∈ S
be two such subsets. We say that a path P = (v1 , . . . , vh ) connects Si to Sj if and only if the first
vertex v1 belongs to Si and the last vertex vh S
belongs to Sj . We say that P connects Si to Sj directly,
if additionally P does not contain vertices of S∈S S as inner vertices.
Definition. A path-of-sets system of width w and length ` consists of:
• A sequence4 S = (S1 , . . . , S` ) of ` disjoint vertex subsets of G, where for each i, G[Si ] is connected;
• For each 1 ≤ i ≤ `, two disjoint sets Ai , Bi ⊆ Si of vertices of cardinality w each, such that sets
Ai and Bi are linked in G[Si ]; and
• For each 1 ≤ i < `, a set Pi of w disjoint paths, connecting the vertices
of Bi to the vertices
S
of Ai+1 directly (thatSis, paths in Pi do not contain the vertices of S∈S S as inner vertices),
such that all paths in i Pi are mutually disjoint. (See Figure 1).
We say that it is a strong path-of-sets system, if additionally for each 1 ≤ i ≤ `, Ai is node-well-linked
in G[Si ], and so is Bi .
Notice that
a path-of-sets system is completely determined by the sequence S of vertex subsets; the
S`−1
collection i=1 Pi of paths; S
and the sets A1 ⊆ S1 , B` ⊆ S` of vertices. In the following we will denote
path-of-sets systems by (S, i Pi , A1 , B` ).
4

We also interpret S as a collection of sets for notational ease.

12

We note that Leaf and Seymour [LS15] have defined a very similar object, called a (w, `)-grill, and they
showed that the two objects are roughly equivalent. Namely, a path-of-sets system with parameters
w and ` contains a (w, `)-grill as a minor, while a (w, `)-grill contains a path-of-sets system of width
w and length Ω(`/w). They also show an efficient algorithm, that, given a (w, `)-grill with w = Ω(g 3 )
and ` = Ω(g 4 ), finds a model of the (g × g)-grid minor in the grill5 .
Our goal is to show that a graph containing a large enough path-of-sets system must also contain a
large grid minor. The following theorem is a starting point. The proof appears in Appendix.
Theorem 3.1 There is an efficient algorithm, that, given a connected graph G = (V, E), two disjoint
subsets A, B ⊆ V of its vertices with |A| = |B| = w, such that A, B are linked in G, and integers
h1 , h2 > 1 with (16h1 +10)h2 ≤ w, either returns a model of the (h1 ×h1 )-grid minor in G, or computes
a collection P of h2 node-disjoint paths, connecting vertices of A to vertices of B, such that for every
pair P, P 0 ∈ P of paths with P 6= P 0 , there is Sa path βP,P 0 ⊆ G, connecting a vertex of P to a vertex
of P 0 , where βP,P 0 is internally disjoint from P 00 ∈P V (P 00 ).
S
0
of G spanned by
Given a path-of-sets system (S, `−1
i=1 Pi , A1 , B` ) in G, we say that G is a subgraph S
0
the path-of-sets system, if G is the union of G[Si ] for all 1 ≤ i ≤ ` and all paths in `−1
i=1 Pi .
The following corollary of Theorem 3.1 allows us to obtain a grid minor from a Path-of-Sets system.
Its proof appears in Appendix.
S`−1
Pi , A1 , B` )
Corollary 3.2 There is an efficient algorithm, that, given a graph G, a path-of-sets system (S, i=1
of length ` ≥ 2 and width w in G, and integers h1 , h2 with (16h1 + 10)h2 ≤ w, either returns a model
of the (h1 × h1 )-grid minor in the subgraph G0 of G spanned by the path-of-sets system, or returns
a collection Q of h2 node-disjoint paths in G0 , connecting vertices of A1 to vertices of B` , such that
for all 1 ≤ i ≤ `, for every path Q ∈ Q, Si ∩ Q is a path, and S1 ∩ Q, S2 ∩ Q, . . . , S` ∩ Q appear on
Q in this order. Moreover, for every 1 ≤ j ≤ b`/2c, for every pair Q, Q0 ∈ Q of paths, there is a
path β2i (Q, Q0 ) ⊆ G0 [S2i ], connecting a vertex of Q to a vertex of Q0 , such that β2i (Q, Q0 ) is internally
disjoint from all paths in Q.
The following corollary completes the construction of the grid minor, slightly improving upon a similar
result of [LS15]. The proof is included in Appendix.
Corollary 3.3 There is an efficient
 algorithm, that, given a graph G, an integer g > 1 and a pathS`−1
of-sets system S, i=1 Pi , A1 , B` of width w = 16g 2 + 10g and length ` = 2g(g − 1) in G, computes
a model of the (g × g)-grid minor in G.
The main technical contribution of our paper is summarized in the following theorem.
Theorem 3.4 There are constants c0 , c00 > 0 and an efficient randomized algorithm, that, given a
0
graph G of treewidth k and integral parameters w∗ , `∗ > 2, such that k/ logc k > c00 w∗ (`∗ )48 , with high
probability returns a strong path-of-sets system of width w∗ and length `∗ in G.
Choosing w∗ , `∗ = Ω(k 1/49 / poly log k), from Theorem 3.4, we can efficiently construct a path-of-sets
system of width w∗ and length `∗ in G with high probability. From Corollary 3.3, we can
 then efficiently
construct a model of a grid minor of size Ω(k 1/98 / poly log k) × Ω(k 1/98 / poly log k) . The rest of this
paper is mostly dedicated to proving Theorem 3.4. In Section 6 we provide some extensions to this
theorem, that we believe may be useful in various applications, such as, for example, algorithms for
routing problems.
5

In fact [LS15] shows a slightly stronger result that a (w, `)-grill with w ≥ (2g + 1)(2r − 5) + 2 and ` ≥ r(2g + r − 2)
contains a (g × g)-grid minor or a bipartite-clique Kr,r as a minor. This can give slightly improved bounds on the grid
minor size if the given graph excludes bipartite-clique minors for small r.

13

4

Constructing a Path-of-Sets System

We can view a path-of-sets system as a meta-path, whose vertices v1 , . . . , v` correspond to the sets
S1 , . . . , S` , and each edge e = (vi , vi+1 ) corresponds to the collection Pi of w disjoint paths. Unfortunately, we do not know how to find such a meta-path directly (except for ` = O(log k), which is
not enough for us). As we show below, a generalization of the work of [CL12], combined with some
ideas from [CE13] gives a construction of a meta-tree of degree at most 3, instead of the meta-path.
We define the corresponding object that we call a tree-of-sets system. We start with the following
definitions.
Definition. Given a set S of vertices in graph G, the interface of S is ΓG (S) = {v ∈ S | ∃e = (u, v) ∈ outG (S)}.
We say that S has the α-bandwidth property in G if its interface ΓG (S) is α-well-linked in G[S].
Definition. A tree-of-sets system with parameters `, w, αBW (`, w ≥ 1 are integers and 0 < αBW < 1
is real-valued) consists of:
• A collection S = {S1 , . . . , S` } of ` disjoint vertex subsets of G, where for each 1 ≤ i ≤ `, G[Si ]
is connected;
• A tree T with V (T ) = {v1 , . . . , v` }, whose maximum vertex degree is at most 3;
• For each edge e = (vi , vj ) of T , a set Pe of w S
disjoint paths, connecting Si to Sj directly (that
is, paths
in
P
do
not
contain
the
vertices
of
e
S∈S S as inner vertices). Moreover, all paths in
S
P = e∈E(T ) Pe are pairwise disjoint,
0
and has the following
of G[Si ]
S additional property. Let G be the subgraph of G obtained by the union
for all Si ∈ S and e∈E(T ) P(e). Then each Si ∈ S has the αBW -bandwidth property in G0 .

We say that the graph G0 defined above is a subgraph of G spanned by the tree-of-sets system.
We remark that a tree-of-sets system is closely related to the path-of-sets system: a path-of-sets system
is a tree-of-sets system where the tree is restricted to be a path; it is easy to verify that the linkedness
property of sets Ai , Bi inside every cluster Si guarantee the 1/4-bandwidth property of Si in G0 .
The following theorem describes our construction of a tree-of-sets system. It strengthens the results
of [CL12] and its proof appears in Section 5.
Theorem 4.1 There is a constant c and an efficient randomized algorithm that takes as input (i)
a graph G of maximum degree ∆; (ii) a subset T of k vertices in G called terminals, such that T
is node-well-linked in G and the degree of every vertex in T is 1; and (iii) two integer parameters
` > 1, w > 4 log k, such that k/ log4 k > cw`19 ∆8 , and with high probability
outputs a tree-of-sets


S
1
system (S, T, e∈E(T ) Pe ) in G, with parameters w, ` and αBW = Ω `2 log1.5 k . Moreover, for all
Si ∈ S, Si ∩ T = ∅.
We prove Theorem 4.1 in the following section, and show how to construct a path-of-sets system using
this theorem here.
S
Suppose we are given a tree-of-sets system (S, T, e∈E(T ) P(e)), and an edge e ∈ E(T ), incident on
a vertex vi ∈ V (T ). We denote by δSi (e) ⊆ Si the set of all vertices of Si that serve as endpoints of
paths in P(e).
14

S
Definition. A tree-of-sets system (S, T, e∈E(T ) P(e)) with parameters w, `, αBW is a strong tree-ofsets system, if and only if for each Si ∈ S:
• for each edge e ∈ E(T ) incident to vi , the set δSi (e) ⊆ Si of vertices is node well-linked in G[Si ];
and
• for every pair e, e0 ∈ E(T ) of edges incident to vi , the sets δSi (e), δSi (e0 ) ⊆ Si of vertices are
linked in G[Si ].
The following lemma allows us to transform an arbitrary tree-of-sets system into a strong one.
Lemma 4.2 There is an efficient algorithm,
that, given a graph G with maximum vertex degree at
S
most ∆ and a tree-of-sets system (S, T, e∈E(T ) Pe ) with parameters `, w, αBW in G, outputs a strong
S
tree-of-sets system (S, T, e∈E(T ) Pe∗ ) with parameters `, w̃, 21 such that for each e ∈ E(T ) Pe∗ ⊆ Pe ,


α2BW
and w̃ = Ω ∆10 (βARV
·
w
.
2
(w))
Proof: We assume that tree T is rooted at some vertex whose degree is greater than 1. We process
the vertices of the tree T in the bottom-up fashion: that is, we only process a vertex vi after all its
descendants have been processed. Assume first that vi is a leaf vertex, and let e be the unique edge
w
incident to v in T . We use Corollary 2.12 to compute a subset δ 0 ⊆ δSi (e) of at least b 211 ∆α5BW
c
βARV (w)
0
vertices, such that the vertices of δ are node-well-linked in G[Si ]. We then discard from P(e) all paths
except those whose endpoint lies in δ 0 .
Consider now some non-leaf vertex vi of the tree, and assume that it has degree 3 (the case where
vi has degree 2 is dealt with similarly). Let e1 , e2 , e3 be the edges incident to vi in T , and for each
1 ≤ j ≤ 3, let δj = δSi (ej ); note that δj is based on the current set of paths P(e) as we process the
tree. Recall that the set δ1 ∪ δ2 ∪ δ3 of vertices is αBW -well-linked in G[Si ]. We use Corollary 2.12 to
α |δj |
compute, for each 1 ≤ j ≤ 3 a subset δj0 of at least b 211 ∆BW
c vertices, so that each of the sets δj0
5β
ARV (w)
is node-well-linked in G[Si ], every pair of such sets is linked in G[Si ], and δ10 ∪ δ20 ∪ δ30 is 1/2-well-linked
in G[Si ]. For 1 ≤ j ≤ 3 we discard paths from P(ej ) that do not have an endpoint in δj0 . Once all
vertices ofT are processed, we claim that for every edge e ∈ E(T ) the resulting set P(e) contains
α2

BW
at least Ω ∆10 (βARV
· w paths, and the new tree-of-sets system is guaranteed to be strong. The
(w))2
latter property is easy to see. For the former, consider an edge e = (vi , vi0 ) ∈ E(T ) where vi0 is
the parent of vi . Before processing vi there are w paths in P(e). After processing vi there are least
αBW |δ 0 |
w
c paths left in P(e). After processing vi0 there are at least δ 00 = b 211 ∆
c paths
δ 0 = b 211 ∆α5BW
5β
βARV (w)
ARV (w)
that remain in P(e). Paths in P(e) are only eliminated when processing vi and vi0 and this gives us
the desired claim.

The following theorem allows us to obtain a strong path-of-sets system from a strong tree-of-sets
system.
Theorem
S 4.3 There is an efficient algorithm, that, given a graph G and a strong tree-of-sets system
(S, T, e∈E(T ) Pe∗ ) with parameters `, w̃, 12 , and integers w∗ , `∗ > 1, such that (`∗ )2 ≤ ` and w̃ >
S ∗ −1
16w∗ (`∗ )2 + 1, outputs a strong path-of-sets system (S 0 , `i=1
Pi , A1 , B`∗ ) of length `∗ and width w∗ ,
0
with S ⊆ S.
Before we prove the preceding theorem we use the results stated so far to complete the proof of
Theorem 3.4.
15

Proof of Theorem 3.4. We assume that k is large enough, so, e.g. k 1/30 > c∗ log k for some large
enough constant c∗ . Given a graph G = (V, E) with treewidth k, we use Theorem 2.18 to compute a
subgraph G0 of G with maximum vertex degree ∆ = O(log3 k), and a set X of Ω(k/ poly log k) vertices,
such that X is node-well-linked in G0 . We add a new set T of |X| vertices, each of which connects to
a distinct vertex of X with an edge. For convenience, we denote this new graph by G, and |T | by k,
and we refer to the vertices of T as terminals. Clearly, the maximum vertex degree of G is at most
∆ = O(log3 k), the degree of every terminal is 1, and T is node-well-linked in G. We can now assume
k
that ∆19 log
> ĉw∗ (`∗ )48 for some large enough constant ĉ.
8
k
We set ` = (`∗ )2 and w =
Theorem 4.1. Clearly:

ĉ
c

· w∗ (`∗ )10 ∆11 log4 k, so w > 4 log k holds, where c is the constant from

cw`19 ∆8 = (ĉw∗ (`∗ )10 ∆11 log4 k) · (`∗ )38 ∆8 = ĉw∗ (`∗ )48 ∆19 log4 k.
Therefore, logk4 k > cw`19 ∆8 . We then apply Theorem 4.1 to G and T to obtain a tree-of-sets system
S
(S, T, e∈E(T ) Pe ), with parameters `, w and αBW = Ω( `2 log11.5 k ).
S
S
We use Lemma 4.2 to convert (S, T, e∈E(T ) Pe ) into a strong tree-of-set system (S, T, e∈E(T ) Pe∗ )
α2

BW
with parameters ` and w̃ = Ω( ∆10 (βARV
· w). If ĉ is chosen to be large enough, w̃ > 16w∗ (`∗ )2 + 1
(w))2
must hold. We then apply Theorem 4.3 to obtain a path-of-set system with width w∗ and length `∗ .


We now prove Theorem 4.3.
S
Proof of Theorem 4.3. Let (S, T, e∈E(T ) Pe∗ ) be the tree-of-set system with parameters ` and w̃.
For convenience, for each set S ∈ S, we denote the corresponding vertex of tree T by vS . If tree
T contains a root-to-leaf path of length at least `∗ , then we are done, as this path gives a path-ofsets system of width w̃ ≥ w∗ and length `∗ . The path-of-sets system is strong, since for every edge
e = (vi , vi0 ) ∈ E(T ), δSi (e) is node-well-linked in G[Si ].

Otherwise, since |V (T )| = ` ≥ (`∗ )2 , T must contain at least `∗ + 1 leaves (see Claim 2.2). Let L
be a subset of `∗ leaves of T , and let L ⊆ S be the collection of `∗ clusters, whose corresponding
vertices
belong to L, so L = {S ∈ S | vS ∈ L}. We next show how to build a path-of-sets system
S ∗ −1
Pi , A1 , B`∗ ), whose collection of clusters is S 0 = L.
(S 0 , `i=1

Intuitively, we would like to perform a depth-first-search (DFS) tour on our meta-tree T . This should
be done with many paths in parallel. In other words, we want to build w∗ disjoint paths, that visit
the clusters in S in the same order — the order of the tour. The clusters in L will then serve as the
sets S 0 in our final path-of-sets system, and the collection of w∗ paths that we build will be used for
the path sets Pi . In order for this to work, we need to route up to three sets of paths across clusters
S ∈ S. For example, if the vertex vS corresponding to the cluster S is a degree-3 vertex in T , then for
the DFS tour, we need to route three sets of paths across S: one set connecting the paths coming from
the parent of vS to its first child, one set connecting the paths coming back from the first child to the
second child, and one set connecting the paths coming back from the second child to the parent of vS
(see Figure 2). Even though every pair of relevant vertex subsets on the interface of S is linked, this
property only guarantees that we can route one such set of paths, which presents a major technical
difficulty in using this approach directly.
Our algorithm consists of two phases. In the first phase, we build a collection of disjoint paths,
connecting the cluster corresponding to the root of the tree T to the clusters in L, along the rootto-leaf paths in T . In the second phase, we build the path-of-sets system by exploiting the paths
16

P3

P1
P2

Figure 2: Routing paths of the DFS tour inside S
constructed in Step 1, to simulate the tree tour.

4.1

Step 1

Let G0 be the graph obtained from the union of G[S] for all S ∈ S, and the sets Pe∗ of paths, for all
e ∈ E(T ). We root T at a degree-1 vertex that does not belong to L (since T has at least `∗ + 1 leaves
and |L| = `∗ , such a vertex exists), and we let S ∗ be the cluster corresponding to the root of T . The
goal of the first step is summarized in the following theorem.
Theorem 4.4 There is an efficient algorithm to compute, for each S ∈ L, a collection QS of bw̃/`∗ c
paths in graph G0 , that have the following properties:
• Each path Q ∈ QS starts at a vertex of S ∗ and terminates at a vertex of S; its inner vertices
are disjoint from S and S ∗ .
• For each path Q ∈ QS , for each cluster S 0 ∈ S, such that vS 0 lies on the path connecting vS ∗ to
vS in T , Q ∩ G[S 0 ] is a (non-empty) path. For all other clusters S 0 ∈ S, Q ∩ G[S 0 ] = ∅.
S
• The paths in Q = S∈L QS are vertex-disjoint.
Notice that from the structure of graph G0 , if P is the path connecting vS ∗ to vS in the tree T , then
every path in QS visits every cluster S 0 with vS 0 ∈ P exactly once, in the order in which they appear
on P , and it does not visit other clusters of S.
Proof: Recall that for every vertex vS ∈ V (T ), and for each edge e incident to vS , we have defined a
subset δS (e) ⊆ S of vertices that serve as endpoints of the paths in Pe∗ . For each cluster S 0 ∈ S, let
n(S 0 ) be the number of the descendants of vS 0 in the tree T that belong to L. If S 0 6= S ∗ , then let e be
the edge of the tree T connecting vS 0 to its parent, and denote δS 0 = δS 0 (e). We process the tree in top
to bottom order, while maintaining a set Q of disjoint paths. We ensure that the following invariant
holds throughout the algorithm. Let S, S 0 ∈ S be a pair of clusters, such that vS is the parent of vS 0
in T . Assume that so far the algorithm has processed vS but it has not processed vS 0 yet. Then there
is a collection QS 0 ⊆ Q of n(S 0 ) · bw̃/`∗ c paths connecting S ∗ to S 0 in Q. Each such path does not
share vertices with S 0 , except for its last vertex, which must belong to δS 0 . Moreover, for every path
Q ∈ QS 0 , for every cluster S 00 ∈ S, such that vS 00 lies on the path connecting vS ∗ to vS 0 in T , Q ∩ G[S 00 ]
is a (non-empty) path, and for every other cluster S 00 , Q ∩ G[S 00 ] = ∅.
In the first iteration, we start with the root vertex vS ∗ . Let vS be its unique child, and let e = (vS ∗ , vS )
be the corresponding edge of T . We let QS be an arbitrary subset of n(S) · bw̃/`∗ c paths of Pe∗ , and
17

we set Q = QS . (Notice that |L| · bw̃/`∗ c ≤ w̃ = |Pe∗ |, since |L| = `∗ , so we can always find such a
subset of paths).
Consider now some non-leaf vertex vS , and assume that its parent has already been processed. We
assume that vS has two children. The case where vS has only one child is treated similarly. Let
QS ⊆ Q be the subset of paths currently connecting S ∗ to S, and let Γ0 ⊆ δS be the endpoints of these
paths that belong to S. Let vS 0 , vS 00 be the children of vS in T , and let e1 = (vS , vS 0 ), e2 = (vS , vS 00 )
be the corresponding edges of T . We need the following claim.
Claim 4.5 We can efficiently find a subset Γ1 ⊆ δS (e1 ) of n(S 0 ) · bw̃/`∗ c vertices and a subset Γ2 ⊆
δS (e2 ) of n(S 00 ) · bw̃/`∗ c vertices, together with a set R of |Γ0 | disjoint paths contained in G[S], where
each path connects a vertex of Γ0 to a distinct vertex of Γ1 ∪ Γ2 .
Proof: We build the following flow network, starting with G[S]. Set the capacity of every vertex in
S to 1. Add a sink t, and connect every vertex in Γ0 to t with a directed edge. Add a new vertex s1 of
capacity n(S 0 ) · bw̃/`∗ c and connect it with a directed edge to every vertex of δS (e1 ). Similarly, add a
new vertex s2 of capacity n(S 00 ) · bw̃/`∗ c and connect it with a directed edge to every vertex of δS (e2 ).
Finally, add a source s and connect it to s1 and s2 with directed edges. From the integrality of flow,
it is enough to show that there is an s-t flow of value |Γ0 | = n(S) · bw̃/`∗ c = (n(S 0 ) + n(S 00 )) · bw̃/`∗ c
in this flow network. Since Γ0 and δS (e1 ) are linked, there is a set P1 of |Γ0 | disjoint paths connecting
the vertices of Γ0 to the vertices of δS (e1 ). We send n(S 0 )/n(S) flow units along each such path.
Similarly, there is a set P2 of |Γ0 | disjoint paths connecting vertices of Γ0 to vertices of δS (e2 ). We
send n(S 00 )/n(S) flow units along each such path. It is immediate to verify that this gives a feasible
s-t flow of value |Γ0 | in this network.

Let P1 ⊆ P ∗ (e1 ) be the subset of paths whose endpoints belong to Γ1 , and define P2 ⊆ P ∗ (e2 ) similarly
for Γ2 . Concatenating the paths in QS , R, and P1 ∪ P2 , we obtain two collections of paths: set QS 0 of
n(S 0 ) · bw̃/`∗ c paths, connecting S ∗ to S 0 , and set QS 00 of n(S 00 ) · bw̃/`∗ c paths, connecting S ∗ to S 00 ,
that have the desired properties. We delete the paths of QS from Q, and add the paths in QS 0 and
QS 00 instead.
Once all non-leaf vertices of the tree T are processed, we obtain the desired collection of paths.

4.2

Step 2

In this step, we process the tree T in the bottom-up order, gradually building the path-of-sets system.
We will imitate the depth-first-search tour of the tree, and exploit the sets {QS | S ∈ L} of paths
constructed in Step 1 to perform this step.
For every vertex vS of the tree T , let TvS be the subtree of T rooted at vS . Define a subgraph GS of G0
to be the union of all clusters G0 [S 0 ] with vS 0 ∈ V (TvS ), and all sets Pe∗ of paths with e ∈ E(TvS ). We
also define LS ⊆ L to be the set of all descendants of vS that belong to L, and LS = {S 0 | vS 0 ∈ LS }
the collection of the corresponding clusters.
We process the tree T in a bottom to top order, maintaining the following invariant. Let vS be a vertex
of T , and let `S be the length of the longest simple path connecting vS to its descendant in T . Once
vertex vS is processed, we have computed a path-of-sets system (LS , P S ) of width w∗ and length |LS |,
that is completely contained in GS . (That is, the path-of-sets system is defined over the collection LS
of vertex subsets - all subsets S 0 ∈ L where vS 0 is a descendant of vS in T ). Let X, Y ∈ LS be the first
and the last set on the path-of-sets system. Then we also compute subsets Q0X ⊆ QX , Q0Y ⊆ QY of
paths of cardinality at least b 2`w̃∗ c − 8`S · w∗ , such that the paths in Q0X ∪ Q0Y are completely disjoint
from the paths in P S (see Figure 3). Note that QX , QY are the sets of paths computed in Step 1, so
18

S
the paths in QX ∪QY are also disjoint from S 0 ∈L S 0 , except that one endpoint of each such path must
belong to X or Y . We note that since the tree height is less than `∗ , b 2`w̃∗ c−8`S ·w∗ > b 2`w̃∗ c−8`∗ ·w∗ ≥ 0
where the latter inequality is based on the assumption that w̃ > 16w∗ (`∗ )2 + 1.

S⇤
..
.

S
Q0X

Q0Y

X

Y

Figure 3: Invariant for Step 2.
Clearly, once all vertices of the tree T are processed, we obtain the desired path-of-sets system
(L, P, A1 , B`∗ ) of length `∗ and width w∗ . We now describe the algorithm for processing each vertex.
If vS is a leaf of T , then we do nothing. If vS ∈ L, then the path-of-sets system consists of only
S = {S}, with X = Y = S. We let Q0X , Q0Y be an arbitrary pair of disjoint subsets of QS containing
b 2`w̃∗ c paths each. If vS is a degree-2 vertex of T , then we also do nothing. The path-of-sets system
is inherited from its child, and the corresponding sets Q0X , Q0Y remain unchanged. Assume now that
vS is a degree-3 vertex, and let vS 0 , vS 00 be its two children. Consider the path-of-sets systems that
0
00
we computed for its children: (LS 0 , P S ) for S 0 and (LS 00 , P S ) for S 00 . Let X1 , Y1 be the first and
the last cluster of the first system, and X2 , Y2 the first and the last cluster of the second system (see
Figure 4(a)). The idea is to connect the two path-of-sets systems into a single system, by joining one
of {X1 , Y1 } to one of {X2 , Y2 } by w∗ disjoint paths. These paths are constructed by concatenating
sub-paths of some paths from Q0X1 ∪ Q0Y1 ∪ Q0X2 ∪ Q0Y2 , and additional paths contained in G[S].

Consider the paths in Q0X1 and direct these paths from X1 towards S ∗ . For each such path Q, let vQ

be the first vertex of Q that belongs to S. Let Γ1 = vQ | Q ∈ Q0X1 . We similarly define Γ2 , Γ01 , Γ02
for Q0Y1 , Q0X2 and Q0Y2 , respectively. Denote Γ = Γ1 ∪ Γ2 , and Γ0 = Γ01 ∪ Γ02 . For simplicity, we denote
the portions of the paths in Q0X1 ∪ Q0Y1 that are contained in G[S] by P, and the portions of paths in
Q0X2 ∪ Q0Y2 that are contained in G[S] by P 0 (see Figure 4(b)). That is,

P = P ∩ G[S] | P ∈ Q0X1 ∪ Q0Y1 ;


P 0 = P ∩ G[S] | P ∈ Q0X2 ∪ Q0Y2

Our goal is to find a set R of 4w∗ disjoint paths in G[S] connecting Γ to Γ0 , such that the paths in R
intersect at most 8w∗ paths in P, and at most 8w∗ paths in P 0 . Notice that in general, since sets Γ, Γ0
are linked in G[S], we can find a set R of 4w∗ disjoint paths in G[S] connecting Γ to Γ0 , but these
paths may intersect many paths in P ∪ P 0 . We start from an arbitrary set R of 4w∗ disjoint paths
connecting Γ to Γ0 in G[S]. We next re-route these paths, using Lemma 2.16.

19

S⇤
..
.
S

Q0X1

Q0Y2
Q0Y1

X1

X2

Y1

S

P

Q0X2
Y2

R

P0
0

(b) Finding the set R of paths

(a) The beginning

S⇤
..
.
S

Q0X1
X1

Q0Y2
X2

Y1

Y2

(c) The end

Figure 4: Processing a degree-3 vertex vS .
We apply Lemma 2.16 twice. First, we unify all vertices of Γ into a single vertex s, and direct the
paths in P and the paths in R towards it. We then apply Lemma 2.16 to the two sets of paths, with P
as X1 and R as X2 . Let P̃ ⊆ P, R0 be the two resulting sets of paths. We discard from P̃ paths that
share endpoints with paths in R0 (at most |R0 | paths). Then |P̃| ≥ |P| − 2|R| = |P| − 8w∗ , and R0
contains 4w∗ disjoint paths connecting vertices in Γ to vertices in Γ0 . Moreover, the paths in P̃ ∪ R0
are completely disjoint.
Next, we unify all vertices in Γ0 into a single vertex s, and direct all paths in P 0 and R0 towards s.
We then apply Lemma 2.16 to the two resulting sets of paths, with P 0 serving as X1 and R0 serving as
X2 . Let P̃ 0 ⊆ P 0 and R00 be the two resulting sets of paths. We again discard from P̃ 0 all paths that
share an endpoint with a path in R00 – at most |R00 | paths. Then |P̃ 0 | ≥ |P 0 | − 2|R00 | ≥ |P 0 | − 8w∗ ,
and the paths in P̃ 0 ∪ R00 are completely disjoint from each other. Notice also that the paths in R00
remain disjoint from the paths in P̃, since the paths in R00 only use vertices that appear on the paths
in R0 ∪ P 0 , which are disjoint from P̃.

Consider now the final set R00 of paths. The paths in R00 connect the vertices of Γ1 ∪ Γ2 to the vertices
20

of Γ01 ∪ Γ02 . There must be two indices i, j ∈ {1, 2}, such that at least a quarter of the paths in R00
connect vertices of Γi to vertices of Γ0j . We assume without loss of generality that i = 2, j = 1, so
at least w∗ of the paths in R00 connect vertices of Γ2 to vertices of Γ01 . Let R∗ ⊆ R00 be the set
of these paths. We obtain a collection P ∗ of w∗ paths connecting Y1 to X2 , by concatenating the
prefixes of the paths in Q0Y1 , the paths in R00 , and the prefixes of the paths in Q0X2 (see Figure 4(c)).
Notice that the paths in P ∗ are completely disjoint from the two path-of-sets systems, except for their
endpoints that belong to Y1 and X2 . This gives us a new path-of-sets system, whose collection of
vertex sets is S = LS . The first and the last sets in this system are X1 and Y2 , respectively. In order
to define the new set Q0X1 , we discard from Q0X1 all paths that share vertices with paths in R00 (as
observed before, there are at most 8w∗ such paths). Since at the beginning of the current iteration,
|Q0X1 | ≥ b 2`w̃∗ c−8w∗ `S 0 ≥ b 2`w̃∗ c−8w∗ (`S −1), at the end of the current iteration, |Q0X1 | ≥ b 2`w̃∗ c−8w∗ `S
as required. The new set Q0Y2 is defined similarly. From the construction, the paths in Q0X1 ∪ Q0Y2
are completely disjoint from the paths in R∗ , and hence they are completely disjoint form all paths
participating in the new path-of-sets system.
Notice that each vertex vi ∈ L is only incident on one edge e ∈ E(T ), and from the definition of
strong tree-of-sets system, δSi (e) is node-well-linked in G[Si ]. These are the only vertices of Si that
may participate in the paths Pj of the path-of-sets system, so we obtain a strong path-of-sets system.

In order to complete the proof of Theorem 1.1, it now suffices to prove Theorem 4.1

5

Proof of Theorem 4.1

This part mostly follows the algorithm of [CL12]. The main difference is a change in the parameters,
so that the number of clusters in the tree-of-sets system is polynomial in k and not polylogarithmic,
and extending the arguments of [CL12] to handle vertex connectivity instead of edge connectivity.
We also improve and simplify some of the arguments of [CL12]. Some of the proofs and definitions
are identical to or closely
S follow those in [CL12] and are provided here for the sake of completeness.
For simplicity, if (S, T, e∈E(T ) Pe ) is a tree-of-sets system in G, with parameters w, `, αBW as in the
theorem statement, and for each Si ∈ S, Si ∩ T = ∅, then we say that it is a good tree-of-sets system.

5.1

High-Level Overview

In this subsection we provide a high-level overview and intuition for the proof of Theorem 4.1. We also
describe a non-constructive proof of the theorem, which is somewhat simpler than the constructive
proof that appears below. This high-level description oversimplifies some parts of the algorithm for the
sake of clarity. This subsection is not necessary for understanding the algorithm and is only provided
for the sake of intuition. A formal self-contained proof appears in the following subsections.
Recall that the starting point is a graph G = (V, E) and a set T ⊆ V of k terminals, such that
T is node-well-linked in G. Set T certifies that G has treewidth Ω(k). There can be portions of
the graph that are not well-connected to T and hence are irrelevant to its well-linkedness property.
We can assume without loss of generality that G is edge-minimal subject to satisfying the condition
that T is node-well-linked. However, there is no easy structural or algorithmic way to characterize
this minimality condition. For this reason, in various parts of the proof, we will delete or suppress
irrelevant portions of the graph. Recall that the goal is to prove that given G and T , there is a treeof-sets system with appropriate parameters. Loosely speaking, a tree-of-sets system with parameters

21

`, w, αBW consists of ` vertex-disjoint subgraphs with vertex sets S1 , . . . , S` stitched together with
collections of paths in a tree-like fashion. From the definition we note that each Si has the property
that G[Si ] contains a well-linked vertex set of size Ω(αBW · w/∆). Thus, we need as a building block,
a procedure that allows us to take a graph G with a well-linked set of size k and decomposes G into
` disjoint subgraphs each of which has a well-linked set of size Ω(αBW · w/∆). The fact that this can
be done was first shown in [Chu12], and stated explicitly with additional refinements in [CC13]. We
make the discussion more precise below.
The proof uses two main parameters: `0 = `2 , and w0 = w · poly(` · ∆ · log k). We say that a subset
S of vertices of G is a good router if and only if the following three conditions hold: (1) S ∩ T = ∅;
(2) S has the αBW -bandwidth property; and (3) S can send a large amount of flow (say at least w0 /2
flow units) to T with no edge-congestion in G. A collection of `0 disjoint good routers is called a good
family of routers. Roughly, the proof consists of two parts. The first part shows how to find a good
family of routers, and the second part shows that, given a good family routers, we can build a good
tree-of-sets system. We start by describing the second part, which is somewhat simpler.
From a Good Family of Routers to a Good Tree-of-Sets System
Suppose we are given a good family R = {S1 , . . . , S`0 } of routers. We now give a high-level description
of an algorithm to construct a good tree-of-sets system from R (a formal proof appears in Section 5.4).
The algorithm consists of two phases. We start with the first phase.
Since every set Si ∈ R can send w0 /2 flow units to the terminals with no edge-congestion, and the
terminals are 1-well-linked in G, it is easy to see that every pair Si , Sj ∈ R of sets can send w0 /2
w0
flow units to each other with edge-congestion at most 3, and so there are at least 6∆
node-disjoint
paths connecting Si to Sj . We build an auxiliary graph H from G, by contracting each cluster
Si ∈ R into a super-node vi . We view the super-nodes v1 , . . . , v`0 as the terminals of H, and denote
T̃ = {v1 , . . . , v`0 }. We then use standard splitting procedures in graph H repeatedly, to obtain a
w0
new graph H 0 , whose vertex set is T̃ , every pair of vertices remains poly(∆)
-edge-connected, and every
0
edge e = (vi , vj ) ∈ E(H ) corresponds to a path Pe in G, connecting a vertex of Si to a vertex
S of Sj .
Moreover, the paths {Pe | e ∈ E(H 0 )} are node-disjoint, and they do not contain the vertices of S∈R S
as inner vertices. More specifically, graph H is obtained from H 0 by first performing a sequence of
edge contraction and edge deletion steps that preserve element-connectivity of the terminals, and then
performing standard edge-splitting steps that preserves edge-connectivity. Let Z be a graph whose
w0
vertex set is T̃ , and there is an edge (vi , vj ) in Z if and only if there are many (say `2 poly(∆)
) parallel
0

edges (vi , vj ) in H 0 . We show that Z is a connected graph, and so we can find a spanning tree T
of Z. Since `0 = `2 , either T contains a path of length `, or it contains at least ` leaves. Consider
the first case, where T contains a path P of length `. We can use the path P to define a tree-of-sets
system (in fact, it will give a path-of-sets system directly, after we apply Theorem 2.11 to boost the
well-linkedness of the boundaries of the clusters that participate in P , and Theorem 2.6 to ensure
the linkedness of the corresponding vertex subsets inside each cluster). From now on, we focus on
the second case, where T contains ` leaves. Assume without loss of generality that the good routers
that are associated with the leaves of T are R0 = {S1 , . . . , S` }. We show that we can find, for each
1 ≤ i ≤ `, a subset Ei ⊆ outG (Si ) of w3 = w poly(` · ∆) edges, such that for each pair 1 ≤ i < j ≤ `,
there are w3 node-disjoint paths connecting Si to Sj in G, where each path starts with an edge of
Ei and ends with an edge of Ej . In order to compute the sets Ei of edges, we show that we can
simultaneously connect each set Si to the set S ∗ ∈ R corresponding to the root of tree T with many
∗
paths.
S For each i, let Pi be the collection of paths connecting Si to S . We will ensure that all paths
in i Pi are node-disjoint. The existence of the sets Pi of paths follows from the fact that all sets Si
can simultaneously send large amounts of flow to S ∗ (along the leaf-to-root paths in the tree T ) with
22

relatively small congestion. After boosting the well-linkedness of the endpoints of these paths in S ∗
using Theorem 2.11 for each Pi separately, and ensuring that, for every pair Pi , Pj of such path sets,
their endpoints are linked inside S ∗ using Theorem 2.6, we obtain somewhat smaller subsets Pi0 ⊆ Pi
of paths for each i. The desired set Ei of edges is obtained by taking the first edge on every path in
Pi0 . We now proceed to the second phase.
The execution of the second phase is very similar to the execution of the first phase, except that the
initial graph H is built slightly differently. We will ignore the clusters in R \ R0 . For each cluster
Si ∈ R0 , we delete all edges in outG (Si ) \ Ei from G, and then contract the vertices of Si into a
super-node vi . As before, we consider the set T̃ = {v1 , . . . , v` } of supernodes to be the terminals
of the resulting graph H̃. Observe that now the degree of every terminal vi is exactly w3 , and the
edge-connectivity between every pair of terminals is also exactly w3 . It is this additional property
that allows us to build the tree-of-sets system in this phase. As before, we perform standard splitting
operations to reduce graph H̃ to a new graph H̃ 0 , whose vertex set is T̃ . As before, every edge
e = (vi , vnj ) in H̃ 0 corresponds
to a path Pe connecting a a vertex of Si to a vertex of Sj in G; all
o
S
0
paths in Pe | e ∈ E(H̃ ) are node-disjoint, and they do not contain the vertices of S∈R0 S as inner

vertices. However, we now have the additional property that the degree of every vertex vi in H̃ 0 is
w3 , and the edge-connectivity of every pair of vertices is also w3 . We build a graph Z̃ on the set
T̃ of vertices as follows: for every pair (vi , vj ) of vertices, if there number of edges (vi , vj ) in H̃ 0 is
ni,j > w3 /`3 , then we add ni,j parallel edges (vi , vj ) to Z̃. Otherwise, if ni,j < w3 /`3 , then we do not
add an edge connecting vi to vj . We then show that the degree of every vertex in Z̃ remains very
close to w3 , and the same holds for edge-connectivity of every pair of vertices in Z̃. Note that every
pair vi , vj of vertices of Z̃ is either connected by many parallel edges, or there is no edge (vi , vj ) in Z̃.
In the final step, we show that we can construct a spanning tree of Z̃ with maximum vertex degree
bounded by 3. This spanning tree immediately defines a good tree-of-sets system. The construction of
the spanning tree is performed using a result of Singh and Lau [SL15], who showed an approximation
algorithm for constructing a minimum-degree spanning tree of a graph. Their algorithm is based on
an LP-relaxation of the problem. They show that, given a feasible solution to the LP-relaxation, one
can construct a spanning tree with maximum degree bounded by the maximum fractional degree plus
1. Therefore, it is enough to show that there is a solution to the LP-relaxation on graph Z̃, where the
fractional degree of every vertex is bounded by 2. The fact that the degree of every vertex, and the
edge-connectivity of every pair of vertices are very close to the same value allows us to construct such
a solution.

An alternative way of seeing that graph Z̃ has a spanning tree of degree at most 3 is to observe that
graph Z̃ is 1-tough (that is, if we remove q vertices from Z̃, there are at most q connected components
in the resulting graph, for every q). It is known that a 1-tough graph has a spanning tree of degree at
most 3 [Win89].
Finding a Good Family of Routers
One of the main tools that we use in this part is a good clustering of the graph G and a legal contracted
graph associated with it. We say that a subset C ⊆ V (G) of vertices is a small cluster if and only if
| out(C)| ≤ w0 , and we say that it is a large cluster otherwise. A partition C of V (G) is called a good
clustering if and only if each terminal t ∈ T belongs to a separate cluster Ct ∈ C, where Ct = {t}, all
clusters in C are small, and each cluster has the αBW -bandwidth property. Given a good clustering C,
the corresponding legal contracted graph is obtained from G by contracting every cluster C ∈ C into a
super-node vC (notice that terminals are not contracted, since each terminal is in a separate cluster).
The legal contracted graph can be seen as a model of G, where we “hide” some irrelevant parts of the

23

graph inside the contracted clusters. The main idea of the algorithm is to exploit the legal contracted
graph in order to find a good family of routers, and, if we fail to do so, to construct a smaller legal
contracted graph. We start with a non-constructive proof of the existence of a good family of routers
in G.
Non-Constructive Proof We assume that G is minimal inclusion-wise, for which the set T of
terminals is 1-well-linked. That is, for an edge e ∈ E(G), if we delete e from G, then T is not 1-welllinked in the resulting graph. Let C ∗ be a good clustering of V (G) minimizing the total number of
edges in the corresponding legal contracted graph (notice that a partition where every vertex belongs
to a separate cluster is a good clustering, so such a clustering exists). Consider the resulting legal
contracted graph G0 . The degree of every vertex in G0 is at most w0 , and, from the well-linkedness of
the terminals in G, it is not hard to show that G0 \ T must contain at least Ω(k) edges. Then there
is a partition {X1 , . . . , X`0 } of V (G0 ) \ T , where for each 1 ≤ i ≤ `0 , | outG0 (Xi )| < O(`0 |EG0 (Xi )|)
(a random partition of V (G0 ) \ T into `0 subsets will have this property with constant probability.
0
This is since, if we denote m = |E(G0 ) \ T |, then we expect roughly m+k
`0 edges in set outG (Xi ), and
2
roughly m/`0 edges with both endpoints inside Xi .)
For each set Xi , let Xi0 ⊆ V (G) \ T be the corresponding
subset of vertices of G, obtained by unS
0
contracting each supernode vC (that is, Xi = vC ∈Xi C). If Γi is the interface of Xi0 in G, then we
still have that |Γi | ≤ O(`0 |EG0 (Xi )|). As our next step, we would like to find a partition Wi of the
vertices of Xi0 into clusters, such that each cluster W ∈ Wi has the αBW -bandwidth property, and
the total number of edges connecting different clusters is at most O(|Γi |/`0 ) < |EG0 (Xi )|. We call
this procedure bandwidth-decomposition. Assume first that we are able to find such a decomposition.
We claim that Wi must contain at least one good router Si . If this is the case, then we have found
the desired family {S1 , . . . , S`0 } of good routers. In order to show that Wi contains a good router,
assume first that at least one cluster Si ∈ Wi is large. The decomposition Wi already guarantees
that Si has the αBW -bandwidth property. If Si is not a good router, then it must be impossible to
send large amounts of flow from Si to T in G. In this case, using known techniques (see appendix of
[CNS13]), we can show that we can delete an edge from G[Si ], while preserving the 1-well-linkedness
of the terminals6 , contradicting the minimality of G. Therefore, if Wi contains at least one large
cluster, then it contains a good router. Assume now that all clusters in Wi are small. Then we show a
new good clustering C 0 of V (G), whose corresponding contracted graph contains fewer edges than G0 ,
leading to a contradiction. The new clustering contains all clusters C ∈ C ∗ with C ∩ Xi0 = ∅, and all
clusters in Wi . In other words, we replace the clusters contained in Xi0 with the clusters of Wi . The
reason the number of edges goes down in the legal contracted graph is that the total number of edges
connecting different clusters of Wi is less than |EG0 (Xi )|.
The final part of the proof that we need to describe is the bandwidth-decomposition procedure. Given
a cluster Xi0 , we would like to find a partition Wi of Xi0 into clusters that have the αBW -bandwidth
property, such that the number of edges connecting different clusters is bounded by O(|Γi |/`0 ). There
are by now standard algorithms for finding such a decomposition, where we repeatedly select a cluster
in Wi that does not have the desired bandwidth property, and partition it along a sparse cut [Räc02,
CKS05]. Unfortunately, since our bandwidth parameter αBW is independent of n, such an approach
can only work when |Γi | is bounded by poly(k), which is not necessarily true in our case. In order
to overcome this difficulty, as was done in [Chu12], we slightly weaken the bandwidth condition, and
define a (k, αBW )-bandwidth property as follows: We say that cluster C with interface Γ has the
(k, αBW )-bandwidth property, if and only if for every pair A, B ⊆ Γ of equal-sized disjoint subsets,
6

The technical statement here is that if there is a small cut separating two large well-linked sets in a graph then there
is an edge that can be removed without affecting the well-linkedness of one of the sets.

24

with |A|, |B| ≤ k, the minimum edge-cut separating A from B in G[C] has at least αBW · |A| edges.
Alternatively, we can send |A| flow units from A to B inside G[C] with edge-congestion at most
1/αBW . Notice that if C does not have the (k, αBW )-bandwidth property, then there is a partition
(C1 , C2 ) of C, and two disjoint equal-sized subsets A ⊆ Γ ∩ C1 , B ⊆ Γ ∩ C2 , with |A|, |B| ≤ k, such
that |EG (C1 , C2 )| < αBW · |A|. We call such a partition a (k, αBW )-violating cut of C. Even if we
weaken the definition of the good routers, and replace the αBW -bandwidth property with the weaker
(k, αBW )-bandwidth property, we can still construct a good tree-of-sets system from a family of good
routers. This is since the construction algorithm only uses the αBW -bandwidth property of the routers
in the weak sense, by sending small amounts of flow (up to k units) across the routers. Given the set
Xi0 , we can now show that there is a partition Wi of Xi0 into clusters that have the (k, αBW )-bandwidth
property, such that the number of edges connecting different clusters is bounded by O(|Γi |/`0 ).
Constructive Proof A constructive proof is more difficult, for the following two reasons. First,
given a large cluster Si , that has the αBW -bandwidth property, but cannot send large amounts of flow
to the terminals in G, we need an efficient algorithm for finding an edge that can be removed from
G[Si ] without violating the 1-well-linkedness of the terminals. While we know that such an edge must
exist, we do not have a constructive proof that allows us to find it. The second problem is related to
the bandwidth-decomposition procedure. While we know that, given Xi0 , there is a desired partition
Wi of Xi into clusters that have the (k, αBW )-bandwidth property, we do not have an algorithmic
version of this result. In particular, we need an efficient algorithm that finds a (k, αBW )-violating cut
in a cluster that does not have the (k, αBW )-bandwidth property. (An efficient algorithm that gives a
poly(log k) approximation, by returning an (Ω(k), αBW · poly log k)-violating cut would be sufficient,
but as of now we do not have such an algorithm).
In addition to a good clustering defined above, our algorithm uses a notion of acceptable clustering.
An acceptable clustering is defined exactly like a good clustering, except that large clusters are now
allowed. Each small cluster in an acceptable clustering must have the αBW -bandwidth property, and
each large cluster must induce a connected graph in G.
In order to overcome the difficulties described above, we define a potential function ϕ over partitions
C of V (G). Given such a partition C, ϕ(C) is designed to be a good approximation of the number of
edges connecting different clusters of C. Additionally, ϕ has the following two useful properties. If we
are given an acceptable clustering C, a large cluster C ∈ C, and a (k, αBW )-violating cut (C1 , C2 ) of C,
then we can efficiently find a new acceptable clustering C 0 with ϕ(C 0 ) < ϕ(C) − 1/n. Similarly, if we are
given an acceptable clustering C, and a large cluster C ∈ C, such that C cannot send w0 /2 flow units
to the terminals, then we can efficiently find a new acceptable clustering C 0 with ϕ(C 0 ) < ϕ(C) − 1/n.
The algorithm consists of a number of phases. In every phase, we start with some good clustering
C, where in the first phase, C = {{v} | v ∈ V (G)}. In each phase, we either find a good tree-of-sets
system, of find a new good clustering C 0 , with ϕ(C 0 ) ≤ ϕ(C) − 1. Therefore, after O(|E(G)|) phases,
we are guaranteed to find a good tree-of-sets system.
We now describe an execution of each phase. Let C be the current good clustering, and let G0 be the
corresponding legal contracted graph. As before, we find a partition {X1 , . . . , X`0 } of V (G0 )\T , where
for each 1 ≤ i ≤ `0 , | outG0 (Xi )| < O(`0 |EG0 (Xi )|), using a simple randomized algorithm. For each
set Xi , let Xi0 ⊆ V (G) \ T be the corresponding set of vertices in G, obtained by un-contracting each
supernode vC ∈ Xi . For each 1 ≤ i ≤ `0 , we also construct an acceptable clustering Ci , containing
all clusters C ∈ C with C ∩ Xi0 = ∅, and all connected components of G[Xi ] (if any such connected
component is a small cluster, we further partition it into clusters with αBW -bandwidth property). We
show that ϕ(Ci ) ≤ ϕ(C) − 1 for each i. We then perform a number of iterations.
In each iteration, we are given as input, for each 1 ≤ i ≤ `0 , an acceptable clustering Ci , with
25

ϕ(Ci ) ≤ ϕ(C) − 1, where each large cluster of Ci is contained in Xi0 . An iteration is executed as follows.
If, for some 1 ≤ i ≤ `0 , the clustering Ci contains no large clusters, then Ci is a good clustering, with
ϕ(Ci ) ≤ ϕ(C) − 1. We then finish the current phase and return the good clustering Ci . Otherwise, for
each 1 ≤ i ≤ `0 , there is at least one large cluster Si ∈ Ci . We treat the clusters {S1 , . . . , S`0 } as a
potential good family of routers, and try to construct a tree-of-sets system using them. If we succeed
in building a good tree-of-sets system, then we are done, and we terminate the algorithm. Otherwise,
we will obtain a certificate that one of the clusters Si is not a good router. The certificate is either
a (k, αBW )-violating partition of Si , or a small cut (containing fewer than w0 /2 edges), separating Si
from the terminals. In either case, using the properties of the potential function, we can obtain a new
acceptable clustering Ci0 with ϕ(Ci0 ) ≤ ϕ(Ci ) − 1/n, to replace the current acceptable clustering Ci . We
then continue to the next iteration.
Overall, as long as we do not find a good tree-of-sets system, and do not find a good clustering C 0
with ϕ(C 0 ) ≤ ϕ(C) − 1, we make progress by lowering the potential of one of the acceptable clusterings
Ci by at least 1/n. Therefore, after polynomially-many iterations, we are guaranteed to complete the
phase.
We note that Theorem 6 in [Chu12] provides an algorithm, that, given a cluster Xi0 , and an access
to an oracle for computing (k, αBW )-violating cuts, produces a partition Wi of Xi0 into clusters that
have the (k, αBW )-bandwidth property, with the number of edges connecting different clusters suitably
bounded. The bound on the number of edges is computed by using a charging scheme. The potential
function that we use here, whose definition may appear non-intuitive, is modeled after this charging
scheme.
In the following subsections, we provide a formal proof of Theorem 4.1. We start by defining the
different types of clusterings that we use and the potential function, and analyze its properties. We
then turn to describe the algorithm itself.

5.2

Vertex Clusterings and Legal Contracted Graphs

Let n = |V (G)|. Our algorithm uses a parameter `0 = `2 . We use the following two parameters for
the bandwidth property: α = 211 `01log k , used to perform bandwidth-decomposition of clusters, and


α
1
- the value of the bandwidth parameter we achieve. Finally, we use a
αBW = βARV
=
Ω
(k)
`2 log1.5 k
parameter w0 = 192`3klog k . We say that a cluster C ⊆ V (G) is large if and only if | out(C)| ≥ w0 , and
0
we say that it is small otherwise. From the statement of the theorem, we can assume that w0 > ∆,
and:

w=O

w0 α 2
`9 ∆8 log k


.

(1)

Next, we define acceptable and good vertex clusterings and legal contracted graphs, exactly as
in [CL12].
Definition. Given a partition C of the vertices of V (G) into clusters, we say that C is an acceptable
clustering of G iff:
• Every terminal t ∈ T is in a separate cluster, that is, {t} ∈ C;
• Each small cluster C ∈ C has the the αBW -bandwidth property; and
• For each large cluster C ∈ C, G[C] is connected.
26

An acceptable clustering that contains no large clusters is called a good clustering.
Definition. Given a good clustering C of G, a graph HC is a legal contracted graph of G associated
with C, if and only if we can obtain HC from G by contracting every C ∈ C into a super-node vC . We
remove all self-loops, but we do not remove parallel edges. (Note that the terminals are not contracted
since each terminal has its own cluster).
Claim 5.1 If G0 is a legal contracted graph for G, then G0 \ T contains at least k/3 edges.
Proof: For each terminal t ∈ T , let et be the unique edge adjacent to t in G0 , and let ut be the
other endpoint of et . We partition the terminals in T into groups, where two terminals t, t0 belong to
the same group if and only if ut = ut0 . Let G be the resulting partition of the terminals. Since the
degree of every vertex in G0 is at most w0 , each group U ∈ G contains at most w0 terminals. Next, we
partition the terminals in T into two subsets X, Y , where |X|, |Y | ≥ k/3, and for each group U ∈ G,
either U ⊆ X, or U ⊆ Y holds. We can find such a partition by greedily processing each group U ∈ G,
and adding all terminals of U to one of the subsets X or Y , that currently contains fewer terminals.
Finally, we remove terminals from set X until |X| = k/3, and we do the same for Y . Since the set
T of terminals is node-well-linked in G, it is 1-edge-well-linked in G0 , so we can route k/3 flow units
from X to Y in G0 , with no edge-congestion. Since no group U is split between the two sets X and
Y , each flow-path must contain at least one edge of G0 \ T . Therefore, |E(G0 \ T )| ≥ k/3.
Given a partition C of the vertices of G, we define a potential ϕ(C) for this clustering, exactly as
in [CL12]. The idea is that ϕ(C) will serve as a tight bound on the number of edges connecting
different clusters in C. At the same time, the potential function is designed in such a way, that we can
perform a number of useful operations on the current clustering, without increasing the potential.
P
Suppose we are given any partition C of the vertices of G. We define ϕ(C) as e∈E(G) ϕ(C, e) where
ϕ(C, e) assigns a potential to each edge e; to avoid notational overload we use ϕ(e) for ϕ(C, e). If
both endpoints of e belong to the same cluster of C, then we set its potential ϕ(e) = 0. Otherwise,
if e = (u, v), and u ∈ C with | out(C)| = z, while v ∈ C 0 with | out(C 0 )| = z 0 , then we set ϕ(e) =
1 + ρ(z) + ρ(z 0 ) where ρ is a non-decreasing real-valued function that we define below. We think of
ρ(z) as the contribution of u, and ρ(z 0 ) the contribution of v to ϕ(e). The function ρ will be chosen
to give a small (compared to 1) contribution to ϕ(e) depending on the out-degree of the clusters that
e connects.
For an integer z > 0, we define a potential ρ(z), as follows. For z < w0 , ρ(z) = 4α log z. In order to
i
define ρ(z) for z ≥ w0 , we consider the sequence {n0 , n1 , . . .} of numbers, where ni = 23 w0 . The
0
potentials for these numbers are ρ(n0 ) = ρ(w0 ) = 4α log w0 +4α, and for i > 0, ρ(ni ) = 4 αw
ni +ρ(ni−1 ).
Notice that for all i, ρ(ni ) ≤ 12α + 4α log w0 ≤ 8α log w0 ≤ 281`0 . We now partition all integers z > w0
into sets Z1 , Z2 , . . ., where set Zi contains all integers z with ni−1 ≤ z < ni . For z ∈ Zi , we define
ρ(z) = ρ(ni−1 ). This finishes the definition of ρ. Clearly, for all z, ρ(z) ≤ 281`0 .
Observation 5.2 For a partition C of the vertices of G and for an edge e = (u, v) ∈ E(G), if u, v
belong to the same cluster of C, then ϕ(e) = 0. Otherwise, 1 ≤ ϕ(e) ≤ 1.1.
Suppose we are given a partition C of V (G). The following theorem allows us to partition a small
cluster C into a collection of sub-clusters, each of which has the αBW -bandwidth property, without
increasing the overall potential. We call this procedure a bandwidth decomposition.
Theorem 5.3 Let C be a partition of V (G), and let C ∈ C be any small cluster, such that G[C] is
connected. Then there is an efficient algorithm that finds a partition W of C into small clusters, such
that each cluster R ∈ W has the αBW -bandwidth property, and additionally, if C 0 is a partition obtained
from C by removing C and adding the clusters of W to it, then ϕ(C 0 ) ≤ ϕ(C).
27

Proof: We maintain a partition W of C into small clusters, where at the beginning, W = {C}. We
then perform a number of iterations.
In each iteration, we select a cluster S ∈ W, and set up the following instance of the sparsest
cut problem. Let Γ be the set of the interface vertices of S in G. We then consider the graph
G[S], where the vertices of Γ serve as terminals. We run the algorithm AARV on the resulting instance of the sparsest cut problem. If the sparsity of the cut produced by the algorithm is less
than α, then we obtain a partition (X, Y ) of S, with |E(X, Y )| < α · min {|Γ ∩ X|, |Γ ∩ Y |} ≤
α · min {| out(S) ∩ out(X)|, | out(S) ∩ out(Y )|}. In this case, we remove S from W, and add X and Y
to W instead. Notice that since S is a small cluster, X and Y are also small clusters. The algorithm
ends when for every cluster S ∈ W, algorithm AARV returns a partition of sparsity at least α. We are
then guaranteed that every cluster in W has the α/βARV (k) = αBW -bandwidth property, and it is easy
to verify that all resulting clusters are small.
It now only remains to show that the potential does not increase. Each iteration of the algorithm is
associated with a partition of the vertices of G, obtained from C by removing C and adding all clusters
of the current partition W of C to it. It suffices to show that if C 0 is the current partition of V (G),
and C 00 is the partition obtained after one iteration, where a set S ∈ C was replaced by two sets X and
Y , then ϕ(C 00 ) ≤ ϕ(C 0 ).
Assume without loss of generality that | out(X)| ≤ | out(Y )|, so | out(X)| ≤ 2| out(S)|/3. Let z =
| out(S)|, z1 = | out(X)|, z2 = | out(Y )|, and recall that z, z1 , z2 < w0 . The changes to the potential
are the following:
• The potential of the edges in out(Y ) ∩ out(S) only goes down.
• The potential of every edge in out(X) ∩ out(S) goes down by ρ(z) − ρ(z1 ) = 4α log z − 4α log z1 =
4α log zz1 ≥ 4α log 1.5 ≥ 2.3α, since z1 ≤ 2z/3. So the total decrease in the potential of the edges
in out(X) ∩ out(S) is at least 2.3α · | out(X) ∩ out(S)|.
• The edges in E(X, Y ) did not contribute to the potential initially, and now contribute 1+ρ(z1 )+
ρ(z2 ) ≤ 2 each. Notice that |E(X, Y )| ≤ α · | out(X) ∩ out(S)|, and so they contribute at most
2α · | out(X) ∩ out(S)| in total.
Clearly, the overall potential decreases.
Assume that we are given an acceptable clustering C of G. We now define two operations on G, each
of which produces a new acceptable clustering of G, whose potential is strictly smaller than ϕ(C).
Action 1: Partitioning a large cluster. Suppose we are given a large cluster C, and let Γ be
the interface of C in G. We say that a partition (X, Y ) of C is a (w0 , α)-violating partition, if and
only if there are two subsets ΓX ⊆ Γ ∩ X, ΓY ⊆ Γ ∩ Y of vertices, with |ΓX | + |ΓY | ≤ w0 , and
|E(X, Y )| < α · min {|ΓX |, |ΓY |}. Equivalently, (X, Y ) is an (w0 , α)-violating partition, if and only if
|E(X, Y )| < α · min {|Γ ∩ X|, |Γ ∩ Y |, bw0 /2c}.
Suppose we are given an acceptable clustering C of G, a large cluster C ∈ C, and an (w0 , α)-violating
partition (X, Y ) of C. In order to perform this operation, we first replace C with X and Y in
C. If, additionally, either of the clusters, X or Y , become small, then we perform a bandwidth
decomposition of that cluster using Theorem 5.3, and update C with the resulting partition. Clearly,
the final partitioning C 0 is an acceptable clustering. We denote this operation by PARTITION(C, X, Y ).
Claim 5.4 Let C 0 be the outcome of operation PARTITION(C, X, Y ). Then ϕ(C 0 ) < ϕ(C) − 1/n.

28

Proof: Let C 00 be the clustering obtained from C, by replacing C with X and Y . From Theorem 5.3,
it is sufficient to prove that ϕ(C 00 ) < ϕ(C) − 1/n.
Assume without loss of generality that | out(X)| ≤ | out(Y )|. Let z = | out(C)|, z1 = | out(X)|,
z2 = | out(Y )|, so z1 < 2z/3. Assume that z ∈ Zi . Then either z1 ∈ Zi0 for i0 ≤ i − 1, or z1 < w0 . The
potential of the edges in out(Y ) ∩ out(C) does not increase. The only other changes in the potential
are the following: the potential of each edge in out(X) ∩ out(C) decreases by ρ(z) − ρ(z1 ), and the
potential of every edge in E(X, Y ) increases from 0 to at most 1.1. We consider two cases.
First, if z1 < w0 , then ρ(z) ≥ 4α + ρ(z1 ). So the potential of each edge in out(X) ∩ out(C) decreases
by at least 4α, and the overall decrease in potential due to these edges is at least 4α| out(X) ∩ out(C)|.
The total increase in potential due to the edges in E(X, Y ) is bounded by 1.1|E(X, Y )| < 1.1α|ΓX | ≤
1.1α| out(X) ∩ out(C)|, so the overall potential decreases by at least 2α| out(X) ∩ out(C)| > 1/n

The second case is when z1 ≥ w0 . Assume that z1 ∈ Zi0 . Then ni0 ≤ 3z1 /2, and, since i0 ≤ i − 1
4αw0
8αw0
0
0
must hold, ρ(z) ≥ 4αw
n 0 + ρ(ni −1 ) = n 0 + ρ(z1 ) ≥ 3z1 + ρ(z1 ). So the potential of each edge in
i

i

0
out(X) ∩ out(C) decreases by at least 8αw
3z1 , and the total decrease in potential due to these edges is
4αw0
0
at least 8αw
3z1 · | out(X) ∩ out(C)| ≥
3 , since | out(X) ∩ out(C)| ≥ z1 /2. The total increase in the
potential due to the edges in E(X, Y ) is bounded by 1.1|E(X, Y )| < 0.55αw0 , since |E(X, Y )| ≤ αw0 /2.
0
> 1/n.
Overall, the total potential decreases by at least 2αw
3

Action 2: Separating a large cluster. Let C be an acceptable clustering, and let C ∈ C be a large
cluster in C. Assume further that we are given a partition (A, B) of V (G), with C ⊆ A, T ⊆ B, and
|EG (A, B)| < w0 /2. We perform the following operation, that we denote by SEPARATE(C, A).
Consider a cluster S ∈ C. If S \ A 6= ∅, and | out(S \ A)| > | out(S)|, then we modify A by removing all
vertices of S from it. Notice that in this case, the number of edges in E(S) that originally contributed
to the cut (A, B), |E(S ∩ A, S ∩ B)| > | out(S) ∩ E(A)| must hold, so | out(A)| only goes down as a
result of this modification. We assume from now on that if |S \ A| =
6 ∅, then | out(S \ A)| ≤ | out(S)|.
In particular, if S is a small cluster, and S \ A 6= ∅, then S \ A is also a small cluster.

We build a new partition C 0 of V (G) as follows. First, we add every connected component of G[A] to
C 0 . Notice that all these clusters are small, as | out(A)| < w0 /2. Next, for every cluster S ∈ C, such
that S \ A 6= ∅, we add every connected component of G[S \ A] to C 0 . Notice that every terminal t ∈ T
is added as a separate cluster to C 0 . So far we have defined a new partition C 0 of V (G). This partition
may not be acceptable, since we are not guaranteed that every small cluster of C 0 has the bandwidth
property. In our final step, we perform the bandwidth decomposition of every small cluster of C 0 , using
Theorem 5.3, and obtain the final acceptable partition C 00 of vertices of G. Notice that if S ∈ C 00 is a
large cluster, then there must be some large cluster S 0 in the original partition C with S ⊆ S 0 .
Claim 5.5 Let C 00 be the outcome of operation SEPARATE(C, A). Then ϕ(C 00 ) ≤ ϕ(C) − 1.
Proof: In order to prove the claim, it is enough to prove that ϕ(C 0 ) ≤ ϕ(C)−1, since, from Theorem 5.3,
bandwidth decompositions of small clusters do not increase the potential.
We now show that ϕ(C 0 ) ≤ ϕ(C) − 1. We can bound the changes in the potential as follows:
• Every edge in out(A) contributes at most 1.1 to the potential of C 00 , and there are at most
such edges.

w0 −1
2

• Every edge in out(C) contributed at least 1 to the potential of C 0 , and there are at least w0 such
edges, since C is a large cluster.
29

For every other edge e, the potential of e does not increase. Indeed, let e = (u, v), where u ∈ S1 ,
v ∈ S2 , with S1 , S2 ∈ C 0 , and S1 , S2 6⊆ A. Then there are clusters S10 , S20 ∈ C, with S1 ⊆ S10 and
S2 ⊆ S20 . Notice that S10 6= S20 , since S1 and S2 correspond to connected components of S10 and S20 ,
respectively, and so no edge can connect them. From our construction of C 0 , | out(S1 )| ≤ | out(S10 )| and
| out(S2 )| ≤ | out(S20 )|, so the potential of e cannot increase. Therefore, the decrease in the potential
is at least w0 − 1.1(w20 −1) ≥ 1.

To summarize, given an acceptable clustering C of the vertices of G, let E 0 be the set of edges whose
endpoints belong to distinct clusters of C. Then |E 0 | ≤ ϕ(C) ≤ 1.1|E 0 |. So the potential is a good
estimate on the number of edges connecting the different clusters. We have also defined two actions on
large clusters of C: PARTITION(C, X, Y ) can be performed if we are given a large cluster C ∈ C and
a (w0 , α)-violating partition (X, Y ) of C, and SEPARATE(C, A), where (A, V (G) \ A) is a partition of
V (G) with | out(A)| < w0 /2, separating a large cluster C from the terminals. Each such action returns
a new acceptable clustering, whose potential goes down by at least 1/n. Both operations ensure that
if S is a large cluster in the new clustering, then there is some large cluster S 0 in the original clustering
with S ⊆ S 0 .

5.3

The Algorithm

We maintain, throughout the algorithm, a good clustering C of G. Initially, C is a partition of V (G),
where every vertex of G belongs to a distinct cluster, that is, C = {{v} | v ∈ V (G)}. Clearly, this is a
good clustering, as ∆ < w0 . The algorithm consists of a number of phases. In every phase, we start
with some good clustering C and the corresponding legal contracted graph HC . The phase output is
either a good tree-of-sets system, or another good clustering C 0 , such that ϕ(C 0 ) ≤ ϕ(C) − 1. In the
former case, we terminate the algorithm, and output the tree-of-sets system. In the latter case, we
continue to the next phase. After O(|E(G)|) phases, our algorithm will then successfully terminate
with a good tree-of-sets system. It is therefore enough to prove the following theorem.
Theorem 5.6 Let C be a good clustering of the vertices of G, and let HC be the corresponding legal
contracted graph. Then there is an efficient randomized algorithm that with high probability either
computes a good tree-of-sets system, or finds a new good clustering C 0 , such that ϕ(C 0 ) ≤ ϕ(C) − 1.
The rest of this subsection is dedicated to proving Theorem 5.6. We assume that we are given a good
clustering C of the vertices of G, and the corresponding legal contracted graph G0 = HC .

Let m = |E(G0 \ T )|. From Claim 5.1, m ≥ k/3. As a first step, we randomly partition the vertices
in G0 \ T into `0 subsets X1 , . . . , X`0 , where each vertex v ∈ V (G0 ) \ T selects an index 1 ≤ j ≤ `0
independently uniformly at random, and is then added to Xj . We need the following claim.
Claim 5.7 With probability at least 21 , for each 1 ≤ j ≤ `0 , | outG0 (Xj )| <

10m
`0 ,

while |EG0 (Xj )| ≥

m
.
2`20

P
Proof: Let H = G0 \ T . Fix some 1 ≤ j ≤ `0 . Let E1 (j) be the bad event that v∈Xj dH (v) >


1
2m
·
1
+
`0
`0 . In order to bound the probability of E1 (j), we define, for each vertex v ∈ V (H), a

random variable xv , whose value is dHw(v)
if v ∈ Xj and 0 otherwise.
0
P Notice that xv ∈ [0, 1], and the
random variables {xv }v∈V (H) are pairwise independent. Let B = v∈V (H) xv . Then the expectation of
P
B, µ1 = v∈V (H) d`H0 w(v)
= `2m
. Using the standard Chernoff bound (see e.g. Theorem 1.1 in [DP09]),
0
0 w0
2

−

Pr [E1 (j)] = Pr [B > (1 + 1/`0 ) µ1 ] ≤ e−µ1 /(3`0 ) = e
30

2m
3`3
0 w0

<

1
6`0

since m ≥ k/3 and w0 =

k
.
192`30 log k

For each terminal t ∈ T , let et be the unique edge adjacent to t in graph G0 , and let ut be its other
endpoint. Let U = {ut | t ∈ T }. For each vertex u ∈ U , let w(u) be the number of terminals t,
such that u = ut . Notice
that

 w(u) ≤ w0 must hold. We say that a bad event E2 (j) happens iff
P
k
1
u∈U ∩Xj w(u) ≥ `0 · 1 + `0 . In order to bound the probability of the event E2 (j), we define, for
each u ∈ U , a random variable yu , whose value is w(u)/w0 if and only if u ∈ Xj , and it P
is 0 otherwise.
Notice that yu ∈ [0, 1], and the variables yu are independent for all u ∈ U . Let Y = u∈Uyu . The

expectation of Y is µ2 = w0k`0 , and event E2 (j) holds if and only if Y ≥
Using the standard Chernoff bound again, we get that:
2

3

Pr [E2 (j)] ≤ e−µ2 /(3`0 ) ≤ e−k/(3w0 `0 ) ≤
since w0 =

k
.
192`30 log k

· 1+

1
`0

≥ µ2 · 1 +

1
`0

.

1
6`0

Notice that if events E1 (j), E2 (j) do not hold, then:

| outG0 (Xj )| ≤

X

dH (v) +

v∈Xj

X
u∈U ∩Xj

since m ≥ k/3.
Let E3 (j) be the bad event that |EG0 (Xj )| <
e, e0

k
w0 `0

E(G0

w(u) ≤

m
.
2`20




1
k
2m
10m
1+
+
<
`0
`0
`0
`0

We next prove that Pr [E3 (j)] ≤

1
6`0 .

We say that

two edges
∈
\ T ) are independent if and only if they do not share endpoints. Our first step
is to compute a partition U1 , . . . , Uz of the set E(G0 \ T ) of edges, where z ≤ 2w0 , such that for each
m
1 ≤ i ≤ z, |Ui | ≥ 4w
, and all edges in set Ui are mutually independent. In order to compute such
0
a partition, we construct an auxiliary graph Z, whose vertex set is {ve | e ∈ E(H)}, and there is an
edge (ve , ve0 ) if and only if e and e0 are not independent. Since the maximum vertex degree in G0 is
at most w0 , the maximum vertex degree in Z is bounded by 2w0 − 2. Using the Hajnal-Szemerédi
Theorem [HS70], we can find a partition V1 , . . . , Vz of the vertices of Z into z ≤ 2w0 subsets, where
m
each subset Vi is an independent set, and |Vi | ≥ |V (Z)|
− 1 ≥ 4w
. The partition V1 , . . . , Vz of the
z
0
vertices of Z gives the desired partition U1 , . . . , Uz of the edges of G0 \ T . For each 1 ≤ i ≤ r, we say
i|
. Notice that if E3 (j) happens, then
that the bad event E3i (j) happens if and only if |Ui ∩ E(Xj )| < |U
2`2
0

event E3i (j) must happen for some 1 ≤ i ≤ z. Fix some 1 ≤ i ≤ z. The expectation of |Ui ∩ E(Xj )| is
µ3 = |U`2i | . Since all edges in Ui are independent, we can use the standard Chernoff bound to bound
0

the probability of E3i (j), as follows:
|U |


− i2
Pr E3i (j) = Pr [|Ui ∩ E(Xj )| < µ3 /2] ≤ e−µ3 /8 = e 8`0

.
Since |Ui | ≥


Pr E3i (j) ≤

m
4w0 , m ≥
1
12w0 `0 , and

k/3, w0 =

k
,
192`30 log k

this is bounded by

1
k2

≤

1
12w0 `0 .

by using the union bound over all 1 ≤ i ≤ z, Pr [E3 (j)] ≤

We conclude that
1
6`0 .

Using the union bound over all 1 ≤ j ≤ `0 , with probability at least 12 , none of the events E1 (j), E2 (j), E3 (j)
m
0
for 1 ≤ j ≤ `0 happen, and so for each 1 ≤ j ≤ `0 , | outG0 (Xj )| < 10m
`0 , and |EG (Xj )| ≥ 2`2 .
0

Given a partition X1 , . . . , X`0 , we can efficiently check whether the conditions of Claim 5.7 hold. If they
do not hold, we repeat the randomized partitioning procedure. From Claim 5.7, we are guaranteed that
with high probability, after poly(n) iterations, we will obtain a partition with the desired properties.
31

Assume now that we are given the partition X1 , . . . , X`0 of V (G0 ) \ T , for which the conditions of
| outG0 (Xj )|
Claim 5.7 hold. Then for each 1 ≤ j ≤ `0 , |EG0 (Xj )| >
. Let Xj0 ⊆ V (G) \ T be the set
20`0
obtained from Xj , after we un-contract each cluster, that is, for each super-node vC ∈ Xj , we replace
n o`0
vC with the vertices of C. Notice that Xj0
is a partition of V (G) \ T .
j=1

The plan for the rest of the proof is as follows. For each 1 ≤ j ≤ `0 , we will maintain an acceptable
clustering Cj of the vertices of G. That is, for each 1 ≤ j ≤ `0 , Cj is a partition of V (G). In addition
to being an acceptable clustering, it will have the following property:
P1. If C ∈ Cj is a large cluster, then C ⊆ Xj0 .
The initial partition Cj , for 1 ≤ j ≤ `0 is obtained as follows. Recall that C is the current good
clustering of the vertices of G, and every cluster C ∈ C is either contained in Xj0 , or it is disjoint
from it. First, we add to Cj all clusters C ∈ C with C ∩ Xj0 = ∅. Next, we add to Cj all connected
components of G[Xj0 ]. If any of these components is a small cluster, then we perform the bandwidth
decomposition of this cluster, using Theorem 5.3, and update Cj accordingly. Let Cj be the resulting
final partition. Clearly, it is an acceptable clustering, with property (P1). Moreover, the following
claim shows that ϕ(Cj ) ≤ ϕ(C) − 1:
Claim 5.8 For each 1 ≤ j ≤ `0 , ϕ(Cj ) ≤ ϕ(C) − 1.
Proof: Let Cj0 be the partition of V (G), obtained as follows: we add to Cj0 all clusters C ∈ C with
C ∩ Xj0 = ∅, and we add all connected components of G[Xj0 ] to Cj0 (that is, Cj0 is obtained like Cj , except
that we do not perform the bandwidth decompositions of the small clusters). From Theorem 5.3, it is
enough to prove that ϕ(Cj0 ) ≤ ϕ(C) − 1. The changes of the potential from C to Cj0 can be bounded as
follows:
• The edges in EG0 (Xj ) contribute at least 1 to ϕ(C) and contribute 0 to ϕ(Cj0 ).
• The potential of the edges in outG (Xj0 ) may increase. The increase is at most ρ(n) ≤
edge. So the total increase is at most
potential may increase.

| outG0 (Xj )|
28 `0

Overall, the decrease in the potential is at least

≤

|EG0 (Xj )|
2

|EG0 (Xj )|
.
4

≥

m
4`20

≥

1
28 `0

per

These are the only edges whose

k
12`20

≥ 1.

If any of the partitions C1 , . . . , C`0 is a good clustering, then we have found a good clustering C 0 with
ϕ(C 0 ) ≤ ϕ(C) − 1. We terminate the algorithm and return C 0 . Otherwise, we select an arbitrary large
cluster Sj ∈ Cj for each j. We then consider the resulting collection S1 , . . . , S`0 of large clusters, and
try to exploit them to construct a good tree-of-sets system. Since for each 1 ≤ j ≤ `0 , Sj ⊆ Xj0 , the
sets S1 , . . . , S`0 are mutually disjoint and they do not contain terminals. Our algorithm performs a
number of iterations, using the following theorem.
Theorem 5.9 There is an efficient randomized algorithm, that, given a collection {S1 , . . . , S`0 } of
disjoint vertex subsets of G, where for all 1 ≤ j ≤ `0 , Sj ∩ T = ∅, with high probability computes one
of the following: either
• a good tree-of-sets system in G; or
• a (w0 , α)-violating partition (X, Y ) of Sj , for some 1 ≤ j ≤ `0 ; or
32

• a partition (A, B) of V (G) with Sj ⊆ A, T ⊆ B and |EG (A, B)| < w0 /2, for some 1 ≤ j ≤ `0 .
We provide the proof of Theorem 5.9 in the following subsection, and complete the proof of Theorem 5.6
here. Suppose we are given a good clustering C of the vertices of G. For each 1 ≤ j ≤ `0 , we compute an
acceptable clustering Cj of V (G) as described above. If any of the partitions Cj is a good clustering, then
we terminate the algorithm and return Cj . From the above discussion, ϕ(Cj ) ≤ ϕ(C) − 1. Otherwise,
for each 1 ≤ j ≤ `0 , we select any large cluster Sj ∈ Cj , and apply Theorem 5.9 to the current
family {S1 , . . . , S`0 } of large clusters. If the outcome of Theorem 5.9 is a good tree-of-sets system,
then we terminate the algorithm and return this tree-of-sets system, and we say that the iteration is
successful. Otherwise, we apply the appropriate action: PARTITION(Sj , X, Y ), or SEPARATE(Sj , A)
to the clustering Cj . As a result, we obtain an acceptable clustering Cj0 , with ϕ(Cj0 ) ≤ ϕ(Cj ) − 1/n.
Moreover, it is easy to see that this clustering also has Property (P1): if the PARTITION operation is
performed, then we only partition Sj ; if the SEPARATE operation is performed, then for every large
cluster S in the new partition Cj0 , there is a large cluster S 0 ∈ Cj with S ⊆ S 0 .

If all clusters in Cj0 are small, then we can again terminate the algorithm with a good clustering Cj0 ,
with ϕ(Cj0 ) ≤ ϕ(Cj ) − 1/n ≤ ϕ(C) − 1 − 1/n (recall that Claim 5.8 shows that ϕ(Cj ) ≤ ϕ(C) − 1).
Otherwise, we select an arbitrary large cluster Sj0 ∈ Cj0 , and continue to the next iteration. Overall,
as long as we do not complete a successful iteration, and we do not find a good clustering C 0 of V (G)
with ϕ(C 0 ) ≤ ϕ(C) − 1, we make progress in each iteration by decreasing the potential of one of the
partitions Cj by at least 1/n, by performing either a SEPARATE or a PARTITION operation on one of
the large clusters of Cj . After at most 1.1|E(G)| · n · `0 iterations we are then guaranteed to complete
a successful iteration, or find a good clustering C 0 with ϕ(C 0 ) ≤ ϕ(C) − 1, and finish the algorithm.
Therefore, in order to complete the proof of Theorem 5.6 it is now enough to prove Theorem 5.9.

5.4

Proof of Theorem 5.9

Let R = {S1 , . . . , S`0 }. We start by checking that for each 1 ≤ j ≤ `0 , the vertices of Sj can send
w0 /2 flow units in G to the terminals with no edge-congestion. If this is not the case for some set Sj ,
then there is a partition (A, B) of V (G) with Sj ⊆ A, T ⊆ B and |EG (A, B)| < w0 /2. We then return
the partition (A, B) of V (G) and finish the algorithm. From now on each set Sj can send w0 /2 flow
units in G to the terminals with no edge-congestion. We assume without loss of generality that this
flow is integral.
Since the set T of terminals is node-well-linked, every pair (Sj , Sj 0 ) of vertex subsets from R can send
w0 /2 flow units to each other with edge-congestion at most 3: concatenate the flows from Sj to a
subset T1 of the terminals, from Sj 0 to a subset T2 of the terminals, and the flow between the two
subsets of the terminals. Scaling this flow down by factor 3∆ and using the integrality of flow, for
w0
each such pair (Sj , Sj 0 ), there are at least b 6∆
c node-disjoint paths connecting Sj to Sj 0 in G. We can
assume that these paths do not contain terminals, as the degree of every terminal in G is 1.
The algorithm consists of two phases. In the first phase, we attempt to construct a tree-of-sets system,
using the collection R of vertex subsets. If we fail to do so, we will either return an (w0 , α)-violating
cut in some cluster Sj ∈ R, or we will identify a subset R0 ⊆ R of ` clusters, and for each cluster
Sj ∈ R0 , a large subset Ej ⊆ out(Sj ) of edges, such that for each Si , Sj ∈ R0 , there are many disjoint
paths connecting the edges in Ej to the edges in Ei in G. In the second phase, we exploit the clusters
in R0 to build the tree-of-sets system.

Given a graph G and a subset T̃ of vertices called terminals, we say that a pair (t, t0 ) of terminals is
λ-edge-connected, if and only if there are at least λ paths connecting t to t0 in G, that are mutually
edge-disjoint. Let λ(t, t0 ) be the largest value λ, such that t and t0 are λ-edge-connected, and let
33

λG (T̃ ) = mint,t0 ∈T̃ λ(t, t0 ). We say that a pair t, t0 of terminals is µ-element-connected, if and only if
there are µ paths connecting t to t0 that are pairwise disjoint in both the edges and the non-terminal
vertices of G (but they are allowed to share terminals). Let µ(t, t0 ) be the largest value µ, such that
t and t0 are µ-element-connected, and denote µG (T̃ ) = mint,t0 ∈T̃ µ(t, t0 ). Clearly, λG (T̃ ) ≥ µG (T̃ )
always holds. We use the following theorem several times.
Theorem 5.10 There is an efficient algorithm, that, given a graph G and a set T̃ ⊆ V (G) of κ
vertices called terminals, such that µG (T̃ ) ≥ µ for some µ ≥ 1, constructs another graph H with
V (H) = T̃ , a partition U of E(H) into groups of size at most κ, and for each edge e = (t, t0 ) ∈ E(H)
a path Pe connecting t to t0 in G, such that:
• λH (T̃ ) ≥ 2µ;
• for each terminal t, dH (t) ≤ 2dG (t);
• for each e ∈ E(H), path Pe does not contain terminals as inner vertices;
• if e0 ∈ E(G) is incident to a terminal of T̃ , then e0 belongs to at most 2 paths in {Pe | e ∈ E(H)};
and
• if we select, for each group U ∈ U, an arbitrary edge eU ∈ U , then the corresponding paths
{PeU | U ∈ U} are node-disjoint in G, except for possibly sharing endpoints.
Proof: We use the following theorem of Hind and Oellermann [HO96] (see also [CK09]).
Theorem 5.11 Let G be a graph, T̃ a set of terminals in G, and assume that µG (T̃ ) = µ for some
µ ≥ 0. Let (p, q) be an edge with p, q ∈ V \ T̃ . Let G1 be the graph obtained from G by deleting the
edge (p, q), and let G2 be obtained from G by contracting it. Then either µG1 (T̃ ) ≥ µ or µG2 (T̃ ) ≥ µ.
While our graph G contains an edge (p, q) connecting two non-terminal vertices p and q, we apply
Theorem 5.11 to G, T̃ and the edge (p, q), and replace G with the resulting graph, where the edge
(p, q) is either deleted or contracted. Let G0 be the graph obtained at the end of this procedure.
For simplicity, we call the terminal vertices of G0 black vertices, and the non-terminal vertices white
vertices. Let W denote the set of all white vertices. Notice that every edge in G0 either connects
two black vertices, or it connects a white vertex to a black vertex. Moreover, we can assume without
loss of generality that for each t ∈ T̃ , v ∈ W , there is at most one edge (t, v) in G0 : otherwise, if
several such parallel edges are present, we delete all but one such edge. This does not affect the
element-connectivity of any pair t, t0 of terminals, since the paths connecting them are not allowed to
share v. So we will assume from now on that every such pair (t, v) at most one edge (t, v) is present
in G0 . Notice that for each terminal t, dG0 (t) ≤ dG (t). For every pair (t, t0 ) of terminals, an edge (t, t0 )
is present in G0 if and only if it was present in G. Every white vertex v is naturally associated with
a connected subgraph Cv of G, containing all edges that were contracted into v, and all subgraphs
{Cv }v∈W are completely disjoint. For each edge (v, t) connecting v to some terminal t in G0 , there is
an edge (u, t) in G, where u is some vertex in Cv . Notice that λG0 (T̃ ) ≥ µG0 (T̃ ) ≥ µ.

Next, we replace every edge in G0 by two parallel edges, and denote the resulting graph by G00 , so G00
is Eulerian. The degree of every terminal t now becomes at most 2dG (t), and λG00 (T̃ ) ≥ 2µ. We now
start constructing the final graph H and the partition U of its edges. We start with H = G00 , and for
every edge (t, t0 ) ∈ E(G0 ) connecting a pair t, t0 ∈ T̃ of terminals, we add a new group U , containing
the two copies of the edge (t, t0 ) in G00 , to U. Next, we take care of the white vertices, by using the
following edge-splitting operation due to Mader [Mad78].
34

Theorem 5.12 Let G be an undirected multi-graph, s a vertex of G whose degree is not 3, such that s
is not incident to a cut edge of G. Then s has two neighbors u and v, such that the graph G0 , obtained
from G by replacing the edges (s, u) and (s, v) with the edge (u, v), satisfies λG0 (x, y) = λG (x, y) for
all x, y 6= s.
We process the white vertices v ∈ W one-by-one. Consider some such vertex v. Recall that there are
at most 2κ edges incident to v in G00 . We apply Theorem 5.12 to vertex v repeatedly, until it becomes
an isolated vertex (since the degree of v is even due to the doubling of all edges, and the terminals
are 2µ-edge-connected, the conditions of the theorem are always satisfied). Let Uv be the set of all
resulting new edges in graph H. We add Uv to U. Notice that |Uv | ≤ κ. Once all vertices v ∈ W are
processed, we obtain the final graph H. It is easy to see that the degree of every terminal t ∈ T̃ is at
most 2dG (t), since the edge-splitting operation does not change the degrees of the terminals. Every
edge e = (t, t0 ) in H is naturally associated with a path Pe connecting t and t0 in G: if edge e = (t, t0 ) is
present in G, then Pe = e. Otherwise, edge e was obtained by replacing a pair (t, v), (v, t0 ) of vertices
in G00 with edge (t, t0 ). In this case, there must be vertices u, u0 ∈ Cv (possibly u = u0 ), with edges
e1 = (u, t), e2 = (u0 , t0 ) ∈ E(G). We let P be a path connecting u to u0 in Cv , and set Pe = (e1 , P, e2 ).
Given two edges e, e0 ∈ E(H), the only possibility that the paths Pe and Pe0 share inner vertices or
edges is when e, e0 are two copies of the same edge connecting some pair of terminals in G00 , or both
edges belong to some set Uv , for some v ∈ W . Therefore, choosing at most one edge from each group
U ∈ U ensures that the resulting paths are internally node- and edge-disjoint.
Consider now some edge e0 ∈ E(G), such that e0 is incident to some terminal t. Notice that exactly
two copies of e0 were present in H before the edge-splitting procedure. It is then immediate to verify
that e0 may belong to at most two paths in set {Pe | e ∈ E(H)}.

5.4.1

Phase 1

Let H be the graph obtained from G by contracting each cluster Si ∈ R into a super-node vi . Let
T̃ = {v1 , . . . , v`0 } be the resulting set of super-nodes that we will refer to as terminals in this phase. As
w0
observed above, every pair Si , Sj ∈ R0 of clusters has at least µ = b 6∆
c node-disjoint paths connecting
them in G. Therefore, µH (T̃ ) ≥ µ. We apply Theorem 5.10 to graph H, set T̃ of terminals and the
value µ. Let H 0 denote the resulting graph, and U the resulting partition of the edges of H 0 , where
each group U ∈ U contains at most `0 edges. Recall that each edge e = (vi , vj ) in H 0 corresponds to
a path Pe connecting vi to vj in H, where Pe does not contain vertices of T̃ , except for its endpoints.
In turn, path Pe defines a path Pe0 in graphSG, connecting a vertex of Sj to a vertex of Si directly,
that is, Pe0 does not contain the vertices of S∈R S as inner vertices.
w0
Let w1 = b 2∆`
2 c. We define a new graph Z, whose vertex set is {v1 , . . . , v`0 }. We add an edge (vi , vj )
0

to Z if and only if there are at least w1 parallel edges connecting vi to vj in H 0 . It is easy to verify
that graph Z is connected: indeed, assume otherwise. Let A be some connected component of Z,
w0
and let B contain the rest of the vertices. Let vj ∈ A, vj 0 ∈ B. Since there are at least 2µ ≥ b 6∆
c
w0
0
edge-disjoint paths connecting vj and vj 0 in H , |EH 0 (A, B)| ≥ b 6∆ c must hold. Since |A| + |B| = `0 ,
at least one pair (vj , vj 0 ) with vj ∈ A, vj 0 ∈ B, has at least w1 parallel edges connecting them in H 0 .
Let T be a spanning tree of Z that is rooted at some arbitrary node. We say that Case 1 happens if
T contains a root-to-leaf path of length at least `, and we say that Case 2 happens otherwise. Since
|V (T )| = `0 = `2 , and every vertex of T lies on some root-to-leaf path, if Case 2 happens, then T
contains at least ` leaves (see Claim 2.2). We now consider each of the two cases separately. For Case
1, we build a good tree-of-sets system directly, and we only apply Phase 2 of the algorithm if Case 2
happens.
35

Case 1 Let P be a path of T of length exactly `. Assume without loss of generality that P =
0
{v1 , . . . , v` }. Let
the set of corresponding clusters. We build a tree-of-sets
S R = ∗{S1 , . . . , S` } be
0
∗
system (R , T , e∈T ∗ Pe ). The tree T ∗ is just a path connecting v1 , . . . , v` in this order. In order to
define the sets Pe∗ of edges, we perform the following procedure. Recall that each edge (vi , vi+1 ) in
P corresponds to a collection Ei of at least w1 edges in graph H 0 . For each group U ∈ U, we select
one edge eU ∈ U uniformly at random. Let E ∗ = {eU | U ∈ U} be the set of the selected edges. For
each 1 ≤ i < `, let Ei0 = Ei ∩ E ∗ . Since the size of each group U is at most `0 , the expected number
of edges in Ei0 is at least w`01 > w ≥ log k. Using the standard Chernoff bound, with high probability,
w1
w1
for each 1 ≤ i < `, |Ei0 | ≥ b 2`
c. Let w2 = b 2`
c. If Ei0 contains more than w2 edges, we discard
0
0
S
arbitrary edges from Ei0 until |Ei0 | = w2 holds. Let P̃i = {Pe | e ∈ Ei0 }, and let P̃ = `−1
i=1 P̃i . Then
from Theorem 5.10, the paths in P̃ are internally node-disjoint in H, and they do not contain terminals
as inner vertices. Therefore, the corresponding
paths in graph G are also internally node-disjoint, and
S
they do not contain the vertices of `i=1 Si as inner vertices. For each 1 ≤ i ≤ `, let Pi be the set of
S
paths in graph G, corresponding to the paths in P̃i , and let P = `−1
i=1 Pi . Then the paths in P are
direct and internally node-disjoint. Only two issues remain. First, it is possible that some paths in P
share endpoints, and second, we need to ensure that the clusters Si have the bandwidth property in
the corresponding graph.
In order to solve the first problem, we will define, for each 1 ≤ i < `, a subset Pi0 ⊆ Pi of w paths, such
S
S
0
that every vertex of `i=1 Si belongs to at most one path in `−1
i0 =1 Pi0 (or in other words, the paths in
S`−1 0
i0 =1 Pi0 have distinct endpoints).

w2
We start with the set P1 . Using Claim 2.3, we can compute a subset P10 ⊆ P1 of b 2∆
c paths that do
not share endpoints in S1 or S2 . We then consider the set P2 of paths. We delete from P2 all paths
w2
that share endpoints with paths in P10 . Since |P10 | = b 2∆
c, at most w22 paths of P2 may share endpoints
w2
0
with paths in P1 , so at least half the paths in P2 remain. As before, we select a subset P20 of b 2∆
c
such paths that doSnot endpoints using Claim 2.3. We continue this process for all 1 ≤ i < `, until all
paths in set P 0 = i Pi0 are mutually disjoint. The sets Pi0 of paths are then used to define the sets
w2
w1
w0
Pe∗ of paths in the tree-of-sets system. Notice that the size of each set is b 2∆
2 c ≥ 8` ∆2 ≥ 32∆3 `3 > w
0
0
from Equation (1).
S
Let G∗ be the subgraph of G obtained by the union of G[S] for S ∈ R0 and e∈T ∗ Pe∗ . We need to
verify that each set Si has the αBW -bandwidth property in G∗ . Let Γi be the interface of the set Si
in G∗ . We set up an instance of the sparsest cut problem with the graph G[Si ] and the set Γi of
terminals, and apply algorithm AARV to it. If the outcome is a cut of sparsity less than α, then, since
|Γi | < w0 , we obtain an (w0 , α)-violating cut of Si in graph G. We return this cut as the outcome
of the algorithm. If AARV returns a cut of sparsity at least α for each set Si , for 1 ≤ i ≤ `, then
we are guaranteed that each such set has the αBW -bandwidth property in G∗ , and we have therefore
constructed a good tree-of-sets system. (We are guaranteed that Si ∩ T = ∅ for each i, since each set
Si ∈ R only contains non-terminal vertices).

Case 2 If Case 2 happens, then we need to execute the second phase of the algorithm, but first we
need to establish the following useful fact. Recall that we have found a tree T in graph Z containing
at least ` leaves. Let R0 ⊆ R be an arbitrary subset of ` clusters, corresponding to the leaves of T .
For simplicity of notation, we assume that R0 = {S1 , . . . , S` }. We say that
S a path P connects Si to Sj
directly, for Si , Sj ∈ R0 if and only if no inner vertex of P belongs to S∈R0 S (but they may belong
to clusters S ∈ R \ R0 ).
Theorem 5.13 There is an efficient randomized algorithm, that with high probability either computes
a (w0 , α)-violating cut of some set S ∈ R, or finds, for each set Si ∈ R0 , a subset Ei ⊆ outG (Si ) of
36

edges, and for each 1 ≤ i 6= j ≤ ` a collection Pi,j of paths in G that satisfy the following properties:
• |Ei | = w3 = Ω



α2 w1
`∆7 log k



• Pi,j is a collection of w3 node-disjoint paths that directly connect Si to Sj
• each path P ∈ Pi,j contains an edge of Ei and an edge of Ej as its first and last edges, respectively.
Notice that the theorem implies that the edges in each set Ei do not share endpoints.
Proof: Recall that each edge e ∈ E(H 0 ) corresponds to a path Pe in H. Since for any choice of
edges eU ∈ U for each U ∈ U, we are guaranteed that the corresponding set {PeU | U ∈ U} of paths
is edge-disjoint in H, and |U | ≤ `0 for all U ∈ U, the total edge congestion in H due to the paths in
{Pe | e ∈ E(H 0 )} is at most `0 . Each such path Pe naturally defines a direct path Pe0 in G, and the
total edge congestion due to the paths in {Pe0 | e ∈ E(H 0 )} is at most `0 in G.
Let v ∗ be the root of the tree T , and let S ∗ ∈ R be the corresponding vertex subset. We use the
following claim.

w1
Claim 5.14 For each set Sj ∈ R0 , there is a flow Fj of value d 2∆
e, originating from the vertices of
∗
S and terminating at the vertices ofSSj in G, with edge-congestion at most α2 , such that the flow-paths
in Fj do not contain the vertices of S∈R0 S as inner vertices.

Proof: Consider the path (v ∗ = vi1 , vi2 , . . . , vix = vj ) in the tree T , connecting v ∗ to vj . For each
edge ez = (viz , viz+1 ) on this path, there are w1 parallel edges corresponding to ez in graph H 0 . Let
Qz be the corresponding set of w1 direct paths connecting the vertices of Siz to the vertices of Siz+1
in G. Recall that from Theorem 5.10, every edge incident to a vertex of Siz ∪ Siz+1 belongs to at most
two paths in set Qz . Therefore, every vertex of Siz ∪ Siz+1 serves as an endpoint of at most 2∆ paths.
We can construct a bipartite graph, whose vertex set is (Siz ∪ Siz+1 ), and there is an edge (u, v) for
u ∈ Siz , v ∈ Siz+1 for every path in Qz connecting u to v. Then the resulting bipartite graph has
maximum vertex degree at most 2∆, and so from Claim 2.3, we can find a matching of cardinality
w1
z|
0
d |Q
2∆ e in this graph. This matching defines a subset Qz ⊆ Qz of d 2∆ e paths, whose endpoints are all
distinct. Denote

Γ2z = v ∈ Siz | v is the first vertex on some path in Q0z ,
and similarly

Γ1z+1 = v ∈ Siz+1 | v is the last vertex on some path in Q0z .
w1
For each 1 < z < x, we have now defined two subsets Γ1z , Γ2z ⊆ Siz of vertices of cardinality d 2∆
e < w0
1
2
2
1
each. Let nz = |Γz \ Γz | = |Γz \ Γz |. We now try to send flow in G[Siz ], where every vertex in Γ1z \ Γ2z
sends one flow unit, and every vertex in Γ2z \ Γ1z receives one flow unit, with edge-congestion at most
1/α. If such a flow does not exist, then the minimum edge-cut separating these two vertex subsets
defines a (w0 , α)-violating cut of Siz . We then terminate the algorithm and return this cut. We assume
therefore that such a flow exists, and denote it by Fz0 .
w1
0
Concatenating the flows (Q01 , F10 , Q02 , F20 , . . . , Fx−1
, Q0x−1 ), we obtain the desired flow Fj of value d 2∆
e.
Sx−1
0
The total congestion caused by paths in z=1 Qz is at most `0 , while each flow Fz causes congestion
at most 1/α in graph G[Siz ]. Therefore, the total congestion due to flow Fj is bounded by α1 + `0 ≤ α2 .

37

Scaling all flows Fj , for Sj ∈ R0 down by factor 2`∆/α, we obtain a new flow F , where every set
w1 α
∗
Sj ∈ R0 sends at least b 4`∆
2 c flow units to S , and the total vertex-congestion due to F is at most 1.
S
The flow-paths of F do not contain the vertices of `j=1 Sj as inner vertices. We now use the following
claim.
Claim 5.15 There is an efficient algorithm to compute a collection {Pj }`j=1 of path sets, where for
S`
w1 α
∗
each 1 ≤ j ≤ `, set Pj contains b 4`∆
2 c paths connecting Sj to S , the paths in
j=1 Pj are nodeS`
disjoint, and they do not contain the vertices of j=1 Sj as inner vertices.
Proof: We set up a flow network N : start with the graph G and bi-direct all its edges, setting
the capacity of every vertex to 1. Delete all edges entering the clusters Sj , and all edges with both
endpoints in Sj , for all 1 ≤ j ≤ `. Delete all edges leaving the cluster S ∗ , and every edge with both
w1 α
endpoints in S ∗ . For each 1 ≤ j ≤ `, add a vertex sj of capacity b 4`∆
2 c, and connect sj to every
vertex of Sj with a directed edge. Finally, add a source vertex s of infinite capacity, connecting it to
every vertex in {s1 , . . . , s` }, and add a destination vertex t of infinite capacity, to which every vertex
w1 α
of S ∗ connects. Notice that flow F defines a feasible s-t flow of value ` · b 4`∆
2 c in this network. From
the integrality of flow, there is an integral flow of this value in N . It is immediate to verify that this
integral flow defines the desired collections Pj of paths, for 1 ≤ j ≤ `.

For each 1 ≤ j ≤ `, let Aj ⊆ S ∗ be the set of vertices that serve as endpoints of paths in Pj , and let
S
w1 α
A = `j=1 Aj . Notice that |A| = ` · d 4`∆
2 e < w0 . We set up an instance of the sparsest cut problem in
∗
graph G[S ], where the vertices of A act as terminals, and apply algorithm AARV to this problem. If
the algorithm returns a cut whose sparsity is less than α, then we have found a (w0 , α)-violating cut
in S ∗ ∈ R. We return this cut, and terminate the algorithm. Otherwise, we are guaranteed that the
set A is αBW -well-linked in G[S ∗ ].
We apply Corollary 2.12 to graph
G[S∗ ] andthe setsA1 , . . . , A` of vertices, obtaining, for each 1 ≤

2w
α
|A
|
1
√ j
j ≤ `, a subset A∗j ⊆ Aj of Ω ∆BW
= Ω `∆α7 log
= w3 vertices, such that for all 1 ≤ i 6= j ≤ `,
5 log k
k
∗
∗
∗
Aj and Ai are linked in G[S ]. Let Qi,j be the set of w3 node-disjoint paths connecting A∗j to A∗i in
G[S ∗ ].
For each 1 ≤ j ≤ `, let Pj0 ⊆ Pj be the subset of paths whose endpoint belongs to A∗j , and let
Ej ⊆ out(Sj ) be the set of edges e, where e is the first edge on some path of Pj0 , so |Ej | = w3 .
Consider a pair 1 ≤ i < j ≤ ` of indices. The desired set of paths connecting Si to Sj is obtained by
concatenating the paths in Pi0 , Qi,j and Pj0 .

To summarize, we have found a collection R0 = {S1 , . . . , S` } of ` disjoint vertex subsets, and for each
set Sj , a collection Ej ⊆ outG (Sj ) of w3 edges, such that for each 1 ≤ j 6= i ≤ `, there is a set of w3
node-disjoint paths in G, connecting Si to Sj directly, such that each path contains an edge of Ej and
an edge of Ei as its first and last edges, respectively.
5.4.2

Phase 2

We construct a new graph H̃, obtained from G as follows. First, for each 1 ≤ j ≤ `, we delete all
edges in out(Sj ) \ Ej from G. Let Bj ⊆ Sj be the subset of vertices containing the endpoints of the
edges in Ej that belong to Sj . We delete all vertices of Sj \ Bj and add a new super-node vj that
connects to every vertex in Bj with an edge. Recall that from the above discussion, |Bj | = w3 , so the
degree of every super-node vj in H̃ is w3 , and every pair vj , vi of super-nodes are connected by w3
paths, that are completely disjoint, except for sharing the first and the last vertex. We will think of
the super-node vj as representing the set Sj ∈ R0 . In this phase, the vertices of {v1 , . . . , v` } are called
38

terminals, and a path P connectingSa vertex of Si to a vertex of Si0 in G is called direct if and only if
it does not contain the vertices of `j=1 Sj as inner vertices.
We apply Theorem 5.10 to graph H̃, with the set {v1 , . . . , v` } of terminals and µ = w3 . Let H̃ 0 denote
the resulting graph, and U the resulting partition of the edges of H̃ into groups of size at most `. Recall
that the degree of every vertex of H̃ 0 is at most 2w3 , and every pair of vertices is (2w3 )-edge-connected.
This can only happen if the degree of every vertex is exactly 2w3 . The main difference between graph
H̃ 0 and the graph H 0 that we computed in Phase 1 is that now the degree of every terminal, and the
edge-connectivity of every pair of terminals, are the same. It is this property that allows us to build
the tree-of-sets system. To simplify notation, denote h = 2w3 .
Suppose we choose, for each group U ∈ U, some edge eU ∈ U . Then Theorem 5.10 guarantees that
all paths in {PeU | U ∈ U} are node-disjoint in H̃, except for possibly sharing endpoints, and they do
not contain terminals as inner vertices. For each such edge eU = (vi , vj ) ∈ E(H̃ 0 ), path PeU in H̃
naturally defines a direct path Pe0U , connecting a vertex of Si to a vertex of Sj in G. Moreover, from

the definition of graph H̃, the paths in Pe0U | U ∈ U are completely node-disjoint in G. For each
edge e ∈ E(H̃ 0 ), let Pe0 denote the path in graph G corresponding to the path Pe in H̃.
We build an auxiliary undirected graph Z̃ on the set {v1 , . . . , v` } of vertices, as follows. For each
pair vj , vj 0 of vertices, there is an edge (vj , vj 0 ) in graph Z̃ if and only if there are at least h/`3 edges
connecting vj and vj 0 in H̃ 0 . If edge e = (vj , vj 0 ) is present in graph Z̃, then its capacity c(e) is set
to be the number of edges connecting vj to vj 0 in H̃ 0 . For each vertex vj , let C(vj ) denote the total
capacity of edges incident on vj in graph Z̃. We need the following simple observation.
Observation 5.16
• For each vertex v ∈ V (Z̃), (1 − 1/`2 )h ≤ C(v) ≤ h.
• For each pair (u, v) of vertices in graph Z̃, we can send at least (1 − 1/`)h flow units from u to
v in Z̃ without violating the edge capacities.
Proof: In order to prove the first assertion, recall that each vertex in graph H̃ 0 has h edges incident
to it. So C(v) ≤ h for all v ∈ V (Z̃). Call a pair (vj , vj 0 ) of vertices bad iff there are fewer than h/`3
edges connecting vj to vj 0 in H̃ 0 . Notice that each vertex v ∈ V (Z̃) may participate in at most ` bad
pairs, as |V (Z̃)| = `. Therefore, C(v) ≥ h − `h/`3 = h(1 − 1/`2 ) must hold.
For the second assertion, assume for contradiction that it is not true, and let (u, v) be a violating pair
of vertices. Then there is a cut (A, B) in Z̃, with u ∈ A, v ∈ B, and the total capacity of edges crossing
this cut is at most (1 − 1/`)h. Since u and v were connected by h edge-disjoint paths in graph H̃ 0 ,
this means that there are at least h/` edges in graph H̃ 0 that connect bad pairs of vertices. But since
we can only have at most `2 bad pairs, and each pair has fewer than h/`3 edges connecting them, this
is impossible.
The following claim allows us to find a spanning tree of Z̃ with maximum vertex degree at most 3. It
relies on the specific properties of the graph Z̃ outlined in the preceding observation. This low-degree
spanning tree will be used to define the tree-of-sets system.
Claim 5.17 There is an efficient algorithm to find a spanning tree T ∗ of Z̃ with maximum vertex
degree at most 3.
Proof: We use the algorithm of Singh and Lau [SL15] for constructing bounded-degree spanning trees.
Suppose we are given a graph G = (V, E), and our goal is to construct a spanning tree T of G, where
39

the degree of every vertex is bounded by some integer B. For each subset S ⊆ V of vertices, let E(S)
denote the subset of edges with both endpoints in S, and δ(S) the subset of edges with exactly one
endpoint in S. Singh and Lau consider a natural LP-relaxation for the problem. We note that their
algorithm works for a more general problem where edges are associated with costs, and the goal is to
find a minimum-cost tree that respects the degree requirements; since we do not need to minimize the
tree cost, we only discuss the unweighted version here. For each edge e ∈ E, we have a variable xe
indicating whether e is included in the solution. We are looking for a feasible solution to the following
LP.

P

e∈E

P

xe = |V | − 1

e∈E(S) xe

P

(2)

≤ |S| − 1 ∀S ( V

e∈δ(v) xe

xe ≥ 0

≤B

∀v ∈ V

∀e ∈ E

(3)
(4)
(5)

Singh and Lau [SL15] show an efficient algorithm, that, given a feasible solution to the above LP,
produces a spanning tree T , where for each vertex v ∈ V , the degree of v is at most B + 1 in T .
Therefore, in order to prove the claim, it suffices to show a feasible solution to the LP, where B = 2.
Recall that |V (Z̃)| = `. The solution is
 defined as follows. Let e = (u, v) be any edge in E(Z̃). We
c(e)
c(e)
c(e)
`−1
set the LP-value of e to be xe = ` · C(v)
. We say that `−1
+ C(u)
` · C(v) is the contribution of v
`−1
`

·

c(e)
C(u)

is the contribution of u. We now verify that all constraints of the LP hold.
P
First, it is easy to see that e∈E xe = ` − 1, as required. Next, consider some subset S ( V of vertices.
Notice that it suffces to establish Constraint (3) for subsets S with |S| ≥ 2. From Observation 5.16,
the total capacity of edges in EZ̃ (S, S) must be at least (1 − 1/`)h. Since for each v ∈ S, C(v) ≤ h,
the total contribution of the vertices in S towards the LP-weights of edges in EZ̃ (S, S) is at least
`−1
2
` · (1 − 1/`) = (1 − 1/`) . Therefore,
to xe , and

X
e∈E(S)

xe ≤

`−1
|S| − (1 − 1/`)2 = |S| − |S|/` − 1 − 1/`2 + 2/` ≤ |S| − 1
`

since we assume
that |S| ≥ 2. This establishes Constraint (3). Finally, we show that for each
P
v ∈ V (Z̃), e∈δv xe ≤ 2. First, the contribution of the vertex v to this summation is bounded by 1.
Next, recall that for each u ∈ V (Z̃), C(u) ≥ (1 − 1/`2 )h, while the total capacity of edges in δ(v)
is at most h. Therefore, the total contribution of other vertices to this summation is bounded by
h
`
· `−1
` ≤ `+1 ≤ 1. The algorithm of Singh and Lau can now be used to obtain a spanning tree
(1−1/`2 )h
T ∗ for Z̃ with maximum vertex degree at most 3.

S
We are now ready to define the tree-of-sets system (R0 , T ∗ , e∈E(T ∗ ) P ∗ (e)). The tree T ∗ is the tree
computed by Claim 5.17. In order to define the sets P ∗ (e) of paths, recall that each edge e of Z̃
(and hence of T ∗ ) corresponds to a set Se of at least 2w3 /`3 edges of H̃ 0 . For each group U ∈ U, we
randomly choose one edge eU ∈ U, and we let E ∗ ⊆ E(H̃) be the set of all selected edges. For each
3
, and using the standard
edge e ∈ E(T ∗ ), let Se0 = Se ∩ E ∗ . The expected size of Se0 is at least 2w
`4
w
∗
0
3
Chernoff bound, with high probability, for each edge e ∈ E(T ), |Se | ≥ `4 , since w3 /`4 ≥ w ≥ 4 log k.




2
w1 α2
This is since w`43 = Ω `5 ∆
= Ω ∆8w`90 αlog k ≥ w from Equation (1). The final set Pe∗ of paths is
7 log k
 0
Pe0 | e0 ∈ Se0 . Notice that |Pe∗ | ≥ w3 /`4 ≥ w. We delete paths from Pe∗ as necessary, until |Pe∗ | = w.
S
From the definition of the graph H̃, and from Theorem 5.10, all paths in e∈E(T ∗ ) Pe∗ are mutually
node-disjoint.
40

S
Let G∗ be the subgraph of G obtained by taking the union of G[Sj ] for Sj ∈ R0 , and e∈E(T ∗ ) Pe∗ .
We need to verify that each set Si has the αBW -bandwidth property in G∗ . Let Γi be the interface
of the set Si in G∗ . We set up a sparsest cut problem instance with the graph G[Si ] and the set Γi
of terminals, and apply algorithm AARV to it. If the outcome is a cut of sparsity less than α, then,
since |Γi | < w0 , we obtain an (w0 , α)-violating partition of Si in graph G. We return this partition
as the outcome of the algorithm. If AARV returns a cut of sparsity at least α for each set Si , for
1 ≤ i ≤ `, then we are guaranteed that each such set has the αBW -bandwidth property in G∗ , and we
have therefore constructed a good tree-of-sets system.

6

Extensions

The following theorem gives a slightly stronger version of Theorem 3.4, that we believe will be useful
in designing approximation algorithms for maximum throughput routing problems such as All-orNothing flow and Disjoint Paths
in node capacited graphs. For brevity, given a collection S of vertex
S
subsets, we denote V (S) = Si ∈S Si .
Theorem 6.1 There is a universal constant ĉ > 1 and an efficient randomized algorithm, that, given
as input (i) a graph G with maximum vertex degree ∆; (ii) a subset T ∗ of k ∗ vertices of G called
terminals that have degree 1 in G, such that T ∗ is α∗ -well-linked in G for some 0 < α∗ < 1, and (iii)
∗ ∗
parameters `∗ , w∗ > 2, such that ∆23αlogk8.5 k∗ > ĉw∗ (`∗ )48 , with high probability computes the following:
• a subgraph G∗ ⊆ G;

S ∗ −1
∗
∗
∗
Pi , A
• a strong path-of-sets system (S ∗ , `i=1
 1 , B`∗ ) in G with T ∩ V (S ) = ∅, such that every
∗
2
(α )
∗ =Ω
set S ∈ S ∗ has the αBW
-bandwidth property in G∗ ; and
∆5 (`∗ )16 log3 k∗
∗
• for each S ∈ S ∗ , a set Q(S) of paths in G∗ , connecting every terminal
 vertex of
 in5 T∗ 16 to 3some
∆ (` ) log k∗
∗
S, such that the paths in Q(S) cause edge-congestion at most η = O
.
(α∗ )2

We note that in approximation algorithms for routing problems, such as Edge-Disjoint Paths and
Node-Disjoint Paths, the typical setting of parameters is `∗ = Θ(log2 k) (roughly equal to the number
of rounds in the cut-matching game), ∆ = poly log k ∗ , and w∗ = k ∗ / poly log k ∗ , where k ∗ is the
number of terminals.
We briefly explain the relevance of the additional properties guaranteed by the preceding theorem for
routing problems. A path-of-sets system can be used to embed an expander in G∗ and this in turn
can be used as a crossbar routing structure; we refer the reader to prior work [CKS05, Chu12, CL12]
for more details on this approach. However, a technical issue that arises in using the crossbar for
connecting the given input pairs is the following: we need to connect the input pairs to the interface
of the crossbar. To avoid additional congestion in the routing, we would like the paths connecting the
terminals to the interface to be disjoint from the crossbar itself. Theorem 6.1 helps in addressing this
technical issue. We mention that the following simple approach does not work to yield the desired
properties. We could start with a subgraph G0 containing a path-of-sets system and then try to add
paths from the terminals T ∗ to each S ∈ S ∗ by using the well-linkedness properties of the terminals.
However, these paths may add new edges and alter the boundaries of the sets in S ∗ and hence a
set S ∈ S ∗ which was previously boundary well-linked in G0 may not have the property in the new
subgraph G00 obtained from G0 by addding the paths from the terminals to the path-of-sets system.
The remainder of this section is devoted to the proof of Theorem 6.1. Using Theorem 2.11, we compute
∗ k∗
a subset T ⊆ T ∗ of k = d 32∆4αβARV
e terminals, such that T is node-well-linked in G. From the
(k∗ )
41

k
k
∗ ∗ 48 for
≥ ∆19 log
8 ∗ ≥ ĉw (` )
∆19 log8 k
k
ĉ
· w∗ (`∗ )10 ∆11 log4 k, so w > 4 log k
238 ·c

assumption in Theorem 6.1,
3(`∗ )2 + 1

set ` =
and w =
Theorem 4.1. Clearly:
cw`19 ∆8 ≤ (

some large enough constant ĉ. We
holds, where c is the constant from

ĉ ∗ ∗ 10 11
k
w (` ) ∆ log4 k) · (2`∗ )38 ∆8 < ĉ · w∗ (`∗ )48 ∆19 log4 k ≤
.
38
2
log4 k

Therefore, logk4 k > cw`19 ∆8 , and the conditions of Theorem 4.1 hold for G, T and parameters k, ` and
w. The main ingredient of the proof of Theorem 6.1 is the following generalization of Theorem 4.1 for
the construction of a tree-of-sets system.
Theorem 6.2 There is an efficient randomized algorithm, that, given input as in Theorem 6.1, the
∗ and η ∗ as above, with high probability computes:
set T ⊆ T ∗ of terminals, and parameters `, w, αBW
• a subgraph G∗ of G;
S
1
• a tree-of-sets system (S, T, e∈E(T ) Pe ) in G∗ , with parameters d `−1
3 e, w and αBW = Ω( `2 log1.5 k ),
∗ -bandwidth property in G∗ ; and
such that T ∗ ∩ V (S) = ∅, and every set S ∈ S has the αBW
• for each S ∈ S, a set Q(S) of paths in G∗ , connecting every terminal in T ∗ to some vertex of
S, such that the paths in Q(S) cause edge-congestion at most η ∗ .
Notice that the definition of the tree-of-sets system only requires that each set Si ∈ S has the
bandwidth property in the subgraph of G induced by the vertices of the tree-of-sets system.
preceding theorem requires a slightly stronger property, that additionally Si must have the
bandwidth property in the graph G∗ , that contains both the tree-of-sets system, and the set
S
S∈S Q(S) of paths.

αBW The
∗ αBW
Q =

We first complete the proof of Theorem 6.1 assuming Theorem 6.2, and then provide a proof of the
latter. This is done exactly as in the proof of Theorem 3.4, by first turning the tree-of-sets sys∗
tem into a strong
S one, and then into a path-of-sets system. Consider the graph G , the tree-of-sets
system (S, T, e∈E(T ) Pe ), and the sets
S of paths {Q(S)}S∈S returned by Theorem 6.2.SAs before,
we use Lemma 4.2 to convert (S, T, e∈E(T ) Pe ) into a strong tree-of-sets system (S, T, e∈E(T ) Pe∗ )
α2

BW
with parameters ` and w̃ = Ω( ∆10 (βARV
· w) using Lemma 4.2. If ĉ is chosen to be large
(w))2
∗
∗
2
enough, w̃
16w (` ) + 1 must hold. We then apply Theorem 4.3 to obtain a path-of-sets sysS`>
∗ −1
∗
tem (S , i=1 Pi , A1 , B`∗ ) with width w∗ and length `∗ . Theorem 4.3 guarantees that S ∗ ⊆ S, and
∗ -bandwidth property in G∗ , and we can use the set Q(S) of
hence every set S ∈ S ∗ still has the αBW
paths computed for it by Theorem 6.2. It remains to prove Theorem 6.2.

Proof of Theorem 6.2. The proof closely follows the proof of Theorem
4.1, using the parameters
S
w, `, αBW , together with the set T of terminals. As before, if (S, T, e∈E(T ) Pe ) is a tree-of-sets system
in G, with parameters w, `, αBW , and for each Si ∈ S, Si ∩ T = ∅, then we say that it is a good
tree-of-sets system (but we allow the sets in S to contain terminals of T ∗ \ T ). We define the potential
function, acceptable clustering, and good clustering exactly as before, using the parameters w, `, αBW ,
and we set parameters `0 , w0 , α exactly as before, so `0 = `2 and w0 = 192`3klog k . Notice that under
0
this definition of good clustering, the terminals of T ∗ \ T are treated as regular vertices, and they
do not necessarily reside in separate clusters. The algorithm again consists of a number of phases,
where the input to every phase is a good clustering C of V (G), and the output is either another good
clustering C 0 with ϕ(C 0 ) ≤ ϕ(C) − 1, or a valid output for Theorem 6.2, that is, a subgraph G∗ of G,
42

S
a tree-of-sets system (S, T, e∈E(T ) Pe ) in G∗ , and the sets Q(S)S∈S of paths as required. The initial
clustering is defined exactly as before: {{v} | v ∈ V (G)}.
We now proceed to describe each phase. Suppose the input to the current phase is a good clustering
C, and let G0 be the corresponding legal contracted graph. We find the partition {X1 , . . . , X`0 } of
V (G0 ) \ T , and compute, for each 1 ≤ j ≤ `0 , an acceptable clustering Cj exactly as before. Our only
departure from the proof of Theorem 4.1 is that we replace Theorem 5.9 with the following theorem.
Theorem 6.3 There is an efficient randomized algorithm, that, given a collection {S1 , . . . , S`0 } of
disjoint vertex subsets of G, where for all 1 ≤ j ≤ `0 , Sj ∩ T = ∅, with high probability computes one
of the following:
• either a (w0 , α)-violating partition (X, Y ) of Sj , for some 1 ≤ j ≤ `0 ; or
• a partition (A, B) of V (G) with Sj ⊆ A, T ⊆ B and |EG (A, B)| < w0 /2, for some 1 ≤ j ≤ `0 ;
or
• a valid output for Theorem 6.2, that is:
– a subgraph G∗ of G;
S
– a tree-of-sets system (S, T, e∈E(T ) Pe ) in G∗ , with parameters d `−1
3 e, w and αBW , such that
∗ -bandwidth property in G∗ ; and
T ∗ ∩ V (S) = ∅, and every set S ∈ S has the αBW

– for each S ∈ S, a set Q(S) of paths in G∗ , connecting every terminal in T ∗ to some vertex
of S, such that the paths in Q(S) cause edge-congestion at most η ∗ .

Just as in the proof of Theorem 4.1, the proof of Theorem 6.2 follows from the proof of Theorem 6.3:
We start with the initial collection C1 , . . . , C`0 of acceptable clusterings, where for each 1 ≤ j ≤
`0 , ϕ(Cj ) ≤ ϕ(C) − 1. If any of these clusterings Cj is a good clustering, then we terminate the
phase and return this clustering. Otherwise, each clustering Cj must contain a large cluster Sj ∈ Cj .
We then iteratively apply Theorem 6.3 to clusters {S1 , . . . , S`0 }. If the outcome is a valid output
for Theorem 6.2, then we terminate the algorithm and return this output. Otherwise, we obtain
either a (w0 , α)-violating partition of some cluster Sj , or a partition (A, B) of V (G) with Sj ⊆ A,
T ⊆ B and |EG (A, B)| < w0 /2, for some 1 ≤ j ≤ `0 . We then apply the appropriate action:
PARTITION(Sj , X, Y ), or SEPARATE(Sj , A) to the clustering Cj , and obtain an acceptable clustering
Cj0 , with ϕ(Cj0 ) ≤ ϕ(Cj ) − 1/n. If Cj0 is a good clustering, then we terminate the phase and return Cj0 .
Otherwise, we select an arbitrary large cluster Sj0 in Cj0 , replace Sj with Sj0 and continue to the next
iteration. As before, we are guaranteed that after polynomially-many iterations, the algorithm will
terminate with the desired output.
From now on we focus on proving Theorem 6.3. Given the input collection {S1 , . . . , S`0 } of vertex
subsets, we run the algorithm from Theorem 5.9 on it. If the outcome is a (w0 , α)-violating partition
(X, Y ) of Sj , for some 1 ≤ j ≤ `0 , or a partition (A, B) of V (G) with Sj ⊆ A, T ⊆ B and |EG (A, B)| <
w0 /2, for some 1 ≤ j ≤ `0 , then we terminate the algorithm and return this partition.
Therefore, we can assumeSfrom now on that the algorithm from Theorem 5.9 has computed a good
tree-of-sets system (S, T, e∈E(T ) Pe ) in G, where S = {S1 , . . . , S`0 }. Let U = V (S). Recall that
the algorithm also ensures that each set Sj can send w0 /2 flow units to the terminals of T with no
edge-congestion, since otherwise we could find a cut separating Si from T and containing fewer than
w0 /2 edges. While we are guaranteed that T ∩ U = ∅, it is possible that some terminals of T ∗ \ T
belong to U — we take care of this issue later. The rest of the proof consists of three steps. In the first
step, we construct the sets Q(S) of paths for all S ∈ S, slightly alter the tree T by discarding parts of
43

it, and define the graph G∗ . In the second step, we ensure that every set S ∈ S has the γ-bandwidth
property in G∗ , for a sufficiently large value γ. In the final step, we remove the vertices of T ∗ \ T
∗ -bandwidth property in G∗ . If
from the clusters S, and ensure that the resulting clusters have the αBW
either of these steps fail, then we return a (w0 , α)-violating partition of some cluster S ∈ S.
Step 1: finding the sets Q(S) of paths. The following lemma allows us to compute the sets Q(S)
of paths.
Lemma 6.4 There is an efficient algorithm, that either computes a (w0 , α)-violating partition of some
set S 0 ∈ S, or computes, for every set S ∈ S a collection Q(S) of paths, such that:
• paths in Q(S) connect every terminal in T ∗ to some vertex of S, and they are internally disjoint
from T ∗ ∪ S;
• paths in Q(S) cause edge-congestion at most η ∗ in G; and
• for each S 0 ∈ S, for every path P ∈ Q(S), P ∩ G[S 0 ] has at most three connected components.
Proof: We fix some set S ∈ S. Recall that there is a flow F of value w0 /2 from the terminals in
T to the vertices of S with edge-congestion at most 1, where each terminal sends at most one unit
of flow. This implies, by converting the fractional flow into an integral flow, that there is a subset
T0 ⊆ T of at least w0 /2 terminals, and a collection Q0 (S) of edge-disjoint paths, connecting T0 to S.
We partition the terminals of T ∗ \ T0 into r ≤ 4k ∗ /w0 subsets Ti , of cardinality at most w0 /2 each.
From the α∗ -well-linkedness of the terminals, for each such set Ti , there is a collection Qi (S) of paths,
connecting Ti to T0 with edge-congestion at most 1/α∗ .
For i > 0, we view the paths in Qi (S) as directed from the vertices of Ti to the vertices of T0 , and we
view the paths of Q0 (S) as directed from the vertices of T0 to the vertices of S. Fix some 0 ≤ i ≤ r.
We now re-route the paths in Qi (S), to ensure that for each cluster S 0 ∈ S, the intersection of each
such path with G[S 0 ] has at most two connected components.
Consider some set S 0 ∈ S. Let Qi (S, S 0 ) ⊆ Qi (S) be the following subset of paths: P ∈ Qi (S, S 0 ), if
P ∈ Qi (S) and P ∩ G[S 0 ] has more than two connected components. For P ∈ Qi (S, S 0 ), let Σ(P ) be
the set of these connected components. We can order these components based on the orientation of
P . Note that the first component of Σ(P ) may contain a terminal of T ∗ \ T , if it belongs to S 0 . In
such a case we discard the corresponding component from Σ(P ). We denote by sP , tP the first and
the last vertices of P , respectively, that belong to any remaining component of Σ(P ); it can be seen
that sP , tP ∈ ΓG (S 0 ). We will refer to sP and tP as the source and the destination vertex, respectively,
of the pair (sP , tP ). Our goal is to find, for each P ∈ Q(S, S 0 ), an alternate path from sp to tp that
is completely contained inside G[S 0 ]; we do this by exploiting the boundary well-linkeness properties
of S 0 . Let Mi (S 0 ) = {(sP , tP ) | P ∈ Qi (S, S 0 )}; in fact this is a multi-set since (sP , tP ) can be the
source and destination vertices for multiple paths P . Observe that |Mi (S 0 )| ≤ |Qi (S)| ≤ w0 /2, and
a vertex of ΓG (S 0 ) may belong to at most ∆/α∗ pairs in Mi (S 0 ) (since the paths in Qi (S) cause
vertex-congestion at most ∆/α∗ ). Let Γ0 ⊆ ΓG (S 0 ) contain all vertices that participate in the pairs in
Mi (S 0 ), hence |Γ0 | ≤ w0 .

We use algorithm AARV in order to approximately compute the sparsest cut (A, B) of G[S 0 ] with
respect to the set Γ0 of terminals. If the sparsity of the cut is at less than α, then (A, B) is a (w0 , α)violating partition of S 0 . We then return this partition and terminate the algorithm. Otherwise, we
are guaranteed that the vertices of Γ0 are αBW -well-linked in G[S 0 ]. Let X = {sP | P ∈ Qi (S, S 0 )} and
Y = {tP | P ∈ Qi (S, S 0 )}, where each set is a multi-set, that is, a vertex v that serves as a source
vertex in nv pairs of Mi (S 0 ) appears nv times in X, and the same holds for vertices of Y .
44

Observation 6.5 There is a collection
R of paths in G[S 0 ], connecting vertices X to vertices Y with

∆
edge-congestion at most O αBW
·α∗ , such that if v appears nv times in X then exactly nv paths of R

originate at v, and if v appears n0v times in Y , then exactly n0v paths of R terminate at v.

Proof: Since every vertex of X ∪Y may participate in at most ∆/α∗ pairs in Mi (S 0 ), we can partition
the set Mi (S 0 ) into at most z = d2∆/α∗ e subsets N1 , . . . , Nz , such that for all 1 ≤ j ≤ z, every vertex
of X ∪ Y participates in at most one pair in Nj . For each 1 ≤ j ≤ z, we then denote by Xj and
Yj the sets of all source and all destination vertices, respectively, of the pairs in Nj . Since S 0 has
the αBW -bandwidth property, we are guaranteed that Xj ∪ Yj is αBW -well-linked in G[S 0 ]. Therefore,
there is a set Rj of paths in G[S 0 ], connecting every
S vertex of Xj to a distinct vertex of Yj , with
edge-congestion at most 1/αBW . We then set R = j Rj .

For every path P ∈ Qi (S, S 0 ), we discard the segment of the path between sP and tP , obtaining two subpaths P1 , P2 of P . We then use the paths in R in order to glue all path segments in {P1 | P ∈ Qi (S, S 0 )}
and {P2 | P ∈ Qi (S, S 0 )}, obtaining a new collection of paths, connecting each vertex of Ti to a distinct
vertex of T0 (if i = 0, then the paths connect every vertex of T0 to some vertex of S). These new paths
then replace the paths of Qi (S, S 0 ) in Qi (S). Note that after rerouting, a terminal in Ti (if i > 0) may
not connect to the same terminal in T0 as it did previously.
0
Once we process
every

 cluster S ∈ S in this fashion, the final set Qi (S) of paths causes edge-congestion
∆
0
0
at most O αBW
·α∗ , and has the property that for every S ∈ S and every path P ∈ Qi (S), P ∩ G[S ]

contains at most two connected components (if P ∈ Q0 (S 0 ), then P ∩ G[S 0 ] may contain at most one
connected component, as P originates
from a vertex of T , that cannot lie in S 0 ). In our final step, we
Sr
take the union of all paths in i=1 Qi (S), and concatenate them with r copies of the paths in Q0 (S).
This final set of paths is denoted by Q(S). It is immediate to verify that the paths in Q(S) connect
every vertex of T ∗ to a vertex of S, and for all S 0 ∈ S and P ∈ Q(S), P ∩ G[S 0 ] has at most three
connected components. The congestion caused by the paths in Q(S) is bounded by:

2r · O

∆
αBW · α∗




k∗ · ∆
=O
w0 · αBW · α∗
 ∗ 3

k ∆`0 log k
=O
· `0 log kβARV (k)
k · α∗
 ∗ 8

k ∆` log2.5 k ∆4 βARV (k ∗ )
·
=O
α∗
α∗ k ∗
 5 8

∆ ` log3 k ∗
=O
(α∗ )2

 5 ∗ 16
∆ (` ) log3 k ∗
=O
= η∗.
(α∗ )2


Let S = {S1 , . . . , S` }, and let V (T ) = {v1 , . . . , v` }, where vi is the vertex corresponding to the clusters
Si . For a cluster Si , let T (Si ) = T ∗ ∩ Si , and let i∗ = arg maxi |T (Si )| be the index of the cluster
containing the largest number of terminals. Let T 0 be the largest connected component of T \ {vi∗ }.
`−1
0
0
Since T has maximum degree 3, |V (T 0 )| ≥ d `−1
3 e. If |V (T )| > d 3 e, we discard leaves of T until
the equality holds. We discard from S allSclusters except those corresponding to the vertices of T 0 ,
obtaining a new tree-of-sets system (T 0 , S, e∈E(T 0 ) P(e)). For simplicity, we will denote T 0 by T from
now on. The new tree-of-sets system has the property that for each Si ∈ S, |T (Si )| ≤ k ∗ /2. Since the
45

terminals of T ∗ are α∗ -well-linked, there is a set Ri of paths in G, connecting every terminal in T (Si )
to some terminal of T ∗ \ T (Si ) with edge-congestion at most 1/α∗ . By appropriately truncating each
path P in Ri , we can ensure that it terminates at a vertex uP ∈ ΓG (Si ), and that P ⊆ G[Si ]. We
denote by Ri ⊆ ΓG (Si ) the set of endpoints of the resulting paths in Ri . Then |Ri | ≤ k ∗ /2, and every
vertex in Ri serves as an endpoint of at most ∆/α∗ paths in Ri .
We are now
ready to define
graph G∗ . This graph is the union of all subgraphs G[Si ] for Si ∈ S
S
 the

S
and paths
e∈E(T ) P(e) ∪
Si ∈S Q(Si ) .

Step 2: Ensuring Bandwidth Property of Clusters Consider some cluster Si ∈ S, and recall
that we have already defined a subset Ri ⊆ ΓG (Si )Sof its vertices. We let Ri0 = ΓG∗ (Si ). Recall that
|Ri | ≤ k ∗ /2, and set Ri0 contains, for each path Q ∈ S∈S Q(S), at most six vertices of Q (as Q ∩ G[Si ]
0
contains
contains at most 3w vertices for the paths
S at most three connected components). Set Ri also
0
from e∈E(T ) Pe that terminate in Si . Let R̂i = Ri ∪ Ri . Then:
k∗
` − 1 w0
+ 6d
e·
+ 3w.
2
3
2
 4





4 6
(k∗ )
(k∗ ) log k
w0 ∆4 `6 log1.5 k∗
= Θ w0 ∆ ` βARV
=
Θ
, and w ≤ k ∗ , we get that
Since k ∗ = Θ ∆ kβαARV
∗
∗
∗
α
α
 4 6 1.5 ∗ 
k
|R̂i | = w0 · O ∆ ` log
.
α∗
 4 6 1.5 ∗ 
k
α
, so that |R̂i | ≤ w0 ρ, and we denote γ = ρβARV
We let ρ = Θ ∆ ` log
α∗
(k∗ ) . We use the following
claim.
|R̂i | ≤

Claim 6.6 There is an efficient algorithm, that, given a cluster Si ∈ S, either certifies that R̂i is
γ-well-linked in G[Si ], or returns a (w0 , α)-violating partition of Si .
Proof: We use algorithm AARV in order to approximately compute the sparsest cut (A, B) of G[Si ]
with respect to the set R̂i of terminals. If the sparsity of the cut is at least γ · βARV (k ∗ ), then we are
guaranteed that S has the γ-bandwidth property in G∗ . Assume now that the sparsity of the cut is
less than γ · βARV (k ∗ ). We claim that in this case, cut (A, B) is a (w0 , α)-violating partition of S.
Indeed,
n
o
|E(A, B)| < γ · βARV (k ∗ ) · min |A ∩ R̂i |, |B ∩ R̂i |
n
o
α
= · min |A ∩ R̂i |, |B ∩ R̂i |
ρ
α|R̂i |
2ρ
αw0
≤
.
2

≤

n
o
In particular, this shows that |E(A, B)| < α·min |A ∩ R̂i |, |B ∩ R̂i |, w0 /2 , so this is indeed a (w0 , α)violating partition of Si .
If for any set Si ∈ S, Claim 6.6 returns a (w0 , α)-violating partition, then we terminate the algorithm
and return this partition. Therefore, we assume from now on that for each set Si , the vertex set R̂i is
γ-well-linked in G[Si ]
46

S
So far we have obtained a graph G∗ ⊆ G, a tree-of sets system (T, S, e∈E(T ) P(e)), and the sets
{Q(S)}S∈S of paths as required, except that it is still possible that the terminals of T ∗ \ T belong to
the vertex sets S ∈ S. We rectify this in our final step.
Step 3: Removing the Terminals from the Clusters. In this step, we define a new tree-of-sets
system, by replacing every cluster S ∈ S with cluster S 0 = S \ T ∗ . Let S 0 denote the resulting set of
clusters. Recall
that the terminals in T ∗ all
S
S have degree 1 in G, and hence they cannot participate in
the paths e∈E(T ) P(e). Therefore, (S 0 , T, e∈E(T ) P(e)) remains a valid tree-of-sets system. Consider
a cluster Si0 ∈ S 0 , and let Γ0i ⊆ Si0 be the set of vertices serving as endpoints of the paths in P(e) for
all edges e ∈ E(T ) incident to the vertex vi ∈ V (T ) that corresponds to the set Si . Since the vertices
of T ∗ ∩ Si all have degree 1, their removal from Si does not affect the well-linkedness of the set Γ0i
of vertices, and hence Γ0i remains αBW -well-linked in G[Si0 ]. Similarly, the set R̂i of vertices remains
γ-well-linked in G[Si0 ].
If some vertex t ∈ T ∗ originally belonged to some cluster Si , then without loss of generality, its
corresponding path in Q(Si ) contained a single vertex — the vertex t. We now replace this path
with a path containing a single edge, connecting t to its unique neighbor ut , that must belong to Si0 .
Notice that vertex ut now belongs to the boundary of Si0 in G∗ , even though it may not belong to the
boundary of Si . The resulting set Q(Si ) of paths still connects all vertices of T ∗ to the vertices of Si0
with edge-congestion at most η ∗ , but now we need to prove that each resulting cluster Si0 ∈ S 0 has the
∗ -bandwidth property in G∗ . The following claim will finish the proof of Theorem 6.3.
αBW
∗ -bandwidth property in G∗ .
Claim 6.7 Each set Si0 ∈ S 0 has the αBW

Proof:
∗ -well-linked in G[S ]. Consider a partition
Let Γ0 = ΓG∗ (Si0 ) ∪ Ri . It suffices to prove that Γ0 is αBW
i
0
0
0
(A, B) of Si . Let ZA = Γ ∩ A and ZB = Γ ∩ B.
0 contains all vertices that belonged to R̂ , and
We partition the vertices of ZA into two subsets: ZA
i
00 is a neighbor of some terminal in T ∗ ∩ S . We
00
ZA contains all remaining vertices, so each vertex in ZA
i
0 and Z 00 similarly. We now consider two cases.
define a partition of ZB into ZB
B
0 |≥
Assume first that both |ZA
(from Claim 6.6), we get that:

00 |
α∗ |ZA
2∆

0 |≥
and |ZB

00 |
α∗ |ZB
2∆ .

In this case, since R̂i is γ-well-linked in G[Si ]

 0
α∗ γ
0
|E(A, B)| ≥ γ min |ZA
|, |ZB
| ≥
· min {|ZA |, |ZB |} .
4∆






α
αα∗
1
1
Recall that γ = ρβARV
=
Θ
,
while
α
=
Ω
, and hence:
=
Ω
∗
2
2
2
∗
4
6
∗
(k )
` log k
` log k
∆ ` log k

α(α∗ )2
· min {|ZA |, |ZB |}
∆5 `6 log2 k ∗


(α∗ )2
≥Ω
· min {|ZA |, |ZB |}
∆5 `8 log3 k ∗


(α∗ )2
=Ω
· min {|ZA |, |ZB |}
∆5 (`∗ )16 log3 k ∗
∗
≥ αBW
· min {|ZA |, |ZB |} .


|E(A, B)| ≥ Ω

47

α∗ |Z 00 |

0 | <
00 ⊆ T ∗ be the set of terminals t, such that t ∈ S , and the
A
Assume now that |ZA
i
2∆ . Let T
00
00 has a neighbor in T 00 , and |T 00 | ≥ |Z 00 | ≥
unique neighbor of t belongs to ZA . Then every vertex in ZA
A
0 |/α∗ . Recall that we have defined a set R of paths in G[S ], connecting T ∗ ∩ S to R ⊆ R̂ ,
2∆|ZA
i
i
i
i
i
with edge-congestion at most α∗ /∆. Let R0 ⊆ Ri be the set of paths originating at the vertices of
0 , and each one of the
T 00 . Then at most half the paths in R0 may terminate at the vertices of ZA
remaining paths must contain an edge of E(A, B). Since the paths cause edge-congestion at most α∗ ,
we conclude that:

E(A, B) ≥
0 |<
The case where |ZB

00 |
α∗ · |ZA
α∗ 00
α∗
0
∗
≥
|Z (A)| + 2∆|ZA
|≥
|Z(A)| > αBW
|Z(A)|.
2
4
4

00 |
α∗ |ZB
2∆

is analyzed similarly.



Acknowledgement. We thank Tasos Sidiropoulos for suggesting the problem of improving the
bounds in the grid minor theorem, and in particular for asking whether the ideas in routing algorithms
are useful for this purpose. We also thank the two reviewers for detailed comments and suggestions.

References
[And10]

Matthew Andrews. Approximation algorithms for the edge-disjoint paths problem via
Raecke decompositions. In Proceedings of IEEE FOCS, pages 277–286, 2010.

[ARV09]

Sanjeev Arora, Satish Rao, and Umesh V. Vazirani. Expander flows, geometric embeddings
and graph partitioning. J. ACM, 56(2), 2009.

[CC13]

Chandra Chekuri and Julia Chuzhoy. Large-treewidth graph decompositions and applications. In Proc. of ACM STOC, pages 291–300, 2013.

[CC15]

Chandra Chekuri and Julia Chuzhoy. Degree-3 treewidth sparsifiers. In Proceedings of
the Twenty-Sixth Annual ACM-SIAM Symposium on Discrete Algorithms, pages 242–255.
SIAM, 2015.

[CE13]

Chandra Chekuri and Alina Ene. Poly-logarithmic approximation for maximum node
disjoint paths with constant congestion. In Proc. of ACM-SIAM SODA, 2013.

[CHR03]

M. Conforti, R. Hassin, and R. Ravi. Reconstructing edge-disjoint paths. Operations
Research Letters, 31(4):273–276, 2003.

[Chu12]

Julia Chuzhoy. Routing in undirected graphs with constant congestion. In Proc. of ACM
STOC, pages 855–874, 2012.

[Chu15]

Julia Chuzhoy. Excluded grid theorem: Improved and simplified. In Proceedings of the
Forty-Seventh Annual ACM on Symposium on Theory of Computing, STOC ’15, pages
645–654, New York, NY, USA, 2015. ACM.

[CK09]

Chandra Chekuri and Nitish Korula. A graph reduction step preserving elementconnectivity and applications. In Proc. of ICALP, pages 254–265, 2009.

[CKS05]

Chandra Chekuri, Sanjeev Khanna, and F. Bruce Shepherd. Multicommodity flow, welllinked terminals, and routing problems. In Proc. of ACM STOC, pages 183–192, 2005.
48

[CKS13]

Chandra Chekuri, Sanjeev Khanna, and F. Bruce Shepherd. The all-or-nothing multicommodity flow problem. SIAM Journal on Computing, 42(4):1467–1493, 2013. Preliminary
version in Proc. of ACM STOC, 2004.

[CL12]

Julia Chuzhoy and Shi Li. A polylogarithimic approximation algorithm for edge-disjoint
paths with congestion 2. In Proc. of IEEE FOCS, 2012.

[CNS13]

Chandra Chekuri, Guyslain Naves, and F. Bruce Shepherd. Maximum edge-disjoint paths
in k-sums of graphs. CoRR, abs/1303.4897, 2013. Extended abstract in Proc. of ICALP,
2013.

[DFHT05] Erik D. Demaine, Fedor V. Fomin, Mohammad Taghi Hajiaghayi, and Dimitrios M. Thilikos. Subexponential parameterized algorithms on bounded-genus graphs and h-minor-free
graphs. J. ACM, 52(6):866–893, 2005.
[DH08]

Erik D. Demaine and MohammadTaghi Hajiaghayi. Linearity of grid minors in treewidth
with applications through bidimensionality. Combinatorica, 28(1):19–36, 2008.

[DHK09]

Erik Demaine, MohammadTaghi Hajiaghayi, and Ken-ichi Kawarabayashi. Algorithmic
graph minor theory: Improved grid minor bounds and wagners contraction. Algorithmica,
54:142–180, 2009.

[Die12]

Reinhard Diestel. Graph Theory, 4th Edition, volume 173 of Graduate texts in mathematics.
Springer, 2012.

[DJGT99] Reinhard Diestel, Tommy R. Jensen, Konstantin Yu. Gorbunov, and Carsten Thomassen.
Highly connected sets and the excluded grid theorem. J. Comb. Theory, Ser. B, 75(1):61–
73, 1999.
[DP09]

Devdatt Dubhashi and Alessandro Panconesi. Concentration of Measure for the Analysis
of Randomized Algorithms. Cambridge University Press, New York, NY, USA, 1st edition,
2009.

[HO96]

H. R. Hind and O. Oellermann. Menger-type results for three or more vertices. Congressus
Numerantium, 113:179–204, 1996.

[HS70]

A. Hajnal and E. Szemerédi. Proof of a conjecture of P. Erdos. Combinatorial Theory and
its Applications, pages 601–623, 1970.

[KK12]

K. Kawarabayashi and Y. Kobayashi. Linear min-max relation between the treewidth of
H-minor-free graphs and its largest grid minor. In Proc. of STACS, 2012.

[KRV09]

Rohit Khandekar, Satish Rao, and Umesh Vazirani. Graph partitioning using single commodity flows. J. ACM, 56(4):19:1–19:15, July 2009.

[KT10]

Stephan Kreutzer and Siamak Tazari. On brambles, grid-like minors, and parameterized
intractability of monadic second-order logic. In Proc. of ACM-SIAM SODA, pages 354–364,
2010.

[LS15]

Alexander Leaf and Paul Seymour. Tree-width and planar minors. J. Comb. Theory Ser.
B, 111(C):38–53, March 2015.

[Mad78]

W. Mader. A reduction method for edge connectivity in graphs. Ann. Discrete Math.,
3:145–164, 1978.

49

[OSVV08] 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 ’08, pages 461–470, New York, NY, USA, 2008.
ACM.
[Räc02]

Harald Räcke. Minimizing congestion in general networks. In Proc. of IEEE FOCS, pages
43–52, 2002.

[Ree97]

Bruce Reed. Surveys in Combinatorics, chapter Treewidth and Tangles: A New Connectivity Measure and Some Applications. London Mathematical Society Lecture Note Series.
Cambridge University Press, 1997.

[RS86]

Neil Robertson and P D Seymour. Graph minors. V. Excluding a planar graph. Journal
of Combinatorial Theory, Series B, 41(1):92–114, August 1986.

[RS91]

Neil Robertson and Paul D Seymour. Graph minors. x. obstructions to tree-decomposition.
Journal of Combinatorial Theory, Series B, 52(2):153–190, 1991.

[RST94]

N Robertson, P Seymour, and R Thomas. Quickly Excluding a Planar Graph. Journal of
Combinatorial Theory, Series B, 62(2):323–348, November 1994.

[RZ10]

Satish Rao and Shuheng Zhou. Edge disjoint paths in moderately connected graphs. SIAM
J. Comput., 39(5):1856–1887, 2010.

[Sch03]

Alexander Schrijver. Combinatrial Optimization: Polyhedra and Efficiency, volume 24 of
Algorithms and Combinatorics. Springer, 2003.

[Sey]

Paul Seymour. personal communication.

[SL15]

Mohit Singh and Lap Chi Lau. Approximating minimum bounded degree spanning trees
to within one of optimal. J. ACM, 62(1):1:1–1:19, 2015. Preliminary version in Proc. of
ACM STOC, 2007.

[Win89]

Sein Win. On a connection between the existence of k-trees and the toughness of a graph.
Graphs and Combinatorics, 5:201–205, 1989.

50

A

Proofs Omitted from Section 2

A.1

Proof of Theorem 2.11

We start with a non-constructive proof, since it is much simpler and gives better parameters. This
proof can be turned into an algorithm whose running time is poly(n) · 2κ . We then show a constructive
proof with running time poly(n, κ).
A.1.1

A non-constructive proof

A separation in graph G is two subgraphs Y, Z of G, such that every edge of G belongs to exactly
one of Y, Z, and G = Y ∪ Z. The order of the separation is |V (Y ) ∩ V (Z)|. We say that a separation
(Y, Z) is balanced with respect to T , if and only if |V (Y ) ∩ T |, |V (Z) ∩ T | ≥ |T |/4. Let (Y, Z) be a
balanced separation of G with respect to T of minimum order, and let X = V (Y ) ∩ V (Z). Assume
without loss of generality that |V (Y ) ∩ T | ≥ |V (Z) ∩ T |, so |V (Y ) ∩ T | ≥ |T |/2. We claim that X is
node-well-linked in graph Y .
Claim A.1 Set X of vertices is node-well-linked in graph Y .
Proof: Let A, B be any two equal-sized subsets of X, and assume that |A| = |B| = z. It is enough to
show that there is a set P of z disjoint paths connecting A to B in Y . Assume otherwise. Then there
is a set S of at most z − 1 vertices separating A from B in Y .
Let C be the set of all connected components of Y \ S. We partition C into three subsets: C1 contains
all components containing the vertices of A; C2 contains all components containing the vertices of B,
and C3 contains
all remaining components (notice that all three sets of clusters are pairwise disjoint).
S
Let R1 = C∈C1 V (C), and define R2 and R3 for C2 and C3 , respectively. Assume without loss of
generality that |R1 ∩ T | ≥ |R2 ∩ T |. We define a new separation (Y 0 , Z 0 ), as follows. The set of vertices
V (Y 0 ) = R1 ∪ R3 ∪ S, and V (Z 0 ) = V (Z) ∪ R2 ∪ S. Let X 0 = V (Y 0 ) ∩ V (Z 0 ). The edges of Y 0 include
all edges of G with both endpoints in V (Y 0 ) \ X 0 , and all edges of G with one endpoint in V (Y 0 ) \ X 0
and the other endpoint in X 0 . The edges of Z 0 include all edges with both endpoints in Z 0 .
We claim that (Y 0 , Z 0 ) is a balanced separation with respect to T . Clearly, |V (Z 0 ) ∩ T | ≥ |T |/4, since
V (Z) ⊆ V (Z 0 ), and |V (Z) ∩ T | ≥ |T |/4. We next claim that |V (Y 0 ) ∩ T | ≥ |T |/4. Assume otherwise.
Then, from our assumption, |R2 ∩ T | < |T |/4, and so |V (Y ) ∩ T | = |R2 ∩ T | + |V (Y 0 ) ∩ T | < |T |/2, a
contradiction. Therefore, (Y 0 , Z 0 ) is a balanced separator with respect to T . Finally, we claim that its
order is less than |X|, contradicting the minimality of X. Indeed, |V (Y 0 ) ∩ V (Z 0 )| ≤ |X| − |B| + |S| <
|X|.

Let T1 = T ∩ V (Z), T2 = T ∩ V (Y ), and let T10 ⊆ T1 , T20 ⊆ T2 be two disjoint subsets containing dκ/4e
vertices each. From Observations 2.5 and 2.4, there is a flow F from T10 to T20 , such that every vertex
in T10 sends one flow unit, every vertex in T20 receives one flow unit, and the congestion on every edge is
at most 1/α. We now bound the vertex-congestion caused by the flow F . For every vertex v ∈ V (G),
let F1 (v) be the total amount of flow on all paths that originate or terminate at v, and let F2 (v) be
the total amount of flow on all paths that contain v as an inner vertex. It is immediate to verify that
∆
F1 (v) ≤ 1, while F2 (v) ≤ 2α
, since every flow-path P that contains v as an inner vertex contributes
∆
flow F (P ) to two edges incident to v. Therefore, the total flow through v is at most 2α
+ 1 ≤ 5∆
6α , as
6α
∆ ≥ 3 and α ≤ 1. By sending 5∆ · F (P ) flow units via every path P , we obtain a flow of value at
6α
3ακ
least κ4 · 5∆
= 10∆
from vertices of T10 to vertices of T20 , that causes vertex-congestion at most 1. From
3ακ
the integrality of flow, there is a set P 0 of κ0 = d 10∆
e node-disjoint paths connecting terminals in T10
51

to terminals in T20 in G. Each such path has to contain a vertex of X. For each path P 0 ∈ P 0 , we
truncate the path P 0 to the first vertex of X on P 0 (where the path is directed from T1 to T2 ). Let P
be the resulting set of truncated paths. Then P is a set of κ0 disjoint paths, connecting vertices of T10
to vertices of X; every path in P is completely contained in graph Z, and is disjoint from X except
for its last endpoint that belongs to X.
Let T 00 ⊆ T10 be the set of terminals from which the paths in P originate, and let X 0 ⊆ X be the set
of vertices where they terminate. We claim that T 00 is node-well-linked in G. Indeed, let A, B ⊆ T 00
be any pair of equal-sized subsets of terminals. Let U = A ∩ B, A0 = A \ U and B 0 = B \ U .

We define the set Ã0 ⊆ X 0 as follows: for each terminal t ∈ A0 , let Pt ∈ P be the path originating at
t, and let xt be its other endpoint, that belongs to X. We then set Ã0 = {xt | t ∈ A0 }. We define a
set B̃ 0 ⊆ X similarly for B 0 . Let PA ⊆ P be the set of paths originating at the vertices of A0 , and
let PB ⊆ P be the set of paths originating at the vertices of B 0 . Notice that both sets of paths are
contained in Z, and are internally disjoint from X. The paths in PA ∪ PB are also mutually disjoint,
and they avoid U .
Let U 0 = U ∩ X, and consider the two subsets Ã = Ã0 ∪ U 0 and B̃ = B̃ 0 ∪ U 0 of vertices of X. Denote
|Ã| = |B̃| = z. Since X is node-well-linked in Y , there is a set Q of z disjoint paths connecting Ã
to B̃ in Y . The paths in Q are then completely disjoint from the paths in P1 , P2 (except for sharing
endpoints with them). The final set of paths connecting A to B is obtained by concatenating the
paths in P1 , Q, P2 , and adding a collection Q0 of paths that contains, for every vertex v ∈ U \ U 0 , a
path Pv consisting of only the vertex v itself.
A.1.2

A Constructive Proof

We assume that κ ≥ 32∆4 βARV (κ)/α, since otherwise we can return a set T 0 consisting of a single
terminal. For every subset C ⊆ V of vertices, let TC = C ∩ T . We say that a partition (A, B) of V
κ
is balanced with respect to T , if |TA |, |TB | ≥ 2∆
. We need the following lemma that follows from the
well-linkedness of T .
Lemma A.2 Let (A, B) be any balanced partition of V with respect to T . There is an efficient
κα
algorithm that computes a collection P of node-disjoint paths from TB to TA where |P| ≥ d 2∆
2 e.
Proof: Assume without loss of generality that |TB | ≤ |TA |. Since T is α-well-linked in G, from
Observations 2.5 and 2.4, there is a flow F in G, where every vertex of TB sends one flow unit, every
vertex in TA receives at most one flow unit, and the edge-congestion is at most 1/α. Therefore, the
amount of flow through any vertex is at most ∆/α. Scaling this flow down by factor ∆/α, we obtain
κα
a TB -TA flow of value at least 2∆
2 and vertex-congestion at most 1. From the integrality of flow, there
κα
is a set of d 2∆2 e disjoint paths connecting terminals in TB to terminals in TA .
Given a balanced partition (A, B) of V with respect to T and a collection of paths P from TB to TA .
For each path P ∈ P, let v(P ) be the first vertex of P that lies in A, and let ΓA (P) = {vP | P ∈ P}.
We now show an algorithm to construct a balanced partition with some useful properties.
Theorem A.3 There is an efficient algorithm to compute a balanced partition (A, B) of V with respect
κα
to T and a collection P of d 2∆
2 e node-disjoint paths from TB to TA such that G[B] is connected, and
set ΓA (P) is 1/βARV (κ)-well-linked in G[A].
Proof: We say that a balanced partition (A, B) of V with respect to T is good if and only if both
G[A] and G[B] are connected. We start with some initial good balanced partition (A, B) and apply
52

Lemma A.2 to find a collection of paths P, and then perform a number of iterations. In every
iteration, we will either find a new good balanced partition (A0 , B 0 ) with |E(A0 , B 0 )| < |E(A, B)|, or
we will establish that the current partition has the required properties (after possibly switching A and
B). In the former case, we continue to the next iteration, and in the latter case we terminate the
algorithm and return the current partition (A, B) and the set P of paths. Clearly, after at most |E|
iterations, our algorithm is guaranteed to terminate with the desired output.
The initial partition (A, B) is computed as follows. Let T be any spanning tree of G, rooted at any
κ
vertex. Let v be the lowest vertex of T whose subtree contains at least 2∆
terminals. Since the degree
of every vertex is at most ∆, the subtree of T rooted at v contains at most κ2 + 1 terminals. We let A
contain all vertices in the subtree of T rooted at v (including v), and we let B contain all remaining
κ
vertices. Then both A and B contain at least 2∆
terminals, and both G[A] and G[B] are connected.
Given any good balanced partition (A, B) of V , we perform an iteration as follows. Assume without
loss of generality that |TA | ≥ |TB | (otherwise, we switch A and B). First, we apply Lemma A.2 to
κα
find a collection P of d 2∆
2 e disjoint paths from TB to TA . Let S = ΓA (P); note that |S| ≤ κ/2. For a
subset Z ⊆ A of vertices, we denote SZ = Z ∩ S. We set up an instance of the sparsest cut problem
in graph G[A] with the set S of terminals. Let (X, Y ) be the partition of A returned by the algorithm
|E(X,Y )|
AARV on this instance. If min{|S
≥ 1, then we are guaranteed that S is 1/βARV (κ)-well-linked in
X |,|SY |}
G[A]. We then return (A, B) and P, that are guaranteed to satisfy the requirements of the theorem.
|E(X,Y )|
= ρ < 1.
We now assume that min{|S
X |,|SY |}
Our next step is to show that there is a partition (X 0 , Y 0 ) of A, such that G[X 0 ] and G[Y 0 ] are both
connected, and the sparsity of the cut (X 0 , Y 0 ) in G[A] (with respect to S) is at most ρ. In order
to show this, we start with the cut (X, Y ), and perform a number of iterations. Let C be the set of
all connected components of G[A] \ E(X, Y ). Each iteration will reduce the number of the connected
components in C by at least 1, while preserving the sparsity of the cut. Let C1 ⊆ C be the set of all
connected components contained in X, and let C2 ⊆ C be the set of connected components contained
in Y . Assume without loss of generality that |SX | ≤ |SY |. If there is some component C ∈ C with
|SC | = 0, then we can move the vertices of C to the opposite side of the partition (X, Y ), and obtain
a new partition (X 0 , Y 0 ) whose sparsity is less than ρ, and the number of connected components in
G[A] \ E(X 0 , Y 0 ) is strictly smaller than |C|. Therefore, we assume from now on that for each C ∈ C,
|SC | > 0.
Assume first that |C1 | > 1. Then |E(X, Y )| = ρ · |SX |, and so there is a connected component C ∈ C1
with |E(C, Y )| ≥ ρ · |SC |. Moreover, |SX | > |SC |, since we have assumed that for each C 0 ∈ C,
|SC 0 | > 0. Consider a new partition (X 0 , Y 0 ) of A, with X 0 = X \ C and Y 0 = Y ∪ C. Notice that the
number of the connected components in G[A] \ E(X 0 , Y 0 ) is strictly smaller than |C|. We claim that
the sparsity of the new cut is at most ρ. Indeed, the sparsity of the new cut is:
|E(X 0 , Y 0 )|
|E(X, Y )| − |E(C, Y )|
ρ|SX | − ρ|SC |
=
≤
= ρ.
|SX 0 |
|SX | − |SC |
|SX | − |SC |
Assume now that |C2 | > 1, and denote |E(X, Y )|/|SY | = ρ0 . Then ρ0 ≤ ρ. As before, there is a
connected component C ∈ C2 with |E(C, X)| ≥ ρ0 |SC | and |SC | < |SY |. Consider a new partition
(X 0 , Y 0 ) of A, where X 0 = X ∪ C and Y 0 = Y \ C. As before, the number of connected components in
G[A] \ E(X 0 , Y 0 ) is strictly smaller than |C|. We now show that the sparsity of the new cut is at most
ρ. If |SY 0 | ≤ |SX 0 |, then the sparsity of the new cut is:
|E(X, Y )| − |E(C, X)|
ρ0 |SY | − ρ0 |SC |
|E(X 0 , Y 0 )|
=
≤
= ρ0 ≤ ρ.
|SY 0 |
|SY | − |SC |
|SX | − |SC |
53

Otherwise, |SX 0 | < |SY 0 |, and the sparsity of the new cut is:
|E(X 0 , Y 0 )|
|E(X, Y )| − |E(X, C)|
|E(X, Y )|
=
<
= ρ.
0
|SX |
|SX | + |SC |
|SX |
We continue this procedure, until |C| = 2 holds, so in the end, C = {G[X], G[Y ]}, and the sparsity of
the cut (X, Y ) is at most ρ < 1. Assume without loss of generality that |X ∩TA | ≤ |Y ∩TA |. We obtain
a new partition (A0 , B 0 ) of V , by setting A0 = A \ X and B 0 = B ∪ X. Notice that this is guaranteed
to be a balanced partition with respect to T , since |TA | ≥ κ/2. The number of the edges in the new
cut, |E(A0 , B 0 )| ≤ |E(A, B)| − |E(X, B)| + |E(X, Y )| ≤ |E(A, B)| − |SX | + |E(X, Y )| < |E(A, B)|,
since |E(X, Y )| < |SX |. Moreover, since X contains at least one vertex of S, G[B ∪ X] is connected,
while we have established above that G[Y ] is also connected. We then replace the partition (A, B)
with (A0 , B 0 ) and continue to the next iteration.
We apply the preceding theorem to find a balanced partition (A, B) of V with respect to T and a
corresponding collection P 0 of paths.

Let Γ ⊆ A be the set of vertices of A incident to the edges of E(A, B) and similarly let Γ0 ⊆ B be the
set of vertices of B incident to the edges of E(A, B). Consider some path P 0 ∈ P 0 , and let e = (v, u)
be the first edge of P 0 that belongs to E(A, B), with v ∈ Γ0 , u ∈ Γ. (Recall that the paths are directed
from TB to TA ). We truncate the path P 0 at vertex v, and we say that u is a special neighbor of v. Let
κα
P be the resulting set of truncated paths. Then P is a set of d 2∆
2 e node-disjoint paths, connecting the
0
vertices of TB to the vertices of Γ , and every path in P is completely contained in G[B]. Moreover,
if Γ00 ⊆ Γ0 denotes the set of endpoints of the paths in P, then for each v ∈ Γ00 , we have defined a
special neighbor u ∈ Γ, such that, if v 6= v 0 ∈ Γ00 , then their special neighbors are distinct. Let S be
the set of the special neighbors. Recall that from Theorem A.3, S is 1/βARV (κ)-well-linked in G[A].
Let q = 2∆βARV (κ). We need the following theorem that allows us to group the paths in P inside the
graph G[B].
Theorem A.4 There is an efficient algorithm to find a subset P̃ ⊆ P of at least |P|/2 paths, and a
collection C of disjoint connected subgraphs of G[B], such that each path P ∈ P̃ is completely contained
in some subgraph C ∈ C, and each such subgraph contains at least q and at most 4∆q paths in P̃.
Proof: Start from G[B] and build a new graph H, by contracting every path P ∈ P into a supernode uP . Let U = {uP | P ∈ P} be the resulting set of super-nodes. Let T be any spanning tree of
H, rooted at any vertex r. Given a vertex v ∈ V (T ), let Tv be the sub-tree of T rooted at v. Let
Jv ⊆ V (G) be the set of all vertices of Tv that do not belong to U ,and all vertices on paths P with
S
uP ∈ Tv . In other words, Jv = (V (Tv ) \ U ) ∪
uP ∈V (Tv )∩U V (P ) . Denote Gv = G[Jv ]. Over the
course of the algorithm, we will delete some vertices of T . The notation Tv and Gv is always computed
with respect to the most current tree T . We start with C = ∅, P̃ = ∅, and then iterate.
Each iteration is performed as follows. If q ≤ |V (T ) ∩ U | ≤ 4∆q, then we add Gr to C, and terminate
the algorithm. If |V (T ) ∩ U | < q, then we also terminate the algorithm (we will show later that P̃
must contain at least |P|/2 paths at this point). Otherwise, let v be the lowest vertex of T with
|Tv ∩ U | ≥ q. If v 6∈ U , then, since the degree of every vertex is at most ∆, |Tv ∩ U | ≤ ∆q. We add Gv
to C, and all paths in {P | uP ∈ Tv } to P̃. We then delete all vertices of Tv from T , and continue to
the next iteration.
Assume now that v = uP for some path P ∈ P. If |Tv ∩ U | ≤ 4∆q, then we add Gv to C, and all paths
in {P 0 | uP 0 ∈ Tv } to P̃ and continue to the next iteration. So we assume that |Tv ∩ U | > 4∆q.

Let v1 , . . . , vz be the children of v in T . Build a new tree T 0 as follows. Start with the path P , and
add the vertices v1 , . . . , vz to T 0 . For each 1 ≤ i ≤ z, let (xi , yi ) ∈ E(G[B]) be any edge connecting
54

some vertex xi ∈ V (P ) to some vertex yi ∈ V (Gvi ); such an edge must exist from the definition of
Gvi and T . Add the edge (vi , xi ) to T 0 . Therefore, T 0 is the union of the path P , and a number of
disjoint stars whose centers lie on the path P , and whose leaves are the vertices v1 , . . . , vz . The degree
of every vertex of P is at most ∆. The weight of the vertex vi is defined to be the number of paths
in P contained in Gvi . Recall that the weight of each vertex vi is at most q, by the choice of v. For
each vertex x ∈ P , the weight of x is the total weight of its children in T 0 . Recall that the the total
weight of the vertices of P is at least 4∆q, and the weight of every vertex is at most ∆q. We partition
P into a number of disjoint segments Σ = (σ1 , . . . , σ` ) of weight at least q and at most 2∆q each, as
follows. Start with Σ = ∅, and then iterate. If the total weight of the vertices of P is at most 2∆q,
we build a single segment, containing the whole path. Otherwise, find the shortest segment σ starting
from the first vertex of P , whose weight is at least q. Since the weight of every vertex is at most ∆q,
the weight of σ is at most ∆q. We then add σ to Σ, delete it from P and continue. Consider the
final set Σ of segments. For each segment σ, we add a new graph Cσ to C. Graph Cσ consists of the
union of σ, the graphs Gvi for each vi that is connected to a vertex of σ with an edge in T 0 , and the
corresponding edge (xi , yi ). Clearly, Cσ is a connected subgraph of G[B], containing at least q and at
most 2∆q paths of P. We add all those paths to P̃, delete all vertices of Tv from T , and continue to
the next iteration. We note that path P itself is not added to P̃, but all paths P 0 with uP 0 ∈ V (Tv )
are added to P̃.
At the end of this procedure, we obtain a collection P̃ of paths, and a collection C of disjoint connected
subgraphs of G, such that each path P ∈ P̃ is contained in some C ∈ C, and each C ∈ C contains
at least q and at most 4∆q paths from P̃. It now remains to show that |P̃| ≥ |P|/2. We discard
at most q paths in the last iteration of the algorithm. Additionally, when v = uP is processed, if
|Tv ∩ U | > 4∆q, then path P is also discarded, but at least 4∆q paths are added to P̃. Therefore,
|P|
κα
overall, |P̃| ≥ |P| − 4∆q+1
− q ≥ |P|/2, since |P| = d 2∆
2 e, while q = 2∆βARV (κ), and we have assumed

that κ ≥

32∆4 βARV (κ)
.
α

For each graph C ∈ C, we select one path PC ∈ P̃ that is contained in C, and we let tC be the
terminal that serves as an endpoint of PC . Let Γ0C ⊆ Γ0 be the set of all vertices of Γ0 that serve
as endpoints of paths of P̃ that are contained in C. Then |Γ0C | ≥ q. We delete vertices from Γ0C as
necessary, until |Γ0C | = q holds. Our final set T 0 of terminals is T 0 = {tC | C ∈ C}. Observe that
|T 0 | ≥

|P̃|
4∆q

≥

|P|
16∆2 βARV (κ)

≥

κα
,
32∆4 βARV (κ)

as required.

It now only remains to show that T 0 is node-well-linked in G. Let T1 , T2 be any pair of equal-sized
subsets of T 0 . Let T ∗ = T1 ∩ T2 , T10 = T1 \ T2 , and T20 = T2 \ T1 . We set up an s-t flow network, by
adding a source s and connecting it to every vertex of T10 with a directed edge, and adding a sink t,
and connecting every vertex of T20 to it. We also delete all vertices of T ∗ from the graph, and set all
vertex capacities, except for s and t, to 1; the capacities of s and t are infinite. From the integrality
of flow, it is enough to show a valid s-t flow of value |T10 | = |T20 | in this flow network. This flow will be
a concatenation of three flows, F1 , F2 , F3 .
We start by defining the flows F1 and F3 . Consider some terminal t0 ∈ T10 ∪ T20 , and let C ∈ C be
the subgraph to which t0 belongs. Let TC be any spanning tree of C. Terminal t0 sends one flow unit
toward the vertices of Γ0C along the tree TC , such that every vertex in Γ0C receives 1/q flow units. Let
F1 be the union of all these flows for all t0 ∈ T10 , and F3 the union of all these flows for all t0 ∈ T20 (we
will eventually think of the flow in F3 as directed towards the terminals). Notice that for every vertex
v ∈ B \ T ∗ , the total flow that goes through vertex v or terminates at v is at most 1. We say that the
flow is of type 1 if it originates at a terminal in T10 , and it is of type 2 otherwise.

We now proceed to define flow F2 . For every cluster C ∈ C, each vertex v ∈ Γ0C sends the 1/q flow
units it receives to its special neighbor u ∈ Γ, along the edge (v, u). Recall that every vertex u ∈ Γ
55

serves as a special neighbor of at most one vertex in Γ0 . Let Γ1 ⊆ Γ be the set of vertices that receive
flow of type 1, and Γ2 ⊆ Γ is the set of vertices that receive flow of type 2. Then |Γ1 | = |Γ2 |, and we
denote |Γ1 | = κ∗ . It is enough to show that there is a flow F2 in G[A], where every vertex in Γ1 sends
1/q flow units, every vertex in Γ2 receives 1/q flow units, and the total vertex congestion due to this
flow is at most 1/2.
In order to define this flow, recall that since Γ1 ∪ Γ2 ⊆ S and S is 1/βARV (κ)-well-linked in G[A], from
Observations 2.5 and 2.4, there is a flow in G[A], where every vertex in T1 sends one flow unit, every
vertex in T2 receives one flow unit, and the edge-congestion is bounded by βARV (κ). The total flow
through every vertex is then at most ∆βARV (κ). Scaling this flow down by factor q = 2∆βARV (κ), we
obtain the flow F2 , where every vertex of Γ1 sends 1/q flow units, every vertex in Γ2 receives 1/q
flow units, and the total vertex congestion is at most 1/2. Combining together the flows F1 , F2 , F3 ,
we obtain the final flow F . From the integrality of flow, there is a set of |T1 | = |T2 | disjoint paths
connecting the vertices of T1 to the vertices of T2 in G.

A.2

Proof of Theorem 2.15

Let T be any spanning tree of the graph Z. If T contains at least L leaves, then we are done. Assume
now that T contains fewer than L leaves. We will next try to perform some improvement steps in
order to increase the number of leaves in T .
Assume first that T contains three vertices a, b, c, that have degree 2 in T each, where b is the unique
child of a and c is the unique child of b, and assume further that there is an edge (a, c) in Z. We can
then delete the edge (b, c) and add the edge (a, c) to T . It is easy to see that the number of leaves
increases, with the new leaf being b (see Figure 5).
Assume now that v is a degree-2 vertex in T , such that both its father v1 and grandfather v2 are
degree-2 vertices. Moreover, assume that the unique child v10 of v is a degree-2 vertex, and so is the
unique grandchild v20 of v. Assume that an edge (v, u) belongs to Z, where u 6= v1 , v10 . Notice that if
u = v2 or u = v20 , then we can apply the transformation outlined above. Therefore, we assume that
u 6= v2 and u 6= v20 . Two cases are possible. First, if u is not a descendant of v, then we add the
edge (u, v) to T , and delete the edge (v1 , v2 ) from T . Notice that the number of leaves increases, as
two new vertices become leaves - v1 , v2 , while in the worst case at most one vertex stops being a leaf
(vertex u). The second case is when u is a descendant of v. Then we add an edge (u, v) to T , and
delete the edge (v10 , v20 ) from T . Again, the number of leaves increases by at least 1, since both v10 and
v20 are now leaves. (See Figure 5).
We perform the above improvement step while possible. Let T denote the final tree, where no such
operation is possible. If T has at least L leaves, then we are done. Assume therefore that T has fewer
than L leaves. Then the number of inner vertices of T whose degree is greater than 2 in T is at most
L. If P is a maximal 2-path in T , then the child of its lowermost vertex must be either a leaf or a
vertex whose degree is more than 2 in T . Therefore, there are at most 2L maximal 2-paths in T , and
0
at least one such path must contain at least n−2L
2L ≥ p + 4 vertices. Let P be the path obtained from
0
P by deleting the first two and the last two vertices. Then P contains at least p vertices, and, since
no improvement step was possible, P 0 must be a 2-path in Z.

A.3

Proof of Lemma 2.16

The proof we provide here was suggested by Paul Seymour [Sey]. A different proof, using stable
matchings, was shown by Conforti, Hassin and Ravi [CHR03].

56

v2
v1
v

a
b

v2

v1�

v1

v2�

v
u

v1�

c

v2�
(b) Case 1

u

(c) Case 2

Figure 5: Improvement steps to increase the number of leaves.
Let Ĝ0 ⊆ Ĝ be obtained from the union of the paths in X1 ∪ X2 . Let U10 ⊆ U1 be the set of vertices
where the paths of X1 originate, and define U20 ⊆ U2 for the set X2 of paths similarly. Let E1 be the
set of all edges participating in the paths in X1 . While there is an edge e ∈ E(Ĝ0 ) \ E1 , such that
graph Ĝ0 \ {e} contains a set of `2 nearly-disjoint U20 –s paths, we delete e from Ĝ0 . At the end of this
procedure, the final graph Ĝ0 has the property that for every edge e ∈ E(Ĝ0 ) \ E1 , the largest number
of nearly-disjoint U20 –s paths in graph Ĝ0 \ {e} is less than `2 . Notice that X1 ⊆ Ĝ0 , and graph Ĝ0
contains `2 nearly-disjoint U20 –s paths. We need the following claim.
Claim A.5 There is a set X 0 of `1 nearly-disjoint (U10 ∪ U20 )–s paths in graph Ĝ0 , such that exactly `2
paths of X 0 originate at the vertices of U20 .
Before we prove Claim A.5, we show that the set X 0 of paths has the properties required by Lemma 2.16.
Let X10 ⊆ X 0 be the set of paths originating from the vertices of U10 \ U20 , and let X20 = X 0 \ X10 . We
only need to show that X10 ⊆ X1 . Assume otherwise. Then there is some edge e ∈ E(Ĝ0 ) \ E1 , that
lies on some path in X10 . But then X20 ⊆ Ĝ0 \ {e}, and edge e should have been removed from graph
Ĝ0 . It now only remains to prove Claim A.5.
Proof of Claim A.5. The proof follows standard arguments. We construct a directed nodecapacitated flow network H: start from graph Ĝ0 , and assign capacity 1 to each vertex of Ĝ0 , except
for vertex s, whose capacity is `1 . We add two new vertices: vertex t1 of capacity `1 − `2 , that connects
to every vertex of U10 with a directed edge, and vertex t2 of capacity `2 that connects to every vertex
of U20 with a directed edge. Finally, we add a vertex t of capacity `1 , that connects to t1 and t2 with
directed edges. It is enough to show that there is a valid t–s flow of value `1 in the resulting flow
network: we can then use the integrality of flow to obtain an integral flow of the same value, which in
turn immediately defines the desired set X 0 of paths.
Assume for contradiction that there is no t–s flow of value `1 in H. Then there is a set Z of vertices,
whose total capacity is less than `1 , such that H \ Z contains no path connecting t to s. Since the
capacities of t and s are `1 each, s, t 6∈ Z. Also, since the capacities of t1 and t2 sum up to `1 , both
these vertices cannot simultaneously belong to Z.
Assume first that t1 ∈ Z. Then, since t2 6∈ Z, set Z contains at most `2 − 1 additional vertices, each
57

of which must have capacity 1. Since there is a set of `2 nearly-disjoint U20 –s paths in Ĝ0 , at least one
such path P is disjoint from Z, and so H \ Z must contain a path connecting t to s, a contradiction.
Similarly, if t2 ∈ Z, then t1 6∈ Z, and set Z contains at most `1 − `2 − 1 additional vertices, whose
capacities must be all unit. But then at least one path in X1 is disjoint from Z, giving a path connecting
t to s in H \ Z, a contradiction.
Therefore, we assume that all vertices of Z are capacity-1 vertices, that belong to Ĝ0 . But then Z
contains at most `1 − 1 vertices, so at least one path in X1 is disjoint from Z, giving again a path
connecting t to s in H \ Z, a contradiction.


A.4

Proof of Theorem 2.18

Since G has treewidth k, we can efficiently find a set X of Ω(k) vertices of G with properties guaranteed
by Lemma 2.14.
Using the cut-matching game and Theorem 2.17, we can embed an expander H = (X, F ) into G as
follows. Each iteration j of the cut-matching game requires the matching player to find a matching
Mj between a given partition of X into two equal-sized sets Yj , Zj . From Lemma 2.14, there exist
a collection Pj of paths from Yj to Zj , that cause congestion at most 1/α∗ on the vertices of G;
these paths naturally define the required
S matching Mj . The game terminates in γCMG (|X|) steps.
Consider the collection of paths P = j Pj and let G0 be the subgraph of G obtained by taking
the union
S of these paths. Let H = (X, F ) be the expander, whose vertex set is X and edge set is
F = j Mj . By the construction, for each j, a node v of G appears in at most 1/α∗ paths in Pj .
Therefore, the maximum vertex degree in G0 is at most 2γCMG (|X|)/α∗ = O(log3 k), and moreover
the vertex- (and hence also edge-) congestion caused by the set P of paths in G is also upper-bounded
by the same quantity. We apply the algorithm AARV to the sparsest cut instance defined by the graph
H, where all vertices of H serve as terminals. If the outcome is a cut whose sparsity is less than
αCMG (|X|), then the algorithm fails; we discard the current graph H and repeat the algorithm again.
Otherwise, if the outcome is apcut of sparsity at least αCMG (|X|), then we are guaranteed that X is
an αCMG (|X|)/βARV (|X|) = Ω( log |X|)-expander, and in particular, it is an α-expander, for α = 12 .
Since each execution of the cut-matching game is guaranteed to succeed with a constant probability,
after |X| such executions, the algorithm is guaranteed to succeed with high probability.
0
Since H = (X, F ) is an α-expander, X is α-well-linked
 in H.
 Since H is embedded into G with
∗
α·α
1
0
congestion at most 2γCMG (|X|)/α∗ , X is 2γCMG
(|X|) = Ω log3 k -well-linked in G . Since the maximum
3
∗
vertex degreein G0 is at
 most 2γCMG (|X|)/α = O(log k), we can apply Theorem 2.11 to find a subset
k
X 0 ⊆ X of Ω log15.5
vertices, such that X 0 is node-well-linked in G0 .
k

B

Proof of Theorem 3.1

A set L of w disjoint paths in G that connect the vertices of A to the vertices of B is called an A-B
linkage. Since the sets A, B of vertices are linked in G, such a linkage L exists and can be found
efficiently.
Given an A-B linkage L, we construct a graph H = H(L) as follows. The vertices of H are U =
{uP | P ∈ L}, and there is an edge between uP and uP 0 if and only if there is a path γP,P 0 in G, whose
first vertex belongs to P , last vertex belongs to P 0 , and the inner vertices do not belong to any paths
in L. Notice that since G is a connected graph, so is H(L) for any A-B linkage L. We say that an
58

A-B linkage L is good if and only if the longest 2-path in the corresponding graph H(L) contains fewer
than 8h1 + 1 vertices.
Assume first that we are given a good linkage L in G. Then Theorem 2.15 guarantees that there is
a spanning tree τ in HL with at least 2(8hw1 +5) ≥ h2 leaves. We let P contain all paths P ∈ L whose
corresponding vertex uP is a leaf of τ . Then P contains at least h2 node-disjoint paths, connecting
vertices of A to vertices of B. Consider any pair P, P 0 ∈ P of paths with P 6= P 0 , and let Q be the
path connecting uP to uP 0 in τ . Let HP,P 0 ⊆ G be the graph consisting of the union of all paths P 00
with uP 00 ∈ V (Q), and paths γP1 ,P2 where (uP1 , uP2 ) is an edge of Q. Then graph HP,P 0 contains a
0
path β
a vertex of P to a vertex of P 0 , such that all inner vertices of βP,P 0 are disjoint
SP,P , connecting
from P 00 ∈P V (P 00 ).
In order to complete the proof of Theorem 3.1, we show, using the following theorem, that we can
either find a model of the (h1 × h1 )-grid minor in G, or compute a good A-B linkage L.
Theorem B.1 There is an efficient algorithm, that, given an A-B linkage L, such that L is not a
good linkage, returns one of the following:
• either a model of the (h1 × h1 )-grid minor in G; or
• a new A-B linkage L0 , such that the number of the degree-2 vertices in H(L0 ) is strictly smaller
than the number of the degree-2 vertices in H(L).
The proof of Theorem 3.1 immediately follows from Theorem B.1. We start with an arbitrary A-B
linkage L, and iterate. While L is not a good linkage, we apply Theorem B.1 to it. If the outcome is a
model of the (h1 × h1 )-grid minor, then we terminate the algorithm and return this model. Otherwise,
if L0 is a good linkage, then we compute a subset P ⊆ L0 of paths as described above and terminate the
algorithm. Otherwise, we replace L with L0 and continue to the next iteration. After O(w) iterations,
the number of degree-2 vertices in the graph H(L) is guaranteed to fall below 8h1 + 1 (unless the
algorithm terminates earlier). It now remains to prove Theorem B.1.

B.1

Proof of Theorem B.1

Since L is not a good A–B linkage, there is a 2-path R∗ = (uP0 , . . . , uP8h1 ) of length 8h1 + 1 in
the corresponding graph H = HL . Let z = 2h1 , and consider the following four subsets of paths:
P1 = {P1 , . . . , Pz }, P2 = {Pz+1 , . . . , P2z }, P3 = {P2z+1 , . . . , P3z }, and P4 = {P3z+1 , . . . , P4z }, whose
corresponding vertices participate in the 2-path R∗ . (Notice that P0 6∈ P1 , but the degree of uP0 is 2
in H(L) - we use this fact later). Let X ⊆ A be the set of the endpoints of the paths in P2 that belong
to A, and let Y ⊆ B be the set of the endpoints of the paths in P4 that belong to B (see Figure 6).
Since A, B are linked in G, we can find a set Q of z disjoint paths connecting X to Y in G. We view
the paths in Q as directed from X to Y
Let Q ∈ Q be any such path. Observe that, since R∗ is a 2-path in H(L), path Q has to either intersect
all paths in P1 , or all paths in P3 before it reaches Y . Therefore, it must intersect Pz+1 or P2z . Let v
be the last vertex of Q that belongs to Pz+1 ∪ P2z . Let Q0 be the segment of Q starting from v and
terminating at a vertex of Y . Assume first that v ∈ Pz+1 . We say that Q is a type-1 path in this case.
Let u be the first vertex on Q0 that belongs to P0 . (Such a vertex must exist again due to the fact
that R∗ is a 2-path.) Let Q∗ be the segment of Q0 between v and u. Then Q∗ intersects every path in
P1 ∪{P0 , Pz+1 }, and does not intersect any other path in L, while |V (Q∗ )∩V (P0 )| = |V (Q∗ )∩Pz+1 | = 1
(see Figure 6).

59

Similarly, if v ∈ P2z , then we say that Q is a type-2 path. Let u be the first vertex of Q0 that
belongs to P3z+1 , and let Q∗ be the segment of Q0 between u and v. Then Q∗ intersects every
path in P3 ∪ {P2z ∪ P3z+1 }, and does not intersect any other path in L, while |V (Q∗ ) ∩ V (P2z )| =
|V (Q∗ ) ∩ V (P3z+1 )| = 1.

P0
P1
P1
P2

!"#$%&%

X

P2z
P2z+1

!"#$%'%

P3
P4

Pz
Pz+1

P3z
Y
..
.

Figure 6: Two examples for paths in Q - a type-1 and a type-2 path - are shown in red, with the Q∗
segment highlighted.
Clearly, either at least half the paths in Q are type-1 paths, or at least half the paths in Q are type-2
paths. We assume without loss of generality that the former is true. Let Q0 be the set of the sub-paths
Q∗ for all type-1 paths Q ∈ Q, that is, Q0 = {Q∗ | Q ∈ Q and Q is type-1}. Then |Q0 | ≥ z/2 = h1 .
The rest of the proof is based on the following idea. We will show that either the graph obtained from
the union of the paths in Q0 ∪ P1 is a planar graph, in which case we recover a grid minor directly, or
we will find a new A-B linkage L0 , such that H(L0 ) contains fewer degree-2 vertices than H(L). To
accomplish this we will iteratively simplify the intersection pattern of the paths in Q0 and P10 .
The algorithm performs a number of iterations. Throughout the algorithm, the set Q0 of paths remains
unchanged. The input to every iteration consists of a set P10 of paths, such that the following hold:
• L0 = (L \ P1 ) ∪ P10 is an A-B linkage;
• the graphs H = H(L) and H 0 = H(L0 ) are isomorphic to each other, where the vertices uP for
P 6∈ P1 are mapped to themselves; and
• every path in Q0 intersects every path in P10 ∪ {P0 , Pz+1 }, and no other paths of L0 .
The input to the first iteration is P10 = P1 . Throughout the algorithm, we maintain a graph H̃ the subgraph of G induced by the edges participating in the paths of P10 ∪ Q0 . We define below two
60

combinatorial objects: a bump and a cross. We show that if H̃ has either a bump or a cross, then we
can find a new set P100 of paths, such that L00 = (L0 \ P10 ) ∪ P100 is an A-B linkage. Moreover, either
H 00 = H(L00 ) contains fewer degree-2 vertices than H 0 , or the two graphs are isomorphic to each other.
In the former case, we terminate the algorithm and return the linkage L00 . In the latter case, we show
that we obtain a valid input to the next iteration, and |E(Q0 ) ∪ E(P10 )| > |E(Q0 ) ∪ E(P100 )|. In other
words, the number of edges in the graph H̃ strictly decreases in every iteration. We also show that,
if H̃ contains no bump and no cross, then a large subgraph of H̃ is planar, and contains a grid minor
of size (h1 × h1 ). Therefore, after |E(G)| iterations the algorithm is guaranteed to terminate with the
desired output. We now proceed to define the bump and the cross, and their corresponding actions.
We recall the useful observation that for any A-B linkage L0 , the corresponding graph H(L0 ) is a
connected graph, since G is connected.
A bump. Let P10 be the current set of paths, and L0 = (L \ P1 ) ∪ P10 the corresponding linkage. We
say that the corresponding graph H̃ contains a bump, if there is a sub-path Q0 of some path Q ∈ Q0 ,
whose endpoints, s and t, both belong belong to the same path Pj ∈ P10 , and all inner vertices of Q0
are disjoint from all paths in P10 . (See Figure 7). Let aj ∈ A, bj ∈ B be the endpoints of Pj , and
assume that s appears before t on Pj , as we traverse it from aj to bj . Let Pj0 be the path obtained
from Pj , by concatenating the segment of Pj between aj and s, the path Q0 , and the segment of Pj
between t and bj .

Q�
aj

s

bj

t

aj

s

bj

t
Pj�

Pj
Figure 7: A bump and the corresponding action.

Let P100 be the set of paths obtained by replacing Pj with Pj0 in P10 , and let L00 = (L0 \ P10 ) ∪ P100 =
(L \ P1 ) ∪ P100 . It is immediate to verify that L00 is an A-B linkage. Let H 0 = H(L0 ), and H 00 = H(L00 ),
and let E 0 be the set of edges in the symmetric difference of the two graphs (that is, edges, that belong
to exactly
one of the two graphs). Then for every edge in E 0 , both endpoints must belong to the

set uPj−1 , uPj , uPj+1 ; this is because the vertices {uP | P ∈ P1 } are part of a 2-path in H(L). In
s2 whose degree
aj the sonly
bj may beajdifferentsin1 the twosgraphs
2
1 vertices
particular,
arebujPj−1 , uPj , uPj+1 . If
the degree of any one of these three vertices is different in H 00 and H 0 , then,�since their degrees are
j+1
j H, we obtain a new A-B linkage L00 , P
2 in both H 0 and the original P
graph
such
that H(L00 ) contains
a
a
b
t1 H. Otherwise,
t2all three vertices
t1 remain
j+1 if the j+1
2
bj+1equal to 2, then
fewer j+1
degree-2tvertices
than
degrees of
00
0
it is immediate to verify that H is isomorphic to H , where each vertex is mapped to itself, except
that we replace uPj with uPj 0 .PIt is easy to verify that all invariants continue
Pj�to hold in this case. Let
j+1
H̃ be the graph obtained by the union of the paths in P10 and Q0 , and define H̃ 0 similarly for P100 and
Q0 . Then H̃ 0 contains fewer edges than H̃, since the portion of the path Pj between s and t belongs
to H̃ but not to H̃ 0 .
A cross. Suppose we are given two disjoint paths Q01 , Q02 , where Q01 is a sub-path of some path
Q1 ∈ Q0 , and Q02 is a sub-path of some path Q2 ∈ Q0 (with possibly Q1 = Q2 ). Assume that the
endpoints of Q01 are s1 , t1 and the endpoints of Q02 are s2 , t2 . Moreover, suppose that s1 , s2 appear on
some path Pj ∈ P10 in this order, and t2 , t1 appear on Pj+1 ∈ P10 in this order (where the paths in P10
61

are directed from A to B), and no inner vertex of Q01 or Q02 belongs to any path in P10 . We then say
that Q01 , Q02 are a cross. (See Figure 8.)

aj

s1

aj+1 t2

s2
t1

bj
Pj

bj+1

aj

s1

aj+1 t2

s2
t1

bj
�
Pj+1
bj+1

Pj�

Pj+1

Figure 8: A cross and the corresponding action.
Given a cross as above, we define two new paths, as follows. Assume that the endpoints of Pj are
aj ∈ A, bj ∈ B, and similarly the endpoints of Pj+1 are aj+1 ∈ A, bj+1 ∈ B. Let Pj0 be obtained by
concatenating the segment of Pj between aj and s1 , the path Q01 , and the segment of Pj+1 between t1
0
and bj+1 . Let Pj+1
be obtained by concatenating the segment of Pj+1 between aj+1 and t2 , the path
0
Q2 , and the segment of Pj between s2 and bj . We obtain the new set P100 of paths by replacing Pj , Pj+1
0
with Pj0 , Pj+1
in P10 . Let L00 = (L0 \ P10 ) ∪ P100 = (L \ P1 ) ∪ P100 . It is immediate to verify that L00 is
an A-B linkage. As before, let H 0 = H(L0 ), and H 00 = H(L00 ), and let E 0 be the set of edges in the
symmetric
difference of the two graphs. Then for every edge in E 0 , both endpoints must belong to the

set uPj−1 , uPj , uPj+1 , uPj+2 . Again, this is because the vertices {uP | P ∈ P1 } are part of a 2-path in
H(L). The only vertices whose degree may be different in the two graphs are uPj−1 , uPj , uPj+1 , uPj+2 .
If the degree of any one of these four vertices is different in H 00 and H 0 , then, since their degrees are
2 in both H 0 and the original graph H, we obtain a new A-B linkage L00 , such that H(L00 ) contains
fewer degree-2 vertices than H. Otherwise, if the degrees of all four vertices remain equal to 2, then it
is immediate to verify that H 00 is isomorphic to H 0 , where each vertex is mapped to itself, except that
0
we replace uPj , uPj+1 with uPj0 , uPj+1
(possibly switching them). It is easy to verify that all invariants
continue to hold in this case. Let H̃ be the graph obtained by the union of the paths in P10 ∪ Q0 , and
define H̃ 0 similarly for P100 ∪ Q0 . Then H̃ 0 contains fewer edges than H̃, since the portion of the path
Pj between s1 and s2 belongs to H̃ but not to H̃ 0 .
We are now ready to complete the description of our algorithm. We start with P10 = P1 , and then
iterate. In every iteration, we construct a graph H̃ — the subgraph of G induced by P10 ∪ Q0 . If
H̃ contains a bump or a cross, we apply the appropriate action. If the resulting linkage L00 has the
property that H(L00 ) has fewer degree-2 vertices than H(L), then we terminate the algorithm and
return L00 . Otherwise, we obtain a valid input to the next iteration, and moreover, the number of
edges in the new graph H̃ strictly decreases. Therefore, we are guaranteed that within O(|E(G)|)
iterations, either the algorithm terminates with the desired linkage L00 , or the graph H̃ contains no
bump and no cross. We now assume that the latter happens.
Consider the final graph H̃. For each path Q ∈ Q0 , let vQ be the first vertex of Q that belongs to
V (P10 ), and let uQ be the last vertex of Q that belongs to V (P10 ). Let Q̃ be the sub-path of Q between
0
0
vQ and uQ . Delete
n from H̃ all
o vertices of V (Q) \ V (Q̃) for all Q ∈ Q , and let H̃ denote the resulting
graph. Let Q̃ = Q̃ | Q ∈ Q . We need the following claim.

Claim B.2 If H̃ contains no cross and no bump, then H̃ 0 is planar.
Proof: Consider some path Q̃ ∈ Q̃. Delete from Q̃ all edges that participate in the paths in P10 ,
and let Σ(Q̃) be the resulting set of sub-paths of Q̃. While some path σ ∈ Σ(Q̃) contains a vertex
62

v ∈ V (P10 ) as an inner vertex, we replace σ with two
S sub-paths, where each subpath starts at one of
the endpoints of σ and terminates at v. Let Σ = Q̃∈Q̃ Σ(Q̃) be the resulting set of paths. Then for
each path σ ∈ Σ, both endpoints of σ belong to V (P10 ), and the inner vertices are disjoint from V (P10 ).
Moreover, since the paths in P10 induce a 2-path in the corresponding graph H(L0 ), and since there are
no bumps, the endpoints of each such path σ connect two consecutive paths in P10 . Since no crosses
are allowed, it is easy to see that the graph H̃ 0 is planar.
We now show how to construct a grid minor in graph H̃ 0 . We start from the union of the paths in
P10 and Q̃, and perform the following transformation. We say that a segment σ of a path Q ∈ Q̃ is
a hill if and only if (i) the endpoints s, t of σ lie on some path Pi ∈ P10 ; (ii) the segment σ 0 of Pi
whose endpoints are s and t does not contain any vertex of V (Q̃ \ {Q}); and (iii) σ intersects Pi−1 and
is internally disjoint from all vertices of V (P10 \ {Pi−1 }). While there is a hill in P10 ∪ Q̃, we modify
the corresponding path Q by replacing the segment σ with σ 0 . If this creates a cycle on Q (this can
happen if σ 0 contained a vertex of Q), we discard all such cycles until Q becomes a simple path. We
continue performing such transformations, until there is no hill in the set P10 ∪ Q̃ of paths. Notice that
this transformation cannot create any bumps. We need the following claim:
Claim B.3 When the above algorithm terminates, for all Pi ∈ P10 and Q ∈ Q̃, Pi ∩ Q is a path.
Notice that it is now immediate to obtain the (h1 × h1 )-grid minor from the union of the paths in
P10 ∪ Q̃, by first contracting every path Pi ∩ Q for all Pi ∈ P10 and Q ∈ Q̃, and then suppressing all
degree-2 vertices, after which we discard the h1 extra rows. It is now enough to prove Claim B.3.
Proof: Assume otherwise. Then there must be some path Q ∈ Q, and some segment σ of Q, whose
two endpoints s, t lie on some path Pi ∈ P10 , such that σ intersects Pi−1 , and it is internally disjoint
from V (P10 \ {Pi }). Notice that since there are no bumps, the intersection of Q and Pi−1 is a path.
Among all such pairs (Q, Pi ), choose the one maximizing i. Since σ is not a hill, there must be some
path Q0 6= Q in Q̃ that intersects the segment σ 0 of Pi , lying between s and t. Let v be any vertex in
Q0 ∩ σ 0 , and let σ 00 be the longest contiguous sub-path of Q0 contained in σ 0 . Let u be the last vertex
of Q0 before σ 00 that belongs to V (P10 ), and let u0 be the first vertex of Q0 after σ 00 that belongs to
V (P10 ). Then it is easy to verify that u, u0 ∈ V (Pi+1 ) (and in particular i 6= 2h1 ). But then we should
have chosen the pair (Q0 , Pi+1 ) instead of (Q, Pi ), a contradiction.

C

Proof of Corollary 3.2

We say that a cluster Si ∈ S is even if i is even, and otherwise we say that Si is odd. We apply
Theorem 3.1 to graph G[Si ] for every even cluster Si , using A = Ai and B = Bi . If, for any even
cluster Si , the outcome is the (h1 × h1 )-grid minor, then we terminate the algorithm and return the
model of this minor. Therefore, we assume that for every even index i, Theorem 3.1 returns a collection
Li of h2 node-disjoint paths contained in G[Si ], that connect some subset A0i ⊆ Ai of h2 vertices to a
subset Bi0 ⊆ Bi of h2 vertices, such that for every pair P, P 0 ∈ Li of paths, there is a path βi (P, P 0 ) in
G[Si ], connecting a vertex of P to a vertex of P 0 , where βi (P, P 0 ) is internally disjoint from V (Li ).
0 ⊆ B be the sets of endpoints of the paths in L . Let
Fix some 1 ≤ i ≤ b`/2c. Let A02i ⊆ A2i and B2i
2i
2i
−
L2i−1 ⊆ P2i−1 be the set of paths terminating at the vertices of A02i . If 2i < `, then let L+
⊆
P2i be
2i
+
0
the set of paths originating at the vertices of B2i ; otherwise, let L2i contain h2 paths, each of which
0 .
consists of a single distinct vertex of B2i

We use the odd clusters, via the well-linkedness properties of the clusters, to connect the path collections from the even clusters into the desired path collection Q.
63

Consider now some odd-indexed cluster Si . If i 6= 1, then let A0i ⊆ Ai be the set of vertices where the
0
0
paths of L+
i−1 terminate, and otherwise let Ai be any set of h2 vertices of Ai . If i < `, then let Bi ⊆ Bi
−
0
be the set of vertices where the paths of Li+1 originate, and otherwise let Bi be any set of h2 vertices
of Bi . Since Ai , Bi are linked in G[Si ], there is a set Ri of h2 node-disjoint paths, that are contained
in G[Si ], and connect A0i to Bi0 .
+
We now define a the set Q of paths, obtained by the concatenation of all paths L−
i , Li , Li where
Si is an even cluster, and paths Rj , where Sj is an odd cluster. The resulting set Q contains h2
disjoint paths, originating at the vertices of A1 and terminating at the vertices of B` , where for every
1 ≤ i ≤ `, for every path Q ∈ Q, Q ∩ Si is a path, and S1 ∩ Q, S2 ∩ Q, . . . , S` ∩ Q appear on Q in
this order. Moreover, for every even integer 1 ≤ i ≤ `, for every pair Q, Q0 ∈ Q of paths, there is a
path βi (Q, Q0 ) ⊆ G[Si ], that connects a vertex of Q to a vertex of Q0 , and is internally disjoint form
all paths in Q. It is immediate to verify that all paths in Q are contained in G0 .

C.1

Proof of Corollary 3.3

We apply Corollary 3.2 to the path-of-sets system, with parameters h1 = g and h2 = g, so w ≥
16g 2 + 10g as required. If the outcome is the (g × g)-grid minor, then we terminate the algorithm
and return its model. Therefore, we assume that the outcome of Corollary 3.2 is a set Q of g paths
connecting vertices of A1 to vertices of B` , that we denote by Q = {Q1 , . . . , Qg } (the ordering is
arbitrary).
Consider the following graph G∗ . Start with a grid containing g rows and g(g − 1) columns, with
the columns indexed C0 , C1 , . . . , Cg(g−1)−1 from left to right. For all 0 ≤ i < g(g − 1), let ti = i
mod (g − 1). We delete from the ith column all edges except for (ti + 1)th edge from the top; thus,
after this operation the are exactly g(g − 1) vertical edges, one for each of the columns. Finally, we
repeatedly delete degree-1 vertices and suppress degree-2 vertices (see Figure 9). This finishes the
definition of the graph G∗ . It is immediate to verify that G∗ contains the (g × g)-grid as a minor. In
order to finish the proof, it is enough to show that graph G contains a subdivision of G∗ . Each row
i corresponding to a horizontal path of G∗ is mapped to the path Qi . Each vertical edge of G∗ will
be mapped to a path in one of the even clusters as described below. We denote the vertical edges
of G∗ by e0 , e1 , . . . , eg(g−1)−1 , where ei is an edge that was lying on column Ci of the grid. For each
0 ≤ i < g(g − 1), let vi , ui be the two endpoints of ei in G∗ ; let i1 be the index of the row to which
vi belongs, and assume without loss of generality that ui belongs to row (i1 + 1). Let P = Qi1 the
path that row i1 is mapped to, let P 0 = Qi1 +1 the path that row i1 + 1 is mapped to. In the graph
G[S2(i+1) ] there is path β2(i+1) (P, P 0 ) connecting a vertex a lying on P to a vertex b lying on path
P 0 . We map the edge ei to path β2(i+1) (P, P 0 ), vertex vi to a and ui to b. Once we complete the
mapping of all vertices and vertical edges of G∗ , for every horizontal edge e that lies say on the jth
row of G∗ , we obtain a natural mapping of e to the segment of Qj between the two vertices to which
the endpoints of e are mapped.

64

Figure 9: Graph G∗ for g = 4.

65

