Polynomiality for Bin Packing with a Constant Number of Item Types - - PowerPoint PPT Presentation

polynomiality for bin packing with a constant number of
SMART_READER_LITE
LIVE PREVIEW

Polynomiality for Bin Packing with a Constant Number of Item Types - - PowerPoint PPT Presentation

Polynomiality for Bin Packing with a Constant Number of Item Types Michel X. Goemans & Thomas Rothvo MIP 2013, Madison Bin Packing / Cutting Stock Input: item 1 . . . item d Bin Packing / Cutting Stock Input: Item sizes s 1 , . . .


slide-1
SLIDE 1

Polynomiality for Bin Packing with a Constant Number of Item Types

Michel X. Goemans & Thomas Rothvoß

MIP 2013, Madison

slide-2
SLIDE 2

Bin Packing / Cutting Stock

Input: item 1 . . . item d

slide-3
SLIDE 3

Bin Packing / Cutting Stock

Input:

◮ Item sizes s1, . . . , sd ∈ [0, 1]

Input: item 1 . . . item d s1

slide-4
SLIDE 4

Bin Packing / Cutting Stock

Input:

◮ Item sizes s1, . . . , sd ∈ [0, 1] ◮ Multiplicities a1, . . . , ad ∈ N

Input: item 1 . . . item d a1 many s1

slide-5
SLIDE 5

Bin Packing / Cutting Stock

Input:

◮ Item sizes s1, . . . , sd ∈ [0, 1] ◮ Multiplicities a1, . . . , ad ∈ N

Goal: Pack items into minimum number of bins of size 1. Input: Solution: item 1 . . . item d a1 many s1 1 bin 1 . . .

slide-6
SLIDE 6

Bin Packing / Cutting Stock

Input:

◮ Item sizes s1, . . . , sd ∈ [0, 1] ◮ Multiplicities a1, . . . , ad ∈ N

Goal: Pack items into minimum number of bins of size 1. Input: Solution: item 1 . . . item d a1 many s1 1 bin 1 . . .

slide-7
SLIDE 7

Bin Packing / Cutting Stock

Input:

◮ Item sizes s1, . . . , sd ∈ [0, 1] ◮ Multiplicities a1, . . . , ad ∈ N

Goal: Pack items into minimum number of bins of size 1. Input: Solution: item 1 . . . item d a1 many s1 1 bin 1 . . .

slide-8
SLIDE 8

Bin Packing / Cutting Stock

Input:

◮ Item sizes s1, . . . , sd ∈ [0, 1] ◮ Multiplicities a1, . . . , ad ∈ N

Goal: Pack items into minimum number of bins of size 1. Input: Solution: item 1 . . . item d a1 many s1 1 bin 1 . . .

slide-9
SLIDE 9

Polynomial time algorithms

For general d:

◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3

[Garey & Johnson ’79]

slide-10
SLIDE 10

Polynomial time algorithms

For general d:

◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3

[Garey & Johnson ’79]

◮ Asymptotic FPTAS

OPT + O(log2 d) [Karmarkar & Karp ’82] OPT + O(log d · log log d) [R. ’13] (running time poly(d

i=1 ai))

slide-11
SLIDE 11

Polynomial time algorithms

For general d:

◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3

[Garey & Johnson ’79]

◮ Asymptotic FPTAS

OPT + O(log2 d) [Karmarkar & Karp ’82] OPT + O(log d · log log d) [R. ’13] (running time poly(d

i=1 ai)) ◮ ∈ NP [Eisenbrand & Shmonin ’06]

slide-12
SLIDE 12

Polynomial time algorithms

For general d:

◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3

[Garey & Johnson ’79]

◮ Asymptotic FPTAS

OPT + O(log2 d) [Karmarkar & Karp ’82] OPT + O(log d · log log d) [R. ’13] (running time poly(d

i=1 ai)) ◮ ∈ NP [Eisenbrand & Shmonin ’06]

For constant d:

