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 Programming max { c T x | Ax ≤ b, x ∈ Z n } P = { x | Ax ≤ b }
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 }
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]
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]
Part I Solving ILPs in fixed dimension
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
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
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
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
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
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
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 )
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
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
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
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 .
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
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 → Λ
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 → Λ
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 → Λ
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
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 :
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
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 .
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
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 .
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 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
Part II Solving Bin Packing with a fixed number of item types
Bin Packing / Cutting Stock Input: item 1 . . . item d
Bin Packing / Cutting Stock Input: ◮ Item sizes s 1 , . . . , s d ∈ [0 , 1] Input: s 1 item 1 . . . item d
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
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 . . .
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 . . .
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 . . .
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