Improved Tree Sparsifiers in Near-Linear Time
Abstract
A tree cut-sparsifier of quality of a graph is a single tree that preserves the capacities of all cuts in the graph up to a factor of . A tree flow-sparsifier of quality guarantees that every demand that can be routed in can also be routed in with congestion at most .
We present a near-linear time algorithm that, for any undirected capacitated graph , constructs a tree cut-sparsifier of quality , where . This nearly matches the quality of the best known polynomial construction of a tree cut-sparsifier, of quality [Räcke and Shah, ESA 2014]. By the flow-cut gap, our result yields a tree flow-sparsifier (and congestion-approximator) of quality . This improves on the celebrated result of [Räcke, Shah, and Täubig, SODA 2014] (RST) that gave a near-linear time construction of a tree flow-sparsifier of quality .
Our algorithm builds on a recent expander decomposition algorithm by [Agassy, Dorfman, and Kaplan, ICALP 2023], which we use as a black box to obtain a clean and modular foundation for tree cut-sparsifiers. This yields an improved and simplified version of the RST construction for cut-sparsifiers with quality . We then introduce a near-linear time refinement phase that controls the load accumulated on boundary edges of the sub-clusters across the levels of the tree. Combining the improved framework with this refinement phase leads to our final tree cut-sparsifier.
Keywords and phrases:
Tree sparsifiers, cut sparsifiers, flow sparsifiers, congestion approximators, expander decomposition, near-linear time algorithmsCategory:
Track A: Algorithms, Complexity and GamesCopyright and License:
2012 ACM Subject Classification:
Theory of computation Sparsification and spanners ; Theory of computation Graph algorithms analysisFunding:
This work was supported in part by Israel Science Foundation grant no. 1156-23 and the Blavatnik Family Foundation.Editors:
Sayan Bhattacharya, Danupon Nanongkai, Michael Benedikt, and Gabriele PuppisSeries and Publisher:
Leibniz International Proceedings in Informatics, Schloss Dagstuhl – Leibniz-Zentrum für Informatik
1 Introduction
A cut-sparsifier of a weighted undirected graph is a sparse graph that preserves the cuts of up to some factor. Formally is a cut-sparsifier of of quality if and for every it holds that , where
A stronger notion is of flow-sparsifiers. We say that , where , is a flow-sparsifier of of quality if every multi-commodity flow problem that can be routed in with congestion , can also be routed in with congestion and, moreover, every multi-commodity flow problem that can be routed in with congestion , can also be routed in with congestion .
A concept closely related to tree flow-sparsifiers is that of congestion-approximators. An -congestion-approximator of is a collection of cuts that approximately capture the optimal congestion needed to route multi-commodity flows in . Formally, for any demand matrix , consider the minimum ratio (over all cuts ) between the capacity of the cut and the total demand separated by it, i.e., . The collection is an -congestion-approximator if this ratio -approximates the minimum congestion required to route in . Tree flow-sparsifiers arising from hierarchical decompositions yield congestion approximators of the same quality, consisting of only a near-linear number of cuts. In a breakthrough result, Sherman [27] showed that congestion-approximators of polylogarithmic quality suffice to compute approximate maximum flow in near-linear time.
Räcke [22] proved the existence of tree flow-sparsifiers of quality . The construction is based on a hierarchical decomposition of . This result was soon improved to a polynomial time algorithm for computing a tree flow-sparsifier of quality [12]. This series of works has culminated in an almost linear time (that is, time) construction of a tree flow-sparsifier of quality by Räcke, Shah, and Täubig [24], which was later improved to a near-linear time (that is, time111The notation is used to hide factors.) construction due to Peng’s near-linear time approximate max flow algorithm [21]. This bound is the best known for near-linear time constructions of a tree flow-sparsifier and of congestion-approximators of near-linear size.
Even though flow-sparsifiers are robust, for many applications a cut-sparsifier suffices (see, e.g., [9, 11, 3, 5, 28]). The best known polynomial time construction by Räcke and Shah [23] gives a tree cut-sparsifier of quality . Grid graphs impose an lower bound on the quality of tree cut-sparsifiers and flow-sparsifiers [6, 18].
A tree flow-sparsifier of quality is also a tree cut-sparsifier of the same quality. Therefore, [24, 21] implies a near-linear time construction of a tree cut-sparsifier of quality , and this is the best near-linear time construction to date. We give an time construction of tree cut-sparsifier of quality , a tree flow-sparsifier of quality , and a congestion-approximator of near-linear size of quality . This improves for the first time upon the 2014 bound of [24, 21]. The following theorem is our main result.
Theorem 1.1.
Given a graph of edges, there exists a randomized algorithm which takes time and with high probability finds a weighted tree with , such that is a cut-sparsifier of with quality . The same tree is also a flow-sparsifier of with quality , which in particular induces a congestion-approximator of with quality and near-linear size.
1.1 Techniques
We now elaborate on the tools and techniques that allow us to obtain Theorem 1.1. First, we develop a way to work directly with cuts rather than flows.
Demand State Formulation.
Certifying that a hierarchical tree is a flow-sparsifier of a graph with quality , amounts to showing that every multi-commodity flow problem routable in with congestion , is routable in with congestion . The natural approach is to route the mass in according to the structure of : we partition to clusters according to the laminar set family given by the nodes of , and iteratively route flow in from the boundary edges of each cluster to the boundary edges of its parent cluster. The process begins at the leaf clusters (corresponding to the vertices ) and proceeds upward, canceling demands whenever both endpoints lie inside the same cluster.
For the cut-sparsifier setting, we replace explicit routings by a notion of respecting demand matrices. We say that -respects a demand matrix if for every cut the total amount of that demand that must cross is at most . To prove that is a tree cut-sparsifier we need to show that -respects every demand matrix that is -respected by (see Claim 3.14). To carry out this task we use the notion of demand states (Definition 3.6). A demand state assigns to each vertex a vector of commodity masses, and each update to the state corresponds to moving mass. Demand states allow us to formally define and maintain invariants, reason about how mass is redistributed across clusters, and rigorously charge these movements to the capacity of cuts. In contrast to flow-sparsifiers, these movements and corresponding charges are not necessarily achieved by explicit routing. While similar techniques were used in previous work, using this demand state formulation allows us to provide a clearer and more systematic presentation of the algorithms, making their structure explicit.
Expander Decomposition.
Leveraging the “balanced cut or expander” primitive from [2] with adaptively chosen expansion parameters, we develop a unified approach that allows us to simplify and strengthen the [24] framework to obtain a tree cut-sparsifier of quality . Afterwards, we use the same approach to implement a variant of the refinement phase of [12, 23] in near-linear time, as we describe below.
Using this primitive from [2], together with the fair-cuts computation [16], allows us to abstract away the details of the underlying algorithmic machinery and significantly simplify the construction of the tree cut-sparsifier, when compared to e.g., [24]. This connects tree cut-sparsifier constructions to modern sparse-cut tools and shows how they can be constructed using these tools.
A Near-Linear Time Refinement Phase.
A main caveat in the construction of [24] is that the boundary edges of the clusters are not flow-linked. The notion of a flow-linked set, introduced by [10], means that it is possible to route an all-to-all multi-commodity flow between the nodes (or edges) of this set. The lack of this property in [24] adds a logarithmic factor to the quality of the resulting tree flow-sparsifier. For more details, see Section 2.4. In the context of tree cut–sparsifiers, flow-linkedness corresponds to expansion. By applying the “balanced cut or expander” primitive of [2] to a given cluster , we can test whether the boundary of expands. If not, we split along a balanced cut and recur on both sides. This recursive process, which we call the refinement phase, allows us to partition a cluster into such that in each , the boundary edges expand.
Additionally, similar to [12, 23], we show that there exists a low-congestion flow from the inter-cluster edges of the refinement partition to the boundary of . We do this by carefully using the guarantees supplied by [2]. This requires overcoming several technical obstacles, as we need to meticulously control both the number of boundary edges and the number of vertices in the resulting sub-clusters. Importantly, we are able to perform this step in near-linear time, instead of polynomial time.
Previous constructions [12, 23] relied on intricate recursive schemes that handled “bad child events”, a subcall that violated the recursion invariants, by restarting parts of the computation. In contrast, our approach is entirely modular: we alternately apply a merge phase (on which we elaborate in Section 2.5) and a refinement phase, each performing a single, independent partition of the current cluster (no backtracking is needed). This simple alternation yields a much cleaner and modular tree cut-sparsifier construction of quality .
1.2 Further Background
Our work builds on the tree flow-sparsifier constructions of [24] and [12], combined with an expander decomposition result by [2].
A crucial component in [24] was a variant of the cut-matching game, introduced by Khandekar, Rao, and Vazirani [14]. The cut-matching game [14] provides an -approximate sparsest cut in near-linear time. By running a “non-stop” version of this game, [24] obtained balanced -approximate sparse cuts, or alternatively, constructed clusters whose inter-cluster edges (not including boundary edges) are flow-linked.
A stronger cut strategy was developed by [20], achieving an -approximation for the sparsest cut problem. The expansion produced by this cut strategy follows from Cheeger’s inequality [8] and therefore, at least intuitively, is unsuitable for flow routing purposes. This stands in contrast to the cut player of [14], whose expansion follows from embedding a uniform demand matrix (all ’s) into the expanding set.
Agassy, Dorfman, and Kaplan [1] were able to translate [20]’s improved cut strategy into a “balanced cut or expander” procedure of approximation , resulting in a near-linear time expander decomposition algorithm which improved on the prior expander decomposition algorithm by Saranurak and Wang [26] that uses [14]’s cut strategy. In [2], Agassy, Dorfman and Kaplan show how to extend their results to the case of generalized conductance. By generalized conductance, they refer to conductance with respect to a vertex measure. Formally, given a vertex measure , and a set , the expansion of a cut with respect to is defined as , where , for , is defined as . We use the result by [2] in a black-box manner as explained in Section 2.5. We note that for the purpose of obtaining our quality tree flow-sparsifier, one could alternatively rely on [26], together with our refinement phase. However, achieving the improved quality tree cut-sparsifier crucially relies on the spectral cut player underlying [2].
Typically, as in this work, hierarchical decompositions are computed top-down by recursively splitting clusters starting from the root . Li, Rao, and Wang [17] take the opposite, bottom-up approach, constructing a congestion approximator of quality . Their main tool is a weak expander decomposition: they build a sequence of partitions of , where each partition corresponds to a weak expander decomposition, and is the partition into singleton clusters and . The collection of cuts from these partitions does not form a laminar family. Instead, the congestion-approximator’s set of cuts consists of all intersections of sub-clusters drawn from different levels. A technical challenge is that expander-decomposition routines typically invoke approximate max-flow algorithms that themselves rely on the top-down congestion-approximator of [24]. The construction of [17] avoids this potential circularity by maintaining “pseudo”-congestion-approximators derived from the partial hierarchy and using them within the max-flow subroutines required for the weak expander decomposition.
We note that the “balanced cut or expander” primitive of [2], which we use extensively, internally computes fair-cuts (approximate maximum flows) via the algorithm of [16]. This algorithm requires a congestion–approximator for the underlying graph . By instantiating the congestion–approximator required by the fair-cut routine [16] with the construction of [17], our tree cut–sparsifiers can be implemented without invoking the congestion–approximator of [24]. This means that one can also think of our work (in particular, Section 4) as a simplification of the construction of [24] (which does not depend on it).
Recent Work
In an independent and parallel work222First appeared almost at the same time as our preliminary version. Henzinger, Münk, and Räcke [13] achieved a tree cut sparsifier with the same quality. They also show how to implement their construction in parallel with polylogarithmic span and near-linear work. Their hierarchy construction follows the [12] bad-child-event paradigm: when a cluster cannot be certified to satisfy the required expansion invariant, the algorithm dynamically restructures the current hierarchy level and revisits the affected subproblems. This event-driven backtracking leads to a more intricate control flow. In contrast, our construction avoids such restart mechanisms entirely. The merge and refinement phases are applied as independent, one-shot procedures, resulting in a simpler and more modular algorithmic structure.
Organization
The rest of the paper is structured as follows. Section 2 gives an overview of our results and techniques. Section 3 contains additional definitions and notation, as well as the analysis tools used throughout the paper. In Section 4 we detail the merge phase partition and the hierarchical decomposition for Theorem 2.5. The analysis of Theorem 2.5 is deferred to the full version. In Section 5 we detail the refinement phase and use it to prove Theorem 2.4.
2 Overview of Our Results and Techniques
This section is organized as follows. Section 2.1 introduces key definitions used throughout the section (additional definitions and notation are deferred to Section 3). In Section 2.2, we detail our results using these definitions. In Section 2.3, we introduce a general framework for analyzing the quality of tree cut-sparsifiers. Section 2.4 reviews the key ideas and techniques from previous work. In Section 2.5, we outline the approach used to prove Theorem 2.5, and in Section 2.6, we describe the additional ideas that give the improved result stated in Theorem 2.4.
2.1 Preliminaries
We use to denote the base-2 logarithm. Throughout the paper, we assume all graphs are undirected. Given an undirected graph and a set , we denote by the degree of (for a weighted graph, this is the sum of the weights of the edges adjacent to ). The volume of a set is defined as . Given a vertex measure , and a set , we denote the total weight of as . We write for the indicator measure of . For disjoint sets , we denote by the set of edges connecting and . We denote by the number of edges in , or the sum of their weights if the graph is weighted. We sometimes omit the subscript when the graph is clear from the context. Denote .
Definition 2.1 (Multi-Commodity Flow Problem, Demand Matrix).
Given a vertex set , a demand matrix specifies a multi-commodity flow problem : the entry is the amount of commodity that must be sent from to . For , define the demand of across as . We identify with and use the two notations interchangeably.
For , the all-to-all demand on is denoted and defined by for , and otherwise. For a routing of in a capacitated graph , let , where is the total flow through . Let , over routings of .
Definition 2.2 (Respecting Cut).
Let be a demand matrix on and let be a cut in . We say that -respects if . We say that -respects if
For a graph with , replace by .
Fact 2.3.
If the demand matrix can be routed in with congestion , then , for all cuts , i.e., -respects .
Note that -respecting a demand matrix does not necessarily imply that can be routed with congestion in . Due to the flow–cut gap [15], an additional factor may be required.
2.2 Our Contribution
We prove the following theorem:
Theorem 2.4.
Given a graph of edges, there exists a randomized algorithm which takes time and with high probability finds a weighted tree with , such that is a cut-sparsifier of with quality .
However, first, to gradually develop our techniques, we prove a weaker and simpler version of the theorem, in which we look for a tree cut-sparsifier of quality :
Theorem 2.5.
Given a graph of edges, there exists a randomized algorithm which takes time and with high probability finds a weighted tree with , such that is a cut-sparsifier of with quality .
Remark 2.6 (Hierarchical trees).
The trees produced in Theorems 2.4 and 2.5 are hierarchical trees: each node of corresponds to a subset of vertices of , and these subsets form a laminar family333That is, the subsets corresponding to the children of a node in are pair-wise disjoint and contained in the subset corresponding to that node. in which the root corresponds to and the leaves correspond to all singleton subsets . Each edge connects a node, corresponding to a cluster , with its parent node, corresponding to a larger cluster . This edge has a capacity equal to the capacity of the cut in , i.e., .
The following claim follows from the flow-cut gap theorem [15, 4], together with the fact that the flow-cut gap in a tree is [19].
Claim 2.7.
The following relations hold for a (hierarchical) tree of :
-
If is a cut-sparsifier of of quality , then is also a flow-sparsifier of quality .
-
If is a flow-sparsifier of of quality , then is also a cut-sparsifier of quality .
Hence, as a corollary of Theorem 2.4, we get:
Theorem 2.8.
Given a graph of edges, there exists a randomized algorithm which takes time and with high probability finds a weighted tree with , such that is a flow-sparsifier of with quality , which in particular induces a congestion-approximator of with quality and near-linear size.
The flow-cut gap for planar graphs is [25]. Therefore, for planar graphs, our construction achieves a tree flow-sparsifier (and congestion-approximator) of quality .
For simplicity, we present our algorithms in the setting where is unweighted, but our constructions can be adapted to the case of polynomially bounded weights.
2.3 Certifying a Tree Cut-Sparsifier Versus Certifying a Tree Flow-Sparsifier
Our construction follows a recursive partitioning algorithm which takes as input a cluster and partitions it to sub-clusters . Applying this algorithm recursively gives a laminar decomposition of the set , which naturally corresponds to a hierarchical tree (see Remark 2.6). The root of corresponds to the set while the leaves correspond to individual vertices . The weight of an edge in , between the node corresponding to the cluster and its parent is .
Consider first the task of certifying that such a tree is a flow-sparsifier. We can do this by showing that the congestion of routing a demand matrix in is comparable to the congestion of routing in . Note that by choosing the capacities of the tree edges as we did, the inequality is immediate: we route the demand matrix in trivially along the unique path between each pair of vertices. If the flow problem can be routed in with congestion , then by Fact 2.3 it must be that, for every sub-cluster , the cut -respects : . The demand across each cut corresponds exactly to the total amount of flow routed along the edge in the tree, so the way the edge capacities in are assigned ensures that the flow problem can be routed in the tree with congestion . Therefore, when building a tree flow-sparsifier, our goal is to choose the tree such that the reverse inequality also holds. This means that given demands which can be routed in we have to show how to route in with similar congestion. being routable in means that only for , the cut in , respects . Therefore, the intuition is that we look to include in the tree the sub-clusters which best capture the cut structure of the graph, in the sense that any demands respected by them can be routed in .
In the flow-sparsifier case, given demands routable in , [12, 7, 24] used the tree structure to describe the routing of in the graph . They did this by routing which originates at all the vertices of (corresponding to leaves in ), toward the boundaries of sub-clusters as they go up along the tree.444This is made formal using the subdivision graph (see Definition 3.1), where the demands reside on the split nodes of the boundary edges. For the overview in this section, however, we omit these details for simplicity. That is, when a sub-cluster is partitioned into , they route (in ) the mass from the boundary edges of (where they arrived in the previous iteration) to the boundary edges of . We emphasize that this routing takes place in , while the structure of is used only as a “blueprint” to direct the intermediate flows. Then, source and target demands of vertex pairs that are both in , are “paired up” and canceled before moving further upwards in the tree.
Turning now back to cut-sparsifiers, in order to certify that is a tree cut-sparsifier, we no longer need to route the demands (which can be routed in ) in , but rather only show that respects (see Claim 3.14 which essentially says that is a tree cut-sparsifier of quality if it -respects every demand that is -respected by ). To show that demands are respected by we develop a technique of moving demands rather than flow. For this we define the notion of a valid demand state (see Definition 3.6).
In a demand state each node has its own vector of commodities (one for each vertex), where for each commodity it has some amount of mass that is waiting at to be shipped out (or, if the amount is negative, waiting to be shipped into ). This representation is particularly convenient in the hierarchical setting: Even when we focus on a sub-cluster , we maintain at each information on the mass from all commodities including those of vertices that are not in . In contrast, working directly with demand matrices within a sub-cluster would be inconvenient, as the local view would lose information about demands involving vertices outside . The demand state formulation, on the other hand, always retains the complete global demand structure, allowing us to reason locally within clusters while still maintaining awareness of the external interactions.
We use the structure of to direct the movement of demands. This corresponds to updating the demand state. Specifically, as we climb up the sparsifier , we move the demands of the demand state from internal edges to the boundary edges of sub-clusters . However, unlike in the flow-sparsifier setting, these movements do not necessarily correspond to an actual multi-commodity flow that is routable in the graph. In fact, we do not “pay” for the congestion of these routings, as in the flow-sparsifier analysis, but rather according to how much the graph respects them (see Definition 2.2). This charging scheme is detailed in Sections 3.4 and 5.
2.4 Dealing With Bottleneck Cuts
As mentioned in Section 2.3, a key property of tree flow-sparsifier is that for every cluster , we can move the demands currently in the inter-cluster edges between sub-clusters of , to the boundary edges of while incurring small congestion. An ideal scenario is when the algorithm guarantees that is flow-linked inside , meaning that one can route an all-to-all multi-commodity flow between the edges of with low congestion. In this scenario, we can transfer the demands from the inter-cluster edges to the boundary in a two-step process:
-
Spread the demands of uniformly by routing them according to .
-
Route the demands of to according to the flow paths of the sub-matrix .
Note that the uniform spreading in the first step ensures that demands whose source and target are in are routed to the same uniform distribution over and are therefore canceled. Moreover, after the second step every boundary edge carries an equal share of the total demand. Because , the cut must respect , so the amount of mass that has to leave the cluster is at most . Therefore, the mentioned cancellation guarantees that the load (total demand per edge) is at most on each boundary edge.
However, as discussed in [7, 12, 23, 24], there may be sub-clusters , for which we cannot find a partition such that is flow-linked in . A simple counter-example is that it might be the case that itself is not flow-linked in , or maybe even disconnected there. In this case, no partition of will work. We use the name bottleneck cut to refer to a cut which certifies that the boundary edges are not flow-linked. This name was introduced by [23], though their bottleneck cuts had to satisfy a slightly different requirement. A similar (yet not equivalent) notion appeared earlier in [7, 12]. The algorithms of [7, 12, 23] had to make sure that the clusters have no bottleneck cuts. They achieved this by cutting clusters that have bottleneck cuts. We call this step the refinement phase [23]. Previous work implements the refinement phase in different ways, either by ensuring a “precondition” on the sub-clusters they recur into [7], or encountering these cuts and handling them “on the fly” [12, 23]. In either case dealing with these cuts slowed down these early algorithms substantially.
Since ensuring that there is no bottleneck cut in each sub-cluster before recurring into it may be expensive (in terms of running time), [24] settled for something slightly weaker: They first ignore the boundary edges of and find a partition of into such that the inter-cluster edges are flow-linked. Then they find an approximate min-cut for the (single commodity) flow problem which routes flow from to . By adding to a new sub-cluster whose boundary is , [24] are able to bound the amount of mass that has to cross the cut , since now the demand matrix is respected by in .
Adding as a boundary of a sub-cluster in is enough to show how to move the demands to the boundary edges , such that the load on each boundary edge is multiplied by units ( is a parameter ). However, the distribution of demands on the boundary edges is not uniform. Hence, demands whose source and target are in the sub-cluster do not cancel-out. Consequently, the load accumulates when going up along the tree, multiplied by a factor of at most in each iteration. Choosing , such that the load is multiplied by a factor of along the levels of the tree, ensures that the load is constant. This method, however, incurs a degradation of per level in the quality of the tree flow-sparsifier, leading to an overall loss of .555Choosing is optimal, up to a multiplicative constant. Let be the depth of the tree. We omit the proof of the following claim: For any sequence of , it holds that . The additional factor in their quality comes from the usage of [14]’s cut-matching game for flow (so in total the quality is ).
In our first step below (Section 2.5) we deal with bottleneck cuts similarly to [24], but using primitives from the expander decomposition algorithm in [2], which are the cut-analogue of [14]’s cut-matching game. This allows us to get Theorem 2.5. Afterwards, in Section 2.6 we describe a better way to deal with bottleneck cuts, by implementing a version of the refinement phase in near-linear time. This allows us to improve the quality of the resulting tree cut-sparsifier and get Theorem 2.4.
2.5 A Tree Cut-Sparsifier of Quality
We now adapt [24] to the cut-sparsifier setting. As outlined in Section 2.3, our goal here is not to route the demand matrix within , but rather to ensure that respects . In this formulation, the analogue of a set of inter-cluster edges (within a cluster ) being flow-linked in [24] is that respects the all-to-all demand matrix between edges of , or equivalently that expands in (see Definition 3.2 below). Therefore, our first goal is to obtain, efficiently, such a set . For this step we ignore the boundary edges of (which may be separated by bottleneck cuts). We use the following algorithmic tool:
Balanced-cut-or-expander procedure
To obtain such an efficiently we use the “balanced cut or expander” primitive from [2], which allows us to certify that the sub-cluster respects the all-to-all flow problem on a subset , or find a balanced cut which refutes this. We start with and iterate on :
-
Invoke the primitive on to check if it respects the all-to-all flow problem on .
-
On an expander outcome, we stop and set . This certifies the all-to-all flow problem on is respected by .
-
On a balanced cut outcome, we shrink to a new set . The sparsity guarantee ensures , so after iterations we must obtain the first case.
This step is the cut-analogue of [24, Lemma 3.1], but powered by [2]’s tool so that the certification we obtain when is good is expansion (according to Definition 3.2) rather than being flow-linked.
Routing from to the boundary
Once is fixed, we connect to the boundary edges similarly to [24]. We compute a cut (via an auxiliary approximate maximum flow problem) that separates from . For this purpose, we use the fair-cuts algorithm of [16], which serves as an efficient approximate max-flow solver and provides slightly better congestion compared to [24, Lemma 3.2], as well as simplifying the argument.
The usage of [2] rather than a procedure inspired by the cut-matching game of [14] in [24] allows us to improve the quality of the cut-sparsifier by a factor. Specifically, we still pay like in Section 2.4, but the additional factor from the cut-matching component is now instead of . This gives a tree cut-sparsifier of quality , and establishes Theorem 2.5. In particular, as discussed after Theorem 2.5, a tree cut-sparsifier of quality implies a tree flow-sparsifier of quality . Therefore, this tree is also a tree flow-sparsifier of quality , matching the quality of the flow-sparsifier of [24].
The construction of the tree cut-sparsifier is detailed in Section 4. Importantly, we use the modular building blocks of the balanced sparse cut procedure [2] and the fair-cuts algorithm [16] as a black box. This significantly simplifies the construction of the tree cut-sparsifier, when compared to, e.g., [24], as it abstracts away many details of the underlying algorithmic tools. The full construction and analysis are given in the full version of the paper.
2.6 A Tree Cut-Sparsifier of Quality
Following the naming of [12, 23], we call the partitioning algorithm from Section 2.5 the merge phase. Given a cluster , it returns sub-clusters such that the inter-cluster edges expand, and such that we can route from to the boundary . It does not, however, make and expand together. Thus the demand placed on may be non-uniform, so source and target demands need not cancel as they move up the hierarchy. This causes the extra loss in Theorem 2.5.
To prove Theorem 2.4, Section 5 inserts a near-linear-time refinement phase after each merge step. Given a cluster , the refinement phase partitions it into sub-clusters such that each sub-cluster respects the all-to-all flow problem on its boundary edges, and such that the inter-cluster edges of the refinement partition can be routed to the boundary of . This is a variant of the precondition of [7] and the requirement of [12, 23]. The algorithm again uses [2]: on the current sub-cluster, it either certifies expansion of the boundary edges, or finds a balanced sparse cut with respect to the boundary measure, together with a routing from the cut edges to the boundary of one side. Unlike the merge phase, refinement does not guarantee a constant factor shrinkage, and may even return the trivial partition .
The resulting hierarchy alternates between merge steps, which shrink clusters, and refinement steps, which make boundary demand uniform. After refinement, since each resulting sub-cluster is a node of and is -respected by , the total demand leaving is at most . Redistributing this demand uniformly over the boundary therefore leaves load of at most per boundary edge. Hence each merge step starts with constant boundary load, rather than with load accumulated from lower levels. Thus, we may set in the merge phase, reducing its total contribution from to . The refinement contribution is bounded, by adapting the analysis of [12, 23], by over all sub-clusters. This proves Theorem 2.4. By Claim 2.7, the same tree is also a flow-sparsifier of quality , giving Theorem 2.8.
3 Additional Preliminaries
We begin with defining the subdivision graph, which allows us to formally reason about the edges of a graph carrying demand and expanding.
Definition 3.1 (Subdivision graph).
Given a graph , the subdivision graph is denoted by . It is created by adding a split vertex in the middle of each edge, replacing it with a path of length . Formally, , where are the split vertices . The new edges are . Given a set of edges , the corresponding split vertices are denoted by .
For a cluster , we define the corresponding cluster in the subdivision graph as , which also includes the split nodes of the boundary edges of . We write by abuse of notation to mean , which should not be confused with which also includes the split vertices of the boundary edges of .
3.1 Expansion
Definition 3.2 (Expansion with Vertex Weights).
Let and let be a vertex measure. For a cut with , define
We say that is an -expander with respect to if . For , we say that -expands with respect to in if is an -expander with respect to the restricted measure . When , we simply say that -expands in . A cut with low -expansion is called -sparse, with the relevant threshold specified in context.
When is an indicator measure, -expands with respect to iff -expands in . This is the cut-analogue of being -flow-linked when each injects units of flow [24].
The next remark bridges the two viewpoints introduced in Definitions 2.2 and 3.2: the notion of a set that -expands with respect to a measure , and the notion of a graph that -respects a corresponding demand matrix defined by .
Remark 3.3.
We use the following elementary equivalence. Let and let . Then if -expands with respect to then -respects , and conversely, if -respects then -expands with respect to .
In particular (by setting ), if -expands in , then -respects the all-to-all flow problem on (not to be confused with ), and conversely if -respects the all-to-all flow problem on then -expands in .
3.2 Cut-Matching Game
The following is a recent result of [2], which generalizes [1]. They show that in near-linear time we can get a balanced sparse cut, or certify that a large part of the graph is an expander, with respect to a general vertex measure.666Theorem 3.4 requires that will be in , which will hold for our usages.
Theorem 3.4 ([2, Theorem 5.2]).
Given a graph of edges, a parameter , and a weighting of the vertices, there exists a randomized algorithm which takes time and must end in one of the following three cases:
-
1.
We certify that has -expansion , with high probability.
-
2.
We find a cut in of -expansion , and are both , i.e., we find a relatively balanced -sparse cut.
-
3.
We find a cut with , , and with high probability, is an -expander with respect to .
Routing from a cut.
When we say that we route from a cut to a set inside , each sends units. The congestion and receive bounds are stated in context.
The authors of [2] supply additional guarantees in Cases (2) and (3) of Theorem 3.4 (see [2, Section 4.3 and Corollaries A.3, A.4, A.5]). We summarize these guarantees in the following theorem.
Theorem 3.5 (Additional Guarantees for Theorem 3.4).
The following are additional guarantees for Cases (2) and (3) of Theorem 3.4.
In Case (2), there exist constant and a sequence of cuts , with , such that , (for ). The returned cut is simply . Each is sparse: . Moreover, for every ,
-
There exists a flow routable with congestion in , from the cut to , such that each vertex receives at most units.
-
There exists a flow routable with congestion in , from the cut to , such that each vertex receives at most units.
In other words, in each step we can route flow from the cut to either side.
In Case (3), this sequence of cuts exists as well, but a “trimming step” is run to get some larger cut which is returned. Moreover,
-
There exists a flow routable with congestion in , from the cut to , such that each vertex receives at most units.
-
There exists a flow routable with congestion in , from the cut to , such that each vertex receives at most units.
3.3 Demand States
When we describe the solution to a multi-commodity flow problem, it is useful to talk about intermediate stages of the flow. Analogously, to show that a graph respects a demand matrix, we use intermediate demand states: vertices hold positive or negative mass of each commodity, which is moved according to demand matrices and may cancel when opposite signs of the same commodity meet. These movements incur congestion for flows, or charge in our cut-sparsifier analysis.
Definition 3.6 (Demand State).
Consider a set of commodities . The demand state of , is a vector, , where , , defines the amount of commodity which resides at and needs to be shipped out. Note that may be either positive or negative, and in case it is negative, the commodity needs to be shipped into . We denote by the load on .
A demand state of is a collection of demand states, one for each , i.e., , where the row of vertex is the demand state of .
For a set , we say that a demand state on is supported on if for all , whenever .
As explained below in Remark 3.8, demand states generalize demand matrices. Unlike demand matrices (see Definition 2.1), where each vertex serves as the source of its own commodity and source-sink pairs are explicitly encoded in the matrix, in a demand state the commodities are independent of the vertices, and multiple vertices may act as sources of the same commodity (similarly, the same vertex may act as a source of multiple commodities).
Intuitively, we think of a demand state as the current state of mass residing at the vertices of the graph, where positive and negative demands “await” to be canceled-out, while a multi-commodity flow problem and its demand matrix describe an explicit movement of mass between pairs of vertices.
Definition 3.7 (Valid Demand State).
We say that a demand state on is valid if for each . That is, no mass of commodity is created or destroyed.
The demand of across a cut is
We extend the notion of a cut (resp., graph) respecting a demand matrix, to a cut (resp., graph) respecting valid demand state using this definition: A cut in -respects if . -respects if
Throughout the paper we manipulate many demand states that are not themselves valid. Such demand states typically arise by restricting a valid demand state to a subgraph (or cluster), that is, by retaining only the demand vectors associated with vertices in the cluster. Although these restricted demand states may violate the validity condition, this poses no issue: they should be viewed as a partial or intermediate collection of demand vectors.
Remark 3.8.
Note that the notion of a valid demand state generalizes the notion of a demand matrix from Definition 2.1. Indeed, a demand matrix is a matrix where is the amount of ’s commodity that has to go to . Such a specification corresponds to a valid demand state in which , the total amount shipped out of of its own commodity is , and the amount shipped to of ’s commodity is , (note that the commodity is shipped into , so is negative). The standard definitions of congestion and demand across a cut of equal those of .
On the other hand, given a valid demand state, we can define the corresponding demand matrix (according to Definition 2.1) by adding to the graph a source vertex and sink vertex corresponding to each commodity, with appropriate additional edges capacitated according to the demands in . The latter reduction is not used in this paper, so we omit its details.
Definition 3.9 (Sum and Negation).
We define the sum of two demand states and on the same set of commodities to be . Note that if and were valid demand states, then is also a valid demand state.
We define the negation of a demand state on the set of commodities by . Note that if was a valid demand state, then is also a valid demand state.
Fact 3.10.
Fix a cut . For two valid demand states on the commodities , we have .
Additionally, if -respects and -respects , then it -respects .
Suppose we have a demand state . Given a demand matrix (recall Definition 2.1), we can “move” the demand vectors in according to the requirements of . Each vertex will send units in total to , and we split the demands evenly according to the distribution of commodities in the demand vector . In other words, units of commodity will be shipped to . If this corresponds to shipping units of commodity from to . This results in a demand state , called the updated demand state:
Definition 3.11 (Updated Demand State).
Let be a (not necessarily valid) demand state on the set of commodities and let be a demand matrix (i.e., a multi-commodity flow problem). We define the updated demand state on as follows:
We make frequent use of the following fact. It states that because we only move the mass around, no mass of any commodity is created or destroyed. This means that the total mass of each commodity is the same in and , so it is zero in . Therefore, is a valid demand state. The full proof is given in the full version of the paper.
Fact 3.12.
In the notation of Definition 3.11:
-
1.
is a valid demand state.
-
2.
For any cut of , .
The next lemma presents two basic types of demand-state updates that will be used extensively throughout the analysis. The first corresponds to uniformly redistributing mass within a set, and the second to pushing all mass out of a set. Both updates arise frequently when we manipulate demand states.
Lemma 3.13.
Let be a (not necessarily valid) demand state on the set of commodities . Then:
-
1.
Suppose is a scaled all-to-all flow problem on some subset , such that if , and otherwise. Then, for all , and for . That is, distributes the mass in uniformly.
-
2.
Suppose moves demands from a set to : for all and , , and moreover, for all , . In this case, is supported on .
3.4 Demand States Along the Hierarchy
In this subsection we describe the general framework for moving demands in according to a given hierarchical tree. The tree is used only as a blueprint: the movement of demands takes place in the graph , while the laminar structure of the tree determines the order in which demand is moved from lower-level clusters to higher-level clusters. We also introduce a useful invariant for analyzing such bottom-up demand-movement processes. This invariant will be used throughout the paper to control the load (total demand) placed on split nodes.
The following claim is our main tool to show that is a tree cut-sparsifier.
Claim 3.14.
The following notions are equivalent for a hierarchical tree and a parameter :
-
is a tree cut-sparsifier of with quality .
-
For every demand matrix on , if -respects , then -respects .
We prefer to work with demand states instead of demand matrices. To this end, we use the following Corollary:
Corollary 3.15.
Assume every valid demand state (recall Definition 3.7) on (with arbitrary commodities ), that is -respected by , is -respected by . In other words, we have for any cut , . Then is a tree cut-sparsifier with quality .
Let be a hierarchical tree of (see Remark 2.6), and let be a valid demand state that is -respected by , and a cut of . We will compare with the demand created by the bottom-up demand-state process in the subdivision graph.
Let be the subdivision graph of (Recall Definition 3.1). The cut in induces the cut in , where and . Each edge of crossing contributes exactly one edge crossing in , and no other edge contributes. Thus .
We first split to a set of demand states , where for each vertex , is supported on . For each , we construct by first placing the demand of at the vertex itself, namely , while setting for every split node adjacent to . We then evenly distribute this demand among the split nodes corresponding to edges incident to : for every such edge , we set , and set . Observe that , where the inequality is due to the fact that is a cluster in and that is -respected by . In particular, each split node has a total load of at most : . Each non-split vertex of has load of .
Let be the initial collection of active clusters, and let The following claim, whose proof is given in the full version of the paper, shows that and are the same up to some minor error that arises due to split nodes on the cut of .
Claim 3.16.
.
We combine demand states as we go up the decomposition tree . At any point there is a collection of active clusters. Initially . When a cluster is processed, its active children are removed from and is inserted instead. The corresponding demand states of the children are replaced by a new demand state supported on . We remark two things. First, these demand updates should not be interpreted as actual routings that must be realized in with low congestion. Rather, each update is a movement of demand mass from one demand state to another. Later, in the analysis, we pay for such a movement according to how much the relevant subgraph respects the induced demand transition. Second, the demand states of the clusters are not necessarily valid demand states, since only stores the portion of the global demand that currently resides in . The matching positive and negative parts of a commodity may lie in different clusters, so complete cancellation cannot occur within a single cluster. However, when summing over all demand states, these contributions do cancel out, and the total demand state remains valid.
The following invariant captures the properties that are needed from each cluster demand state in this bottom-up process. It says that after a cluster has been processed, the remaining demand associated with is supported only on the boundary split nodes of , no commodity mass was created or destroyed relative to the original demand state , and the load on every split node is bounded.
Invariant 3.17.
For a cluster and , we say that a demand state satisfies the invariant with load if
-
(1)
It is supported on the boundary of :
where are the boundary edges of .
-
(2)
No demands were created or destroyed (relative to ):
-
(3)
The load on each vertex is at most :
It can be seen that satisfies the invariant with for the cluster .
4 The Merge Phase
In this section we state the guarantees of the merge phase. This phase is an improved and simpler implementation of the corresponding step in the near-linear time construction of Räcke, Shah, and Täubig [24]. The simplification comes from using the balanced-cut-or-expander primitive of [2] and fair-cut computations [16] as black boxes. For our purposes, the merge phase should be viewed as a black-box partitioning procedure: given a cluster , it produces a two-level partitioning of , together with the charging guarantee stated in Theorem 4.2. The proof of this theorem is deferred to the full version.
As explained in Section 2, the hierarchical decomposition is constructed by recursively applying the “merge phase” partitioning procedure to input clusters . Each input cluster is partitioned in two levels. At the first level, we define the direct children of to be disjoint clusters and 777It may happen that . In this case, no node corresponding to is added to the hierarchical tree . Similarly, we do not add nodes corresponding to the empty set to the hierarchy. such that , and at the second level the children of and of , respectively, are defined to be disjoint clusters and (satisfying and ). The size of the clusters and is at most .
The two-level partitioning is produced in two steps.888The two steps should not be confused with the two levels: although forms the first level of the partition, it is computed only in the second step of the construction. First, we define a partitioning of the cluster into disjoint sets , where each cluster satisfies . Next, we partition into two disjoint sets . The second-level clusters and are defined as and , taking only non-empty intersections (see Figure 1). The description of the two step partition can be found in the full version.
The intuition behind the two-level partition is as follows. As discussed in Section 2, we want to partition into sub-clusters of size , so that the inter-cluster edges and the boundary edges of , satisfy that expands. However, this may not be possible for a cluster if does not expand in . Consequently, the first partition into ignores and focuses on reducing the size of the clusters, while ensuring that , the set of inter-cluster edges, expands. The first partition is summarized in the following theorem.
Theorem 4.1 (Improved version of [24, Theorem 3.1]).
There is an algorithm merge-phase-1 that partitions the induced subgraph of a cluster into disjoint connected components such that:
-
1.
,
-
2.
, and
-
3.
with high probability, in the subdivision graph (recall Definition 3.1), the set of split vertices corresponding to the inter-cluster edges
-expands in for .
The algorithm runs in time where denotes the number of edges of .
The remaining step is to connect these inter-cluster edges to the boundary . As explained in the overview in Section 2.5, this is done by computing, via a fair-cut computation, a cut separating from , and using the corresponding cut as the first-level split . We omit the details and only state the final guarantee of the merge phase.
Theorem 4.2 (Merge Phase).
There is an algorithm “merge-phase” that given a cluster and , runs in time999Here, denotes the number of edges in . and partitions into sub-clusters , such that:
-
1.
for each , and
- 2.
-
3.
-respects . Moreover, is a valid demand state.
In other words, Theorem 4.2 shows that the demand states supported on the sub-clusters can be merged into a single demand state on , while only slightly increasing the load (by a factor of ) on the boundary edges of . The cost of this operation is that we add to the charge of each edge . The proof of this theorem is given in the full version of the paper.
5 Improved Tree Cut-Sparsifier
In this section, we prove Theorem 2.4, establishing an improved tree cut-sparsifier of quality .
Recall from Section 4 that we paid a factor of in the quality of the tree cut-sparsifier, in order to accumulate a factor of just to the load of each boundary edge as we move up the tree. This forced us to choose to make the total load in each step. We wish to avoid paying this additional factor of . Recall that even though each sub-cluster is a node in the hierarchical decomposition tree (and therefore the total amount of demand that has to leave it is at most the capacity of its boundary, because is respected by ), the distribution of demands on the boundary of is not uniform, so positive and negative demands of the same commodity do not cancel out.
We amend this using a variation on the “refinement phase” technique of [7, 12, 23],101010[12] called it the “bandwidth phase” while [7] called it the “assure-precondition” subroutine. to ensure that the all-to-all flow problem between the boundary edges of the sub-clusters we recur to, is respected by the sub-clusters, meaning that the boundary edges expand in these sub-clusters (see Remark 3.3).
Explicitly, we prove the following theorem:
Theorem 5.1.
There is an algorithm “refinement-phase” that given a cluster and a parameter , runs in time and partitions into sub-clusters , such that:
-
1.
With high probability, for each , the sub-cluster , -respects the all-to-all flow problem on , where . Here , where is a constant which will be defined below.
-
2.
We can route in a demand matrix where each inter-cluster split node (where ) sends one unit of flow, and each boundary split node in (where ) receives at most units of flow. This can be routed with congestion .
Remark 5.2.
The parameter lets refinement costs telescope across levels. The term gives the corresponding local boundary-respecting guarantee: large sub-clusters must satisfy stronger expansion, whereas substantially smaller clusters may satisfy a weaker guarantee since they contribute less to the final congestion bound. Thus each refinement step makes progress either by enforcing expansion or by substantially shrinking the cluster, which supports the bottom-up routing in Item (2) of the theorem.
We prove Theorem 5.1 in the full version of the paper. In the rest of this section we show how to improve the cut-sparsifier result.
Our construction.
The construction begins with the merge phase (Theorem 4.2) on with . Then, we run the refinement phase (Theorem 5.1) on each of the resulting sub-clusters , with . We proceed with the merge phase with on each resulting sub-cluster (i.e., the sub-clusters created from in the previous refinement step), and then with the refinement phase on , etc. In each subsequent run of the refinement phase, we choose to be the size of the previous cluster created by a refinement phase, i.e. the parent of the current sub-cluster (e.g., when running on , we take , not .). Because is a sub-cluster created in a merge phase, it will satisfy , ensuring the required condition on . We proceed recursively in this manner, running both stages on successively smaller clusters , stopping when . Let be the resulting hierarchical decomposition. Note that because the merge phase reduces the size of the sub-clusters by a constant fraction, the depth of is logarithmic in .
Even though , in each sub-cluster created by the refinement phase, we can send the demands to a uniform distribution on the boundary edges of , so positive and negative demands cancel out and we are left with at most a load of on each boundary edge. This effectively “resets” the load on each boundary edge so it does not accumulate when we go up along the hierarchical tree. This scheme allows us to improve the charge incurred, in total over all merge phase sub-clusters, from (by setting ) to () per cut edge. As for the sub-clusters of the refinement phase, we show that they incur a total of charge per cut edge.
The next theorem, whose proof is given in the full version of the paper, is the key inductive step in the analysis of the alternating merge-and-refinement construction.
Theorem 5.3.
Let be a cluster, and let be its merge phase sub-clusters, computed with . For each , let be the refinement phase sub-clusters of , computed with . For each , assume that is a demand state satisfying Invariant 3.17 for with a given . Let be their sum. We can replace with a demand state which satisfies Invariant 3.17 for with (which is independent of ), while charging each edge of , for each , at most to cover the difference in demands.
We are ready to prove Theorem 2.4.
Proof of Theorem 2.4.
We use the setup from Section 3.4: let be a valid demand state on that is -respected by the hierarchical tree , is a fixed cut of , and is the corresponding cut in the subdivision graph . We will charge edges of in order to cover the demand changes incurred by the bottom-up demand-state updates.
We process bottom-up using the framework of Section 3.4. Initially, is converted into the leaf demand states . Denote by the set of current “active” clusters, such that initially . Then in each iteration we remove from and add to , where are the refinement phase sub-clusters as in Theorem 5.3. Let be the sum of all demand states , for . Claim 3.16 shows that .
Consider a replacement of by when we apply Theorem 5.3. Recall that is replaced by . Let be the sum of active demand states before the change and be the sum after the change. We have . This means that after accumulating all the charges in the applications of Theorem 5.3 on all clusters , the total charge satisfies
where is the charge incurred on when applying Theorem 5.3 on the cluster , is the total charge incurred on , and the last inequality uses Fact 3.10.
Since satisfies Invariant 3.17(1) for , it follows that . Thus, we have
where the second inequality follows from Claim 3.16. By charging an additional unit to each cut edge, we get .
It remains to bound the total charge on each edge . The load is for each cluster, as it starts as and is constant after each application of Theorem 5.3. Therefore, each edge (in the subdivision graph) , is charged by Theorem 5.3, for each refinement phase111111Note that the charging in Theorem 5.3 only charges refinement phase clusters. of a cluster that contains it (i.e., ). In particular, an edge is only charged by clusters which lie on a root-to-leaf path in .
Consider a path in the decomposition hierarchy , , where is a refinement phase sub-cluster of (that is, we consider only refinement phase sub-cluster between them since these are the only charged sub-clusters in Theorem 5.3). Note that for all , when was created (as a refinement of some sub-cluster of ), we used in Theorem 5.1. So, . Therefore, it holds that
Therefore, the total charge is per edge, which gives , as we wanted. Theorem 2.4 then follows from Corollary 3.15.
References
- [1] Daniel Agassy, Dani Dorfman, and Haim Kaplan. Expander Decomposition with Fewer Inter-Cluster Edges Using a Spectral Cut Player. In 50th International Colloquium on Automata, Languages, and Programming (ICALP 2023), volume 261 of Leibniz International Proceedings in Informatics (LIPIcs), pages 9:1–9:20. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2023. doi:10.4230/LIPIcs.ICALP.2023.9.
- [2] Daniel Agassy, Dani Dorfman, and Haim Kaplan. Expander decomposition for non-uniform vertex measures. arXiv preprint arXiv:2510.23913, 2025. doi:10.48550/arXiv.2510.23913.
- [3] Konstantin Andreev, Charles Garrod, Daniel Golovin, Bruce Maggs, and Adam Meyerson. Simultaneous source location. ACM Transactions on Algorithms (TALG), 6(1):1–17, 2009. doi:10.1145/1644015.1644031.
- [4] Yonatan Aumann and Yuval Rabani. An o(log k) approximate min-cut max-flow theorem and approximation algorithm. SIAM Journal on Computing, 27(1):291–301, 1998. doi:10.1137/S0097539794285983.
- [5] Nikhil Bansal, Uriel Feige, Robert Krauthgamer, Konstantin Makarychev, Viswanath Nagarajan, Joseph (Seffi) Naor, and Roy Schwartz. Min-max graph partitioning and small set expansion. SIAM Journal on Computing, 43(2):872–904, 2014. doi:10.1137/120873996.
- [6] Yair Bartal and Stefano Leonardi. On-line routing in all-optical networks. In International Colloquium on Automata, Languages, and Programming, pages 516–526. Springer, 1997. doi:10.1007/3-540-63165-8_207.
- [7] Marcin Bienkowski, Miroslaw Korzeniowski, and Harald Räcke. A practical algorithm for constructing oblivious routing schemes. In Proceedings of the fifteenth annual ACM symposium on Parallel algorithms and architectures, pages 24–33, 2003. doi:10.1145/777412.777418.
- [8] Jeff Cheeger. A lower bound for the smallest eigenvalue of the laplacian. Problems in analysis, 625(195-199):110, 1970.
- [9] Chandra Chekuri, Sanjeev Khanna, and F Bruce Shepherd. The all-or-nothing multicommodity flow problem. In Proceedings of the thirty-sixth annual ACM symposium on Theory of computing, pages 156–165, 2004. doi:10.1145/1007352.1007383.
- [10] Chandra Chekuri, Sanjeev Khanna, and F Bruce Shepherd. Multicommodity flow, well-linked terminals, and routing problems. In Proceedings of the thirty-seventh annual ACM symposium on Theory of computing, pages 183–192, 2005. doi:10.1145/1060590.1060618.
- [11] Roee Engelberg, Jochen Könemann, Stefano Leonardi, and Joseph Seffi Naor. Cut problems in graphs with a budget constraint. Journal of Discrete Algorithms, 5(2):262–279, 2007. doi:10.1016/J.JDA.2006.05.002.
- [12] Chris Harrelson, Kirsten Hildrum, and Satish Rao. A polynomial-time tree decomposition to minimize congestion. In Proceedings of the fifteenth annual ACM symposium on Parallel algorithms and architectures, pages 34–43, 2003. doi:10.1145/777412.777419.
- [13] Monika Henzinger, Robin Münk, and Harald Räcke. An improved quality hierarchical congestion approximator in near-linear time. arXiv preprint arXiv:2511.03716, 2025. doi:10.48550/arXiv.2511.03716.
- [14] Rohit Khandekar, Satish Rao, and Umesh Vazirani. Graph partitioning using single commodity flows. Journal of the ACM (JACM), 56(4):1–15, 2009. doi:10.1145/1538902.1538903.
- [15] Tom Leighton and Satish Rao. Multicommodity max-flow min-cut theorems and their use in designing approximation algorithms. Journal of the ACM (JACM), 46(6):787–832, 1999. doi:10.1145/331524.331526.
- [16] Jason Li, Danupon Nanongkai, Debmalya Panigrahi, and Thatchaphol Saranurak. Near-linear time approximations for cut problems via fair cuts. In Proceedings of the 2023 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 240–275, 2023. doi:10.1137/1.9781611977554.CH10.
- [17] Jason Li, Satish Rao, and Di Wang. Congestion-approximators from the bottom up. In Proceedings of the 2025 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 2111–2131. SIAM, 2025. doi:10.1137/1.9781611978322.68.
- [18] Bruce M Maggs, F Meyer auf der Heide, Berthold Vöcking, and Matthias Westermann. Exploiting locality for data management in systems of limited bandwidth. In Proceedings 38th Annual Symposium on Foundations of Computer Science, pages 284–293. IEEE, 1997.
- [19] Haruko Okamura and Paul D Seymour. Multicommodity flows in planar graphs. Journal of Combinatorial Theory, Series B, 31(1):75–81, 1981. doi:10.1016/S0095-8956(81)80012-3.
- [20] 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 Symposium on Theory of Computing (STOC), pages 461–470, 2008. doi:10.1145/1374376.1374442.
- [21] Richard Peng. Approximate undirected maximum flows in o(m polylog (n)) time. In Proceedings of the twenty-seventh annual ACM-SIAM symposium on Discrete algorithms, pages 1862–1867. SIAM, 2016. doi:10.1137/1.9781611974331.CH130.
- [22] Harald Räcke. Minimizing congestion in general networks. In The 43rd Annual IEEE Symposium on Foundations of Computer Science, 2002. Proceedings., pages 43–52. IEEE, 2002. doi:10.1109/SFCS.2002.1181881.
- [23] Harald Räcke and Chintan Shah. Improved guarantees for tree cut sparsifiers. In Andreas S. Schulz and Dorothea Wagner, editors, Algorithms - ESA 2014 - 22nd Annual European Symposium, Wroclaw, Poland, September 8-10, 2014. Proceedings, volume 8737 of Lecture Notes in Computer Science, pages 774–785. Springer, 2014. doi:10.1007/978-3-662-44777-2_64.
- [24] Harald Räcke, Chintan Shah, and Hanjo Täubig. Computing cut-based hierarchical decompositions in almost linear time. In Proceedings of the 25th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 227–238, 2014. doi:10.1137/1.9781611973402.17.
- [25] Satish Rao. Small distortion and volume preserving embeddings for planar and euclidean metrics. In Proceedings of the fifteenth annual symposium on Computational geometry, pages 300–306, 1999. doi:10.1145/304893.304983.
- [26] Thatchaphol Saranurak and Di Wang. Expander decomposition and pruning: Faster, stronger, and simpler. In Proceedings of the 30th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 2616–2635, 2019. doi:10.1137/1.9781611975482.162.
- [27] Jonah Sherman. Nearly maximum flows in nearly linear time. In 2013 IEEE 54th Annual Symposium on Foundations of Computer Science, pages 263–269. IEEE, 2013. doi:10.1109/FOCS.2013.36.
- [28] Jan Van Den Brand, Li Chen, Rasmus Kyng, Yang P Liu, Simon Meierhans, Maximilian Probst Gutenberg, and Sushant Sachdeva. Almost-linear time algorithms for decremental graphs: Min-cost flow and more via duality. In 2024 IEEE 65th Annual Symposium on Foundations of Computer Science (FOCS), pages 2010–2032. IEEE, 2024. doi:10.1109/FOCS61266.2024.00120.