slide-13
SLIDE 13

Polynomial time algorithms

For general d:

◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3

[Garey & Johnson ’79]

◮ Asymptotic FPTAS

OPT + O(log2 d) [Karmarkar & Karp ’82] OPT + O(log d · log log d) [R. ’13] (running time poly(d

i=1 ai)) ◮ ∈ NP [Eisenbrand & Shmonin ’06]

For constant d:

◮ Polytime for d = 2 [McCormick, Smallwood, Spieksma ’97]

slide-14
SLIDE 14

Polynomial time algorithms

For general d:

◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3

[Garey & Johnson ’79]

◮ Asymptotic FPTAS

OPT + O(log2 d) [Karmarkar & Karp ’82] OPT + O(log d · log log d) [R. ’13] (running time poly(d

i=1 ai)) ◮ ∈ NP [Eisenbrand & Shmonin ’06]

For constant d:

◮ Polytime for d = 2 [McCormick, Smallwood, Spieksma ’97] ◮ OPT + 1 in time 22O(d) · poly [Jansen & Solis-Oba ’10]

slide-15
SLIDE 15

Polynomial time algorithms

For general d:

◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3

[Garey & Johnson ’79]

◮ Asymptotic FPTAS

OPT + O(log2 d) [Karmarkar & Karp ’82] OPT + O(log d · log log d) [R. ’13] (running time poly(d

i=1 ai)) ◮ ∈ NP [Eisenbrand & Shmonin ’06]

For constant d:

◮ Polytime for d = 2 [McCormick, Smallwood, Spieksma ’97] ◮ OPT + 1 in time 22O(d) · poly [Jansen & Solis-Oba ’10]

Open problem [ES’06, MSS’97, F’07]

Solvable in poly-time for d = 3?

slide-16
SLIDE 16

A geometric view

◮ Define P = {x ∈ Rd ≥0 | sTx ≤ 1}

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

Rd sTx ≤ 1 a

slide-17
SLIDE 17

A geometric view

◮ Define P = {x ∈ Rd ≥0 | sTx ≤ 1}

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

Rd sTx ≤ 1 2 1 a

slide-18
SLIDE 18

A geometric view

◮ Define P = {x ∈ Rd ≥0 | sTx ≤ 1}

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

Rd sTx ≤ 1 2 1 a

slide-19
SLIDE 19

A geometric view

◮ Define P = {x ∈ Rd ≥0 | sTx ≤ 1}

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

Rd sTx ≤ 1 2 1 a

slide-20
SLIDE 20

A geometric view

◮ Define P = {x ∈ Rd ≥0 | sTx ≤ 1}

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

Rd sTx ≤ 1 2 1 a Problems:

◮ Points in P exponentially many

slide-21
SLIDE 21

A geometric view

◮ Define P = {x ∈ Rd ≥0 | sTx ≤ 1}

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

Rd sTx ≤ 1 2 1 a Problems:

◮ Points in P exponentially many ◮ Weights can be exponential

slide-22
SLIDE 22

Main results

Theorem (Goemans, R. ’13)

Bin Packing with d = O(1) item sizes can be solved in poly-time. Solves question by

◮ [McCormick, Smallwood, Spieksma ’97]:

“might be NP-hard for d = 3”

◮ [Eisenbrand & Shmonin ’06] ◮ [Filippi ’07]: “hard open problem for general d”

slide-23
SLIDE 23

Main results (2)

◮ Def.: int.cone(X) := { x∈X λx · x | λx ∈ Z≥0}

slide-24
SLIDE 24

Main results (2)

◮ Def.: int.cone(X) := { x∈X λx · x | λx ∈ Z≥0}

Theorem (Goemans, R. ’13)

For fixed-dim. polytopes P, Q ⊆ Rd, testing int.cone(P ∩ Zd) ∩ Q = ∅ is doable in poly-time (actually inputlength2O(d)). P

b b b b b

Q

b b b b b b

slide-25
SLIDE 25

