A Constant Factor Approximation Algorithm for the Storage Allocation Problem - Bar-Yehuda, Reuven; Beder, Michael; Rawitz, Dror (Algorithmica, 2017)
We study the storage allocation problem ( SAP ) which is a variant of the unsplittable flow problem on paths ( UFPP ). A SAP instance consists of a path P = ( V , E ) and a set J of tasks. Each edge e ∈ E has a capacity c e and each task j ∈ J is associated with a path I j in P , a demand d j and a weight w j . The goal is to find a maximum weight subset S ⊆ J of tasks and a height function h : S → R + such that (i) h ( j ) + d j ≤ c e , for every e ∈ I j ; and (ii) if j , i ∈ S such that I j ∩ I i ≠ ∅ and h ( j ) ≥ h ( i ) , then h ( j ) ≥ h ( i ) + d i . SAP can be seen as a rectangle packing problem in which rectangles can be moved vertically, but not horizontally. We present a polynomial time ( 9 + ε ) -approximation algorithm for SAP . Our algorithm is based on a variation of the framework for approximating UFPP by Bonsma et al. [FOCS 2011] and on a ( 4 + ε ) -approximation algorithm for δ -small SAP instances (in which d j ≤ δ · c e , for every e ∈ I j , for a sufficiently small constant δ > 0 ). In our algorithm for δ -small instances, tasks are packed carefully in strips in a UFPP manner, and then a ( 1 + ε ) factor is incurred by a reduction from SAP to UFPP in strips. The strips are stacked to form a SAP solution. Finally, we provide a ( 10 + ε ) -approximation algorithm for SAP on ring networks.