Approximate Solution of LengthBounded Maximum Multicommodity Flow with Unit EdgeLengths^{†}^{†}thanks: This research is supported by the Russian Science Foundation grant 151110009.
Abstract
An improved fully polynomialtime approximation scheme and a
greedy heuristic for the fractional lengthbounded maximum
multicommodity flow problem with unit edgelengths are proposed.
Computational experiments are carried out on benchmark graphs and
on graphs that model software defined satellite networks to
compare the proposed algorithms and an exact linear programming
solver. The results of experiments demonstrate a tradeoff between
the computing time and the precision of algorithms under
consideration.
Keywords: Fully PolynomialTime Approximation Scheme, Quality of Service, Software Defined Satellite Network
Sobolev Institute of Mathematics, Siberian Branch of Russian Academy of Sciences, 4 Koptyug Ave., 630090 Novosibirsk, Russia
Yaliny Research and Development Center, Paveletskaya naberezhnaya 2 block 2, Moscow, 115114, Russia
1 Introduction
Research issues in telecommunications often involve requirements to quality of service such as bandwidth, delay, number of hops, etc. [14, 18]. These research issues may be interpreted as combinatorial optimization problems of finding a multicommodity flow through the network that satisfies some quality of service constraints.
Multicommodity flow (MCF) problems are defined on a directed graph with edge capacities and origintodestination pairs . These problems ask for a family of flows from to , so that some optimization criterion is maximized under the node flow conservation constraints and the requirement that the sum of flows on any edge does not exceed the capacity of the edge.
In particular, the maximum multicommodity flow problem (maximum MCF for short) is an MCF problem where the total flow needs to be maximized. Some authors assume that the maximum MCF also includes an assumption that the value of each flow is limited by a finite demand (see e.g. [18]).
A more general problem, called fractional lengthbounded maximum multicommodity flow (fractional lengthbounded maximum MCF for short), asks for computing the maximum MCF routed along a set of paths whose length does not exceed a specific bound. This problem was studied in [2, 3] assuming unbounded demands and in [5], assuming that finite demands are given. In particular, it was shown in [2] that the fractional lengthbounded maximum MCF is NPcomplete, while its special case where all edges have unit length is polynomially solvable.
A modification of the fractional lengthbounded maximum MCF with an additional constraint that the flow on all edges must be integervalued is called integral lengthbounded maximum MCF. The results from [9] show that even when there is no length constraint at all, the edge capacities are equal to 1, and the graph is outerplanar, this problem does not admit approximation algorithms with constant approximation ratios, unless P=NP. A result from [10] implies that the integral lengthbounded maximum MCF can not be approximated with a performance ratio for any in the special case where all edges have equal length and all edge capacities are equal to 1, assuming PNP. Complexity and nonapproximability of this problem was also studied in [2, 4].
Fully polynomial time approximation schemes (FPTAS) for fractional lengthbounded maximum MCF were proposed in [2, 5]. In [18], an FPTAS was shown to exist for a more general quality of serviceaware MCF problem (QoSaware maxflow). The present paper is aimed at fast approximate solution of a special case of fractional lengthbounded maximum MCF where all edges have the length equal to one.
In Section 2, we give a formal statement of fractional lengthbounded maximum MCF and describe some basic properties of this problem. In Section 3, using the approach from [7] and the improvement of [6] we develop an FPTAS for a special case of the problem where all edges have unit length. This FPTAS has a smaller time complexity compared to the FPTAS from [18] which was developed for arbitrary edge lengths. In Section 4, we propose a simple greedy heuristic applicable to fractional lengthbounded maximum MCF as well as integral lengthbounded maximum MCF (assuming unit edge lengths in both cases). In Section 5, we compare these algorithms to each other and to IBM CPLEX solver in computational experiments. The last section contains conclusions.
2 Problem Formulations and Basic Properties
A flow in a digraph from origin vertex to destination vertex is a nonnegative function such that for each node holds
and
is the amount of flow sent from to in . If are paths from to , then a sum of pathflows along gives a network flow from to again. Given that , we will say that is routed along the set of paths .
We will assume that flow of commodity has an origin and a destination . If are flows of commodities, then is called a multicommodity flow in .
An input instance of the maximum MCF consists of a directed network , where , an edge capacity function and a specification of commodity for . The objective is to maximize so that the sum of flows on any edge does not exceed and .
The fractional lengthbounded maximum MCF has the same input, extended by an upper bound and the edge lengths and asks for a maximum MCF where the sum of flows on any does not exceed , and the flow of each commodity is routed along a set of paths, where each path has a length at most . A special case of this problem where all edges have a unit length requires that the flow of each commodity is routed along a set of paths at most edges long. In what follows, we will denote fractional lengthbounded maximum MCF problem by LBMCF and its special case where all edges have unit length will be denoted by LBMCF1. Obviously, the maximum MCF may be considered a special case of LBMCF1, assuming . W.l.o.g. we will assume that all pairs are unique, since otherwise the demands with identical pairs may be summed together in one demand.
LBMCF1 is polynomially equivalent to its special case with unbounded demands. Indeed, given an LBMCF1 instance , , and , consider a new instance of this problem with unbounded demands on a network , obtained from as described below. Let be the set of all vertices where at least one commodity originating in is consumed, i.e. . For each vertex with :

