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

integer linear programming and bin packing in fixed
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Integer Linear Programming and Bin Packing in fixed Dimension

Thomas Rothvoss

10th Carg` ese Workshop on Combinatorial Optimization (2019)

slide-2
SLIDE 2

Motivation and Outline

Integer Linear Programming max{cTx | Ax ≤ b, x ∈ Zn} P = {x | Ax ≤ b}

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

slide-3
SLIDE 3

Motivation and Outline

Integer Linear Programming max{cTx | Ax ≤ b, x ∈ Zn} P = {x | Ax ≤ b}

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

c

slide-4
SLIDE 4

Motivation and Outline

Integer Linear Programming max{cTx | Ax ≤ b, x ∈ Zn} P = {x | Ax ≤ b}

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

c ◮ Part I: Solve ILPs in time f(n) · poly(input length) [Lenstra ’83], [Lenstra, Lenstra, Lov´ asz ’82]

slide-5
SLIDE 5

Motivation and Outline

Integer Linear Programming max{cTx | Ax ≤ b, x ∈ Zn} P = {x | Ax ≤ b}

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

c ◮ 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]

slide-6
SLIDE 6

Part I Solving ILPs in fixed dimension

slide-7
SLIDE 7

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

slide-8
SLIDE 8

Recursive approach for ILP

◮ Idea 1: Take coordinate i ∈ [n] and recurse on P ∩ {xi = 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

slide-9
SLIDE 9

Recursive approach for ILP

◮ Idea 1: Take coordinate i ∈ [n] and recurse on P ∩ {xi = 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

slide-10
SLIDE 10

Recursive approach for ILP

◮ Idea 1: Take coordinate i ∈ [n] and recurse on P ∩ {xi = k} for k ∈ Z But: no bound on number of (n − 1)-dim. slices! ◮ Idea 2: Branch on general direction c ∈ Zn 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

slide-11
SLIDE 11

The flatness theorem

Theorem (Khintchine 1948, Lenstra 1983)

For polytope P ⊆ Rn in polynomial time one can find ◮ either a point x ∈ P ◮ a direction c ∈ Zn with max{c, x − y | x, y ∈ P} ≤ 2O(n2)

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

P

slide-12
SLIDE 12

The flatness theorem

Theorem (Khintchine 1948, Lenstra 1983)

For polytope P ⊆ Rn in polynomial time one can find ◮ either a point x ∈ P ◮ a direction c ∈ Zn with max{c, x − y | x, y ∈ P} ≤ 2O(n2)

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

P ≤ 2O(n2) hyperplanes c

slide-13
SLIDE 13

The flatness theorem

Theorem (Khintchine 1948, Lenstra 1983)

For polytope P ⊆ Rn in polynomial time one can find ◮ either a point x ∈ P ◮ a direction c ∈ Zn with max{c, x − y | x, y ∈ P} ≤ 2O(n2)

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

P ≤ 2O(n2) hyperplanes c ◮ Best current non-algo bounds: Ω(n) ≤ .. ≤ ˜ O(n4/3)

slide-14
SLIDE 14

Lattices

A lattice is Λ = {n

i=1 λi · bi | λi ∈ Z} where b1, . . . , bn ∈ Rn

are linearly independent vectors

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

b1 b2

slide-15
SLIDE 15

Lattices

A lattice is Λ = {n

i=1 λi · bi | λi ∈ Z} where b1, . . . , bn ∈ Rn

are linearly independent vectors

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

b2 b1

slide-16
SLIDE 16

Lattices

A lattice is Λ = {n

i=1 λi · bi | λi ∈ Z} where b1, . . . , bn ∈ Rn

are linearly independent vectors

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

b1 b2

slide-17
SLIDE 17

Lattices

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

0 b1 = b∗

1

b2 b∗

2

Theorem (Lenstra, Lenstra, Lov´ asz ’82)

In poly-time one can find a basis b1, . . . , bn so that the

  • rthogonality defect is

n

i=1 bi2

n

i=1 b∗ i 2

≤ 2n2/2 ◮ Here b∗

1, . . . , b∗ n is the Gram-Schmidt

  • rthogonalization.
slide-18
SLIDE 18

Proof of Flatness Theorem

P

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

slide-19
SLIDE 19

Proof of Flatness Theorem

P

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

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ

slide-20
SLIDE 20

Proof of Flatness Theorem

P a 1 n

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

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ

slide-21
SLIDE 21

Proof of Flatness Theorem

a 1

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

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ

slide-22
SLIDE 22

Proof of Flatness Theorem

a 1

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

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2n2/2; sort vectors s.t. b12 ≤ . . . ≤ bn2

slide-23
SLIDE 23

Proof of Flatness Theorem

a 1

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

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2n2/2; sort vectors s.t. b12 ≤ . . . ≤ bn2 Case bn2 ≤ 1

n:

slide-24
SLIDE 24

Proof of Flatness Theorem

a 1

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

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2n2/2; sort vectors s.t. b12 ≤ . . . ≤ bn2 Case bn2 ≤ 1

n:

◮ Then bi2 ≤ 1

n for i = 1, . . . , n

slide-25
SLIDE 25

Proof of Flatness Theorem

a 1

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

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2n2/2; sort vectors s.t. b12 ≤ . . . ≤ bn2 Case bn2 ≤ 1

n:

◮ Then bi2 ≤ 1

n for i = 1, . . . , n

◮ Write a = n

i=1 λibi for λi ∈ R.

slide-26
SLIDE 26

Proof of Flatness Theorem

a 1

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

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2n2/2; sort vectors s.t. b12 ≤ . . . ≤ bn2 Case bn2 ≤ 1

n:

◮ Then bi2 ≤ 1

n for i = 1, . . . , n

◮ Write a = n

i=1 λibi for λi ∈ R.

◮ Return n

i=1⌈λi⌋ · bi ∈ P

slide-27
SLIDE 27

Proof of Flatness Theorem

a 1

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

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2n2/2; sort vectors s.t. b12 ≤ . . . ≤ bn2 Case bn2 > 1

n.

slide-28
SLIDE 28

Proof of Flatness Theorem

a 1

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

bn b∗

n

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2n2/2; sort vectors s.t. b12 ≤ . . . ≤ bn2 Case bn2 > 1

n.

◮ Then b∗

n2 ≥ 2−n2/2bn2 ≥ 2−Θ(n2)

slide-29
SLIDE 29

Proof of Flatness Theorem

a 1

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

bn b∗

n

◮ Rescale P so that B(a, 1) ⊆ P ⊆ B(a, n) and Zn → Λ ◮ Compute lattice basis with orthogonality defect ≤ 2n2/2; sort vectors s.t. b12 ≤ . . . ≤ bn2 Case bn2 > 1

n.

◮ Then b∗

n2 ≥ 2−n2/2bn2 ≥ 2−Θ(n2)

◮ Use c :=

b∗

n

b∗

n2

  • 2. Hyperplanes intersect B(a, 1) at most

2O(n2) times

slide-30
SLIDE 30

Part II Solving Bin Packing with a fixed number

  • f item types
slide-31
SLIDE 31

Bin Packing / Cutting Stock

Input: item 1 . . . item d

slide-32
SLIDE 32

Bin Packing / Cutting Stock

Input: ◮ Item sizes s1, . . . , sd ∈ [0, 1] Input: item 1 . . . item d s1

slide-33
SLIDE 33

Bin Packing / Cutting Stock

Input: ◮ Item sizes s1, . . . , sd ∈ [0, 1] ◮ Multiplicities a1, . . . , ad ∈ N Input: item 1 . . . item d a1 many s1

slide-34
SLIDE 34

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-35
SLIDE 35

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-36
SLIDE 36

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-37
SLIDE 37

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-38
SLIDE 38

Polynomial time algorithms

For general d: ◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3 [Garey & Johnson ’79]

slide-39
SLIDE 39

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) [Hoberg & R. ’15] (running time poly(d

i=1 ai))

slide-40
SLIDE 40

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) [Hoberg & R. ’15] (running time poly(d

i=1 ai))

◮ ∈ NP [Eisenbrand & Shmonin ’06]

slide-41
SLIDE 41

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) [Hoberg & R. ’15] (running time poly(d

i=1 ai))

◮ ∈ NP [Eisenbrand & Shmonin ’06] For constant d:

slide-42
SLIDE 42

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) [Hoberg & R. ’15] (running time poly(d

i=1 ai))

◮ ∈ NP [Eisenbrand & Shmonin ’06] For constant d: ◮ Polytime for d = 2 [McCormick, Smallwood, Spieksma ’97]

slide-43
SLIDE 43

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) [Hoberg & R. ’15] (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-44
SLIDE 44

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) [Hoberg & R. ’15] (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 [MSS’97, ES’06, F’07]

Solvable in poly-time for d = 3?

slide-45
SLIDE 45

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-46
SLIDE 46

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-47
SLIDE 47

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-48
SLIDE 48

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-49
SLIDE 49

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-50
SLIDE 50

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-51
SLIDE 51

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-52
SLIDE 52

Main results (2)

◮ Def.: int.cone(X) := {

x∈X λx · x | λx ∈ Z≥0}

slide-53
SLIDE 53

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-54
SLIDE 54

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-55
SLIDE 55

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-56
SLIDE 56

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-57
SLIDE 57

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-58
SLIDE 58

Integer 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-59
SLIDE 59

Integer 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-60
SLIDE 60

Integer 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-61
SLIDE 61

Integer 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-62
SLIDE 62

Integer 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-63
SLIDE 63

Integer 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-64
SLIDE 64

Integer 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-65
SLIDE 65

Redistributing weight

P

slide-66
SLIDE 66

Redistributing weight

P x

slide-67
SLIDE 67

Redistributing weight

◮ Consider parallelepiped Π ∋ x with integral vertices P

Π

x

slide-68
SLIDE 68

Redistributing weight

◮ Consider parallelepiped Π ∋ x with integral vertices ◮ Let y vertex of Π, in quadrant of x P

Π

x y

slide-69
SLIDE 69

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-70
SLIDE 70

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-71
SLIDE 71

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-72
SLIDE 72

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-73
SLIDE 73

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-74
SLIDE 74

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-75
SLIDE 75

Covering a polytope w. parallelep. (2)

P

slide-76
SLIDE 76

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-77
SLIDE 77

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-78
SLIDE 78

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-79
SLIDE 79

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-80
SLIDE 80

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-81
SLIDE 81

The algorithm

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

slide-82
SLIDE 82

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-83
SLIDE 83

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-84
SLIDE 84

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-85
SLIDE 85

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-86
SLIDE 86

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-87
SLIDE 87

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 +

  • ≤22d 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-88
SLIDE 88

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 +

  • ≤22d 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-89
SLIDE 89

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-90
SLIDE 90

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-91
SLIDE 91

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-92
SLIDE 92

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-93
SLIDE 93

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-94
SLIDE 94

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

a

b b b b b

◮ More recent: a = int.cone(vert(PI)) + of 2O(d) points with weights ≤ 22O(d) [Jansen, Klein ’16]

slide-95
SLIDE 95

Open questions

◮ Is there a 2O(n) · poly(input) algorithm for Integer Linear Programming? ◮ Is there a poly(n)-factor approximation algorithm for Shortest Vector Problem in a Lattice? (distinguishing ≥ Θ(√n) · L from ≤ L is in NP ∩ coNP) ◮ Can one find a lattice basis with orthogonality defect at most nO(n) in poly-time? ◮ Can Bin Packing be solved in (input length)poly(d) time? maybe even in f(d) · poly(input length)?

slide-96
SLIDE 96

Open questions

◮ Is there a 2O(n) · poly(input) algorithm for Integer Linear Programming? ◮ Is there a poly(n)-factor approximation algorithm for Shortest Vector Problem in a Lattice? (distinguishing ≥ Θ(√n) · L from ≤ L is in NP ∩ coNP) ◮ Can one find a lattice basis with orthogonality defect at most nO(n) in poly-time? ◮ Can Bin Packing be solved in (input length)poly(d) time? maybe even in f(d) · poly(input length)?

Thanks for your attention