Presentation is loading. Please wait.

Presentation is loading. Please wait.

Packing Rectangles into Bins Nikhil Bansal (CMU) Joint with Maxim Sviridenko (IBM)

Similar presentations


Presentation on theme: "Packing Rectangles into Bins Nikhil Bansal (CMU) Joint with Maxim Sviridenko (IBM)"— Presentation transcript:

1 Packing Rectangles into Bins Nikhil Bansal (CMU) Joint with Maxim Sviridenko (IBM)

2 2/61 Problem Given: Collection of rectangles (by height, width) Goal : Pack in min # of unit square bins  Rectangles parallel to bin edges  Cannot be rotated 1 4 6 5 3 2 Rectangles Bins 1 2 3 4 5 6 1 2 3 4 5 6

3 3/61 Problem Given: Collection of rectangles (by height, width) Goal : Pack in min # of unit square bins  Rectangles parallel to bin edges  Cannot be rotated 1 4 6 5 3 2 2-d Bin Packing Rectangles 1 2 3 4 5 6 1 2 3 4 5 6

4 4/61 Motivation Many Applications: Real World packing of (real world) bins  Placing ads in newspapers  Cloth cutting: Minimizing sheets to buy  Truck Loading  Memory allocation in paging systems ……

5 5/61 1-d Bin Packing Special case of 2-d packing 1-dim bin packing: Collection of intervals with length in [0,1], Pack into min # of unit bins ! 1 4 2 3 1 4 3 2

6 6/61 1-d Bin Packing Special case of 2-d packing 1-dim bin packing: Collection of intervals with length in [0,1], Pack into min # of unit bins (NP-Hard) ! 1 4 2 3 1 4 3 2

7 7/61 Approximation algorithms An algorithm is a  approximation (  > 1) if  runs in polynomial time  Value of solution ·  Opt Opt: value of optimum solution Polynomial time approximation scheme (PTAS) is a family of 1+  approximation algorithms for every  > 0. E.g., Running Time

8 8/61 1-d bin packing: Inapproximability Cannot get a poly time approximation < 3/2 Partition problem (NP-Hard): Given s 1,…,s n, S= s 1 +s 2,…,s n 9 a subset of elements that sums to exactly S/2 ? S/2 s1s1 s6s6 s2s2 s5s5 s3s3 s4s4 But maybe can get Opt + 1 in poly time ?

9 9/61 Asymptotic PTAS Alg · (1+  ) Opt + f(  ) f(  ) depends only on  e.g. (1/  ) (1/  ) For 1-d bin packing: Alg · (1+  ) Opt + O(1/  2 ) [de la Vega, Lueker 81]

10 10/61 Outline Introduction APTAS for 1-d packing [de la Vega, Lueker 81] Results for 2-d packing Conclusions

11 11/61 APTAS for 1-d bin packing Theorem: [de la Vega, Lueker 81] Alg(I) · Opt(I)/(1-  ) + 1/  2 ¼ Opt(I) (1+  ) + f(  ) ! 1 4 2 3 1 4 3 2

12 12/61 Main idea Simplify Original instance I -> I’  I’: easy to solve  Solutions of I and I’ close (within 1+  )

13 13/61 Ideas applied to 1-d packing ·  : Small ¸  : Big 1) I ! I’ with 1/  2 different big sizes & solns. within 1+  2) I’ easy: If k= O(1) different big sizes, can get Opt + k

14 14/61 1-d: Rounding to a simpler instance 0 1 I Various object sizes

15 15/61 1-d: Rounding to a simpler instance I b : I restricted to bigs. Let b = # of bigs (i.e. ¸  ) 0 1  IbIb 1 Various object sizes

16 16/61 1-d: Rounding to a simpler instance Partition big into 1/  2 groups, each group has b ¢  2 objects 0 1  IbIb I b : I restricted to bigs. Let b = # of bigs (i.e. ¸  ) (here b ¢  2 =3)

17 17/61 1-d: Rounding to a simpler instance Partition big into 1/  2 groups, each group has b ¢  2 objects Instance I’ b : Ignore largest b ¢  2 objects. Round up sizes to smallest size in next higher group 0 1  0 1  I’ b IbIb I b : I restricted to bigs. Let b = # of bigs (i.e. ¸  )

