Document Type

Technical Report

Publication Date


Technical Report Number



In the edge(vertex)-disjoint path problem we are given a graph $G$ and a set ${\cal T}$ of connection requests. Every connection request in ${\cal T}$ is a vertex pair $(s_i,t_i),$ $1 \leq i \leq K.$ The objective is to connect a maximum number of the pairs via edge(vertex)-disjoint paths. The edge-disjoint path problem can be generalized to the multiple-source unsplittable flow problem where connection request $i$ has a demand $\rho_i$ and every edge $e$ a capacity $u_e.$ All these problems are NP-hard and have a multitude of applications in areas such as routing, scheduling and bin packing. Given the hardness of the problem, we study polynomial-time approximation algorithms. In this context, a $\rho$-approximation algorithm is able to route at least a $1/\rho$ fraction of the connection requests. Although the edge- and vertex-disjoint path problems, and more recently the unsplittable flow generalization, have been extensively studied, they remain notoriously hard to approximate with a bounded performance guarantee. For example, even for the simple edge-disjoint path problem, no $o(\sqrt{|E|})$-approximation algorithm is known. Moreover some of the best existing approximation ratios are obtained through sophisticated and non-standard randomized rounding schemes. In this paper we introduce techniques which yield algorithms for a wide range of disjoint-path and unsplittable flow problems. For the general unsplittable flow problem, even with weights on the commodities, our techniques lead to the first approximation algorithm and obtain an approximation ratio that matches, to within logarithmic factors, the $O(\sqrt{|E|})$ approximation ratio for the simple edge-disjoint path problem. In addition to this result and to improved bounds for several disjoint-path problems, our techniques simplify and unify the derivation of many existing approximation results. We use two basic techniques. First, we propose simple greedy algorithms for edge- and vertex-disjoint paths and second, we propose the use of a framework based on packing integer programs for more general problems such as unsplittable flow. A packing integer program is of the form maximize $c^{T}\cdot x,$ subject to $Ax \leq b,$ $A,b,c \geq 0.$ As part of our tools we develop improved approximation algorithms for a class of packing integer programs, a result that we believe is of independent interest.


Revised November 1997.