New vertices are created and connected by arcs leading into vertex .

The new vertices are assigned to commodities with destinations in by a onetoone mapping. So we can denote the new vertices connected to as where is such that .

The capacities of edges leading from vertices to are set to .
In the new problem the demands are and the new upper bound is
There is a bijection between the sets of feasible solutions of the original instance and the new instance and the objective function values of the corresponding solutions are equal. Now since the special case of LBMCF1 with unbounded demands is solvable by LP methods in weakly polynomial time [2], the above reduction implies that LBMCF1 with finite demands is also solvable in weakly polynomial time (the same follows from the LP formulation of this problem (1)–(4) presented below). The question of solvability of LBMCF1 in strongly polynomial time remains open. In the special case of maximum MCF, a strongly polynomial algorithm is known [17]. Nevertheless, even in this special case existence of exact algorithms using the same combinatorial techniques as the FordFulkerson method for the singlecommodity flow is unlikely (see e.g. [15], § 70.13).
In the special case of maximum MCF there is a wellknown formulation the problem in terms of the LP using edge flows (see e.g. [11], § 11) with constraints and variables. Assuming that variables give the amount of flow of commodity over edge the LP model is as follows.
(1) 
(2) 
(3) 
(4) 
An LP formulation of LBMCF1, involving constraints and variables, may be constructed using a multicommodity flow in a supplementary timeexpanded network [12]. The node set contains a copy of the node set of graph for every discrete time step . For every directed edge there is an edge in from vertex in time layer to vertex . Besides that, contains edges for all A multicommodity flow is sought in this timeexpanded network under additional constraints which require that for each the sum of all flows traversing the edges is at most For all the origin of commodity is placed in the copy of vertex at level 1 and the destination is placed in the copy of vertex at level . The resulting LP formulation is as follows
(5) 
(6) 
(7) 
(8) 
(9) 
where variables give the amount of flow of commodity over edge .
The practice shows that large MCF problems require a long time and a great amount of memory to solve using the exact LP methods either in path flowbased or edge flowbased formulations. (see e.g. [15], § 70.13). For this reason, it is important to develop faster algorithms to solve MCF problems approximately and LBMCF1 among them.
A feasible solution to a maximization problem is called a approximate if it satisfies the inequality where and is the optimal objective function value. An algorithm is called a approximation algorithm if in a polynomially bounded time it outputs a approximate solution given a solvable problem instance. A family of approximation algorithms parameterized by , such that the time complexity of these algorithms is polynomially bounded in and in the problem instance length is called a fully polynomialtime approximation scheme (FPTAS).
3 Fully Polynomial Time Approximation Scheme
3.1 The Case of Unbounded Demands
This subsection presents an FPTAS for LBMCF1 with unbounded demands, which is developed analogously to the FPTAS for maximum MCF with unbounded demands [6].
Let denote the set of all paths from to in and let denote the subset of which consists of paths at most edges long. Besides that, put The main difference from the preceding algorithms [7, 6] is that instead of here we use and search for the shortest paths in by means of a truncated version of FordBellman algorithm.
LBMCF1 in the case of unbounded demands may be formulated as an LP problem (denoted by P) with an exponential number of path flow variables
(10) 
(11) 
(12) 
The dual problem with a polynomial number of variables is
(13) 
(14) 
(15) 
We first describe the general ideas of the approximation algorithm for problem P according to the framework of Garg and Könemann [7] and after that a faster version will be described in detail.
The algorithm proceeds by iterative improvements of primal solutions to problem P simultaneously computing a sequence of dual feasible solutions. The latter ones allow to estimate the precision of the current primal solution and to find directions for further improvement. It is convenient to compute a set of parameters , called edge lengths instead of the current dualfeasible solution . The dual feasible may be reconstructed by scaling where the factor is the length of a shortest path in .
The algorithm starts with length function for all using some , and with a primal solution . While there is a path in of length less than 1, the algorithm selects such a path and updates the primal and the dual variables as follows. For the primal solution , the algorithm increases the flow along path by the minimum edge capacity in the path. Let us denote this bottleneck capacity by . The updated primal solution may be infeasible, so in order to return to feasible region, all of its components are scaled down by an appropriate scalar. Now the dual variables are updated so that the higher the congestion of an edge the greater multiplier is given to its length:
In particular, the length of the bottleneck edge always increases by a factor of . The lengths of edges not on remain unchanged.
In order to find out if there is a path of length according to the current length function, it suffices to compute a shortest path for each commodity, e.g. by executing iterations of BellmanFord algorithm, which would take a total of time (see e.g. Theorem 2.3 in [13]). Let denote the current shortest path length and let be a lower bound on , which will be evaluated implicitly at each iteration of the algorithm as described below.
Instead of looking through all origindestination pairs of commodities, seeking for a shortest path in , we implement the improvement of L. Fleischer [6] which consists in using a path of length at most and spending less time to find such a path. To this end, we cycle through all commodities, staying with one commodity until the shortest origintodestination path for that commodity is above . The initial lower bound is set to . As long as there is some path of length , we augment the flow along such . When such a path does not exist, it means that either and it is time to terminate the algorithm or and . In the latter case one can update the lower bound by setting . With such updates, the lower bound will belong to the set . Upon the termination of the algorithm, . Since each time is increased by a factor of , the number of times that this happens is , where denotes the rounding down. This implies that the final value of is . Assuming that every new value of the lower bound defines a new phase of the algorithm, we obtain an FPTAS represented by Algorithm 1 with the main loop over phases as described below.
If there is a vertex such that no path from leads from to , then the corresponding demand can not be served at all. All such pairs of vertices may be identified at the preprocessing stage and the corresponding flows should be set to zero. W.l.o.g. we will assume that such pairs of vertices do not exist.
The detailed outline of the algorithm follows the approximation algorithm for maximum MCF [6] with minor modifications.
In what follows we assume that denotes the sum of lengths of all edges comprising a path and . By a shortest path we mean a path from with minimal length .
Algorithm 1
approximation algorithm for LBMCF1 with unbounded demands
Initialization
Choose
and assign
.
Assign for all .
The main loop
For all do
For all do
Find
shortest paths from to all
Choose . Let .
While do
Let .
For all assign
.
Augment the
pathflow .
Find
shortest paths in from to all
Choose
Let .
End while
End forloop over
End forloop over .
In the above algorithm, the lengthbounded shortest paths from are found by performing only iterations of BellmanFord algorithm. Correctness of Algorithm 1 and its time complexity are established analogously to those of approximation algorithm for maximum MCF [6], therefore the following Theorem 1 is given without a proof here. (The proof may be found in Appendix.)
Theorem 1
(i) Algorithm 1 completes after augmentations.
(ii) Given the feasible solution to LBMCF1 with unbounded demands found by Algorithm 1 has a total flow value
Suppose a value is given. Then choosing and , by Theorem 1, part (ii) we conclude that the obtained flow has a value at least .
The lengthbounded shortest paths from vertex are computed once in the beginning of each iteration in the loop over , additionally it is computed after each augmentation. In total there are at most applications of the truncated BellmanFord algorithm in Algorithm 1 that do not lead to augmentations. Besides that, Theorem 1, part (i) implies that the truncated BellmanFord algorithm is applied at most times with augmentations. Thus the total runtime of Algorithm 1 is and we have the following
Corollary 1
Given Algorithm 1 with and computes a approximate solution to LBMCF1 with unbounded demands in time.
The idea of adapting the approach from [6] to the lengthbounded MCF has already been discussed by Baier [2] for the case with general edge lengths. It was already noted in [2] that the resourceconstrained shortest path problem, which arises as a subproblem in the general case, is NPhard and can only be solved approximately. In the present paper, we exploit the fact that in the unit edge length case, the subproblem becomes efficiently solvable.
3.2 The Case of Finite Demands
The reduction described in Section 2 allows to obtain approximate solutions to LBMCF1 by applying Algorithm 1 to the transformed instance which consists of network with vertices and edges, the specification of commodities and the length bound . We can save some time by using the structure of where one can find the shortest paths from all new vertices attached to a vertex by a single execution of truncated BellmanFord algorithm, starting with vertex . Then in total there are at most calls of the BellmanFord algorithm that do not lead to an augmentation and there are at most of calls to the BellmanFord algorithm following the augmentations and we have
Corollary 2
A approximate solution to LBMCF1 may be computed in time.
4 Greedy Heuristic
As an alternative to the guaranteed approximation algorithm from Subsection 3.2, we propose a simple Greedy heuristic, based on augmenting paths, for LBMCF1. In what follows, by shortest path we mean a path with the minimal number of edges in .
The main idea of Greedy heuristic consists in iterative assignment of augmenting pathflows to the most distant origindestination pairs (but not more than edges apart). In each iteration of Greedy, the shortest paths are found for all origindestination pais and a maximum possible flow is routed along the path of maximal length among the paths with at most edges. After that we decrease the edge capacities along the path by the value of its flow, delete all edges where the remaining capacity has turned to 0 and proceed to the next iteration. The algorithm terminates when a set of shortest paths from , connecting the unsatisfied origindestination pairs in the current network, becomes empty. Here we assume that is the set of paths at most edges long in the current network.
Algorithm 2
Greedy Heuristic for LBMCF1
Initialization of set
Compute a shortest path from to
for all , for which such paths exist.
Denote the set of computed paths by .
The main loop:
While do
Choose a longest path in
, put .
Let and be the first and the last vertices in path .
, .
.
For all do
If there are
edges , such that then
Delete all edges , such that , from .
Build a new set by
computing shortest paths
from to for all
, for which such paths exist.
End if.
End while.
Clearly, the collection of pathflows with found by Greedy constitutes a feasible solution. Besides that, since the set of lengthbounded shortest paths is computed at most times, the time complexity of Greedy heuristic is if the Dijkstra algorithm with heaps is used. If the truncated BellmanFord algorithm is used, then the time complexity of Greedy is .
Greedy can easily be converted to compute approximate solutions for fractional lengthbounded maximum MCF if instead of the number of edges in a path one takes the path length in terms of edge lengths . Note that Greedy outputs a feasible solution with an integervalued flow on all edges if an instance is feasible and all demands and edge capacities are integervalued.
5 Computational Experiments
This section describes the computational experiments in solving LBMCF1 by approximation algorithm from Subsection 3.2, by Greedy heuristic from Section 4 and by the LPsolver CPLEX 11 in dual simplex mode, using the LP formulation based on the timeexpanded networks. For the large instances, where this formulation required too much time and memory we used the LP formulation of Maximum MCF from [11] to find an upper bound for the optimum. All experiments were carried out on Xeon X5675, 3.07 GHz, 96 Gb RAM, 12 cores.
5.1 Implementation Details
The approximation algorithm for LBMCF1 was implemented with a minor improvement [6] which allows to terminate the algorithm when the bestfound primal solution and the bestfound dual solution are within the required approximation ratio. Whenever the amount of some commodity , routed by the current iteration, achieved the corresponding demand , this commodity was excluded from consideration in subsequent iterations.
It is easy to see that the most timeconsuming part of the Greedy algorithm is the procedure building the shortest paths tree. We found that this part of Greedy is so computeintensive that CPU cache misses percent may slow down the execution significantly, so we reduced the memory footprint of the allpairs shortest paths procedure by implementing compact data structures both for the input graph and for the temporary data. Also we used a specially designed version of the Dijkstra’s algorithm that may be called in parallel for each root vertex . With these optimizations, we reduced the final timefootprint of the Greedy up to a factor 0.1 of its first naïve implementation.
5.2 Problem Instances
The networks for testing instances were obtained using a modification of generator RMFGEN [8], besides that 7 instances with reallife structure were constructed. RMFGEN produces a given number of twodimensional grids with arcs connecting a random permutation of nodes in adjacent planar grids of size . Arcs of the grids have capacities 3600, while the capacities of arcs connecting the grids are chosen uniformly at random from 1 to 100. Origins and destinations are randomly chosen.
The demands were assigned in two alternative modes. In mode I, the demands were scaled as in [8] so that there is a feasible flow with the maximum arc congestion , where is set to 0.6 or 1. In mode II, each randomly chosen origindestination pair was assigned a random factor from 1 to 100 and the total multicommodity flow was maximized under constraint that the origindestination flows are proportional to factors . Finally we assign the demand values to test the algorithms in situation where the demands exceed the network capacities.
The instances with reallife structure model prospective Software Defined Satellite Networks (SDSN) (see e.g. [16]) that provide worldwide telecommunication services. We suppose that the network consists of 135 satellites on low Earth orbit (LEO), 40 ground stations (gates to Internet) and a Network Operations Control Center (NOCC). The packet routes for each origintodestination pair are computed at NOCC in real time and each node (satellite or ground station) regularly receives the updated routs for all packets that originate in this node. Each packet sent from to contains some content data and a path of the packet route from to An upper bound on the number of edges in packet paths is imposed due to a natural technical limitation on the number of bits reserved for encoding a packet route. Short packet paths also tend to have low transmission delay. For simplicity we assume that each problem instance describes the system in a single timeframe and all demands for the timeframe are known in advance.
The graphs modelling the SDSN were constructed with different tradeoff between the model accuracy and the size of . Networks of these instances contain vertices of low degree (from 2 to 7), corresponding to satellites and dummy nodes, and vertices with high degree (near to ), corresponding to Internet gates at ground stations. The demands for commodities were generated so as to model the global telecommunication flows. We assumed that the number of active users in each square unit of the Earth surface is proportional to population on the unit. The origin and the destination of each call is chosen at random among active users. All active users are assigned to the nearest satellite or ground station.
Instance  1  2  3  4  5  6  7 