Main results (2)

◮ Def.: int.cone(X) := { x∈X λx · x | λx ∈ Z≥0}

Theorem (Goemans, R. ’13)

For fixed-dim. polytopes P, Q ⊆ Rd, testing int.cone(P ∩ Zd) ∩ Q = ∅ is doable in poly-time (actually inputlength2O(d)). P

b b b b b

Q

b b b b b b

2 1

slide-26
SLIDE 26

Main results (2)

◮ Def.: int.cone(X) := { x∈X λx · x | λx ∈ Z≥0}

Theorem (Goemans, R. ’13)

For fixed-dim. polytopes P, Q ⊆ Rd, testing int.cone(P ∩ Zd) ∩ Q = ∅ is doable in poly-time (actually inputlength2O(d)). P

b b b b b

Q

b b b b b b

2 1

slide-27
SLIDE 27

Main results (2)

◮ Def.: int.cone(X) := { x∈X λx · x | λx ∈ Z≥0}

Theorem (Goemans, R. ’13)

For fixed-dim. polytopes P, Q ⊆ Rd, testing int.cone(P ∩ Zd) ∩ Q = ∅ is doable in poly-time (actually inputlength2O(d)). P

b b b b b

Q

b b b b b b

2 1

slide-28
SLIDE 28

Main results (2)

◮ Def.: int.cone(X) := { x∈X λx · x | λx ∈ Z≥0}

Theorem (Goemans, R. ’13)

For fixed-dim. polytopes P, Q ⊆ Rd, testing int.cone(P ∩ Zd) ∩ Q = ∅ is doable in poly-time (actually inputlength2O(d)). P

b b b b b

Q

b b b b b b

2 1

◮ For Bin Packing:

P := { x

1

  • | sTx ≤ 1, x ≥ 0} and Q := {
  • a

OPT

  • }
slide-29
SLIDE 29
  • Int. conic combinations

Theorem (Eisenbrand & Shmonin ’06)

If P ⊆ Rd convex, then any integer conic combination a =

  • x∈P∩Zd

λx · x needs at most 2d points. P

b b b b b b b b b b b b b b

slide-30
SLIDE 30
  • Int. conic combinations

Theorem (Eisenbrand & Shmonin ’06)

If P ⊆ Rd convex, then any integer conic combination a =

  • x∈P∩Zd

λx · x needs at most 2d points.

◮ Suppose |supp(λ)| > 2d

P

b b b b b b b b b b b b b b

slide-31
SLIDE 31
  • Int. conic combinations

Theorem (Eisenbrand & Shmonin ’06)

If P ⊆ Rd convex, then any integer conic combination a =

  • x∈P∩Zd

λx · x needs at most 2d points.

◮ Suppose |supp(λ)| > 2d ◮ Take points x, y ∈ supp(λ) of

same parity P

b b b b b b b b b b b b b b

x y

slide-32
SLIDE 32
  • Int. conic combinations

Theorem (Eisenbrand & Shmonin ’06)

If P ⊆ Rd convex, then any integer conic combination a =

  • x∈P∩Zd

λx · x needs at most 2d points.

◮ Suppose |supp(λ)| > 2d ◮ Take points x, y ∈ supp(λ) of

same parity

◮ Midpoint z = 1 2(x + y) ∈ P ∩ Zd

P

b b b b b b b b b b b b b b

x y z

slide-33
SLIDE 33
  • Int. conic combinations

Theorem (Eisenbrand & Shmonin ’06)

If P ⊆ Rd convex, then any integer conic combination a =

  • x∈P∩Zd

λx · x needs at most 2d points.

◮ Suppose |supp(λ)| > 2d ◮ Take points x, y ∈ supp(λ) of

same parity

◮ Midpoint z = 1 2(x + y) ∈ P ∩ Zd ◮ Move weight from x, y to z

P

b b b b b b b b b b b b b b

x y z −1 +2 −1

