An instance of the MultiCommodity flow problem (or Multiflow problem) is composed of an undirected graph $G = (V,E)$ with capacities $c: E \to
\mathbb{N}$, a set of *terminals* $T \subseteq V$, and a function
$\mu: \binom{T}{2} \to \mathbb{R}_+$. We denote $H$ the graph with vertex set $T$, and edges $st$ for every pair $s,t \in T$ of terminals with $\mu_(s,t) > 0$.

A * $T$-path* is any path whose endpoints are distinct elements of
$T$. For two vertices $s$ and $t$, an $(s,t)$-path is a path whose endpoints are $s$ and $t$. Denote by $\mathcal{P}_{G,T}$ the set of all $T$-paths of $(G,T)$ (we will omit the indices when there is no ambiguity). A $c$-packing of $T$-paths is a mapping $f: \mathcal{P}
\to \mathbb{R}_+$, such that, for any edge $e \in E$, the sum of
$f(P)$ where $P$ ranges over all $T$-paths containing $e$ is at most
$c_e$. The value of a $T$-path $P$ with extremities $s,t \in T$ is
$\mu(p) := \mu(s,t)$. We extend this definition to packings of
$T$-paths by saying that the value of a packing $f$ is
$\left\|f\right\|_\mu := \sum_{P\in\mathcal{P}} f_P \mu(P) = f \cdot
\mu$.

The goal of the MultiCommodity Flow problem is to find a $c$-packing $f$ of $T$-paths of maximum value.

We can rewrite the definition directly as a linear program:

$$ \begin{array}{ll} \max ||f||_\mu \quad\textrm{subject to} & \\ \qquad \sum_{P \in \mathcal{P}, e \in P} f_P \leq c_e & (\forall e \in E)\\ \qquad f \geq 0 & \end{array} $$

From this we can derive the dual program with variables $y \in \mathbb{R}_+^{E}$:

$$ \begin{array}{ll} \min \sum_{e \in E} c_e y_e \quad\textrm{subject to} & \\ \qquad \sum_{e \in P} y_e \geq \mu_P & (\forall P \in \mathcal{P})\\ \qquad y \geq 0 \end{array} $$

The interpretation of this dual program leads directly to a problem about distances. Actually there is a very deep connection between multicommodity flows and distance embeddings as we shall see later. For now, we interprete $y$ as giving a length to every edge of the graph. The main constraints say that the distance (*i.e.* the length of a shortest path, which is the minimal length over all paths) between two terminals $s$ and $t$ must be at least $\mu_{s,t}$ for the chosen lengths.

We rewrite the dual, replacing $y$ by its metric closure $d \in \mathbb{R}_+^{V \times V}$. We denote $c \cdot d := \sum_{e = uv \in E} c_e d(u,v)$.

$$ \begin{array}{ll} \min c \cdot d \quad\textrm{subject to} & \\ \qquad d(s,t) \geq \mu(s,t) & (\forall s,t \in T)\\ \qquad d~\text{metric on}~V & \end{array} $$

There is a very intuitive interpretation of the weak duality for the multicommodity flow problem. The capacity of an edge can be interpreted as having multiple copies of that edge, each with unitary capacity. With this in mind, the objective value of the dual program is the sum $d(G) := c \cdot d$ of the lengths of all the edges of $G$. Consider a $T$-path $P$, with endpoints $s$ and $t$, $P$ must have a total length $d(P) := \sum_{e = uv \in P} d(u,v)$ at least $\mu_P$. Thus, $P$ consumes at least $f_P d(P)$ of the length of $G$, and contributes exactly $f_P \mu_P$ to the primal objective. From this we get:

$$ \sum_{P \in \mathcal{P}} f_P \mu_P \leq \sum_{P \in \mathcal{P}} f_P d(P) \leq d(G)$$

In words, the multiflow cannot use more length than available, and each path contributes at most its own length to the objective, hence the length $d(G)$ of $G$ gives an upper bound on the value of any feasible flow.

Using the strong duality theorem, we get the so-called Japanese theorem:

**Theorem 1: ***(Onaga -Kakusho [16]) *The maximum value of a multicommodity flow for $(G,T,c,\mu)$ is equal to the minimum length $d(G)$ over all distance $d$ such that $d(s,t) \geq \mu(s,t)$ for all terminals $s,t \in T$.

As a corollary of the strong duality, it is of interest to look at what complementary slackness tells us about a pair of optimal solution $(f,d)$:

- every active $T$-path $P$ (
*i.e.*with $f_P > 0$) has length $d(P) = \mu_P$, - every active edge $e = uv$ (
*i.e.*with $d(u,v) > 0$) is saturated: $\sum_{P \in \mathcal{P}, e \in P} f_P = c_e$.

We can give a completely different formulation of the flow problem, where the notion of path is forgotten. This gives a linear program with very interesting properties for the single-commodity case. For this, we only record how much of each commodity is actually flowing through any edge. As a side effect, this formulation is compact.

Let $E(H)$ be $\{h_1 = s_1t_1,\ldots, h_n = s_nt_n\}$. The variables are $f \in \mathbb{R}_+^{(E \cup E(H)) \times [1,n]}$. Also, to keep track of the direction on which a commodity is flowing, we give an arbitrary orientation to $G$. If $f_{e,i}$ is positive, it means that the commodity is flowing forward along that arc, if it is negative it is flowing backward (note that this is necessary only because we are looking at undirected graphs, in directed graphs the commodities can flow in only one direction, forward by definition).

$$ \begin{array}{ll} \max \sum_{i=1}^n \mu(s_i,t_i) f_{h_i,i}\quad\textrm{subject to} & \\ \qquad \sum_{e \in \delta^+_{G+H}(v)} f_{e,i} - \sum_{e \in \delta^-_{G+H}(v)} f_{e,i} = 0 & (\forall v \in V, i \in [1,h]) \\ \qquad f_{h_i,j} = 0 & (\forall i \neq j)\\ \qquad \sum_{i \in [1,h]} |f_{e,i}| \leq c_e & (\forall e \in E, i \in [1,h]) \end{array} $$

Let's explain these constraints in reverse order. The last one is the capacity constraint: an edge cannot support more flow than its capacity. Because we can have negative values for commodities routed backward, we need to take the absolute values of the variables. We let the reader find how to encode these constraints linearly.

The second constraint concerns the edges of $H$: the idea is that the flow routed through $h_i$ corresponds to the number of paths that can be packed between $s_i$ and $t_i$, and this also explains the objective value. The second constraint ensures that these additional edges cannot be used to route a different commodity.

The first constraint is known as the conservation law: the quantity of a commodity entering a vertex is equal to the quantity of that same commodity leaving that same vertex. A vector $f \in \mathbb{R}^{E(G)}$ in any graph $G$ is called a *circulation* if it satisfies this constraint, precisely $\sum_{e \in \delta^+_G(v)} f_e = \sum_{e \in \delta^-_G(v)}$ for all vertex $v \in V(G)$. Here, $\delta^+_G(v)$ and $\delta^-_G(v)$ stand respectively for the set of outgoing and incoming arcs of vertex $v$. It also suggests the definition of the excess of an edge function at a vertex: for any $g: E \to \mathbb{R}$, we define the excess of $g$ at $v$ by:

$$\textrm{excess}(g,v) := \sum_{e \in \delta^-(v)} g_e - \sum_{e \in \delta^+(v)} g_e$$

that is, the quantity of flow entering minus that leaving the vertex $v$. A circulation is thus a function for which the excess is zero at every vertex.

Hence, this linear program expresses the existence of one circulation for each commodity, the circulation for commodity $h_i$ being defined on $G+h_i$, and these circulations can be routed concurrently with respect to the capacities.

To get a solution encoded on edges from a packing of paths is relatively easy: First, close each path $P$ into a cycle $C(P)$ by adding one of the *commodity edges* $s_it_i$. Then orient each cycle such that $s_it_i$ is always forward. For a given cycle $C$, let $\chi_C \in \{-1,0,1\}^{E(G+H)}$ be the function defined by $\chi_C(e) = 1$ if $e$ is forward in $C$, $\chi_C(e) = -1$ if $e$ is backward in $C$, and $\chi_C(e) = 0$ otherwise. It is obvious that for any cycle $\chi_C$ is a circulation, and any linear combination of circulations is a circulation. Hence, $\sum_{P~(s_i,t_i)\text{-path}} f_P \chi_{C(P)}$ defines a circulation $(f_{e,i})_e \in \mathbb{R}^{E(G+H)}$. Repeating this over every commodity gives the equivalent solution to the edge formulation.

Reciproqually, a circulation can be decomposed into a set of cycles. The number of cycles using a given edge $h$ will be the amount of flow through that edge:

**Theorem 2: ***(Fulkerson , comformal decomposition of circulation) *Let $f$ be a circulation on a graph $G$, then there is a set of at most $|E(G)|$ cycles $C_1,\ldots,C_k$ such that $f$ is a conic combination of $\chi_{C_1},\ldots,\chi_{C_k}$, and no edge is used backward in one cycle and forward in another one.