18 18/61 1-d: Rounding to a simpler instance Partition big into 1/  2 groups, each group has b ¢  2 objects Instance I’ b : Ignore largest b ¢  2 objects. Round up sizes to smallest size in next higher group Alg(I’ b ) · Alg(I b ) 0 1  0 1  I’ b IbIb I b : I restricted to bigs. Let b = # of bigs (i.e. ¸  )

19 19/61 1-d: Rounding to a simpler instance Partition big into 1/  2 groups, each group has b ¢  2 objects Instance I’ b : Ignore largest b ¢  2 objects. Round up sizes to smallest size in next higher group Alg(I b ) · Alg(I’ b ) + b  2 0 1  0 1  I’ b IbIb I b : I restricted to bigs. Let b = # of bigs (i.e. ¸  )

20 20/61 1-d: Rounding to a simpler instance Partition big into 1/  2 groups, each group has b ¢  2 objects Instance I’ b : Ignore largest b ¢  2 objects. Round up sizes to smallest size in next higher group Alg(I’ b ) · Alg(I b ) · Alg(I’ b ) + b  2 0 1  0 1  I’ b IbIb I b : I restricted to bigs. Let b = # of bigs (i.e. ¸  )

21 21/61 1-d: Rounding to a simpler instance Partition big into 1/  2 groups, each group has b ¢  2 objects Instance I’ b : Ignore largest b ¢  2 objects. Round up sizes to smallest size in next higher group Alg(I’ b ) · Alg(I b ) · Alg(I’ b ) + b  2 Opt(I b ) ¸ b  ) b  2 ·  Opt(I b ) 0 1  0 1  I’ b IbIb I b : I restricted to bigs. Let b = # of bigs (i.e. ¸  )

22 22/61 1-d: Solving the “few and big” case I’ b : 1/  2 different sizes > . Call these s 1,…,s k. Configuration: A way to pack a bin ( Eg: C = [3 s 1, 17 s 3, 5 s 18 ] ) |Configurations| · (1/  2 ) 1/  = O(1) x i : # of bins with configuration i n j : # of objects of size s j in instance c ij : # of objects of size s j in configuration i. Minimize  i x i  i c ij x i ¸ n j 8 j 2 [1,..,1/  2 ] x i ¸ 0 8 i, x i 2 Z IP for I’ b

23 23/61 1-d: “Few and Big” using LP Minimize  i x i  i c ij x i ¸ n j 8 j 2 [1,..,1/  2 ] x i ¸ 0 (Relaxed to be fractional) Clearly, LP (I b ’) · OPT(I b ’) x i could be fractional. Round up to next integer ( Eg: 17.34 -> 18) Adds · # configurations = (1/  2 ) 1/  = O(1) In fact, adds · 1/  2 (non-zero x i ’s in basic soln)

24 24/61 1-d: Filling in the smalls So, Alg(I b ) · Opt(I)/(1-  ) + 1/  2 Packing smalls:  In each bin, fill as many smalls as possible.  If bins not enough, open new bins to fill smalls. Proof:  If no new bins opened, done.  If new bins opened, all bins (except maybe last) filled 1-  So, Alg(I) · Area(I)/(1-  ) + 1 · Opt(I)/(1-  ) + 1

25 25/61 1-d: Overview 0) Partition into small and big 1) Pack small objects later 2) Round large objects to O(1) sizes. Solve the “few and big” case almost optimally.

26 26/61 Outline Introduction APTAS for 1-d packing [de la Vega, Lueker 81] Results for 2-d packing Conclusions

27 27/61 Outline Introduction APTAS for 1-d packing [de la Vega, Lueker 81] Results for 2-d packing  Square packing problem  General rectangle packing problem Conclusions

28 28/61 Square Packing Problem Given a collection of squares (hypercubes for d>2) Pack into min # of unit bins. 1 3 2 5 7 6 4 1 3 2 5 7 6 4 ! 1 3 2 5 7 6 4

29 29/61 Square Packing: Previous Work 2-dim: 2.125 [Chung, Garey, Johnson 82] …… 1.454 [Epstein, van Stee 03] d-dim: (3/2) d [Coppersmith, Raghavan 89] …… 2-(2/3) d [Kohayakawa et al 02] We give an APTAS (i.e., Alg(I) · 1+  Opt(I) + f(  ) )

30 30/61 Outline Introduction APTAS for 1-d packing [de la Vega, Lueker 81] Results for 2-d packing  Square packing problem O(1) Approximation APTAS  General rectangle packing problem Conclusions