slide-34
SLIDE 34
  • Int. conic combinations

Theorem (Eisenbrand & Shmonin ’06)

If P ⊆ Rd convex, then any integer conic combination a =

  • x∈P∩Zd

λx · x needs at most 2d points.

◮ Suppose |supp(λ)| > 2d ◮ Take points x, y ∈ supp(λ) of

same parity

◮ Midpoint z = 1 2(x + y) ∈ P ∩ Zd ◮ Move weight from x, y to z ◮ Potential function x λxf(x)

decreases (f strictly convex) P

b b b b b b b b b b b b b b

x y z −1 +2 −1

slide-35
SLIDE 35
  • Int. conic combinations

Theorem (Eisenbrand & Shmonin ’06)

If P ⊆ Rd convex, then any integer conic combination a =

  • x∈P∩Zd

λx · x needs at most 2d points.

◮ Suppose |supp(λ)| > 2d ◮ Take points x, y ∈ supp(λ) of

same parity

◮ Midpoint z = 1 2(x + y) ∈ P ∩ Zd ◮ Move weight from x, y to z ◮ Potential function x λxf(x)

decreases (f strictly convex) P

b b b b b b b b b b b b b b

x y z −1 +2 −1

◮ Problem: Still don’t know which points to take!

slide-36
SLIDE 36

Redistributing weight

P

slide-37
SLIDE 37

Redistributing weight

P x

slide-38
SLIDE 38

Redistributing weight

◮ Consider parallelepiped Π ∋ x

with integral vertices P

Π

x

slide-39
SLIDE 39

Redistributing weight

◮ Consider parallelepiped Π ∋ x

with integral vertices

◮ Let y vertex of Π, in quadrant of x

P

Π

x y

slide-40
SLIDE 40

Redistributing weight

◮ Consider parallelepiped Π ∋ x

with integral vertices

◮ Let y vertex of Π, in quadrant of x ◮ Let z ∈ Π ∩ Zd be mirrored point

P

Π

x y z

slide-41
SLIDE 41

Redistributing weight

◮ Consider parallelepiped Π ∋ x

with integral vertices

◮ Let y vertex of Π, in quadrant of x ◮ Let z ∈ Π ∩ Zd be mirrored point ◮ If λx ≥ 2 ⇒ redistribute weight

P

Π

x y z +1 −2 +1

slide-42
SLIDE 42

Redistributing weight

◮ Consider parallelepiped Π ∋ x

with integral vertices

◮ Let y vertex of Π, in quadrant of x ◮ Let z ∈ Π ∩ Zd be mirrored point ◮ If λx ≥ 2 ⇒ redistribute weight ◮ At most 2d points left inside Π

P

Π

1 1 1

slide-43
SLIDE 43

Redistributing weight

Lemma

For x in parallelepiped Π and λx ∈ N, one can write λxx = int.cone(vertices of Π) +

  • f 2d points in Π ∩ Zd

◮ Consider parallelepiped Π ∋ x

with integral vertices

◮ Let y vertex of Π, in quadrant of x ◮ Let z ∈ Π ∩ Zd be mirrored point ◮ If λx ≥ 2 ⇒ redistribute weight ◮ At most 2d points left inside Π

P

Π

1 1 1

slide-44
SLIDE 44

Covering a polytope with parallelepipeds

Lemma

For fixed-dim P ⊆ Rd, we can cover P ∩ Zd with poly-many parallelepipeds (with int. vertices and ⊆ P). 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

slide-45
SLIDE 45

Covering a polytope with parallelepipeds

Lemma

For fixed-dim P ⊆ Rd, we can cover P ∩ Zd with poly-many parallelepipeds (with int. vertices and ⊆ P). 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

slide-46
SLIDE 46

Covering a polytope w. parallelep. (2)

P

slide-47
SLIDE 47

Covering a polytope w. parallelep. (2)

◮ Split P = {x | Ax ≤ b}

