1 Introduction

Ever since the seminal work of Ford and Fulkerson [6] network flows belong to the most important and fundamental class of problems in combinatorial optimization and mathematical programming. We refer to the classical textbook [1] by Ahuja, Magnanti, and Orlin as well as the very recent new textbook [17] by Williamson on the topic.

1.1 Problem setting and notation

Let \(D=(V,A)\) be a directed acyclic graph with source node \(s\in V\) and k commodities with destination nodes \(t_1,\dots ,t_k\in V\) and associated demands \(d_1,\dots ,d_k\in \mathbb {R}_{>0}\). A flow \(x\in \mathbb {R}_{\ge 0}^A\) satisfies the given demands if it simultaneously sends \(d_i\) units of flow from s to \(t_i\), for all \(i=1,\dots ,k\). That is, x must satisfy the following flow conservation constraints:

$$\begin{aligned} x(\delta ^{\text {in}}(v))-x(\delta ^{\text {out}}(v))= {\left\{ \begin{array}{ll} d_i &{} \text {if}~v=t_i~\text {for some}~i\in \{1,\dots ,k\},\\ -\sum _{i=1}^kd_i &{} \text {if}~v=s,\\ 0 &{} \text {otherwise.} \end{array}\right. } \end{aligned}$$
(1)

Here, \(\delta ^{\text {in}}(v)\) and \(\delta ^{\text {out}}(v)\) denote the set of incoming and outgoing arcs of node v, respectively; for \(B\subseteq A\), let \(x(B):=\sum _{a\in B}x_a\). In the following, whenever we refer to a flow, we mean a flow satisfying the given demands, i.e., Constraints (1), unless stated otherwise.

The following classical integrality property of network flows (see, e.g., [1, Theorem 9.10]) follows, for example, from the fact that the node-arc incidence matrix, which implicitly occurs on the left-hand side of (1), is totally unimodular.

Theorem 1

If the demands \(d_1,\dots ,d_k\) are all integral, then any flow x can be written as a convex combination of integral flows such that each such integral flow \(y\in \mathbb {Z}_{\ge 0}^A\) satisfies

$$\begin{aligned} \lfloor x_a\rfloor \le y_a\le \lceil x_a\rceil \qquad \text {for all}~a\in A. \end{aligned}$$

In particular, there exists an integral flow y obeying these upper and lower bounds.

1.2 Single source unsplittable flows

In 1996, Kleinberg [7] introduced single source unsplittable flows. A flow is called unsplittable if the entire demand of each commodity is routed along one path from the source to its destination node. That is, an unsplittable flow y can be specified as follows: for all \(i=1,\dots ,k\), there is one s-\(t_i\)-path \(P_i^{y}\) in D such that

$$\begin{aligned} y_a = \sum _{i:a\in P_i^{y}}d_i\qquad \text {for all}~a\in A. \end{aligned}$$

In order to emphasize the fact that a particular flow x is not necessarily unsplittable, we sometimes refer to x as a fractional flow in this case. For the special case of unit demands, a flow is unsplittable if and only if it is integral.

1.3 Related literature

Single source unsplittable flows constitute a special case of more general unsplittable flows where each commodity has its own source and destination node. General unsplittable flows have been well studied in the literature as an interesting extension of disjoint paths. For instance, if we are given arc capacities and demands for each commodity and look for an unsplittable flow of minimum congestion, i.e., of minimum overload of arc capacities, Raghavan and Thompson [13, 14] present an approximation algorithm based on their randomized rounding technique. We refer to the survey [10] by Kolliopoulos for an overview of results on general unsplittable flows.

The problem of finding a single source unsplittable flow in a directed graph with capacities on the arcs contains several well-known NP-complete problems as special cases, e.g., Partition, Bin Packing, or even scheduling parallel machines with makespan objective; we refer to Kleinberg’s PhD thesis [7] for more details and other special cases.

Kleinberg [7], Dinitz et al. [4], Kolliopoulos and Stein [11], and Skutella [16] present approximation algorithms for various optimization versions of the single source unsplittable flow problem. Du and Kolliopoulos [5] have implemented and empirically tested several of those approximation algorithms.

Baier et al. [2] introduce the following interesting relaxation of unsplittable flows. For a given \(k\ge 1\), a k-splittable flow must route each commodity along at most k paths. In particular, 1-splittable flows are unsplittable flows. It follows from the classical flow decomposition theorem that k-splittability is not a meaningful restriction for \(k\ge |A|\). Single source k-splittable flows are studied, e.g., by Kolliopoulos [9], Koch, Skutella, and Spenke [8], as well as Salazar and Skutella [15].

The central result in the seminal paper of Dinitz et al. [4] is the following theorem on single source unsplittable flows, where the maximum demand value is denoted by \(d_{\max }:=\max \{d_1,\dots ,d_k\}\).

Theorem 2

For a given flow x, there exists an unsplittable flow y such that

$$\begin{aligned} y_a \; \le \; x_a +d_{\max } \qquad \text {for all}~a \in A. \end{aligned}$$
(2)

The proof of this theorem given in [4] is in fact algorithmic, that is, the authors provide an efficient algorithm that turns the given flow x into an unsplittable flow y satisfying the arc-wise upper bounds (2). We give a rather short and intuitive sketch of their procedure.

Starting from the fractional flow x, the algorithm aims to iteratively move destination nodes towards the source node s by repeatedly augmenting flow along residual cycles featuring a special property. Intuitively, in order to find such a cycle, one starts at an arbitrary node in the graph and moves forward along arcs whenever possible, and only moves backward (i.e., in the opposite direction of arcs) if a destination node without outgoing arcs is reached. As soon as a cycle occurs, flow is decreased along the forward arcs of the cycle and increased along the backward arcs until one can either remove a forward arc with no more flow on it or move a destination node \(t_i\) towards s along an incoming (backward) arc with flow value at least \(d_i\). This process is iterated until all destination nodes reach the source node s. The resulting unsplittable flow y sends each commodity i along the s-\(t_i\)-path through which its destination node \(t_i\) has moved towards the sink (in opposite direction).

The proof implies the following strengthening of Theorem 2 which can also be found in [4].

Corollary 1

For a given flow x, there is an unsplittable flow y such that, for every arc \(a \in A\), the sum of all but one of the demands routed along a is at most \(x_a\).

1.4 Contribution and outline

In Sect. 2 we present a considerably simpler one-page proof of Theorem 2 and Corollary 1, based upon an entirely new approach. Dinitz, Garg, and Goemans start with the fractional flow \(y:=x\) and then iteratively modify y, always maintaining Property (2), until y is unsplittable. In contrast, we start with an arbitrary unsplittable flow y violating Property (2) and then iteratively modify y, always maintaining an unsplittable flow, until y meets Property (2).

In Sect. 3, using a similar approach, we derive the following new covering analogue of the packing result in Theorem 2:

Theorem 3

For a given flow x, there exists an unsplittable flow y such that

$$\begin{aligned} y_a\ge x_a-d_{\max }\qquad \text {for all}~a\in A. \end{aligned}$$
(3)

To prove this result, we again iteratively turn an arbitrary unsplittable flow into one that meets Property (3). In contrast to the packing result, however, the proof of the covering bounds in (3) turns out to be somewhat more intricate, requiring several additional insights and arguments.

Similar in spirit to Corollary 1, our proof implies the following strengthening of Theorem 3.

Corollary 2

For a given flow x, there exists an unsplittable flow y such that \(y_a \ge \tilde{x}_a -\max _{i}d_{i}\) for all \(a \in A\), where the maximum is only taken over those commodities i with arc a lying on some s-\(t_i\)-path.

Section 4 considers upper bounds (2) and lower bounds (3) simultaneously. Using techniques introduced by Kolliopoulos and Stein [11], Skutella [16], and Martens et al. [12], we obtain the following generalization of Theorem 1:

Theorem 4

If the demand values are integer multiples of each other, i.e., \(d_k \mid d_{k-1} \mid \ldots \mid d_1\), then any flow x can be written as a convex combination of unsplittable flows such that each such unsplittable flow y satisfies

$$\begin{aligned} x_a -d_{\max } \; \le \; y_a \; \le \; x_a+d_{\max } \quad \text {for all } a \in A. \end{aligned}$$
(4)

In particular, for arbitrary cost \(c=(c_a)_{a \in A}\) on the arcs, there exists an unsplittable flow y obeying Property (4) such that \(c(y) \le c(x)\).

Finally, for arbitrary demand values, we obtain the following slightly weaker bounds:

Theorem 5

For a given flow x, there exists an unsplittable flow y such that

$$\begin{aligned} \frac{x_a}{2} -d_{\max } \; \le \; y_a \; \le \; 2\, x_a+d_{\max } \quad \text {for all } a \in A. \end{aligned}$$
(5)

We conclude in Sect. 5 by pointing out several interesting open problems and stating a stronger version of Goemans’ unsplittable flow conjecture.

1.5 Preliminaries

We assume throughout this paper that, without loss of generality, each node \(v\in V\) lies on an s-\(t_i\)-path for some \(i\in \{1,\dots ,k\}\). Paths are considered to be subsets of the given arc set A. For a path Q and two nodes \(v,w\in V\) lying on path Q (with v being visited first), the v-w-subpath of Q is denoted by \(Q|_{[v,w]}\). Finally, for a subset of nodes \(X\subseteq V{\setminus }\{s\}\), let \(d(X):=\sum _{i:t_i\in X}d_i\) denote the total demand of sinks in X.

2 A short proof of the Dinitz–Garg–Goemans Theorem

Our novel proof of Theorem 2 relies on a simple augmentation step, called upper bound preserving (UBP) augmentation step. For a given flow x and an arbitrary unsplittable flow y, we say that a node v is UBP-reachable w.r.t. y if there exists an s-v-path Q such that

$$\begin{aligned} y_a \; \le \; x_a \qquad \text {for all}~a \in Q. \end{aligned}$$

A UBP augmentation step for an unsplittable flow y is defined as follows: Given a node v that is UBP-reachable w.r.t. y along path Q and a commodity i such that node v lies on path \(P_i^{y}\), reroute commodity i from s to v along path Q. This results in a new unsplittable flow \(y'\) using a new s-\(t_i\)-path \(P_i^{y'}\) with \(P_i^{y'}|_{[s,v]}=Q\); see Fig. 1 for an illustration. Notice that

$$\begin{aligned} y'_a \le x_a +d_i\qquad \text {for all}~a \in P_i^{y'}|_{[s,v]}, \end{aligned}$$

which explains why the augmentation step is called upper bound preserving.

Fig. 1
figure 1

For a given unsplittable flow y, let v be UBP-reachable w.r.t. y along a path Q (illustrated dashed on the left) and let i be a commodity such that v lies on path \(P_i^y\). A UBP augmentation step reroutes commodity i from s to v along path Q. The resulting unsplittable flow \(y'\) is illustrated on the right

If an unsplittable flow \(y'\) results from y by a finite sequence of UBP augmentation steps, we write . We say that a node v is eventually UBP-reachable (eUBP-reachable) w.r.t. y if there exists an unsplittable flow \(y'\) with  such that v is UBP-reachable w.r.t. \(y'\).

Lemma 1

For any unsplittable flow y, all nodes in V are eUBP-reachable w.r.t. y.

Proof

Assume by contradiction that there exists an unsplittable flow y such that the set \(X_y\) of eUBP-reachable nodes w.r.t. y is a proper subset of V, i.e., \(X_y\subsetneq V\). Applying UBP augmentation steps to y cannot enlarge the set of eUBP-reachable nodes. Hence, if we choose y such that \(X_y\) is inclusion-wise minimal, then \(X_y=X_{y'}=:X\) for any unsplittable flow \(y'\) with . We prove three important properties of y and X:

  1. (P1)

    \(y_a>x_a\) for all \(a \in \delta ^{\text {out}}(X)\).

    Indeed, if there is an arc \(a=(v,w) \in \delta ^{\text {out}}(X)\) with \(y_a \le x_a\), let \(y'\) be an unsplittable flow resulting from y by a shortest possible sequence of UBP augmentation steps such that v is UBP-reachable w.r.t. \(y'\). As long as node v is not UBP-reachable, flow on arc a cannot increase during a UBP augmentation step. Hence, \(y'_a \le y_a \le x_a\) which implies that not only v but also w is UBP-reachable w.r.t. \(y'\). Hence, \(w \in X\), a contradiction.

  2. (P2)

    \(y(\delta ^{\text {in}}(X)) = \sum _{a \in \delta ^{\text {in}}(X)} y_a >0\).

    By assumption, there is a path from source \(s\in X\) to any node in \(V{\setminus } X\). Hence, \(\delta ^{\text {out}}(X) \ne \varnothing \). Both flows x and y satisfy the same set of demands. In particular, \(y(\delta ^{\text {out}}(X))-y(\delta ^{\text {in}}(X))=d(V{\setminus } X)=x(\delta ^{\text {out}}(X))-x(\delta ^{\text {in}}(X))\). But, by Property (P1), \(y(\delta ^{\text {out}}(X))>x(\delta ^{\text {out}}(X))\). Therefore, \(y(\delta ^{\text {in}}(X))>0\).

  3. (P3)

    \(y'(\delta ^{\text {in}}(X))\le y(\delta ^{\text {in}}(X))\) for each unsplittable flow \(y'\) with .

    It is sufficient to consider the case that \(y'\) is obtained from y by one UBP augmentation step, which reroutes commodity i from source s to some node \(v \in X\) along an s-v-path Q. By definition of X, path Q must remain within X. Moreover, \(P_i^{y}|_{[s,v]}\) may either remain within X, implying that the total in-flow of y does not change; or it may exit and re-enter X, implying that \(y(\delta ^{\text {in}}(X))\) decreases by (a multiple of) demand \(d_i\).

Since there are only finitely many different unsplittable flows and in view of Property (P3), we choose y with \(y(\delta ^{\text {in}}(X))\) minimal. By Property (P2), there exists an arc \(a=(w,v) \in \delta ^{\text {in}} (X)\) such that \(y_a>0\). Since \(v \in X\), there is an unsplittable flow \(y'\) with  such that v is UBP-reachable w.r.t. \(y'\) via an s-v-path Q; see Fig. 2.

Fig. 2
figure 2

Arc \(a=(w,v) \in \delta ^{\text {in}} (X)\) is used by path \(P_i^{y'}\), illustrated solid, for some commodity i. Its demand \(d_i\) can be rerouted from s to v along an s-v-path Q, illustrated dashed

Fig. 3
figure 3

An instance with k demands of value 1. Flow x is given as follows: solid arcs have flow value \(\frac{k}{k+1}\) and dashed arcs carry flow value \(\frac{1}{k+1}\). Notice that any unsplittable flow sends zero flow on some solid arc

Flow on arc a remains unchanged, i.e., \(y'_a=y_a\), and there exists a commodity i with \(a \in P_i^{y'}\). Rerouting commodity i from s to v along Q decreases \(y'(\delta ^{\text {in}}(X))=~y(\delta ^{\text {in}}(X))\), contradicting its minimality. \(\square \)

In order to prove Theorem 2, we start with an arbitrary unsplittable flow \(y_0\). By Lemma 1, each of the destination nodes \(t_i\), \(i=1, \ldots , k\,\) is eUBP-reachable w.r.t. any unsplittable flow, i.e., \(t_i\) is UBP-reachable w.r.t. some unsplittable flow via an s-\(t_i\)-path Q. We apply a UBP augmentation step, rerouting demand \(d_i\) along path Q. The resulting flow \(y_i\) satisfies the desired arc-wise upper bound on all arcs lying on the new s-\(t_i\)-path \(P_i^{y_i}=Q\).

Whenever a commodity i is routed properly, meaning that \(y_i\) satisfies the arc-wise upper bound on all arcs, it remains so, independently of which UBP augmentation steps may follow. Hence, if we apply this procedure successively to each of the destination nodes \(t_i\), \(i=1, \ldots , k\,\), the commodities \(1, \ldots , i\) are properly routed in the resulting flow \(y_i\). Therefore, the final flow \(y_k\) satisfies the arc-wise upper bound on all arcs. This concludes the proof of Theorem 2.

Notice that for every arc \(a \in A\) and for the commodity j being routed along a at last, the final unsplittable flow y satisfies \(y(a)-d_j \le x(a)\). This implies that Corollary 1 can also be deduced from the previously presented proof of Theorem 2.

3 Unsplittable flows with arc-wise lower bounds

Notice that the lower bound (3) in Theorem 3 is tight in the following sense: For each \(\varepsilon >0\), there exists a digraph D together with a fractional flow x such that no unsplittable flow y satisfies \(y_a\ge x_a-d_{\max }+\varepsilon \), for all \(a\in A\); see the instance depicted in Fig. 3 with \(k=\lceil 1/\varepsilon \rceil \).

We point out that the techniques provided in [4] are not adaptable for handling arc-wise lower bounds, as illustrated in Fig. 4. By adding commodities and expanding the given graph, the violation of lower bounds can be arbitrarily large.

There does not seem to be any analogous alternative operation for lower bounds. Consequently, even though the two problems regarding arc-wise upper and lower bounds seem similar in spirit, we need to develop new tools in order to solve the above mentioned problem.

Fig. 4
figure 4

Let the digraph have three commodities with demand 1, as illustrated on the left, and let the fractional flow x be given as follows: \(x_{\text {solid}}=1\)\(x_{\text {dashed}}=1-\epsilon \)\(x_{\text {dotted}}=\epsilon \), and \(x_{\text {red}}=3-3 \epsilon \) for some \(\epsilon >0\). The algorithm in [4] first creates an alternating cycle including the red arc as a forward arc. Hence, we decrease flow on the red arc by \(1-\epsilon \) and move one demand towards source s along its corresponding dotted arc. The remaining instance with two commodities and \(x'_{\text {red}}=2-2 \epsilon \) is illustrated on the right. Any further step again decreases flow on the red arc by \(1-\epsilon \), hence violating the desired lower bound on the red arc

3.1 A proof for unsplittable flows satisfying arc-wise lower bounds

The proof of Theorem 3 is based on a similar approach as our proof of the Dinitz-Garg-Goemans Theorem in Sect. 2, yet turns out to be somewhat more intricate. Since we are no longer interested in upper bounds but in lower bounds, we now use lower bound preserving (LBP) augmentation steps: for an unsplittable flow y, we say that node v is LBP-reachable w.r.t. y if there is a commodity i whose s-\(t_i\)-path \(P^{y}_i\) passes through node v and the s-v-subpath \(P^{y}_i|_{[s,v]}\) satisfies

$$\begin{aligned} y_a\ge x_a\qquad \text {for all}~a\in P^{y}_i|_{[s,v]}. \end{aligned}$$

To emphasize the role of commodity i, we also say that node v is LBP-reachable for commodity i w.r.t. y in this case.

An LBP augmentation step for an unsplittable flow y is defined as follows: Given a node v that is LBP-reachable for commodity i w.r.t. y, reroute commodity i from source s to node v along an arbitrary s-v-path Q. This results in a new unsplittable flow \(y'\) using a new s-\(t_i\)-path \(P^{y'}_i\) with \(P^{y'}_i|_{[s,v]}=Q\); see Fig. 5 for an illustration.

Fig. 5
figure 5

For a given unsplittable flow y, let v be LBP-reachable for some commodity i w.r.t. y. An LBP augmentation step reroutes commodity i from s to v along an arbitrary s-v-path Q (illustrated dashed on the left). The resulting unsplittable flow \(y'\) is illustrated on the right

Notice that for each \(a \in P^{y}_i|_{[s,v]}\) we have \(y'_{a} \ge x_a -d_i\), which explains why the augmentation step is called lower bound preserving. If an unsplittable flow \(y'\) results from y by a finite sequence of LBP augmentation steps, we write . We say that node v is eventually LBP-reachable (eLBP-reachable) for commodity i w.r.t. y if there is an unsplittable flow \(y'\) with  such that v is LBP-reachable (for commodity i) w.r.t. \(y'\).

Proposition 1

Let y be an unsplittable flow and v a node on path \(P_i^y\) for some commodity i. If v is eLBP-reachable w.r.t. \(y'\) for all \(y'\) with , then v is eLBP-reachable for commodity i w.r.t. y.

Proof

Assume by contradiction that v is not eLBP-reachable for commodity i w.r.t. y. Then any \(y'\) with  constitutes another counterexample. In particular, node v is on path \(P_i^{y'}\) and the s-v-subpath \(P_i^{y'}|_{[s,v]}\) contains at least one arc a such that \(y'_a < x_a\). Let \(a^{y'}=(u^{y'},w^{y'})\) be such arc closest to v. Let \(\gamma ^{y'}\) be the number of arcs on \(P_i^{y'}|_{[w^{y'},v]}\).

Fig. 6
figure 6

Arc \(a^{y}=(u^{y},w^{y})\) satisfies \(y_{a^y}<x_{a^y}\) and is closest to v among all such arcs on path \(P_i^{y}|_{[s,v]}\). This implies that all arcs a on \(P_i^{y}|_{[w^{y},v]}\), illustrated solid, carry flow \(y_a\ge x_a\). The number of arcs on \(P_i^{y}|_{[w^{y},v]}\) is denoted by \(\gamma ^{y}\)

Choose counterexample y such that the following two criteria are met in the given order:

  1. (i)

    \(\gamma ^{y}\) is maximal,

  2. (ii)

    \(y_{a^{y}}\) is maximal.

The situation is depicted in Fig. 6.

Consider a sequence of unsplittable flows \(y=y_0,y_1,\dots ,y_q\), where each \(y_j\) results from \(y_{j-1}\) via an LBP augmentation step, such that there is a node w on \(P_i^{y}|_{[w^y,v]}\) that is LBP-reachable w.r.t. \(y_q\) but no node on \(P_i^{y}|_{[w^y,v]}\) is LBP-reachable w.r.t. \(y_j\) for any \(j<q\). Such a sequence exists since node v is eLBP-reachable w.r.t. y. As no node on \(P_i^{y}|_{[w^y,v]}\) is LBP-reachable w.r.t. \(y_j\) for any \(j<q\), flow on the arcs of \(P_i^{y}|_{[u^{y},v]}\) is never decreased during these LBP augmentation steps and \(P_i^{y}|_{[u^{y},v]}=P_i^{y_j}|_{[u^{y},v]}\) for all \(j\le q\). In particular, due to (i) and (ii), \(\gamma ^{y_j}=\gamma ^y\)\(a^{y_j}=a^y\), and the flow on arc \(a^y\) remains unchanged for all \(j\le q\).

Fig. 7
figure 7

Node w is LBP-reachable for some commodity j w.r.t. \(y_q\); path \(P_j^{y_q}\) is illustrated dashed. The demand \(d_j\) can be rerouted along the s-w-subpath of \(P_i^{y_q}\), now illustrated solid

Finally, node w is LBP-reachable for some commodity w.r.t \(y_q\); see Fig. 7. Rerouting that commodity along \(P_i^{y}|_{[s,w]}\) strictly increases flow on \(a^y\), contradicting the choice of y in terms of (i), (ii). \(\square \)

Lemma 2

For any unsplittable flow y, all nodes in V are eLBP-reachable for some commodity w.r.t. y.

Proof

Assume by contradiction that there exists an unsplittable flow y such that the set \(X_y\) of eLBP-reachable nodes w.r.t. y is a proper subset of V, i.e., \(X_y\subsetneq V\). Applying LBP augmentation steps to y cannot enlarge the set of eLBP-reachable nodes. Hence, if we choose y such that \(X_y\) is inclusion-wise minimal, then \(X_{y}=X_{y'}=:X\) for any unsplittable flow \(y'\) with . Notice that an LBP augmentation step cannot decrease the outgoing flow \(y(\delta ^{\text {out}}(X))\). Indeed, if a node \(v\in X\) is LBP-reachable for some commodity i w.r.t. y, then all nodes on the s-v-subpath \(P_i^{y}|_{[s,v]}\) are LBP-reachable for commodity i w.r.t y. Hence, \(P_i^{y}|_{[s,v]}\) remains within node set \(X_y\) and rerouting commodity i cannot decrease \(y(\delta ^{\text {out}}(X))\). We can thus conclude that \(y'(\delta ^{\text {out}}(X))\ge y(\delta ^{\text {out}}(X))\) for each unsplittable flow \(y'\) with . Since there are only finitely many different unsplittable flows and in view of this property, choose y with \(y(\delta ^{\text {out}}(X))\) maximal. We prove two important properties of y and X:

  1. (P1’)

    \(\delta ^{\text {in}}(X)=\varnothing \). Indeed, if there is an arc \((w,v)\in \delta ^{\text {in}}(X)\), let \(y'\) with  be such that node \(v\in X\) is LBP-reachable for some commodity i w.r.t. \(y'\). Rerouting commodity i along an arbitrary s-v-path Q with \((w,v) \in Q\) increases flow on (wv) as well as on some arc in \(\delta ^{\text {out}}(X)\), contradicting the maximality of \(y(\delta ^{\text {out}}(X))\).

  2. (P2’)

    There is an arc \(a \in \delta ^{\text {out}}(X)\) with \(y_a>0\) and \(y_a\ge x_a\). Consider a node \(v\in V{\setminus } X\). By assumption, there is a v-\(t_i\)-path in D for some commodity i. By Property (P1’), node \(t_i\) must also lie in \(V{\setminus } X\). Therefore, again by Property (P1), we have

    $$\begin{aligned} y(\delta ^{\text {out}}(X))=x(\delta ^{\text {out}}(X))=d(V{\setminus } X)\ge d_i>0. \end{aligned}$$

    This implies the existence of arc a with the properties stated above.

Consider an arc \(a=(v,w)\in \delta ^{\text {out}}(X)\) as in (P2’) and some commodity i with \(a \in P_i^y\). Since \(w\in V{{\setminus }}X\) and \(\delta ^{\text {in}}(X)=\varnothing \) by (P1’), it is impossible for any sequence of LBP augmentations to add or delete flow on arc a. In particular, \(y'_a=y_a\ge x_a\) and \(a \in P_i^{y'}\) for each unsplittable flow \(y'\) with . By Proposition 1, node v is eLBP-reachable for commodity i w.r.t. y. Hence node w is eLBP-reachable for commodity i w.r.t. y, a contradiction to \(w\not \in X\). \(\square \)

Lemma 3

For any unsplittable flow y and any arc a, there exists an unsplittable flow \(y'\) with  such that \(y'_a \ge x_a\).

Proof

Assume by contradiction that there exists an unsplittable flow y and an arc \(a=(v,w) \in A\) such that \(y'_a < x_a\) for any \(y'\) with . Notice that flow on arc a can never be decreased by an LBP augmentation step. We may choose y in such a way that \(y_a\) is maximal. By Lemma 2, node w is LBP-reachable for some commodity i w.r.t. an unsplittable flow \(y'\) with . Rerouting commodity i along any s-w-path Q with \(a \in Q\) increases the flow on arc a, hence contradicting its maximality. \(\square \)

We can now prove Theorem 3: Let y be an arbitrary unsplittable flow. By Lemma 3, for each arc \(a \in A\) there exists an unsplittable flow \(y'\) with  such that \(y'_a\ge x_a\). Notice that any flow resulting from \(y'\) by a sequence of LBP augmentation has a flow value on a of at least \(x_a -d_{\max }\). Going through all arcs successively leads to a final unsplittable flow with the desired properties. This concludes the proof of Theorem 3.

In order to prove Corollary 2, notice that for every arc \(a \in A\) and for the last commodity j being removed from a in an LBP augmentation step, the final unsplittable flow y satisfies \(y(a)+d_j \ge x(a)\). This implies that

$$\begin{aligned} y(a) \; \ge \; x(a) - d_j \; \ge \; x_a - \max _i d_i, \end{aligned}$$

where the maximum is only taken over those commodities i such that arc a lies on some s-\(t_i\)-path.

3.2 Problem variants for unsplittable flows satisfying arc-wise lower bounds

In the context of unsplittable flows respecting arc-wise upper bounds, several interesting problem variants have been considered in the literature; see, e.g., [7]. Theorem 2 immediately implies approximation results for the minimum congestion problem whose objective is to bound the violation of given upper bounds (arc capacities). Another prominent problem, the minimum number of rounds problem, asks for a partition of the set of commodities into a minimum number of subsets (rounds) such that each subset can be routed unsplittably without violating given arc capacities. Finally, the maximum routable demand problem asks for a feasible (w.r.t. arc capacities) unsplittable routing of a subset of commodities of maximum total demand. We refer to [4] for further details.

With a view to these optimization problems, the (fractional) flow x in Theorem 2 plays the role of a solution to a fractional relaxation obeying given arc capacities. Similarly, Theorem 3 is relevant for unsplittable flow problems with lower capacities on the arcs. If we assume that a given (fractional) flow x obeys lower arc capacities, a meaningful question in this context is, how many copies of the commodities are needed such that one can find an unsplittable routing y of all copies such that \(y_a\ge x_a\) for all arcs \(a \in A\).

Corollary 3

Given a fractional flow x, let \(\alpha \ge 1\) be such that \(\alpha \cdot x_a\ge \max _{i}d_i\) for all arcs \(a\in A\), where the maximum is taken over all i with arc a lying on an s-\(t_i\)-path. Then, at most \(\lceil 1+\alpha \rceil \) copies of commodities are necessary in order to find an unsplittable routing y of all those copies such that \(y_a \ge x_a\) for all \(a \in A\).

Proof

Define \(\tilde{x}\) by \(\tilde{x}_a = \lceil 1+\alpha \rceil \cdot x_a\) for each \(a \in A\). Hence \(\tilde{x}\) satisfies \(\lceil 1+\alpha \rceil \) copies of each demand \(d_i\), for \(i=1,\dots ,k\). By Corollary 2, there exists an unsplittable flow y satisfying \(\lceil 1+\alpha \rceil \) copies of each demand \(d_i\)\(i=1,\dots ,k\), such that \(y_a \ge \tilde{x}_a -\max _{i}d_{i}\) for all \(a \in A\), where the maximum is taken over all commodities i with arc a lying on an s-\(t_i\)-path. Since \(\alpha \cdot x_a \ge \max _{i} d_i\) for all \(a \in A\), and by definition of \(\tilde{x}\), we get \(y_a\ge \lceil 1+\alpha \rceil \cdot x_a -\alpha \cdot x_a\ge x_a\), for all \(a\in A\). \(\square \)

4 Combining lower and upper bounds

In this section we obtain results on unsplittable flows that simultaneously obey arc-wise upper and lower bounds with respect to the given fractional flow x. We first consider the special case where demands are multiples of each other, i.e., \(d_k \mid d_{k-1} \mid \ldots \mid d_1\), and show how Theorem 4 can be obtained via methods introduced by Kolliopoulos and Stein [11], Skutella [16], and Martens et al. [12]. To make the terminology precise, for \(a,b\in \mathbb {R}_{>0}\) we write \(a\mid b\) if there is an integer \(c\in \mathbb {Z}\) such that \(a\cdot c=b\). In this case we say that b is a-integral.

Proof of Theorem 4

In the considered case, the demands are all \(d_k\)-integral for the minimum demand value \(d_k\). By scaling the demand values and the given flow x accordingly, we may assume that \(d_k=1\) such that all demands are integral. Therefore, by Theorem 1, the given fractional flow x is a convex combination of \(d_k\)-integral flows whose flow values on the arcs differ from x by (strictly) less than \(d_k\). It therefore suffices to show that any \(d_k\)-integral flow can be written as a convex combination of unsplittable flows whose flow values differ by at most \(d_1-d_k\). The proof of the following proposition thus concludes the proof of Theorem 4. \(\square \)

Proposition 2

If \(d_k \mid d_{k-1} \mid \ldots \mid d_1\), then any \(d_k\)-integral flow x can be written as a convex combination of unsplittable flows such that each such unsplittable flow y satisfies

$$\begin{aligned} x_a -(d_1-d_k) \; \le \; y_a \; \le \; x_a+(d_1-d_k) \quad \text {for all } a \in A. \end{aligned}$$

Proof

We use induction on the number of commodities k. For the case \(k=1\), the \(d_k\)-integral flow x is, in fact, an unsplittable flow and we are done. Thus assume that \(k>1\) and the proposition holds for the case of \(k-1\) commodities.

Any \(d_k\)-integral flow x can be easily interpreted to route commodity k unsplittably: choose a flow-carrying s-\(t_k\)-path \(P_k\), decrease the flow along \(P_k\) by \(d_k\), and delete commodity k from the instance. This leaves us with a \(d_k\)-integral flow \(x'\) satisfying the remaining demands \(d_{k-1},\dots ,d_1\), which are all \(d_{k-1}\)-integral. Notice that it suffices to show that \(x'\) can be written as a convex combination of unsplittable flows satisfying demands \(d_{k-1},\dots ,d_1\) such that each such unsplittable flow y satisfies

$$\begin{aligned} x'_a -(d_1-d_k) \; \le \; y_a \; \le \; x'_a+(d_1-d_k) \quad \text {for all } a \in A. \end{aligned}$$

By scaling the demand values \(d_k, \ldots , d_1\) and flow \(x'\) accordingly, we may assume \(d_{k-1}=1\) such that all remaining demands \(d_{k-1},\dots ,d_1\) are integral. Thus, by Theorem 1 and since \(d_k\mid 1\), the \(d_k\)-integral flow \(x'\) can be written as a convex combination of integral flows with each such integral flow \(x''\) satisfying

$$\begin{aligned} x'_a -(1-d_k) \; \le \; x''_a \; \le \; x'_a+(1-d_k)\quad \text {for all } a \in A. \end{aligned}$$
(6)

By induction, each such integral flow \(x''\) can again be written as a convex combination of unsplittable flows y with

$$\begin{aligned} x''_a -(d_1-1) \; \le \; y_a \; \le \; x''_a+(d_1-1)\quad \text {for all } a \in A. \end{aligned}$$
(7)

In summary, \(x'\) can be written as a convex combination of unsplittable flows y such that, due to (6) and (7),

$$\begin{aligned} x'_a -(d_1-d_k) \; \le \; y_a \; \le \; x'_a+(d_1-d_k)\quad \text {for all } a \in A. \end{aligned}$$

This concludes the proof. \(\square \)

It is not difficult to see that there is an efficient algorithm that computes the convex combinations in Theorem 4 and Proposition 2. We refer to [12, 16] for further details. Moreover, analogously to [16], Theorem 4 can be slightly strengthened:

Corollary 4

If \(d_k \mid d_{k-1} \mid \ldots \mid d_1\), then any flow x can be written as a convex combination of unsplittable flows such that each such unsplittable flow y satisfies

$$\begin{aligned} x_a -d_{\max } \; \le \; y_a \; \le \; x_a+\max _{i: a \in P^y_i} d_i \quad \text {for all } a \in A. \end{aligned}$$

We finally turn to the proof of Theorem 5. The basic idea is to round down the demand values such that the rounded demands satisfy the conditions of Theorem 4. More precisely, the rounded demand values are of the form \(\bar{d}_i=2^{\lfloor \log (d_i/d_{\min })\rfloor }d_{\min }\) where \(d_{\min }:=\min _{i=1,\dots ,k}d_i\). The flow x has to be modified accordingly in a careful way. Then, we apply Theorem 4 to the modified flow \(\bar{x}\) which yields an unsplittable flow \(\bar{y}\) satisfying the rounded demands. Finally, we increase flow on the paths of \(\bar{y}\) to create an unsplittable flow y meeting the original demand values. Further details are provided in Algorithm 1. Theorem 5 then follows from the next lemma.

figure a

Lemma 4

Algorithm 1 computes an unsplittable flow y satisfying (5).

Proof

To prove correctness of Algorithm 1, we need to argue that there is a flow \(\bar{x}\) satisfying demands \(\bar{d_1}, \ldots , \bar{d_k}\) with \(\frac{x_a}{2}\le \bar{x}_a\le x_a\) for all \(a \in A\).

By definition, \(\bar{d_i}\le d_i<2\bar{d_i}\) and, thus, \(d_i-\bar{d_i}<\frac{d_i}{2}\) for all \(i=1,\dots ,k\). Therefore, since the flow \(\frac{x}{2}\) satisfies demands \(\frac{d_1}{2},\dots ,\frac{d_k}{2}\), the well known cut condition for network flows (see, e.g., [1]) implies that there is a flow \(x'\) satisfying demands \(d_1-\bar{d_1},\dots ,d_k-\bar{d_k}\) with \(x'_a\le \frac{x_a}{2}\) for all \(a\in A\). This implies that \(\bar{x}:=x-x'\) has the desired properties stated above.

It remains to show that y satisfies the lower and upper bounds (5). Applying Corollary 4 (or Theorem 4) to \(\bar{x}\) yields an unsplittable flow \(\bar{y}\) such that

$$\begin{aligned} \bar{x}_a -\bar{d}_{\max } \; \le \; \bar{y}_a \; \le \; \bar{x}_a +\bar{d}_{\max } \quad \text {for all } a \in A. \end{aligned}$$

By construction of flow y, we obtain the lower bounds

$$\begin{aligned} y_a \; \ge \; \bar{y}_a \; \ge \; \bar{x}_a -\bar{d}_{\max } \; \ge \; \frac{x_a}{2} - d_{\max } \quad \text {for all } a \in A. \end{aligned}$$

In order to prove the upper bounds, let \(d_{i_a}\) be the maximum demand value routed across arc \(a\in A\). Corollary 4 yields \(\bar{y}_a \le \bar{x}_a + \bar{d}_{i_a}\) for all \(a\in A\). Therefore,

$$\begin{aligned} y_a = \sum _{\begin{array}{c} i: a \in P_i, \\ i \ne i_a \end{array}} d_i +d_{i_a}\; \le \; 2 \sum _{\begin{array}{c} i: a \in P_i, \\ i \ne i_a \end{array}} \bar{d_i} +d_{i_a}\; \le \; 2\,\bar{x}_a +d_{i_a}\; \le \; 2\, x_a + d_{\max }. \end{aligned}$$

This concludes the proof. \(\square \)

5 Conclusion

We conclude by pointing out interesting open problems and conjectures related to the results presented in this paper.

While the original proof of Theorem 2 in [4] comes with a polynomial-time algorithm for computing an unsplittable flow y satisfying (2), our proof seems to only give rise to an exponential time algorithm. The number of augmentation steps needed to turn an arbitrary unsplittable flow into an unsplittable flow y satisfying (2) is in \(O\bigl ((k+2)^{n-1}\bigr )\), see Appendix A for further details. We conjecture, however, that there always exists a sequence of UBP augmentation steps leading to an unsplittable flow y satisfying (2) whose length is polynomially bounded. We also conjecture that a polynomially bounded sequence of LBP augmentation steps exists in the context of Theorem 3.

With respect to the combination of upper and lower bounds discussed in Sect. 4, we conjecture that the bounds given in Theorem 5 can be strengthened as follows:

Conjecture 1

For a given flow x, there exists an unsplittable flow y such that

$$\begin{aligned} x_a - d_{\max } \;\le \; y_a \;\le \; x_a + d_{\max } \quad \text {for all } a \in A. \end{aligned}$$

In [4], it has already been pointed out that one main application of the unsplittable flow problem is a parallel machine scheduling problem with makespan objective. In this context, Lars Rohwedder (personal communication, February 2020) pointed out a more general connection between unsplittable flows and machine scheduling. Proving Conjecture 1 in a constructive manner (i.e., giving an efficient algorithm that turns x into y), would imply a constant-factor approximation algorithm for the problem of minimizing the maximum flow-time in a setting of unrelated machines. The best known approximation factor for this problem is \(O(\log n)\), due to Bansal and Kulkarni [3]. Further details can be found in Appendix B.

We conjecture that any flow x can be written as a convex combination of unsplittable flows y satisfying (2) and (3). This can be equivalently stated as follows (cf., e.g., [12]):

Conjecture 2

Given arbitrary cost \(c=(c_a)_{a \in A}\) on the arcs and a (fractional) flow x, there exists an unsplittable flow y such that \(c(y)\le c(x)\) and

$$\begin{aligned} x_a - d_{\max } \;\le \; y_a \;\le \; x_a + d_{\max } \quad \text {for all } a \in A. \end{aligned}$$

This conjecture is a strengthening of a famous, yet still unresolved conjecture of Goemans (see [16]) which does not take the lower bounds on y into account. Theorem 4 implies that Conjecture 2 is true for the special case of demands that are multiples of each other (cp. Theorem 1 for the case of unit demands).

We hope that the new techniques and methods presented in Sects. 2 and 3 will turn out to be of further use and stimulate progress towards these open problems. They might also be useful in the context of k-splittable flows considered, e.g., in [9, 15].