31 31/61 O(1) Approximation: Square Packing Opt ¸ Total area of squares in I. If we can use constant fraction of area in each bin ) O(1) approximation. Eg: If use ¸ 1/100 th area in each bin ) 100 approx

32 32/61 O(1) approximation: Square Packing If big (length ¸ 1/3), put in its own bin. Use ¸ 1/9 th area. Big uses > 1/9 th area Need a way to pack small objects efficiently.

33 33/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s a b

34 34/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s Algorithm: Decreasing size shelf packing. 1 3 a b 2 Take squares in decreasing size Place sequentially

35 35/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s Algorithm: Decreasing size shelf packing. 1 3 a b 2 Take squares in decreasing size Place sequentially If next does not fit, open a new shelf

36 36/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s Algorithm: Decreasing size shelf packing. 1 3 4 8 a b Take squares in decreasing size Place sequentially If next does not fit, open a new shelf

37 37/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s Algorithm: Decreasing size shelf packing. 1 3 4 8 9 16 a b Take squares in decreasing size Place sequentially If next does not fit, open a new shelf

38 38/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s Algorithm: Decreasing size shelf packing. Wasted Space · s(a+b) 1 3 4 8 9 16 a b

39 39/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s Algorithm: Decreasing size shelf packing. Wasted Space · s(a+b) Right side: At most s £ a 1 3 4 8 9 16 a b

40 40/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s Algorithm: Decreasing size shelf packing. Wasted Space · s(a+b) Right side: At most s £ a Top · s 16 b 1 3 4 8 9 16 a b

41 41/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s Algorithm: Decreasing size shelf packing. Wasted Space · s(a+b) Right side: At most s £ a Top · s 16 b Shelf 1: (s 1 –s 3 ) b 1 3 4 8 9 16 a b

42 42/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s Algorithm: Decreasing size shelf packing. Wasted Space · s(a+b) Right side: At most s £ a Top · s 16 b Shelf 1: (s 1 –s 3 ) b Shelf 2: (s 4 – s 8 ) b … 1 3 4 8 9 16 a b

43 43/61 Shelf Packing Given a rectangular region of size a £ b Goal: Pack squares of length · s Algorithm: Decreasing size shelf packing. Wasted Space · s(a+b) Right side: At most s £ a Top · s 16 b Shelf 1: (s 1 –s 3 ) b Shelf 2: (s 4 – s 8 ) b …. Adding all, at most (s 1 -s 16 ) b 1 3 4 8 9 16 a b

44 44/61 Square Packing: Packing Smalls If all squares · s, waste in a £ b region · s(a+b) If a=b=1, s · 1/3 ) Waste · 2/3 O(1) approximation follows.

45 45/61 Outline Introduction APTAS for 1-d packing [de la Vega, Lueker 81] Results for 2-d packing  Square packing problem O(1) Approximation APTAS  General rectangle packing problem Conclusions

46 46/61 Square Packing 0 1 Squares with various lengths

47 47/61 Square Packing  0 =1 0 11 mm  1/   m+1 22 …… G0G0 G1G1 GmGm G 1/  -1

48 48/61 Square Packing  0 =1 0 11 mm  1/   m+1 22 …… G0G0 G1G1 GmGm G 1/  -1 G m =[  m+1,  m ) be such that area ·  (total area) Small Big Medium

49 49/61 Square Packing  0 =1 0 11 mm  1/   m+1 22 …… G0G0 G1G1 GmGm G 1/  -1 Pack medium in separate bins using O(1) approx Adds at most O(  ) to the number of bins. Ignore medium jobs from now on. Small Big Medium G m =[  m+1,  m ) be such that area ·  (total area)

50 50/61 Square Packing  0 =1 0 11 mm  1/   m+1 22 …… G0G0 G1G1 G 1/  -1 Pack medium in separate bins using O(1) approx Adds at most O(  ) to the number of bins. Ignore medium jobs from now on. Small Big G m =[  m+1,  m ) be such that area ·  (total area)

51 51/61 Square Packing  0 =1 0 11 mm  1/   m+1 22 …… G0G0 G1G1 G 1/  -1 Pack medium in separate bins using O(1) approx Adds at most O(  ) to the number of bins. Ignore medium jobs from now on. Small Big  0 = 1,  i =   i-1 2 (1, ,  3,  7,…) G m =[  m+1,  m ) be such that area ·  (total area)