into poly many cells C = {x | αj(i) ≤ Aix ≤ αj(i)+1} bi − Aix = 0 bi − Aix = (1 + 1

d)Z

P

slide-48
SLIDE 48

Covering a polytope w. parallelep. (2)

◮ Split P = {x | Ax ≤ b}

into poly many cells C = {x | αj(i) ≤ Aix ≤ αj(i)+1} P cell C

slide-49
SLIDE 49

Covering a polytope w. parallelep. (2)

◮ Split P = {x | Ax ≤ b}

into poly many cells C = {x | αj(i) ≤ Aix ≤ αj(i)+1}

◮ Consider int.hull CI

(poly many vertices)

b b b b b b b

CI P cell C

slide-50
SLIDE 50

Covering a polytope w. parallelep. (2)

◮ Split P = {x | Ax ≤ b}

into poly many cells C = {x | αj(i) ≤ Aix ≤ αj(i)+1}

◮ Consider int.hull CI

(poly many vertices)

◮ Extend any d + 1 vertices

  • f CI to parallelepiped

b b b b b b b

CI x0 x1 x2 P cell C

slide-51
SLIDE 51

Covering a polytope w. parallelep. (2)

◮ Split P = {x | Ax ≤ b}

into poly many cells C = {x | αj(i) ≤ Aix ≤ αj(i)+1}

◮ Consider int.hull CI

(poly many vertices)

◮ Extend any d + 1 vertices

  • f CI to parallelepiped

b b b b b b b

CI x0 x1 x2 P cell C parallelepiped

slide-52
SLIDE 52

Covering a polytope w. parallelep. (2)

◮ Split P = {x | Ax ≤ b}

into poly many cells C = {x | αj(i) ≤ Aix ≤ αj(i)+1}

◮ Consider int.hull CI

(poly many vertices)

◮ Extend any d + 1 vertices

  • f CI to parallelepiped

b b b b b b b

CI x0 x1 x2 P cell C parallelepiped

◮ Each cell covered with dO(d2)mO(d2)(log ∆)O(d2)

parallelepipeds

slide-53
SLIDE 53

Covering a polytope w. parallelep. (2)

◮ Split P = {x | Ax ≤ b}

into poly many cells C = {x | αj(i) ≤ Aix ≤ αj(i)+1}

◮ Consider int.hull CI

(poly many vertices)

◮ Extend any d + 1 vertices

  • f CI to parallelepiped

b b b b b b b

CI P

◮ Each cell covered with dO(d2)mO(d2)(log ∆)O(d2)

parallelepipeds

◮ Improvement: Approximate CI by polytope with d2

vertices using John’s ellipsoid

slide-54
SLIDE 54

Covering a polytope w. parallelep. (2)

◮ Split P = {x | Ax ≤ b}

into poly many cells C = {x | αj(i) ≤ Aix ≤ αj(i)+1}

◮ Consider int.hull CI

(poly many vertices)

◮ Extend any d + 1 vertices

  • f CI to parallelepiped

b b b b b b b

CI P

◮ Each cell covered with dO(d2)mO(d2)(log ∆)O(d2)

parallelepipeds

◮ Improvement: Approximate CI by polytope with d2

vertices using John’s ellipsoid

slide-55
SLIDE 55

The algorithm

◮ Input: polytopes P, Q in ineq. description ◮ Output: Coefficients for int.cone(P ∩ Zd) ∩ Q = ∅

slide-56
SLIDE 56

The algorithm

◮ Input: polytopes P, Q in ineq. description ◮ Output: Coefficients for int.cone(P ∩ Zd) ∩ Q = ∅

Algorithm: (1) Compute poly many parallelepipeds covering P 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

slide-57
SLIDE 57

The algorithm

◮ Input: polytopes P, Q in ineq. description ◮ Output: Coefficients for int.cone(P ∩ Zd) ∩ Q = ∅

Algorithm: (1) Compute poly many parallelepipeds covering P 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

slide-58
SLIDE 58

The algorithm