543  272  272  197  197  135  318  
19474  1292  1292  992  992  750  4652  
12373  12373  12373  12373  12373  743  245481 
5.3 Experimental Results
The values of relative errors of solutions found by FPTAS and by Greedy heuristic were estimated aposteriori in terms of upper bound , where is the value of objective function found by the algorithm and is the optimum in the LP model based on the timeexpanded network (on grid graphs) or an upper bound on the optimum in maximum MCF LP formulation (on the instances with reallife structure).
Grid Graphs.
The attained approximations and CPU times (in seconds) for the grid graphs with and are given in Table 2. Here demands are generated in mode I. One can see that the FPTAS occupies the position between Greedy heuristic and CPLEX solver both in terms of the precision and the running time, except for the two smallest instances where Greedy was able to find optimal solutions. The parallel version of Greedy using 12 cores is clearly the fastest one, achieving speedups of about 4.5 times compared to the serial version. On small instances this speedup vanishes due to communication cost.
The growth of CPU times with further increase of is displayed in Fig 1. Here we use the largest grid graph with , . The demands are generated in mode II. Both approximate algorithms have runtime upper bounds independent of (see Sections 3 and 4), which agrees with Fig 1 where the corresponding curves are nearly horizontal. The size of LP formulation based on the timeexpanded network depends significantly on and this is supported by Fig 1.
RMFGEN  Greedy  FPTAS,  CPLEX  
CPU time  CPU time  CPU time  
1  12  1  1  
core  cores  core  core  
2  276  0.01  0.01  0  0.07  0.01  0.15  
4  588  0.05  0.02  0  0.23  0.01  0.25  
6  900  0.09  0.02  0.07  0.53  0.02  0.64  
8  1212  0.14  0.03  0.29  0.74  0.02  1.06  
2  276  0.01  0.01  0.04  0.08  0.04  0.15  
4  588  0.06  0.02  0.1  0.3  0.05  0.61  
6  900  0.14  0.04  0.07  0.57  0.01  0.44  
8  1212  0.18  0.04  0.27  0.79  0.02  0.59 
Instances With RealLife Structure.
Instances 17 have a greater range of graph sizes and a much greater number of commodities compared to the instances with grid graphs (see Tables 1 and 2).
The LP model based on the timeexpanded network required prohibitive amount of time and memory. Therefore in the case of Instances 17 we could compute only an upper bound using the LP CPLEX solver. Still, in the case of Instance 1, CPLEX was unable to find an upper bound due to lack of memory and was set to the total value of demands.
Table 3 shows the a posteriori pessimistic estimates of approximations attained by the algorithms and the corresponding CPU times (in seconds). Here FPTAS always has a greater precision than Greedy and the latter one is up to times faster even in the sequential version. Note that
Inst  Greedy  FPTAS  CPLEX  
ance  heuristic  computing  
CPU time  CPU time  CPU time  
1 core  12 cores  
1  1.63  0.4  0.108  1689.6  0.004  – 
2  0.51  0.16  0.072  157.6  0.008  7 971 
3  0.28  0.1  0.094  160.4  0.01  6 947 
4  0.15  0.09  0.081  80.6  0.012  1 852 
5  0.11  0.06  0.094  83.6  0.012  1 872 
6  0.28  0.1  0.117  3.8  0.12  345 
7  0.26  0.11  0.109  389.5  0.006  144 456 
In order to evaluate the algorithms on a variety of different reallife instances with similar structure we generated 300 versions of graph that model SDSN analogously to Instance 7 but in different timeframes. Different satellite positions in these timeframes lead to different links between satellites and between satellites and ground stations. The bandwidth of the links varies as well. The specification of demands remained unchanged. Application of FPTAS and Greedy to these instances in the singlecore version and the same parameters as in Table 3 gave the results shown in Tables 4 and 5. The average and maximum CPU times and estimates are close to those reported in Table 3 for Instance 7, which implies that both algorithms have a stable behavior on the input data that we considered.
Greedy  FPTAS  

