Interval packing problem Multicommodity demand flow in a line Jian Li Sep. 2005 Interval packing problem Input: 1) A set I of n intervals, I1, I2, ..., In, with each Ii = [li, ri] and having a THICKNESS (or HEIGHT) hi, such that li and ri are all integers in {1,2, ..., n} and hi is an integer > 0 2) n-1 CAPACITY constraints ci, with each ci located at the point pi = (i + 1/2, 0) on the x-axis, for every i = 1,2, ..., n-1, such that each ci is an integer > 0. We may call each pi a thickness constrained point Output: The MAXIMUM NUMBER of intervals in I such that at each thickness constrained point pi = (i + 1/2, 0), the sum of thickness values of all output intervals that contain pi is less then ci. In fact, it is a special case of the multicommodity demand flow problem Multicommodity demand flow problem T=(V,E,u) be a capacitated network, where each edge capacity ue is an integer. A number of demand vertices pairs (si,ti) with demand value di and profit wi GOAL: simultaneously route the demand flow without violating the capacity constraints and maximize the profit. NOTE: di must be fully satisfied to obtain a profit wi Interval packing problem can be modeled as multicommodity flow problem in a line. LP formulation max i wixi i:e2 path(i)dixi · ue xi=0,1 Some special case All capacities are one. All demand are one. The problem is exactly to compute a independent set in a interval graph, which is in P. Algorithm: Sort intervals according their left endpoints. Use the reverse order to greedy construct the independent set. (reverse perfect elimination order) Some special case. the problem can be formulated as the following min-cost flow problems. There are n vertice, namely v1,v2,…..,vn, and arcs from vi to v(i+1) with capacity ui and cost zero and arc from vn to v1 with capacity +infinity and cost zero. For every interval Ii, there is a arc from v(ri) to v(li) with capacity di and cost -1/di(we call it back-arc). Capacity=ui, cost=-1/di Some special case However, the min cost circulation may not give the correct answer, because in the original problem only in case that the back-arc are saturated(flow=capacity) can incur a cost 1. So we can treat it as the relax of the original problem. In fact it solve the relaxed LP of the original problem. Moreover, if all di is one, then this special case can be solved optimally in polytime. Some special case if the number of intervals passing pi is bounded( less than a constant C), then we can solve the problem optimally by standard dynamic programming technique. Small and Large demand Bottleneck capacity b(f): the smallest capacity edge on Path(f) -large demand: d(f)¸ b(f) Otherwise ,-small Bounding large demand Lemma: If dmax· umin (a wild assumption)in a feasible solution, the number of -large demands that cross any edge is at most 2(1/2) So, we can use DP to solve the case with only large task optimally. Bounding large demand Proof of the lemma: Fix a feasible solution S, consider an edge e. Let Se be the set of all -large demand cross e. Se=Sl[ Sr, where Sl is the set where its bottleneck is to the left of e(including e), and Sr otherwise. Sr Sl e Bounding large demand Proof Cont. We can show Sl<=1/2 (similar for Sr) Let A be the set of bottleneck edge for Sl. Let e’ be the rightmost one in A. Suppose e’ is the bottleneck edge for demand Ij, thus dj> c(e’). But all demands in Sl pass through e’(since e’ is rightmost one). But each demand Ik is -large. dk¸ bk¸ cmin. cminSl· c(e’), thus Sl· |c(e’)/cmin| · |di/2 cmin| · 1/2 \QED Suppose we have a -approximation algorithm for the case where only small demands exist. Then we choose the larger one from the optimal solution for large demand and approximation solution for small demand We get 2 approximation for original problem OPT<=OPTlarge+OPTsmall<=SOLlarge+ SOLsmall <=2max{SOLlarge+ SOLsmall} <= 2 max{SOLlarge+ SOLsmall} Dealing with Small demands Randomized rounding: G.Calineascu et IPCO2002 for uniform capacity. (1+e)-approx. A.Chakrabarti et APPROX2002 for general case. O(1)-approx. Packing integer program C.Chekuri et ICALP2003 for general case. (1+e)-approx.