The proof is left as an exercise. The condition that no edge is used both forward and backward ensures that each edge is present as many times in the cycle decomposition as in the circulation. The importance of the theorem is thus to prove that the formulation on edges is indeed equivalent (in some sense) to the formulation on paths.

Let's conclude this part by mentioning a direct and fundamental application of the edge formulation of single-commodity flows, that is multiflows with only one commodity. Then the linear program asks for only one circulation. and it can be seen that the corresponding system of inequations is totally unimodular. Indeed, the matrix of conservation law for a circulation is the matrix of incidence between arcs and vertices. A submatrix corresponds to a subgraph. If this subgraph contains a cycle, the corresponding columns are not linearly independant and the submatrix has determinant $0$. Otherwise, it is a forest. Then by developping the determinant by a leaf and applying induction, the determinant is $1$ or $-1$, hence the matrix is totally unimodular. This implies that the circulation polyhedron is integral, hence the single-commodity flow problem (*i.e.* Maximum Flow) always admits an integral optimal solution. We will show an alternative proof below.

We recall that a *cut* $\delta(X)$ is the subset of edges $uv \in E$ with exactly one endpoint in $X$ (formally $|\{u,v\} \cap X| = 1$). The capacity $c(\delta(X))$ of a cut is $\sum_{e \in \delta(X)} c_e$. We say that a cut $\delta(X)$ *separates* $a$ from $b$ if $|X \cap \{a,b\}| = 1$. An * $(a,b)$-cut* is a cut separating $a \in V$ from $b \in V$, more generally an $(A,B)$-cut for two vertex sets $A$ and $B$ is a cut separating every pair $a,b \in A \times B$. We denote $\lambda(A,B)$ the minimum capacity of an $(A,B)$-cut, $\lambda(S) = \lambda(S,T \setminus S)$ (where $T$ is the set of terminals), and $\delta[A,B]$ the set of edges with one endpoint in $A \setminus B$ and the other in $B \setminus A$.

Cuts sometimes provide a simple way to prove the optimality of a multiflow, and actually we are very interested in characterizing the instances for which cuts are sufficient to this purpose. The reason is that the capacity of an $(S,T)$-cut is an upper bound on the number of paths with one extremity in $S$ and the other in $T$. For instance, a commodity $st$ cannot contribute to the objective more than $c \mu(s,t)$, where $c$ is the capacity of a (minimum) $(s,t)$-cut.

We will use the following general inequalities on cuts. For any sets $A,B \subseteq V$,