52 52/61 Square Packing Packing bigs: Rounding technique similar to 1-d case, ! O(1) different lengths Opt(I b ’) · Opt(I b ) · Opt(I b ’)/(1-  ) LP to find close to optimum packing of I b ’  0 =1 0 11 mm  1/   m+1 22 …… G0G0 G1G1 G 1/  -1 Small Big

53 53/61 Square Packing: Filling in the smalls Bigs use ¼ Opt bins What about smalls?

54 54/61 Square Packing: Filling in the smalls Divide the free space into rectangular gaps. Fill smalls in gaps using decreasing size shelf algorithm Rectangular Gaps

55 55/61 Square Packing: Filling in the smalls # bigs · 1/  m 2, gaps · 4/  m 2 Recall: Packing · s in a £ b wastes at most s(a+b) a+b · 2, s ·  m+1 =   m 2 Total waste · 2 s ¢ #gaps · 2   m 2 ¢ 4/  m 2 · 8  Rectangular Gaps Small ·  m+1, big ¸  m

56 56/61 Square Packing If no new bins opened for smalls, done. If we do, waste in each bin (except maybe last) is O(  ), hence done by area lower bound. Thm: ALG(I) · (1+  ) Opt(I) + Generalizes to d>2 dimensions with few modifications.

57 57/61 Square Packing: Technique Summary Partition into big, medium, small Ignore mediums Gap between big and small Ideas from 1-d + packing smalls with low waste

58 58/61 Outline Introduction APTAS for 1-d packing [de la Vega, Lueker 81] Results for 2-d packing  Square packing problem  General rectangle packing problem Conclusions

59 59/61 Rectangle packing Problem: Pack rectangles into min # of unit bins. (no rotation) 2.125 approximation [ Chung, Garey, Johnson 82] 2+  [ Kenyon, Remila 96] Best known: 1.691… +  [Caprara 02] Prior to our work: APTAS open

60 60/61 Results for Rectangle Packing Main Thm: No APTAS exists for 2-d rectangle packing. Hence for d>2. Proof: Lets skip it.

61 61/61 Conclusion and Open Problems Impossibility of APTAS for rectangle packing APTAS for square packing 1-d Case: (1+  ) Opt + O(1/  2 ) [de la Vega, Lueker 81] Opt + O(log 2 (Opt)) [Karmarkar, Karp 82] Opt + O(1) ? d =2 : 1.691+  [Caprara 02] d > 2: 1.691 d [Csirik, Van Vliet 93]  (c d ) lower bounds for d-dim bin packing ?

62 62/61 Results for Rectangle Packing Main Thm: No APTAS exists for 2-d rectangle packing. Hence for d>2. Thm [Kenyon, Correa 04] : APTAS if allow Alg to pack in (1+  ) £ (1+  ) size bins Alg * (I) · (1+  ) Opt(I) + f(  ) Thm: APTAS if allow Alg to pack in 1 £ (1+  ) size bins.

63 63/61 Hardness 2-d Vector Packing Problem: Given 2-d vectors (equivalently rectangles). In each bin,  widths · 1, and  heights · 1. ValidInvalid

64 64/61 Hardness of Vector Packing X={x 1,…,x n }, Y={y 1,…,y n }, Z={z 1,…,z n }, T= {t 1,…,t n } Each >b/5 and < b/3 Goal: Max. number of disjoint 4-tuples that sum to exactly b SNP-Hard: 9  Cannot distinguish if n such tuples or (1-  ) n [ Woeginger’s construction’ 97] X i ’ = (.2 + x i /5b,.3 – x i /5b) Y i ’ = (.2 + y i /5b,.3 – y i /5b) Z i ’ = (.2 + z i /5b,.3 – z i /5b) T i ’ = (.2 + t i /5b,.3 – t i /5b) Observation: All these fit in a bin iff x i +y j +z k +t l = b

65 65/61 Rectangle Packing 2 rectangles for each object in X,Y,Z,T (Thin, Tall) and (Fat, Short) for each object in X,Y,Z (Fat, Tall) and (Thin, Short) for each object in T YjYj Y’ j ZkZk TlTl XiXi X’ i Z’ k T’ l Details to show that other patterns do not work


Download ppt "Packing Rectangles into Bins Nikhil Bansal (CMU) Joint with Maxim Sviridenko (IBM)"

Similar presentations


Ads by Google