◮ Input: polytopes P, Q in ineq. description ◮ Output: Coefficients for int.cone(P ∩ Zd) ∩ Q = ∅

Algorithm: (1) Compute poly many parallelepipeds covering P (2) Guess the 2d parallelepipeds containing solution 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

slide-59
SLIDE 59

The algorithm

◮ Input: polytopes P, Q in ineq. description ◮ Output: Coefficients for int.cone(P ∩ Zd) ∩ Q = ∅

Algorithm: (1) Compute poly many parallelepipeds covering P (2) Guess the 2d parallelepipeds containing solution 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

slide-60
SLIDE 60

The algorithm

◮ Input: polytopes P, Q in ineq. description ◮ Output: Coefficients for int.cone(P ∩ Zd) ∩ Q = ∅

Algorithm: (1) Compute poly many parallelepipeds covering P (2) Guess the 2d parallelepipeds containing solution → X := vertices 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

slide-61
SLIDE 61

The algorithm

◮ Input: polytopes P, Q in ineq. description ◮ Output: Coefficients for int.cone(P ∩ Zd) ∩ Q = ∅

Algorithm: (1) Compute poly many parallelepipeds covering P (2) Guess the 2d parallelepipeds containing solution → X := vertices (3) Solve ILP with 2O(d) variables

  • x∈X

λx · x +

  • some x∈P∩Zd

1 · x ∈ Q 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

slide-62
SLIDE 62

The algorithm

◮ Input: polytopes P, Q in ineq. description ◮ Output: Coefficients for int.cone(P ∩ Zd) ∩ Q = ∅

Algorithm: (1) Compute poly many parallelepipeds covering P (2) Guess the 2d parallelepipeds containing solution → X := vertices (3) Solve ILP with 2O(d) variables

  • x∈X

λx · x +

  • some x∈P∩Zd

1 · x ∈ Q variables 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

slide-63
SLIDE 63

A Structure Theorem

Structure Theorem

For polytope P 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

slide-64
SLIDE 64

A Structure Theorem

Structure Theorem

For polytope P 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

slide-65
SLIDE 65

A Structure Theorem

Structure Theorem

For polytope P, ∃ poly-time comp. set X ⊆ P ∩ Zd 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 b

slide-66
SLIDE 66

A Structure Theorem

Structure Theorem

For polytope P, ∃ poly-time comp. set X ⊆ P ∩ Zd 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 b

slide-67
SLIDE 67

A Structure Theorem

Structure Theorem

For polytope P, ∃ poly-time comp. set X ⊆ P ∩ Zd s.t. for all a ∈ int.cone(P ∩ Zd) one can express a = int.cone(22d points in X) +

  • f 22d points in P ∩ Zd

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 b

a

slide-68
SLIDE 68

More applications (1)

Theorem

Cutting stock with d = O(1) item types and m = O(1) of bin types can be solved in polytime. item 1 . . . item d a1 many s1 w1 bin type 1 bin type m . . . cost c1 Items: Bins:

slide-69
SLIDE 69

More applications (1)

Theorem

Cutting stock with d = O(1) item types and m = O(1) of bin types can be solved in polytime. item 1 . . . item d a1 many s1 w1 bin type 1 bin type m . . . cost c1 Items: Bins:

◮ P = P1 × . . . × Pm with Pj := {

x

cj

  • | sTx ≤ wj}
slide-70
SLIDE 70

More applications (2)

High Multiplicity Scheduling:

◮ Input: d job types, each with release time, deadline,

processing time, multiplicity

◮ Goal: Schedule jobs to minimize number of used machines

slide-71
SLIDE 71

More applications (2)

High Multiplicity Scheduling:

◮ Input: d job types, each with release time, deadline,

processing time, multiplicity

◮ Goal: Schedule jobs to minimize number of used machines

Theorem

High Multiplicity Scheduling can be solved in poly-time for fixed d.

slide-72
SLIDE 72

The end Thanks for your attention