$$c(\delta(A)) + c(\delta(B)) = c(\delta(A \cup B)) + c(\delta(C \cap B) + 2 c(\delta[A,B])$$

As the capacities are always non-negative, it implies the submodularity inequation for cuts:

$$c(\delta(A)) + c(\delta(B)) \geq c(\delta(A \cup B)) + c(\delta(C \cap B))$$

Another similar relation is (actually they are equivalent using that $\delta(A) = \delta(\overline{A})$):

$$c(\delta(A) + c(\delta(B)) = c(\delta(A \setminus B)) + c(\delta(B \setminus A) + 2c(\delta[A \cap B, \overline{A \cup B}])$$

Given an instance $G,H,c,D$, we will denote $\sigma(U)$ the surplus of a cut defined by $U$:

$$ \sigma(U) = c(\delta_G(U)) - D(\delta_H(U)) $$

A cut $\delta(U)$ is *tight* if its surplus $\sigma(U) =
0$. $\sigma$ has remarkable equalities similar to those of cuts (from which they derive easily). We will also use the notation $\sigma[U,W]
= c(\delta[U,W]) - D(\delta[U,W])$.

We say that a cut $\delta(X)$ is *central* in $G$ if both $G[X]$ and $G[V \setminus X]$ are connected.

We start with the simplest case where $T = \{s,t\}$, that is $H$ has only one edge. By scaling, we may assume that $\mu(s,t) = 1$. Then the problem is equivalent to the maximum flow problem. We won't discuss here about the algorithmic aspects of the question, for which there already is an extensive litterature (I would like to recommand Pr. Tom McCormick's lecture notes, which partly inspired the presentation of the present note, but I don't know if they are available anywhere). We only prove the famous Max-Flow-Min-Cut theorem (in its undirected version) using only the previous considerations, and look at some of the consequences.

An * $(s,t)$-flow* is a multicommodity flow with $T = \{s,t\}$ (hence it is actually a single-commodity flow). An * $(R,S)$-flow*, $R \cap S = \emptyset$, is a multicommodity flow where $\mu(r,s) = 1$ if $r \in R$, $s \in S$, and $\mu(r,s) = 0$ otherwise.

**Theorem 3: ***(Ford -Fulkerson [5], Max-Flow-Min-Cut) *The maximum value of an $(s,t)$-flow in $G,c$ is equal to the minimum capacity of an $(s,t)$-cut.

**Proof: **One direction is obvious: the capacity of an $(s,t)$-cut $\delta(X)$ limits the value of a flow. This is also an application of the Japanase theorem, by taking $d(u,v) = 1$ if $\delta(X)$ separates $u$ from $v$, and $d(u,v) = 0$ otherwise.

Let $f$ be a maximum $(s,t)$-flow of value $\left\|f\right\|$, and $d$ a minimum metric for the dual problem. By definition $d(s,t) = 1$. Consider any value $0 \leq \alpha < 1$, and define $R_\alpha$ the set of vertices at distance at most $\alpha$ from $s$. Then, we claim that $c(\delta(R_\alpha)) = \left\|f\right\|$. We already argued why $c(\delta(R_\alpha)) \geq \left\|f\right\|$. But the next paragraph proves directly the equation.

Consider any edge $e = uv$ in $\delta(R_\alpha)$, wlog $u \in R_\alpha$. Then $d(s,v) \leq d(s,u) + d(u,v)$ implies that $d(u,v) > 0$. By complementary slackness, $e$ is saturated by $f$. Also by complementary slackness, any active path containing $e$ crosses $\delta(R_\alpha)$ only at $e$, otherwise its length would be strictly more than $1$. By summing over all the edges of $R_\alpha$, and because every active path intersects $\delta(R_\alpha)$, we get $c(\delta(R_\alpha)) = ||f||$.

It is an almost direct consequence that there always is an integral maximum flow, provided that the capacities are integral (think that if an edge is not saturated, we can decrease its capacity by one unit without changing the value of a minimum cut, then by iterating we will get a graph with integer capacities where all the edges are saturated).

This result can also be extended to the case when $H$ is a star, by the usual trick of adding a super-source adjacent to all the leaves of $H$ (with unlimited capacities), and taking a maximum flow from the center of $H$ to the super-source. With more work, a maximum flow can be found even when $\mu$ is not uniform.

More generally, using one super-source and one super-sink, we get that the maximum $(R,S)$-flow is equal to the minimum capacity of a cut separating all the pairs $r,s \in R \times S$ (but this time it works only for the uniform case). We can be more precise. Suppose that we want to find an $(R,S)$-flow. We can characterize the vectors $m \in \mathbb{N}^R$ such that there is an integral $(R,S)$-flow with exactly $m(r)$ paths with endpoint $r$, for any $r \in R$.

**Corollary 4: **Let $\{R, S\}$ be a partition of $T$, and $m \in \mathbb{R}^R$. Then there is an $(R,S)$-flow with $m(r)$ $(r,S)$-paths, for any $r \in R$, if and only if $\lambda(R',S) \geq m(R')$ for any $R' \subseteq R$.

**Proof: **The necessity is obvious. Let $m \in \mathbb{R}^R$ be such that there is no flow as required. Define $G'$ by adding to $G$ a vertex $r$ with edges $rt$ of capacity $m(t)$ for every $t \in R$, and a vertex $s$ with edges $ts$ of unlimited capacity for any $t \in S$. This instance does not have an $(s,t)$-flow of value $m(R)$. Hence, by the Max-Flow-Min-Cut theorem, there is a cut $X'$ with $c_{G'}(\delta(X)) < m(R)$. Consider $X = X' \cap V(G)$, then $m(X \cap R) = m(R) - c_{G'}(\delta[s,R \setminus X']) > c_{G'}(\delta[X' - r, V(G') \setminus X]) = c_G(\delta(X))$ (and thus $m(R') > \lambda(R',S)$), because $c_{G'}(\delta(X')) = c_{G'}(\delta[r,R \setminus X] + c_{G'}(\delta[X' - r, V(G') - X'])$.

In this section we consider the case when $H$ has only two edges. Once again we can characterize the maximum multiflow with cuts.

**Theorem 5: ***(Hu [10], Rothschild-Whinston [17]) *When $H = \{s_1t_1, s_2t_2\}$, $\mu(s_1,t_1) = \mu_1 \leq \mu_2 = \mu(s_2,t_2)$, we have:

$$ \max_f \left\|f\right\|_\mu = \mu_1 \min_{X}~c(\delta(X)) + (\mu_2 - \mu_1) \min_{Y}~c(\delta(y))$$

where $X$ ranges over all the cuts separating both $s_1$ from $t_1$ and $s_2$ from $t_2$, and $Y$ ranges over all the $(s_2,t_2)$-cuts.

**Proof: **Let $r_2$ be the minimum capacity of an $(s_2,t_2)$-cuts, and define $r_1$ such that $r_1 + r_2$ is the minimum capacity of a cut separating $s_1$ from $t_1$ and $s_2$ from $t_2$. It is sufficient (and actually necessary) to find a multiflow that routes $r_1$ units for $s_1t_1$, and $r_2$ units for $s_2t_2$. Note that the capacity of any $(s_1,t_1)$-cut is at least $r_1$. Indeed, given such a cut $X$, if $X$ separates $s_2$ from $t_2$, it has capacity at least $r_1 + r_2 \geq r_1$. Else, we may assume that $X \cap \{s_2,t_2\} = \emptyset$. Let $Y$ be a minimum cut separating $s_2$ from $t_2$. Then, one of $Y \setminus X$ and $Y \cup X$ separates $s_1$ from $t_1$ and $s_2$ from $t_2$, and thus has capacity at least $r_1 + r_2$. But $c(\delta(X)) + c(\delta(Y)) \geq \max\{c(\delta(Y \setminus X)), c(\delta(Y \cup X))\}$, hence $c(\delta(X)) \geq r_1$.

For this proof, we use the formulation of flows on edges (and thus we orient every edge arbitrarily). Firstly, define the graph $G_1$ obtained from $G,c$ by adding two new vertices, a super-source $s$ and a super-sink $t$, with arcs and capacities $c(ss1) = r_1$, $c(ss_2) = r_2$, $c(t_1t) = r_1$ and $c(t_2t) = r_2$. Let $g':E(G_1) \to \mathbb{N}_+$ be an $(s,t)$-flow on $G_1$ of value $r_1 + r_2$. We prove that $g'$ exists. Indeed, consider a cut $X'$ containing $s$ but not $t$, and define $X := X' - s$.

- if $X$ separates the two pairs $s_1t_1$ and $s_2t_2$, then by definition of $r_1$, $X$ has capacity at least $r_1 + r_2$.
- if $X$ separates only $s_1$ from $t_1$, then $\delta(X)$ contains either $ss_2$ or $t_2t$, of capacity $r_2$, and $\delta(X')$ separates $s_1$ from $t_1$, hence $c_1(\delta(X')) = r_2 + c(\delta(X)) \geq r_1 + r_2$.
- symmetrically if $X$ separates only $s_2$ from $t_2$, $c(\delta(X)) \geq r_1 + r_2$.
- if $X$ separates none of the two pairs, $X$ contains one of $\{ss_1,t_1t\}$ and one of $\{ss_2,t_2t\}$, hence $c(\delta(X)) \geq r_1 + r_2$.

By the Max-Flow-Min-Cut theorem, $g'$ exists. Let $g$ be the restriction of $g'$ to $E(G)$. Similarly, we define a flow $h$ of value $r_1+r_2$ from $s_1$ and $t_2$ to $s_2$ and $t_1$. We have:

- $\textrm{excess}(g,t_1) = -\textrm{excess}(g,s_1) = r_1$,
- $\textrm{excess}(g,t_2) = -\textrm{excess}(g,s_2) = r_2$,
- $\textrm{excess}(h,t_1) = -\textrm{excess}(h,s_1) = r_1$,
- $\textrm{excess}(h,s_2) = -\textrm{excess}(h,t_2) = -r_2$,
- and $\textrm{excess}(g,v) = \textrm{excess}(h,v) = 0$ for any $v \in V \setminus T$.

Now, consider $f_1 = \frac{g + h}{2}$ and $f_2 = \frac{g - h}{2}$. We get immediately:

- $\textrm{excess}(f_1,t_1) = -\textrm{excess}(f_1,s_1) = r_1$,
- $\textrm{excess}(f_2,t_2) = -\textrm{excess}(f_2,s_2) = r_2$,
- all the other excesses are $0$.

which mean that $f_1, f_2$ is a candidate solution. We only have to check that they respect the capacities. For every edge $e$:

$$\left|f_1(e)\right| + \left|f_2(e)\right| = \frac{1}{2}\left(\left|g(e) + h(e)\right| + \left|g(e) - h(e)\right| \right) \leq c_e$$

where the last inequality follows from the fact that the central term is half the sum of the distances from $g(e)$ to $h(e)$ and $-h(e)$ (if $\left|g(e)\right| \leq \left|h(e)\right|$, symmetrically otherwise), and $\left|h(e)\right| \leq c_e$.

The proof shows that there even is a half-integral optimal packing of paths.

Most of this section relies on an article of Frank, Karzanov and Sebő [6], and the PhD thesis of Mouna Sadli [18]. We follow the former to prove a theorem by Karzanov and Lomonosov [12].

Another important case where there always are half-integral solutions is when $H$ contains all the pairs of terminals. Given a set $T$ of terminal and a terminal $t$, we denote $\lambda(t)$ the minimum capacity of a $(t,T - t)$-cut.

**Theorem 6: ***(Cherkasky [4], Lovász [15]) *If $\mu(s,t) = 1$ for every pair $s,t \in \binom{T}{2}$, then $\max_f \left\|f\right\|_\mu = \frac{1}{2} \sum_{t \in T} \lambda(t)$.

We will prove a generalization of this theorem, but before that we need some definitions. We say that a family of paths *locks* a subset of terminals $A \subseteq T$ if it contains $\lambda(A,T-A)$ $(A,T-A)$-paths. A family of subsets of $T$ is *3-cross-free* if it has no three pairwise crossing members (two sets $A$ and $B$ are crossing if none of $A \cap B$, $A \setminus B$, $B \setminus A$ and $\overline{A \cup B}$ is empty. An instance of Multiflow is inner-Eulerian if $c(\delta(v))$ is even for all non-terminal vertex $v \in V \setminus T$.

**Theorem 7: ***(Karnazov , Lomonosov) *Let $G,c,T$ be an inner-Eulerian instance and $\mathcal{L} \subset 2^T$ a 3-cross-free family of subsets of terminals. Then there is a family of disjoint $T$-paths locking all the members of $\mathcal{L}$.

Before giving the proof of this theorem, let's see why it implies the Cherkasky-Lovász theorem. Take the family $\mathcal{L} = \left(\{t\}\right)_{t \in T}$, which is obviously 3-cross-free. By the locking theorem there is a family of path locking $\{t\}$, for every terminal $t \in T$. Hence every terminal $t$ is the endpoint of exactly $\lambda(t)$ paths in this family. Counting that each path has two endpoints, we get that the number of paths is precisely $\frac{1}{2} \sum_{t \in T} \lambda(t)$, as predicted by the Cherkasky-Lovász theorem.

**Proof: **The proof relies on the splitting-off technique: a splitting-off operation consists in taking two incident edges $uv$, $vw$, and replacing them by the edge $uw$. We only want to do it when it preserves the minimum cuts of the graph (the *tight* cuts). If we manage to apply splitting-off iteratively until the graph becomes *trivial*, without altering the $\lambda(S)$ values for $S \in \mathcal{L}$, then we are done: indeed, if we can find a packing of paths in the trivial graph, then we can extend it to the original graph by *unfolding* the splitting-off in a natural way.

Consider an edge $tu \in E$, with $t \in T$ and $u \notin T$. We want to show that there always is an edge $uv$ such that we can split $tu$, $uv$. We say that a set $X$ of vertices is *tight* if $X \cap T \in \mathcal{L}$ and $c(\delta(X)) = \lambda(X \cap T)$.

Firstly, we claim that if $X$ and $Y$ are two tight sets, and $X \cap T \subseteq Y \cap T$, then $X \cap Y$ and $X \cup Y$ are also tight, and $c(\delta(X,Y)) = 0$. Indeed, $(X \cup Y) \cap T = Y \cap T \in \mathcal{L}$ and $(X \cap Y) \cap T = X \cap T \in \mathcal{L}$, proving the first condition. It also implies that:

$$\lambda(X \cap T) + \lambda(Y \cap T) = c(\delta(X)) + c(\delta(Y)) = c(\delta(X \cap Y)) + c(\delta(X \cup Y)) + 2 c(\delta[X,Y]) \geq \lambda(X \cap T) + \lambda(Y \cap T) + 2 c(\delta[X,Y])$$

As $c$ is non-negative, we get that $c(\delta[X,Y]) = 0$, $\lambda(X \cap T) = c(\delta(X \cap Y))$ and $\lambda(Y \cap T) = c(\delta(X \cup Y))$, proving the claim.

Secondly, we claim that there are no three distinct maximal tight sets containing $t$ but not $u$. Consider three maximal tight sets $X$, $Y$ and $Z$ containing $t$ and not $u$. Then, $X \cap T$, $Y \cap T$ and $Z \cap T$, are elements of $\mathcal{L}$, and hence are not pairwise crossing.

- if $X \cap T \subseteq Y \cap T$ (up to renaming), then by the first claim $X \cup Y$ is tight, and by maximality $X = X \cup Y = Y$.
- if $T \subseteq X \cup Y$, then $\overline{X}$ is tight and $\overline{X} \cap T \subseteq Y \cap T$, hence by the first claim $c(\delta[\overline{X},Y]) = 0$, contradicting the existence of the edge $tu$.

Thirdly, we claim that there are no two tight sets $X$ and $Y$ containing $t$ and not $u$, with $\delta(u) \subseteq \delta(X) \cup \delta(Y)$. Otherwise, one of the two sets, say $X$, would have $c(\delta(u) \cap \delta(X)) > \frac{1}{2} c(\delta(u))$ (the inequality being strict as each set separates $t$ from $u$), but then $c(\delta(X - u)) < c(\delta(X))$, contradicting the fact that $X$ is tight.

The two last claims prove the existence of an edge $uv$ that is not covered by any tight set. Moreover, if for some $X \subseteq V$, $X \cap T \in \mathcal{L}$ and $\lambda(X \cap T) < c(\delta(X))$, then $\lambda(X \cap T) \leq c(\delta(X)) - 2$ because the instance is Eulerian. Thus, splitting off $su$, $uv$ does not change the values of the $\lambda(S)$ for any $S \in \mathcal{L}$. By iteratively splitting off the graph until no terminal is adjacent to a non-terminal vertex (and removing the non-relevant parts of the graph), we reduced the instance to the case where all the vertices are terminals. But in that case, the theorem is trivial as taking all the possible paths of length $1$ gives a solution.

If the instance is not inner-Eulerian, it still gives a half-integrality result.

A graph $H$ is *bistable* if there are two partitions such that $st \in \binom{T}{2}$ is an edge of $H$ iff $s$ and $t$ appears on distinct parts in both partitions. Equivalently, we can separate the maximal independant sets of $H$ into two subpartitions of its vertex set. In this section, we assume that $\mu: \binom{T}{2} \to \{0,1\}$. An $H$-path is a path whose endpoints $s$, $t$ are endpoints of an edge of $H$, *i.e.* $\mu(s,t) = 1$.

An admissible subpartition of $V$ is a subpartition $X_1,\ldots,X_k$ with $T \subseteq \bigcup_{i=1}^k X_i$ and $X_i \cap T$ is independant in $H$ for all $i \in [1,k]$. The value of an admissible subpartition $X_1,\ldots,X_k$ is defined by $\sum_{i=1}^k \frac{c(\delta(X_i))}{2}$. The value of an admissible subpartition is obviously an upper bound of the value of a maximum multiflow for $G,H$: any $H$-path must have its endpoints in distinct parts of the subpartition (as each part is an independant set in $H$). What is more surprising is that this is a good characterization of maximum multiflows when $H$ is bistable:

**Theorem 8: ***(Karzanov , Lomonosov) *If $G,T$ is inner-Eulerian and $H$ is bistable, then the cardinality of a maximum packing of $H$-admissible $T$-paths is equal to the minimum value of an admissible subpartition.

Note how this implies both Cherkasky-Lovász theorem and Rothschild-Whinston theorem (in the uniform case). Both $K_n$ and $K_2 + K_2$ are bistable (the intersection graphs of maximal independant sets are respectively $S_n$ and $C_4$), and the values of subpartitions give almost immediately the characterizations given above.

A *polymatroid* is a polyhedron $P(r) := \{x \in \mathbb{R}_+^S~|~\forall A \subseteq S, x(A) \leq r(A)\}$, where $S$ is a finite set and $r: 2^S \to \mathbb{R}_+$ is a *polymatroidal function*:

- $r(\emptyset) = 0$,
- $r(A) \leq r(B)$ for all $A \subseteq B \subseteq S$ (monotonicity),
- $r(A) + r(B) \geq r(A \cup B) + r(A \cap B)$ for all $A, B \subseteq S$ (submodularity). $r$ is the rank function of $P$.

Edmonds introduced the concept of polymatroids and several great properties they have. Among them:

- the polymatroidal function is uniquely determined by the polymatroid,
- a polymatroid is integral iff its polymatroidal function is integral-valued,
- if $r_1$ and $r_2$ are two polymatroidal functions on $S$, then $\max \{x(S)~|~x \in P(r_1) \cap P(r_2)\} = \min_{X \subseteq S} r_1(X) + r_2(V \setminus X)$. If $a$ and $b$ are integral, the maximum $x$ can be chosen integral.
- given an (integral) polymatroid $P$ on $S$ with rank function $r$, any (integral) vector $p$ of $P$ is dominated by a vector in the
*base polyhedron*$B(P) := P \cap \{x \in \mathbb{R}_+^S~:~x(S) \leq r(S)\}$ of $P$, that is there is $p' \in P$ with $p' \geq p$ and $p'(S) = r(S)$.

We have seen an example of polymatroidal function sooner when we studied the single-commodity case. We say that for a vertex set $A \subset V$, the vectors $m \in \mathbb{R}_+^A$ for which there is an $(A,T \setminus A)$-flow with exactly $m(a)$ $(a,T \setminus A)$-paths for each $a \in A$ are described by the equations $m(A') \leq \lambda(A', T \setminus A)$. As the function $r: 2^A \to \mathbb{N}$ with $r(A') = \lambda(A',\overline{A})$ turns out to be polymatroidal, the set of feasible vectors $m$ is a polymatroid, let's call it $P(A)$. As the monotonicity is obvious, we just check the submodularity. For any two sets $X,Y \subseteq A$,

$$ r(X) + r(Y) = c(\delta(X')) + c(\delta(Y')) \geq c(\delta(X' \cup Y')) + c(\delta(X' \cap Y') \geq r(X \cup Y) + r(X \cap Y)$$

where $X'$ and $Y'$ are respectively a minimum capacity $(X,T-X)$-cut and a minimum capacity $(Y,T-Y)$-cut.

It is easy to check that the direct sum of two polymatroids is a polymatroid, so given a subpartition $\mathcal{X} = X_1,\ldots,X_k$ of $T$, $P(\mathcal{X}) := P(X_1) \uplus \ldots \uplus P(X_k)$ is a polymatroid, denote by $r_{\mathcal{X}}$ its polymatroidal function. An * $\mathcal{X}$-path* is a path whose endpoints are in distinct parts of $\mathcal{X}$. The next lemma explains how the polymatroid defined by a partition relates to the multicommodity flow problem.

**Theorem 9: ***(Frank , Karzanov, Sebő [6]) *Let $m$ be an integer vector of $P(\mathcal{X})$, with $m(T) = r_{\mathcal{X}}(T)$. Then there is an integer packing of $\mathcal{X}$-paths such that every $t \in T$ is the endpoint of exactly $m(t)$ paths.

**Proof: **For a part $X \in \mathcal{X}$, define a minimum capacity $(X,T-X)$-cut minimal $\delta(S_X)$ such that $S_X$ is minimal by inclusion. Let $X, Y \in \mathcal{X}$. We claim that $S_X$ and $S_Y$ are disjoint. Indeed,

$$\lambda(X,T \setminus X) + \lambda(Y,T \setminus Y) = c(\delta(S_X)) + c(\delta(S_Y)) \geq c(\delta(S_X \setminus S_Y)) + c(\delta(S_X \setminus S_Y)) \geq \lambda(X,T \setminus X) + \lambda(Y,T \setminus Y)$$

thus $c(\delta(S_X \setminus S_Y)) = c(\delta(S_X))$ and by minimality $S_X \cap S_Y = \emptyset$.

Let $G'$ be the graph obtained by contracting each $S_X$ into a single vertex $v_X$, for $X \in \mathcal{X}$. Define $T'$ to be the set of contracted vertices, $T' := \{v_X, X \in \mathcal{X}\}$. Then, by Cherkasky-Lovász applied to $G',T'$, we get a family of edge-disjoint $T'$-paths such that $v_X$ is the endpoint of $\lambda(X,T \setminus X)$ paths.

On the other hand, because $m$ is in $P(\mathcal{X})$ (a direct sum of polymatroids) and $m(T) = r_{\mathcal{X}}(T)$, we have $m(X) = \lambda(X,T \setminus X) = c(\delta(S_X))$. Hence there is a set of edge-disjoint $(X,T \setminus X)$-paths saturating $\delta(S_X)$. Combining these paths, for each $X \in \mathcal{X}$, with the paths found in $G',T'$ gives the desired family of $\mathcal{X}$-paths.

If $H$ is induced by a partition, this means that the polymatroid associated to that partition describes the incidence vectors $m \in \mathbb{N}$ of integral families of paths. One of Edmonds' result is that the intersection of two integral polymatroids is integral. It suggests that we might be able to solve the case when $H$ is bistable, that is induced by two partitions, by just applying the polymatroid intersection theorem. This was the original intention of the authors of [6], but unfortunately this approach fails. The reason is that there is no equivalent of Theorem 9 for bistable demand: given an integral $m$ in the intersection of the two polymatroids, it is not always possible to build a set of valid paths with incidence vector $m$. The following picture gives a counterexample:

$H$ is indeed bistable, the two partitions into stable sets are $\{v_1,v_4\}, \{v_2,v_3\}$, and $\{v_3,v_4\}, \{v_1\}, \{v_2\}$. The vertices of the intersection of the two polymatroids are $(2,2,2,0)$ and $(2,2,0,2)$, but none of these solutions is realisable, the optimal solution to the maximum multiflow problem has incidence vector $(2,2,1,1)$ (as can be checked using the subpartition $\{\{v1\}, \{v_2\}, \{v_3, v_6, v_4\}\}$).

The proof in [6] uses an incidence vector $m$ that is bigger than an incidence vector from the intersection of the matroid, and hence also infeasible for $H$ but still feasible by a family of $T$-paths. From this it finds a family of $H$-paths of the expected size, using the locking theorem. We only prove Theorem 8 for Eulerian $G$, for inner Eulerian one would add a new terminal adjacent to odd vertices, and apply the Eulerian case.

**Proof: ***(of Theorem 8, only for $G$ Eulerian) *let $\mathcal{A}$ and $\mathcal{B}$ be the two partitions defining $H$, and $P_a$ and $P_b$ the two associated polymatroids, $a$ and $b$ their rank functions. Let $m'$ be a maximum vector of $P_a \cap P_b$. We want to find two things:

- a family of $m'(T)/2$ $H$-paths,
- an admissible subpartition of value $m'(T)/2$.

Recall that vectors of polymatroids are dominated by basis: there are a base $m_a$ in $P_a$ and a base $m_b$ in $P_b$ with $m' \leq m_a$ and $m' \leq m_b$. Because $P_a$ and $P_b$ are even polymatroids (by definition of their ranks) we may assume that $m_a$ and $m_b$ are even. Let $m$ be defined by $m(t) := \max \{m_a(t), m_b(t)\}$, for all $t \in T$. $m$ is even, and we clearly have:

$$m_a + m_b - m \geq m'$$

For any vector $q \in \mathbb{N}^T$, let $G_q$ be the graph obtained by adding for each terminal $t$, a new vertex $t'$, an edge $tt'$ with capacity $q$, and making all edges incident to $t$ in $G$ incident to $t'$ in $G_q$ (this encodes in the hardware that $q$ upper-bounds the number of paths at each terminal). We denote $\lambda_{G_q}(U)$ the maximum number of $(U,T \setminus U)$ paths in $G_q$ for any $U \subset T$.

We apply Theorem 7 to $G_m$, with $\mathcal{L}$ the family of stable sets in $\mathcal{A}$ and $\mathcal{B}$. $\mathcal{L}$ is obviously a 3-cross-free family. Let $\mathcal{F}$ be the locking family in $G_m$, we abuse notations and consider $\mathcal{F}$ to be paths in $G$ (by the trivial injection).

Then we count the number of $\mathcal{A}$-paths in $\mathcal{F}$ (*ie* connecting distinct parts of $\mathcal{A}$). $m \geq m_a \in P_a$ (Theorem 9), by definition of $P_a$ there is a packing of $\mathcal{A}$ paths locking $\mathcal{A}$ with incidence vector $m_a$. For any $S \in \mathcal{A}$, because $\lambda_{G_m}(S) \geq \lambda_{G_{m_a}}(S) = m_a(S)$, there are at least $m_a(S)$ paths in $\mathcal{F}$ with exactly one extremity in $S$. Therefore there are at least $m_a(T)/2$ $\mathcal{A}$-paths in $\mathcal{F}$. Similarly there are at least $m_b(T)/2$ $\mathcal{B}$-paths in $\mathcal{F}$.

Now we count the number $h$ of $H$-paths, recall that $\left|\mathcal{F}\right| \leq m(T)/2$. We remove from that the paths that are neither $A$-paths nor $B$-paths.

$$ \begin{align*} h &\geq \left|\mathcal{F}\right| - \left(\left|\mathcal{F}\right| - m_a(T)/2 \right) - \left(\left|\mathcal{F}\right| - m_a(T)/2\right)\\ &\geq m_a(T)/2 + m_b(T)/2 - \left|\mathcal{F}\right|\\ &\geq (m_a(T) + m_b(T) - m(T))/2\\ &\geq m'(T)/2 \end{align*} $$

This concludes the first part of the proof.

To find an admissible subpartition, we use the matroid intersection theorem on $m'$, there exists a partition $A,B$ of $T$ with $m'(A) = a(A)$ and $m'(B) = b(B)$. Choose $A$ maximal. Then, for any $t \in B$, $a(A+T) > a(A)$. Indeed, if $a(A+t) = a(A)$, then $a(A) = m'(A) \leq m'(A+t) \leq a(A+t) = a(A)$, from which $m'(t) = 0$, but then $b(B) = m'(B) = m'(B-t) \leq b(B-t) \leq b(B)$, contradicting the maximality of $A$.

For a stable set $S \in \mathcal{A}$ intersecting $A$, define $X_S \subset V$ to be a minimal set with $A \cap S \subset X_S \cap T \subset S$ and $d(X_S) = a(A \cap S) = m'(A \cap S)$ (the last inequality follows from the fact that $P_a$ is a direct sum of polymatroids over $\mathcal{A}$, and $m'(A) = a(A)$). Similarly define $Y_S$ for any stable set $S \in \mathcal{B}$, $d(Y_S) = b(B \cap S) = m'(B \cap S)$. We consider $\mathcal{K} := \{X_S~:~S \in \mathcal{A}, S \cap A \neq \emptyset\} \cup \{Y_S~:~S \in \mathcal{B}, S \cap B \neq \emptyset\}$, and prove that it is a subpartition of value $m'(T)/2$

The main step is to prove that $\mathcal{K}$ is a subpartition.

We claim that for $X_S \in \mathcal{K}$, $S \in \mathcal{A}$, $X_S \cap T \subseteq A$. Indeed, $m'(A \cap S) = a(A \cap S) = d(X_S) \geq a(X_S \cap S) \geq m'(X_S \cap S) \geq m'(A \cap S)$ (first inequality: definition of $a$; second inequality: definition of $m'$; third inequality: monotonicity of $m'$), therefore $a(A \cap S) = a(X_S \cap S)$. Then, if $t \in X_S \cap B$, $a(A+t)=a(A)$, contradiction.

Next we claim that for $Y_S \in \mathcal{K}$, $S \in \mathcal{B}$, $Y_S \cap T \subseteq B$. Again, $m'(B \cap S) = b(B \cap S) = d(Y_S) \geq b(Y_S \cap S) \geq m'(Y_S \cap S) \geq m'(B \cap S)$, thus $m'(Y_S \cap S) = m'(B \cap S)$, so for any $t \in A \cap Y_S$, $m'(t) = 0$. We use this in the last equation of (for $R \in \mathcal{A}$ and $S \in \mathcal{B}$):

$$ \begin{align*} m'(A \cap X_R) + m'(B \cap Y_S) = m'(A \cap R) + m'(B \cap S) &= d(X_R) + d(Y_S)\\ &\geq d(X_R \setminus Y_S) + d(Y_S \setminus X_R) \\ &\geq a((X_R \setminus Y_S) \cap A) + b((Y_S \setminus X_R) \cap B) \\ &\geq m'((X_R \setminus Y_S) \cap A) + m'((Y_S \setminus X_R) \cap B) \\ &= m'(X_R \cap A) + m'(Y_S \cap B) \end{align*} $$

Hence $d(Y_S \setminus X_R) = b((Y_S \setminus X_R) \cap B) = m'((Y_S \setminus X_R) \cap B)$. Then if $t \in Y_S \cap A$, and $t \in X_R$, $Y_S \setminus X_R$ contradicts the minimality of $Y_S$, proving the claim.

Therefore $\mathcal{K}$ is a subpartition: indeed, take $L, K \in \mathcal{K}$, and suppose $K \cap L \neq \emptyset$. By the previous claim, $L \cap K \cap T = \emptyset$. Then $d(K) + d(L) \geq d(K \setminus L) + d(L \setminus K)$, contradicting the minimality of $K$ or $L$.

Finally, $\mathcal{K}$ is clearly admissible, and has value

$$\frac{1}{2} \left(\sum_{R \in \mathcal{A}} d(X_R) + \sum_{S \in \mathcal{B}} d(Y_S)\right) = \frac{1}{2} \left(\sum_{R \in \mathcal{A}} a(A \cap R)+\sum_{S \in \mathcal{B}} b(B \cap S)\right) = \frac{m'(T)}{2} $$

concluding the proof.

In the same article [6], Frank, Karzanov and Sebő introduced the Node Demand Problem. Motivated by the fact that a maximal vector $m$ in the intersection of the polymatroids $P_a$ and $P_b$ is not always feasible, this problem asks, given $G,H,m$, whether $m$ is the incidence vector of a family of edge-disjoint $H$-paths in $G$. A demand graph $H$ is *two-covered* if every terminal is in at most two maximal stable sets of $H$. This generalizes the notion of bistable graphs (consider a $C_5$). They proved that an approriate version of the directed cut is sufficient when $H$ is two-covered:

**Theorem 10: ***(Frank , Karzano, Sebő [6]) *Let $(G,H,m)$ be an instance of the Node Demand Problem with $H$ two-covered. Then $m$ is feasible iff the following cut condition holds for every $X \subseteq V$ and every $S \subseteq X \cap T$ stable set of $H$:

$$ m(S) - m(X \cap T \setminus S) \leq d(X)$$

**Proof: **The necessity is clear: the demands from $S \cap X$ can only be routed to terminals in $X \setminus S$, or outside $X$. We prove the sufficiency.

Let $\mathcal{L}$ be the family of maximal stable sets of $H$. We prove that $\mathcal{L}$ is 3-cross-free, in order to apply Theorem 7. Take three distinct stable sets $A, B, C$ of $H$. Because $H$ is two-covered, $A \cap B \cap C = \emptyset$. Also $D = (A \cap B) \cup (A \cap C) \cup (B \cap C)$ is a stable set. If $D$ is non-empty, say $A \cap B \neq \emptyset$, then because $H$ is two-covered, $D = A$ or $D = B$, say $D = A$, hence $B \cap C = \emptyset$, $A, B, C$ are not pairwise crossing.

Recall that $\lambda_{G_m}(S)$ is the maximum number of $(S,T \setminus S)$-paths having an incidence vector $m' \leq m$, $G_m$ being a graph obtained by pushing the terminals to new nodes of degrees given by $m$. Then for any stable set $S$ of $H$, by Menger theorem in $G$, $\lambda_{G_m}(S) = \min d(X) + m(S \setminus X) + m((T \cap X) \setminus S)$ for $X \subset V$. For $X$ reaching this minimum, we have $m(S) \geq \lambda_{G_m}(S) = d(X) + m(S \setminus X) + m((X \cap T) \setminus S) \geq m(S\cap X) - m(X \cap T \setminus (S \setminus X)) + m(S-X) + m((X \cap T) \setminus S) \geq m(S)$.

Finally, apply Theorem 7 to $G_m, \mathcal{L}$ to get a family $\mathcal{F}$ of paths. Any terminal $t$ is in the stable set $\{t\}$, so $\lambda_{G_m}(\{t\}) = m(t)$, hence $\mathcal{F}$ contains $m(t)$ paths with extremity $t$. $if s,t \in T$ are non-adjacent in $H$, then there is a stable set $S$ containing both $s$ and $t$, again $\lambda_{G_m}(S) = m(S)$ hence no path in $\mathcal{F}$ joins $s$ and $t$. Therefore $\mathcal{F}$ is a solution to the Node Demand Problem $(G,H,m)$.

In this section we move to the decision problem regarding multicommodity flows. Instead of having a function $\mu$ over pairs of terminals, we are given for each pair of terminals $s,t$ the number $D_{st}$ of paths that we desire between $s$ and $t$. Given $G,T,c,D$, we are asked whether there is $c$-packing of $T$-paths $f$ with $f(\mathcal{P}_{st}) \geq D_{st}$ for all $s,t \in T$, where $\mathcal{P}_{st}$ is the set of $st$-paths. Again, we can define a commodity graph $H = (T,\{st~:~D_{st} \neq 0\})$.

The decision version can be solved by linear programming, as long as we don't need an integral solution. It also admits a characterization similar to Theorem 1:

**Theorem 11: ***(Onaga -Kakusho [16]) *Given $G,H,c,D$, exactly one of these two propositions is true:

- there is a solution $f$ to the Multicommodity Flow instance $G,H,c,D$,
- there is a length function $l: E(G) \to \mathcal{R}_+$ with $\sum_{st \in H} D_{st}\text{dist}_l(s,t) > \sum_{e \in E} c_e l(e)$.

The interpretation is the same: if the problem does not have a solution, $G,H$ can be embedded in some metric space, where the total length of $G$ is strictly smaller than what would be the length of a solution. One easy consequence is the necessity of the cut condition: if the first proposition is true, then for any cut $X$ of $G$, $c(\delta_G(X)) \geq \sum_{s \in X \cap T, t \in T \setminus X} D_{st}$ (consider the metric space $\{0,1\}$ with $d(0,1) = 1$). We denote $D(X) := \sum_{s \in X \cap T, t \in T \setminus X} D_{st}$ the total demand between $T \cap X$ and $T \setminus X$.

Here we are interested in finding when the cut condition is sufficient, or how strong it is. The main reason for looking at this problem in terms of the cut condition is that for many problems, we are interested in finding *good* cuts more than finding flows, in particular the sparsest cut problem is related to these questions. Other reasons are that cuts are a mathematical object that has many interesting properties, and that there are actually deep results relating the cut condition and existence of multicommodity flows.

In this setting, a natural question is: how much do we need to strengthen the cut condition to ensure the existence of a multicommodity flow? Indeed, the cut condition is seldom sufficient, as this figure shows:

In the left side, the cut condition is satisfied but there is no integral solution, though there is a half-integral solution. In the right side, the cut condition is again satisfied, but there is not even a fractional multiflow. Indeed, we can check it by setting the length of any edge to be $1$, then the total length of $G$ is $6$, but the sum of lengths of the paths of a solution would be at least $8$.

As the cut condition is not sufficient, we can reinforce it in the following way: ask for each cut $X$ to have $\sum_{st \in H \cap
\delta(X)} D_{st} \geq \alpha c(\delta(X))$, with $\alpha \geq 1$. For
$\alpha = 1$, this is simply the cut condition. This parameter
$\alpha$ is called the *congestion*, and one natural problem is to minimize it: given an instance $(G,H,c,D)$ satisfying the cut condition, find the minimum $\alpha$ such that $G,H,\alpha c,D$ is (fractionally) feasible. Leighton and Rao [13] showed that a congestion of
$O(\log n)$ is always sufficient. This result was latter improved in a series of papers, until Aumann and Rabani [1] gave a proof that $O(\log~\left|E(H)\right|)$ is sufficient. An equivalent setting is to ask, in an instance that satisfies the cut condition, for a multiflow that simultaneously routes $1/\alpha$ unit of demand of each commodity, this is the Maximal Throughput problem. As a consequence, the minimum congestion can be computed using the dual (Theorem 11):

$$\frac{1}{\alpha} = \min_{d} \frac{c \cdot d}{\sum_{st \in H} D_{st} d(s,t)} $$

where $d$ ranges over all metrics on $V$ with $d(s,t) \geq 1$ for all $st \in H$.

The congestion is strongly related to the notion of *distortion* in metric embeddings. Here the minimum metric is a graph metric, hence is rather arbitrary. One might wonder what happens when we restrict ourselves to some specific metrics. This question arises naturally when studying the sparsest cut problem: for an instance
$(G,H,c,D)$ of the multiflow problem, find a cut $S$ minimizing
$\frac{c(\delta(S))}{D(S)}$. Sparsest cuts are noticeably used in clustering problems, where the ability to find sparse cuts of good quality is often critical. They are also quite useful to solve multicommodity flows: for instance, checking the cut condition is equivalent to checking that the sparsity of any cut is at least $1$.

How do we find a sparsest cut? The answer is: we don't, as it is an NP-hard problem. But we can find good approximations for the sparsest cut problem. Consider the following cut packing problem: Given $G =
(V,E)$, $H = (T \subseteq V,F)$ and $l$ a length function on $E$, defining a metric $d$ on $V$, find an $l$-packing $y$ of cuts in $G$minimizing $\max_{f \in F : l(f) > 0} \frac{l(f)}{\sum_{S : f \in
\delta_H(S)} y_S}$. Let $\beta$ be the optimum value for this problem,
$\beta$ is called the *distortion* of $G,H,l$. This parameter tells how much we need to stretch $l$ to get an $l_1$-metric; indeed, an exact cut packing (*i.e.* every edge is tightly packed,
$\beta = 1$) is equivalent to an $l_1$ embedding.

**Lemma 12: **A metric $d$ on $V$ is an $l_1$-metric if and only if there is $\lambda: 2^V \to \mathbb{R}_+$ such that $d(u,v) = \sum_{S \subset
V~:~|\{u,v\} \cap S| = 1} \lambda(S)$

**Proof: **Suppose $d$ is an $l_1$ metric, with embedding
$x_1,\ldots,x_n$ in $\mathbb{R}^p$. We define

$$\lambda(S) := \sum_{q=1}^p \max \left(0, \min_{i \in S} x_{iq} - \max_{j \notin S} x_{jq}\right)$$

Then $\sum_{S: i \in S, j \notin S} \lambda(S) = \sum_{q=1}^p \sum_{S: i \in S, j \notin S} \max \left(0, \min_{i' \in S} x_{i'q} - \max_{j' \notin S} x_{j'q}\right)$. For any $q$, we may assume that $x_{1q} \leq x_{2q} \leq \ldots x_{nq}$, then $\sum_{S: i \in S, j \notin S} \max \left(0, \min_{i' \in S} x_{i'q} - \max_{j' \notin S} x_{j'q}\right) = \sum_{k = j}^{i-1} x_{(k+1)q} - x{kq} = \max \left(0, x_{iq} - x_{jq}\right)$. Hence, $\sum_{S: i \in S, j \notin S} \lambda(S) = d(x_i,x_j)$.

The reverse direction is even easier: for each $S$ with $\lambda(S) \neq 0$, take a new dimension $k$ and set $x_{ik} = \lambda(S)$ if $i \in S$, $x_{ik} = 0$ otherwise.

Now, we link the notions of congestion, distortion and sparsest cuts:

**Theorem 13: **Consider a metric $d$ for $G,H,c,D$ minimizing $\frac{c
\cdot d}{\sum_{st \in H} D_{st} d(s,t)}$. Let $\lambda$ be a cut packing for $d$ with distortion $\beta$. Then there is a cut $S$ with
$\lambda(S) \neq 0$ that has sparsity at most $\beta/\alpha$

**Proof: **$$
\frac{1}{\alpha}
= \frac{\sum_{e \in E(G)} c_e d_e}{\sum_{st \in H} D_{st} d(s,t)}
\geq \frac{\sum_{e \in E(H)} c_e \sum_{S: e \in \delta(S)} \lambda(S)}{\sum_{st \in H} D_{st} \beta \sum_{S: st \in \delta(S)} \lambda(S)}
\geq (1/\beta) \frac{c(\delta(S))}{\sum_{st \in H \cap \delta(S)} D_{st}}
$$

for some cut $S$, where the last inequality comes from $\frac{\sum \lambda_i a_i}{\sum \lambda_i b_i} \geq \min \frac{a_i}{b_i}$ for any $b \geq 0$, $\lambda > 0$ and $a$.

The following theorem is the *congestion-distortion equivalence* theorem.

**Theorem 14: ***(Linial , London, Rabinovich [14]) *Let $G = (V,E)$, $H = (T,F)$ be two graphs with $T \subseteq V$. Then the maximum congestion of $G,H,c,d$ over any $c,d$ satisfying the cut condition, is equal to the maximum distortion of $G,H$ over any shortest path metric $l$.

We follow the proof given by Chakrabarti, Fleischer and Weibel in [2].

**Proof: **We fix a pair $G,H$. We denote by $\mathcal{P}_f$ the set of possible flow paths for commodity $f \in E(H)$, and by $\mathcal{P}$ their union $\bigcup_{f \in E(H)} \mathcal{P}_f$.

Firstly, we express the congestion $\gamma(c,d)$ for $G,H,c,d$ as a linear program, consisting in minimizing by how much we violate the capacity constraints to find a flow:

$$ \begin{array}{ll} \gamma(c,d) = \min \alpha \quad\textrm{subject to} & \\ \qquad \sum_{P \in \mathcal{P}_f} x_P \geq d_f & (\forall f \in E(H))\\ \qquad \sum_{P \in \mathcal{P} : e \in P} x_P \leq \alpha c_e & (\forall e \in E(G))\\ \qquad x_P \geq 0 & (\forall P \in \mathcal{P})\\ \end{array} $$

By duality we have:

$$ \begin{array}{ll} \gamma(c,d) = \max \sum_{f \in E(H)} \mu_f d_f \quad\textrm{subject to} & \\ \qquad \mu_f \leq \sum_{e \in P} y_e & (\forall P \in \mathcal{P}_f, f \in E(H)) \\ \qquad \sum_{e \in E(G)} c_e y_e = 1 & \\ \qquad \mu, y \geq 0 & \end{array} $$

At an extreme point, $\mu$ is simply the shortest path metric induced by $y$ on the terminals $V(H)$.

Now we maximise this value $\gamma(c,d)$ over all possible choices of $c$ and $d$ that satisfy the cut condition:

$$ \begin{array}{ll} \gamma = \max \gamma(c,d) \quad\textrm{subject to} & \\ \qquad \sum_{e \in \delta_G(S)} c_e \geq \sum_{f \in \delta_H(S)} d_f & (\forall S \subsetneq V(G)) \\ \qquad c, d \geq 0 & \end{array} $$

We can develop the objective function using the dual linear program for $\gamma(c,d)$, this gives the non-linear program with variables $c$, $d$, $y$, $\mu$:

$$ \begin{array}{ll} \gamma = \max \sum_{f \in E(H)} \mu_f d_f \quad\textrm{subject to} & \\ \qquad \mu_f \leq \sum_{e \in P} y_e & (\forall P \in \mathcal{P}_f, f \in E(H)) \\ \qquad \sum_{e \in E(G)} c_e y_e = 1 & \\ \qquad \sum_{e \in \delta_G(S)} c_e \geq \sum_{f \in \delta_H(S)} d_f & (\forall S \subsetneq V(G)) \\ \qquad \mu_f, d_f \geq 0 & (\forall f \in E(H))\\ \qquad c_e, y_e \geq 0 & (\forall e \in E(G)) \end{array} $$

Now we refactor this program, by fixing the values of $\mu$ and $y$, assuming $\mu$ satisfies the metric inequalities induced by $y$, we get:

$$ \begin{array}{ll} w(y,\mu) = \max \sum_{f \in E(H)} \mu_f l_f \quad\textrm{subject to} & \\ \qquad \sum_{e \in E(G)} y_e c_e = 1 & \\ \qquad \sum_{e \in \delta_G(S)} c_e \geq \sum_{f \in \delta_H(S)} d_f & (\forall S \subsetneq V(G)) \\ \qquad \mu_f, d_f \geq 0 & (\forall f \in E(H))\\ \qquad c_e, y_e \geq 0 & (\forall e \in E(G)) \end{array} $$

And by adding the metric inequality constraints we get:

$$ \gamma = \begin{array}{ll} \max w(y,\mu) \quad\textrm{subject to} & \\ \qquad \mu_f \leq \sum_{e \in P} y_e & (\forall e \in P_f, f \in E(H)) \\ \qquad \mu, y \geq 0 & \end{array} $$

Now we take the dual of the program defining $w(y,\mu)$:

$$ \begin{array}{ll} w(y,\mu) = \min \zeta \\ \qquad \sum_{S \subsetneq V : e \in \delta_G(S)} z_S \leq y_e \zeta & (\forall e \in E(G)) \\ \qquad \sum_{S \subsetneq V : f \in \delta_H(S)} z_S \geq \mu_f & (\forall f \in E(H)) \\ \qquad z \geq 0 & \end{array} $$

Now this is just minimizing the distortion given $\mu, y$ respecting the metric inequalities. As when maximising $\gamma$, $\mu$ is the shortest path metric induced by $y$, we get another expression of $\gamma$ as the maximum distortion needed to embed a shortest path metric on $V(H)$ into an $l_1$-embedding (a packing of cut). The first expression of $\gamma$ gave us the maximum congestion over any $c,d$ satisfying the cut condition, hence the congestion-distortion equivalence.

Recall the dual of the Maximum MultiCommodity Flow problem, in its metric form:

$$ \begin{array}{ll} \min c \cdot d \quad\textrm{subject to} & \\ \qquad d(s,t) \geq \mu(s,t) & (\forall s,t \in T)\\ \qquad d~\text{metric on}~V & \end{array} $$

It says that we want to find a metric minimizing the total length of the graph, but still keeping the terminals sufficiently far from each other, that is, for every pair $s,t$ of terminals, $s$ and $t$ must be at distance at least $\mu(s,t)$ from each other.

Let's start with some very basic considerations. Suppose that we have a graph where each edge $e$ has an associated length $l(e)$, and we want to know the distance between two vertices $s$ and $t$. We can get an upper bound easily by exhibiting a shortest $(s,t)$-path. But how do we prove its optimality, that is how to get a matching lower bound? The classical answer to this problem is to exhibit a *potential*. A potential is a mapping $p: V \to \mathbb{R}$ with the property that for any edge $uv$, $\left|p_v - p_u\right| \leq l(uv)$. Notice that the constraints only uses differences between the potential at two vertices, so a potential is defined up to some constant.

A potential gives a lower bound on $d(u,v)$ for any pair of vertices $u, v \in V$. Indeed, consider any path $u = u_0, u_1,\ldots,u_k=v$, then by a simple summation we get:

$$ p_u - p_v = (p_{u_0} - p_{u_1}) + (p_{u_1} - p_{u_2}) + \ldots (p_{u_{k-1}} - p_{u_k}) \leq l(u_0u_1) + l(u_1u_2) + \ldots + l(u_{k-1}u_k) \leq l(P)$$

hence the difference of potential is a lower bound on the distance between two vertices.

To see that is is a good characterization, we must exhibit, for two given vertices $u$ and $v$, a potential such that $p_u - p_v = d(u,v)$. This is done by defining $p_w := d(u,w)$, as then $p_u = 0$ and $p_v = d(u,v)$. We must just check that it is a potential: $d(u,x) - d(u,y) \leq d(x,y)$ for any $x,y \in V$, which is the triangular inequality.

Applied to our dual problem, we can write a new formulation. It uses one potential $\rho_t: V \to \mathbb{R}$ for each terminal. The only difficulty is to express the objective function: we would need one additional variable for each edge, to measure (an upper bound on) the maximum difference of any potential between its endpoint, which is the distance of that edge: $\max_{s \in T} |\rho_s(u) - \rho_s(v)|$. For simplicity, we keep this part hidden and just denote by $||\rho(u) - \rho(v)||_\infty$ this maximum.

$$ \begin{array}{ll} \min \sum_{uv \in E} c_{uv} ||\rho(u) - \rho(v)||_\infty \quad \text{subject to} & \\ \qquad \rho_t(t) = 0 & (\forall t \in T) \\ \qquad \rho_t(s) \geq \mu(s,t) & \left(\forall (s,t) \in \binom{T}{2}\right)\\ \qquad \rho_t \in \mathbb{R}_+^V & (\forall t \in T) \end{array} $$

It is worth noting that this program is also the dual of the edge formulation of the MultiCommodity Flow problem as introduced above (after some cleaning). Thus, to some extent, the correspondance between metrics and potentials is equivalent to the correspondance between packing of cycles and circulations formulated in Theorem 2.

There is another way to get to a dual formulated with a different kind of potential, and it will turn out to be very useful. Recall the metric formulation, and call a metric $m$ on $V \supseteq T$ an *extension* of $\mu$ if $m(s,t) \geq \mu(s,t)$ for all pairs $(s,t) \in \binom{T}{2}$. We say that an extension $m$ of $\mu$ is *tight* if it is (Pareto) minimal: for every other extension $m'$ there are $x,y \in V$ such that $m(x,y) < m'(x,y)$. Thus, the metric dual formulation asks for an extension minimizing $c \cdot d$, and such an extension is clearly minimal.

The *universal tight extension* $(\mathcal{X},d)$ of a metric space $(T,\mu)$ is defined by:

$$\mathcal{X} := \{ f:T \to \mathbb{R}~:~ \forall s,t \in T^2, f(s)+f(t) \geq \mu(s,t) \}$$

$$d(f,g) := \sup_{t \in T} |f(t) - g(t)| $$

Given $t \in T$, we associate $e_t \in \mathcal{X}$ defined by $e_t(s) = \mu(s,t)$.

**Lemma 15: ***(Dress) *Any tight extension $m$ on $V$ of $(T,\mu)$ is isometrically embeddable in $(\mathcal{X},d)$.

**Proof: **We use the embedding given by $\rho_v : t \in T \to m(v,t)$. We must check that for any $x,y \in V$, $f(\rho_x,\rho_y) = m(x,y)$.

The fact that $m$ is tight implies that for any $x,y \in V$, there are two terminals $s$ and $t$ such that $m(s,t) = m(s,x) + m(x,y) + m(y,t)$ (and hence $m(x,t) = m(x,y) + m(y,t)$). From this we deduce:

$$|\rho_x(t) - \rho_y(t)| = |m(x,t) - m(y,t)| = |m(x,y) + m(y,t) - m(y,t)| = m(x,y)$$

and $|\rho_x(t') - \rho_y(t')| = |m(x,t') - m(y,t')| \leq m(x,y)$ by the triangular inequality, for any $t' \in T - t$. Thus, $d(\rho_x,\rho_y) = m(x,y)$.

The elements of the universal tight extension can be interpretated as representing the distance from some point to all the terminals. If the sum of the distance to $s$ and $t$ was less that $\mu(s,t)$, than $s$ and $t$ would at distance less than $\mu(s,t)$ from each other. This leads to one more formulation of the dual:

$$ \begin{array}{ll} \min c \cdot d \quad\textrm{subject to} & \\ \qquad \rho_v \in \mathcal{X} & (\forall v \in V) \\ \qquad \rho_t(t) = 0 & (\forall t \in T) \end{array} $$

The next lemma shows that we can restrict our interest to the minimal elements of the universal tight extension. Let $T_\mu$ be the *tight span* of $\mu$, defined by:

$$ T_\mu := \{ \rho \in \mathbb{R}^T~:~ \rho(s) = \sup_{t \in T} \mu(s,t) - \rho(t) \}$$

**Lemma 16: ***(Dress) *There is a map $p: \mathcal{X} \to T_\mu$ such that:

- $d(p(f),p(g)) \leq d(f,g)$ for all $f, g \in \mathcal{X}$,
- $p(f) \leq f$ for all $f \in \mathcal{X}$.

**Proof: **Let $f \in \mathcal{X}$. Define $\delta_f(t) := \max_{s \in T} \mu(s,t) - f(s) \geq 0$. Notice that $\delta_f = f$ when $f \in T_\mu$, but $\delta_f$ is not necessarily in $\mathcal{X}$. We abusively extend the definition of $d$ to any map $T \to \mathbb{R}$.

Then for any $g \in \mathcal{X}$ and $t \in T$, we have

$$\begin{align} \delta_f(t) &= \sup_{s \in T} \mu(s,t) - g(s) + g(s) - f(s)\\ &\leq \sup_{s \in T} (\mu(s,t) - g(s)) + \sup_{s \in T} (g(s) - f(s))\\ &= \delta_g(t) + d(f,g) \end{align} $$

Hence $\delta_f(t) - \delta_g(t) \leq d(f,g)$ for all $t \in T$, that is $d(\delta_f(t),\delta_g(t)) \leq d(f,g)$.

Define $\psi: f \in \mathcal{X} \to \lambda_f f + (1 - \lambda_f) \delta_f$, where $\lambda_f$ is maximal such that $\psi(f) \in \mathcal{X}$. Say that a terminal $t$ is *tight* for $g \in \mathcal{X}$ if there is some $s \in T$ for which $f(s)+f(t) = \mu(s,t)$. Then $\psi(f)$ has strictly more tight terminals than $f$ if $f \notin T_\mu$. Hence $p := \psi^{|T|}(f)$ has only tight terminals for any $f \in \mathcal{X}$, that is $\psi^{|T|}(f) \in T_\mu$. Moreover $\psi$ is clearly a retractation, so is $\psi^{|T|}$.

This implies the following strenghtening:

$$ \begin{array}{ll} \min c \cdot d \quad\textrm{subject to} & \\ \qquad \rho_v \in T_\mu & (\forall v \in V) \\ \qquad \rho_t(t) = 0 & (\forall t \in T) \end{array} $$

The first application of this formulation is that we can characterize the fractionality of the dual problem by the dimension of $T_\mu$. The *fractionality* of $\mu$ is the minimum $k \in \mathbb{N}$ such that any instance $G$ of the $\mu$-Multicommodity Flow problem admits an optimal $\frac{1}{k}$-integral solution. The *dual fractionality* is the minimum $k \in \mathbb{N}$ such that the dual problem has an optimal $\frac{1}{k}$-integral solution. The fractionality or dual fractionality may be $\infty$, and the fractionality is always at least the dual fractionality.

Karzanov first proved the next theorem when $\mu$ is a metric, and Hirai extended it to general $\mu$.

**Theorem 17: ***(Karzanov , Hirai) *The fractionality of the dual of the Multicommodity Flow problem for a given $\mu$ is:

- 1, 2 or 4 if $\dim T_\mu = 2$,
- $\infty$ if $\dim T_\mu \geq 3$.

More to come soon!

1. | An $O(\log k)$ Approximate Min-Cut Max-Flow Theorem and Approximation Algorithm. SIAM Journal on Computing, 27, 291 -- 301. Citeseer, (1998). | , :

2. | When the cut condition is enough: a complete characterization for multiflow problems in series-parallel networks. In: Proceedings of the 44th symposium on Theory of Computing. , 19 -- 26. (2012). | , , :

3. | Flow-cut gaps for integer and fractional multiflows. Journal of Combinatorial Theory, Series B. Elsevier, (2012). | , , :

4. | A solution of a problem on multicommodity flows in a network. Ekonomika i matematicheskie metody, 13, 143 -- 151. (1977). | :

5. | Maximal flow through a network. Canadian Journal of Mathematics, 8, 399 -- 404. (1956). | , :

6. | On integer multiflow maximization. SIAM Journal on Discrete Mathematics, 10, 158 -- 170. (1997). | , , :

7. | Tight spans of distances and the dual fractionality of undirected multiflow problems. Journal of Combinatorial Theory, Series B, 99, 843 -- 868. Elsevier, (2009). | :

8. | Folder complexes and multiflow combinatorial dualities. SIAM J. Discret. Math. (to appear). (2009). | :

9. | The maximum multiflow problems with bounded fractionality. In: Proceedings of the 42nd ACM symposium on Theory of computing. , 115 -- 120. (2010). | :

10. | Multi-commodity network flows. Operations Research, 344 -- 360. JSTOR, (1963). | :

11. | Minimum 0-extensions of graph metrics. European Journal of Combinatorics, 19, 71 -- 101. Elsevier Science, (2004). | :

12. | Systems of flows in undirected networks. Mathematical Programming, 59 -- 66. Institute for System Studies, Moscow, (1978). | , :

13. | An approximate max-flow min-cut theorem for uniform multicommodity flow problems with applications to approximation algorithms. In: 29th Annual Symposium on Foundations of Computer Science (FoCS). , 422 -- 431. (1988). | , :

14. | The geometry of graphs and some of its algorithmic applications. Combinatorica, 577 -- 591. (1994). | , , :

15. | On some connectivity properties of Eulerian graphs. Acta Mathematica Hungarica, 28, 129 -- 138. Akadémiai Kiadó and Springer Science, (1976). | :

16. | On feasibility conditions of multicommodity flows in networks. IEEE Transactions on Circuit Theory, 18, 425 -- 429. (1971). | , :

17. | Feasibility of two commodity network flows. Operations Research, 1121 -- 1129. Operations Research Society of America, (1966). | , :

18. | Généralisation de matroïdes et chemins disjoints. PhD. thesis, Université Joseph Fourier, Grenoble 1, (2000). | :