Average  0.3  164.8  402.0  857.6 
Maximum  0.38  177.6  444.1  888.7 
Greedy  FPTAS  

Average  0.061  0.006  0.004  0.003 
Maximum  0.148  0.01  0.006  0.004 
Conclusions
The proposed FPTAS has a lower time complexity bound compared to the previously known algorithms designed for a problem with the length functions of more general form.
The FPTAS and Greedy heuristic proposed in this paper are significantly faster than the CPLEX LP solver, especially on the instances with large networks and great numbers of demands. The FPTAS is more accurate but requires more CPU time than Greedy which may be a decisive factor in practical applications. Implementation of the FPTAS (hopefully) may be improved using line search for updating the current primal and dual solutions as proposed in [1] and by the means of parallel computations.
The exact LPmodel discussed in Section 2 is based on a Kirchofftype formulation in an extended graph. The alternative column generation approach has no polynomial timebound but is often more efficient in practice. Further research might include a comparison of the algorithms presented here to the column generation method, assuming that columns are the lengthbounded paths.
Appendix
Correctness of Algorithm 1 and its time complexity are established analogously to those of approximation algorithm for maximum MCF [6]. Before the proof of Theorem 1 we formulate and prove two lemmas. The reason why these proofs were omited in the paper is because they almost literally repeat the corresponding proofs in [6].
Lemma 1
Algorithm 1 terminates after augmentations.
Proof. At start, for all edges . The last time the length of an edge is updated, it is on a path of length less than one, and it is increased by at most a factor of . Thus the final length of any edge is at most . Since every augmentation increases the length of some edge by a factor of at least , the number of possible augmentations is at most .
Lemma 2
The flow obtained by Algorithm 1 satisfies the constraints for all .
Proof. Every time the total flow on an edge increases by a fraction of , its length is multiplied by . Since for all we have , when for all . Thus, every time the flow on an edge increases by its capacity divided by , the length of the edge increases by a factor of at least . Initially and at the end , so the total flow on edge cannot exceed .
Theorem 1
(i) Algorithm 1 completes after augmentations.
(ii) Given the feasible solution to LBMCF1 problem with unbounded demands found by Algorithm 1 has a total flow value
Proof. Part (i) follows from Lemma 1.
Now consider part (ii). Let denote the length function after th augmentation in Algorithm 1 and let denote the length of a shortest path in w.r.t. a length function . Given a length function , define and let Then is the dual objective function value corresponding to and is the optimal dual objective value. Let be the primal objective function value after th augmentation and let be the augmenting path. Denote . Then for each ,
which implies that
(16) 
Consider the length function . Note that . For any path used by the algorithm, the length of the path using versus differs by at most . Since this holds for the shortest path using length function , we have Hence
Using the bound on from equation (16), we obtain
Observe that, for fixed , this right hand side is a nondecreasing function on So, for any sequence of upper bounds on we have
where the last inequality uses the fact that for . We can use a valid upper bound , which implies
By the stopping condition, after the last augmentation (let it be the augmentation number ) we have
and hence
Recalling that we obtain
References
 [1] Albrecht, Ch.: Global routing by new approximation algorithms for multicommodity flow. IEEE Transactions on ComputerAided Design of Integrated Circuits and Systems. 20(5) 622 – 632 (2001)
 [2] Baier, G.: Flows with Path Restrictions. Ph.D. Dissertation, TU Berlin, Berlin (2003)
 [3] BenAmeur, W.: Constrainedlength connectivity and survivable networks, Networks 36(1) 170–33 (2000)
 [4] Baier, G., Erlebach, T., Hall, A., Köhler, E. Kolman, P., Pangrác, O., Schilling, H. and Skutella, M.: Lengthbounded cuts and flows. ACM Trans. Algorithms, 7(1), 4:1–4:27 (2010)
 [5] Chaudhuri, K., Papadimitriou, C., Rao, S.: Optimum routing with quality of service constraints. Unpublished manuscript (2004).
 [6] Fleischer L.K.: Approximating fractional multicommodity flow independent of the number of commodities, SIAM J.Disc.Math., 13, 505 – 520 (2000)
 [7] Garg, N., Könemann, J.: Faster and simpler algorithms for multicommodity flow and other fractional packing problems. In: Proc. 39th IEEE Symposium on Foundations of Computer Science, FOCS’98, pp. 300–309. IEEE CS Press (1998)
 [8] Goldberg, A.V., Oldham, A.D., Plotkin, S., Stein, C.: An implementation of an approximation algorithm for minimumcost multicommodity flows. In: Proc. of 6th Integer Programming and Combinatorial Optimization, LNCS vol. 1412, pp. 338352, Berlin, Springer (1998)
 [9] Garg N., Vazirani V., Yannakakis M. Primaldual approximation algorithms for integral flow and multicut in trees, Algorithmica, 18, 3–20 (1997)
 [10] Guruswami, V., Khanna, S., Rajaraman, R., Shepherd, B., and Yannakakis, M.: Nearoptimal hardness results and approximation algorithms for edgedisjoint paths and related problems. In Proceedings of the 31st Annual ACM Symposium on Theory of Computing, pages 19–28 (1999)
 [11] Hu, T.C.: Integer Programming and Network Flows. Reading, MA, AddisonWesley Publishing Company (1970)
 [12] Kolman, P., Scheideler, C.: Improved bounds for the unsplittable flow problem. J. Algor., 61 (1), 20–44 (2006)
 [13] Nemhauser, G.L. and Wolsey, L.A.: Integer and Combinatorial Optimization. WileyInterscience. New York, NY (1988)
 [14] Van Mieghem, P., Kuipers, F.A., Korkmaz, T., Krunz, M., Curado, M., Monteiro, E., MasipBruin, X., SolePareta, J., SanchezLopez, S.: Quality of service routing. In: Quality of Future Internet Services. Lecture Notes in Computer Science, vol. 2856, pp. 80–117. Springer, Berlin (2003)
 [15] Schrijver, A. Combinatorial Optimization. Polyhedra and Efficiency. Vol. C. Springer, 2003.
 [16] Tang, Z., Zhao, B., Yu, W., Feng, Z and Wu, C. Software defined satellite networks: Benefits and challenges. In: Proc. of Computing, Communications and IT Applications Conference (ComComAp), pp. 127132. IEEE (2014)
 [17] Tardos, E.: A strongly polynomial algorithm to solve combinatorial linear programs. Operations Research, 34 (2), 250256 (1986)
 [18] Tsaggouris, G. and Zaroliagis, C.: Multiobjective optimization: Improved FPTAS for shortest paths and nonlinear objectives with applications. Theory of Computing Systems, 45 (1) 162–186 (2009)