integer linear programming and bin packing in fixed
play

Integer Linear Programming and Bin Packing in fixed Dimension - PowerPoint PPT Presentation

Integer Linear Programming and Bin Packing in fixed Dimension Thomas Rothvoss 10th Carg` ese Workshop on Combinatorial Optimization (2019) b b b b b b b b b b b b b b b b b b b b Motivation and Outline Integer Linear


  1. Integer Linear Programming and Bin Packing in fixed Dimension Thomas Rothvoss 10th Carg` ese Workshop on Combinatorial Optimization (2019)

  2. b b b b b b b b b b b b b b b b b b b b Motivation and Outline Integer Linear Programming max { c T x | Ax ≤ b, x ∈ Z n } P = { x | Ax ≤ b }

  3. b b b b b b b b b b b b b b b b b b b b Motivation and Outline Integer Linear Programming max { c T x | Ax ≤ b, x ∈ Z n } c P = { x | Ax ≤ b }

  4. b b b b b b b b b b b b b b b b b b b b Motivation and Outline Integer Linear Programming max { c T x | Ax ≤ b, x ∈ Z n } c P = { x | Ax ≤ b } ◮ Part I: Solve ILPs in time f ( n ) · poly(input length) [Lenstra ’83], [Lenstra, Lenstra, Lov´ asz ’82]

  5. b b b b b b b b b b b b b b b b b b b b Motivation and Outline Integer Linear Programming max { c T x | Ax ≤ b, x ∈ Z n } c P = { x | Ax ≤ b } ◮ Part I: Solve ILPs in time f ( n ) · poly(input length) [Lenstra ’83], [Lenstra, Lenstra, Lov´ asz ’82] ◮ Part II: Solve Bin Packing with O (1) different item types in poly-time [Goemans, R.’ 14]

  6. Part I Solving ILPs in fixed dimension

  7. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b Recursive approach for ILP P

  8. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b Recursive approach for ILP ◮ Idea 1: Take coordinate i ∈ [ n ] and recurse on P ∩ { x i = k } for k ∈ Z P

  9. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b Recursive approach for ILP ◮ Idea 1: Take coordinate i ∈ [ n ] and recurse on P ∩ { x i = k } for k ∈ Z But: no bound on number of ( n − 1)-dim. slices! P

  10. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b Recursive approach for ILP ◮ Idea 1: Take coordinate i ∈ [ n ] and recurse on P ∩ { x i = k } for k ∈ Z But: no bound on number of ( n − 1)-dim. slices! ◮ Idea 2: Branch on general direction c ∈ Z n P c

  11. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b The flatness theorem Theorem (Khintchine 1948, Lenstra 1983) For polytope P ⊆ R n in polynomial time one can find ◮ either a point x ∈ P ◮ a direction c ∈ Z n with max {� c, x − y � | x, y ∈ P } ≤ 2 O ( n 2 ) P

  12. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b The flatness theorem Theorem (Khintchine 1948, Lenstra 1983) For polytope P ⊆ R n in polynomial time one can find ◮ either a point x ∈ P ◮ a direction c ∈ Z n with max {� c, x − y � | x, y ∈ P } ≤ 2 O ( n 2 ) ≤ 2 O ( n 2 ) hyperplanes c P

  13. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b The flatness theorem Theorem (Khintchine 1948, Lenstra 1983) For polytope P ⊆ R n in polynomial time one can find ◮ either a point x ∈ P ◮ a direction c ∈ Z n with max {� c, x − y � | x, y ∈ P } ≤ 2 O ( n 2 ) ≤ 2 O ( n 2 ) hyperplanes c P ◮ Best current non-algo bounds: Ω( n ) ≤ .. ≤ ˜ O ( n 4 / 3 )

  14. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b Lattices A lattice is Λ = { � n i =1 λ i · b i | λ i ∈ Z } where b 1 , . . . , b n ∈ R n are linearly independent vectors b 1 b 2 0

  15. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b Lattices A lattice is Λ = { � n i =1 λ i · b i | λ i ∈ Z } where b 1 , . . . , b n ∈ R n are linearly independent vectors b 2 0 b 1

  16. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b Lattices A lattice is Λ = { � n i =1 λ i · b i | λ i ∈ Z } where b 1 , . . . , b n ∈ R n are linearly independent vectors b 2 0 b 1

  17. b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b Lattices b ∗ 2 b 2 0 b 1 = b ∗ 1 Theorem (Lenstra, Lenstra, Lov´ asz ’82) In poly-time one can find a basis b 1 , . . . , b n so that the orthogonality defect is � n i =1 � b i � 2 ≤ 2 n 2 / 2 � n i =1 � b ∗ i � 2 ◮ Here b ∗ 1 , . . . , b ∗ n is the Gram-Schmidt orthogonalization .

  18. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem P 0

  19. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem P 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ

  20. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem 1 P n a 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ

  21. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem 1 a 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ

  22. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem 1 a 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2 n 2 / 2 ; sort vectors s.t. � b 1 � 2 ≤ . . . ≤ � b n � 2

  23. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem 1 a 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2 n 2 / 2 ; sort vectors s.t. � b 1 � 2 ≤ . . . ≤ � b n � 2 Case � b n � 2 ≤ 1 n :

  24. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem 1 a 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2 n 2 / 2 ; sort vectors s.t. � b 1 � 2 ≤ . . . ≤ � b n � 2 Case � b n � 2 ≤ 1 n : ◮ Then � b i � 2 ≤ 1 n for i = 1 , . . . , n

  25. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem 1 a 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2 n 2 / 2 ; sort vectors s.t. � b 1 � 2 ≤ . . . ≤ � b n � 2 Case � b n � 2 ≤ 1 n : ◮ Then � b i � 2 ≤ 1 n for i = 1 , . . . , n ◮ Write a = � n i =1 λ i b i for λ i ∈ R .

  26. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem 1 a 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2 n 2 / 2 ; sort vectors s.t. � b 1 � 2 ≤ . . . ≤ � b n � 2 Case � b n � 2 ≤ 1 n : ◮ Then � b i � 2 ≤ 1 n for i = 1 , . . . , n ◮ Write a = � n i =1 λ i b i for λ i ∈ R . ◮ Return � n i =1 ⌈ λ i ⌋ · b i ∈ P

  27. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem 1 a 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2 n 2 / 2 ; sort vectors s.t. � b 1 � 2 ≤ . . . ≤ � b n � 2 Case � b n � 2 > 1 n .

  28. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem 1 a b n b ∗ n 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2 n 2 / 2 ; sort vectors s.t. � b 1 � 2 ≤ . . . ≤ � b n � 2 Case � b n � 2 > 1 n . n � 2 ≥ 2 − n 2 / 2 � b n � 2 ≥ 2 − Θ( n 2 ) ◮ Then � b ∗

  29. b b b b b b b b b b b b b b b b b b b b Proof of Flatness Theorem 1 a b n b ∗ n 0 ◮ Rescale P so that B ( a, 1) ⊆ P ⊆ B ( a, n ) and Z n → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2 n 2 / 2 ; sort vectors s.t. � b 1 � 2 ≤ . . . ≤ � b n � 2 Case � b n � 2 > 1 n . n � 2 ≥ 2 − n 2 / 2 � b n � 2 ≥ 2 − Θ( n 2 ) ◮ Then � b ∗ b ∗ ◮ Use c := 2 . Hyperplanes intersect B ( a, 1) at most n n � 2 � b ∗ 2 O ( n 2 ) times

  30. Part II Solving Bin Packing with a fixed number of item types

  31. Bin Packing / Cutting Stock Input: item 1 . . . item d

  32. Bin Packing / Cutting Stock Input: ◮ Item sizes s 1 , . . . , s d ∈ [0 , 1] Input: s 1 item 1 . . . item d

  33. Bin Packing / Cutting Stock Input: ◮ Item sizes s 1 , . . . , s d ∈ [0 , 1] ◮ Multiplicities a 1 , . . . , a d ∈ N a 1 many Input: s 1 item 1 . . . item d

  34. Bin Packing / Cutting Stock Input: ◮ Item sizes s 1 , . . . , s d ∈ [0 , 1] ◮ Multiplicities a 1 , . . . , a d ∈ N Goal: Pack items into minimum number of bins of size 1. a 1 many Input: s 1 item 1 . . . item d Solution: 1 bin 1 . . .

  35. Bin Packing / Cutting Stock Input: ◮ Item sizes s 1 , . . . , s d ∈ [0 , 1] ◮ Multiplicities a 1 , . . . , a d ∈ N Goal: Pack items into minimum number of bins of size 1. a 1 many Input: s 1 item 1 . . . item d Solution: 1 bin 1 . . .

  36. Bin Packing / Cutting Stock Input: ◮ Item sizes s 1 , . . . , s d ∈ [0 , 1] ◮ Multiplicities a 1 , . . . , a d ∈ N Goal: Pack items into minimum number of bins of size 1. a 1 many Input: s 1 item 1 . . . item d Solution: 1 bin 1 . . .

  37. Bin Packing / Cutting Stock Input: ◮ Item sizes s 1 , . . . , s d ∈ [0 , 1] ◮ Multiplicities a 1 , . . . , a d ∈ N Goal: Pack items into minimum number of bins of size 1. a 1 many Input: s 1 item 1 . . . item d Solution: 1 bin 1 . . .

Recommend


More recommend