In the Unsplittable Flow on a Path problem (UFP) we are given a path with non-negative edge capacities and a set of tasks, each one characterized by a subpath, a demand, and a prot. Our goal is to select a subset of tasks of maximum total prot so that the total demand of the selected tasks on each edge does not exceed the respective edge capacity.UFP tasks in the optimal solution (with a small loss of prot) in order to create a sucient amount of slack capacity on each edge. This slack turns out to be large enough to substitute the additional capacity we would gain from resource augmentation.Crucial for our approach is that we obtain slack from tasks with relatively small and relatively large demand simultaneously. In all prior polynomial time approximation algorithms the sacriced tasks came from only one of these two groups.
IntroductionIn the Unsplittable Flow on a Path problem (UFP) we are given an undirected path G = (V, E), with edge capacities u(e) ∈ N for e ∈ E. Furthermore, we are given a set T of n tasks. Each task i ∈ T is specied by a subpath P (i) between the start (i. e., leftmost) vertex s(i) ∈ V and the end (i. e., rightmost) vertex t(i) ∈ V , a demand d(i) ∈ N, and a prot (or weight) w(i) ≥ 0. Our goal is to select a subset T ⊆ T of tasks of maximum total prot such that for each edge e the total demand of the selected tasks using e does not exceed u(e).UFP and its variations are motivated by several applications in bandwidth allocation [8,17,24], caching[18], scheduling [4], multi-commodity demand ow [16], and resource allocation [7,11,19,25] In terms of polynomial-time approximation, the rst non-trivial result was an O(log n)-approximation by Bansal et al. [6]. To achieve that, Bansal et al. reduced