SLIDE 1 A Logarithmic Additive Integrality Gap for Bin Packing
Rebecca Hoberg and Thomas Rothvoss
- Dep. of Mathematics
- Dep. of Mathematics & CSE
Barbados 2015
SLIDE 2
Bin Packing
Input: Items with sizes s1, . . . , sn ∈ [0, 1] Goal: Pack items into minimum number of bins of size 1. bin 1 bin 2 input si 1 1
SLIDE 3
Bin Packing
Input: Items with sizes s1, . . . , sn ∈ [0, 1] Goal: Pack items into minimum number of bins of size 1. bin 1 bin 2 input si 1 1
SLIDE 4
Bin Packing
Input: Items with sizes s1, . . . , sn ∈ [0, 1] Goal: Pack items into minimum number of bins of size 1. bin 1 bin 2 input si 1 1
SLIDE 5
Bin Packing
Input: Items with sizes s1, . . . , sn ∈ [0, 1] Goal: Pack items into minimum number of bins of size 1. bin 1 bin 2 input si 1 1
SLIDE 6
Bin Packing
Input: Items with sizes s1, . . . , sn ∈ [0, 1] Goal: Pack items into minimum number of bins of size 1. bin 1 bin 2 input si 1 1
SLIDE 7 Bin Packing
Input: Items with sizes s1, . . . , sn ∈ [0, 1] Goal: Pack items into minimum number of bins of size 1. bin 1 bin 2 input si 1 1
◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3
[Garey & Johnson ’79]
SLIDE 8 Bin Packing
Input: Items with sizes s1, . . . , sn ∈ [0, 1] Goal: Pack items into minimum number of bins of size 1. bin 1 bin 2 input si 1 1
◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3
[Garey & Johnson ’79]
◮ First Fit Decreasing [Johnson ’73]: APX ≤ 11 9 OPT + 4
SLIDE 9 Bin Packing
Input: Items with sizes s1, . . . , sn ∈ [0, 1] Goal: Pack items into minimum number of bins of size 1. bin 1 bin 2 input si 1 1
◮ NP-hard to distinguish OPT ≤ 2 or OPT ≥ 3
[Garey & Johnson ’79]
◮ First Fit Decreasing [Johnson ’73]: APX ≤ 11 9 OPT + 4 ◮ [de la Vega & L¨
ucker ’81] : APX ≤ (1 + ε)OPT + O(1/ε2) in time O(n) · f(ε)
SLIDE 10 The Gilmore Gomory LP relaxation
◮ bi = #items with size si ◮ Feasible patterns:
P =
≥0 | n
sipi ≤ 1
SLIDE 11 The Gilmore Gomory LP relaxation
◮ bi = #items with size si ◮ Feasible patterns:
P =
≥0 | n
sipi ≤ 1
- ◮ Gilmore Gomory LP relaxation:
min
xp
pi · xp ≥ bi ∀i ∈ [n] xp ≥ ∀p ∈ P
SLIDE 12 The Gilmore Gomory LP relaxation
◮ bi = #items with size si ◮ Feasible patterns:
P =
≥0 | n
sipi ≤ 1
- ◮ Gilmore Gomory LP relaxation:
min 1Tx
Ax ≥ b xp ≥ ∀p ∈ P
SLIDE 13 The Gilmore Gomory LP relaxation
◮ bi = #items with size si ◮ Feasible patterns:
P =
≥0 | n
sipi ≤ 1
- ◮ Gilmore Gomory LP relaxation:
min 1Tx
Ax ≥ b xp ≥ ∀p ∈ P
◮ Can find x with 1Tx ≤ OPTf + δ in time poly(b1, 1 δ)
SLIDE 14
The Gilmore Gomory LP - Example
input si 1 0.44 0.4 0.3 0.26
SLIDE 15
The Gilmore Gomory LP - Example
input si 1 0.44 0.4 0.3 0.26 min 1Tx 2 1 1 1 1 2 1 1 1 1 3 1 1 1 1 1 3 1 1 1 1 1 x ≥ 1 1 1 1 x ≥
A
b
SLIDE 16
The Gilmore Gomory LP - Example
input si 1 0.44 0.4 0.3 0.26 min 1Tx 2 1 1 1 1 2 1 1 1 1 3 1 1 1 1 1 3 1 1 1 1 1 x ≥ 1 1 1 1 x ≥
SLIDE 17
The Gilmore Gomory LP - Example
input si 1 0.44 0.4 0.3 0.26 min 1Tx 2 1 1 1 1 2 1 1 1 1 3 1 1 1 1 1 3 1 1 1 1 1 x ≥ 1 1 1 1 x ≥ 1/2× 1/2× 1/2×
SLIDE 18 Main result
◮ [Karmarkar & Karp ’82]: APX ≤ OPT + O(log2 OPT)
Technique: Basic LP solutions
SLIDE 19 Main result
◮ [Karmarkar & Karp ’82]: APX ≤ OPT + O(log2 OPT)
Technique: Basic LP solutions
◮ [R. ’13]: APX ≤ OPT + O(log OPT · log log OPT)
Technique: Discrepancy theory
SLIDE 20 Main result
◮ [Karmarkar & Karp ’82]: APX ≤ OPT + O(log2 OPT)
Technique: Basic LP solutions
◮ [R. ’13]: APX ≤ OPT + O(log OPT · log log OPT)
Technique: Discrepancy theory
Theorem (Hoberg & R. ’15)
There is an OPT + O(log OPT) algorithm for Bin Packing.
SLIDE 21 Main result
◮ [Karmarkar & Karp ’82]: APX ≤ OPT + O(log2 OPT)
Technique: Basic LP solutions
◮ [R. ’13]: APX ≤ OPT + O(log OPT · log log OPT)
Technique: Discrepancy theory
Theorem (Hoberg & R. ’15)
There is an OPT + O(log n) algorithm for Bin Packing instances with si ≥ 1
n.
SLIDE 22 Main result
◮ [Karmarkar & Karp ’82]: APX ≤ OPT + O(log2 OPT)
Technique: Basic LP solutions
◮ [R. ’13]: APX ≤ OPT + O(log OPT · log log OPT)
Technique: Discrepancy theory
Theorem (Hoberg & R. ’15)
There is an OPT + O(log n) algorithm for Bin Packing instances with si ≥ 1
n.
Bin Packing
1 4 < si < 1 2∀i
Coloring 3 permutations on [n] reduction [EPR ’10]
SLIDE 23 Main result
◮ [Karmarkar & Karp ’82]: APX ≤ OPT + O(log2 OPT)
Technique: Basic LP solutions
◮ [R. ’13]: APX ≤ OPT + O(log OPT · log log OPT)
Technique: Discrepancy theory
Theorem (Hoberg & R. ’15)
There is an OPT + O(log n) algorithm for Bin Packing instances with si ≥ 1
n.
Bin Packing
1 4 < si < 1 2∀i
Coloring 3 permutations on [n] reduction [EPR ’10] Discrepancy Θ(log n) [Newman, Nikolov ’11]
SLIDE 24 Discrepancy theory
◮ Set system S = {S1, . . . , Sm}, Si ⊆ [n]
i S
SLIDE 25 Discrepancy theory
◮ Set system S = {S1, . . . , Sm}, Si ⊆ [n] ◮ Coloring χ : [n] → {−1, +1}
i S
b b
−1
b
+1 −1
SLIDE 26 Discrepancy theory
◮ Set system S = {S1, . . . , Sm}, Si ⊆ [n] ◮ Coloring χ : [n] → {−1, +1} ◮ Discrepancy
disc(S) = min
χ:[n]→{±1} max S∈S
χ(i)
i S
b b
−1
b
+1 −1
SLIDE 27 Discrepancy theory
◮ Set system S = {S1, . . . , Sm}, Si ⊆ [n] ◮ Coloring χ : [n] → {−1, +1} ◮ Discrepancy
disc(S) = min
χ:[n]→{±1} max S∈S
χ(i)
i S
b b
−1
b
+1 −1 Known results:
◮ n sets, n elements: disc(S) = O(√n) [Spencer ’85]
SLIDE 28 Discrepancy theory
◮ Set system S = {S1, . . . , Sm}, Si ⊆ [n] ◮ Coloring χ : [n] → {−1, +1} ◮ Discrepancy
disc(S) = min
χ:[n]→{±1} max S∈S
χ(i)
i S
b b
−1
b
+1 −1 Known results:
◮ n sets, n elements: disc(S) = O(√n) [Spencer ’85] ◮ Every element in ≤ t sets: disc(S) < 2t [Beck & Fiala ’81]
SLIDE 29 Discrepancy theory
◮ Set system S = {S1, . . . , Sm}, Si ⊆ [n] ◮ Coloring χ : [n] → {−1, +1} ◮ Discrepancy
disc(S) = min
χ:[n]→{±1} max S∈S
χ(i)
i S
b b
−1
b
+1 −1 Known results:
◮ n sets, n elements: disc(S) = O(√n) [Spencer ’85] ◮ Every element in ≤ t sets: disc(S) < 2t [Beck & Fiala ’81] ◮ Beck-Fiala Conjecture: disc(S) ≤ O(
√ t)
SLIDE 30 Discrepancy theory
◮ Set system S = {S1, . . . , Sm}, Si ⊆ [n] ◮ Coloring χ : [n] → {−1, +1} ◮ Discrepancy
disc(S) = min
χ:[n]→{±1} max S∈S
χ(i)
i S
b b
−1
b
+1 −1 Known results:
◮ n sets, n elements: disc(S) = O(√n) [Spencer ’85] ◮ Every element in ≤ t sets: disc(S) < 2t [Beck & Fiala ’81] ◮ Beck-Fiala Conjecture: disc(S) ≤ O(
√ t)
⇒ Partial coloring method
◮ Initially non-constructive!
Algorithms by [Bansal ’10, Lovett-Meka ’12, R. ’14, ES’14]
SLIDE 31
Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
1 1
SLIDE 32
Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m x 1 1
SLIDE 33
Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi x vi 1 1
SLIDE 34 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0
◮ | vi, y − x | ≤ λi ∀i
x vi 1 1 λi
SLIDE 35 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 Then one can find y ∈ [0, 1]m with
◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i
x vi
b y
1 1 λi
SLIDE 36 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i
x vi
b y
1 1 λi
SLIDE 37 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction
x 1 1
SLIDE 38 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction
x 1 1
b
y
SLIDE 39 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction
x 1 1
b
y
SLIDE 40 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction
x 1 1
b
y
SLIDE 41 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction
x 1 1
b
y
SLIDE 42 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction
x 1 1
b
y
SLIDE 43 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction
x 1 1
b
y
SLIDE 44 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction
x 1 1
b
y
SLIDE 45 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction
x 1 1
b
y
SLIDE 46 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
x 1 1
b
y
SLIDE 47 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
x 1 1
b
y
SLIDE 48 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
x 1 1
b
y
SLIDE 49 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
x 1 1
b
y
SLIDE 50 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
x 1 1
b
y
SLIDE 51 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
x 1 1
b
y
SLIDE 52 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
x 1 1
b
y
SLIDE 53 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
x 1 1
b y
SLIDE 54 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
◮ Analysis:
◮ Pr[hit vi, y − x = λi] ≤ e−Ω(λ2 i )
x vi 1 1
b y
λi
SLIDE 55 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
◮ Analysis:
◮ Pr[hit vi, y − x = λi] ≤ e−Ω(λ2 i ) ◮
E[# constraints hit] ≤ m
16
x vi 1 1
b y
λi
SLIDE 56 Constructive Partial Coloring Lemma
Lemma [Lovett-Meka ’12]
Given x ∈ [0, 1]m, unit vectors vi, parameters λi ≥ 0 s.t.
i /16 ≤ m
16 . Then one can find y ∈ [0, 1]m with ◮ yj ∈ {0, 1} for at least half of the indices j ◮ | vi, y − x | ≤ λi · vi2 ∀i ◮ Algorithm:
(1) Perform Brownian motion with std. deviation 3 in each direction (2) If hit hyperplane, stay on it
◮ Analysis:
◮ Pr[hit vi, y − x = λi] ≤ e−Ω(λ2 i ) ◮
E[# constraints hit] ≤ m
16
x vi 1 1
b y
λi
SLIDE 57
The algorithm
(1) Compute a fractional LP solution x (2) FOR log n iterations DO
(3) Rebuild incidence matrix (4) Apply Lovett-Meka rounding x → x′
SLIDE 58
The algorithm
(1) Compute a fractional LP solution x (2) FOR log n iterations DO
(3) Rebuild incidence matrix Effect: Rows of A get small · 2-norm (4) Apply Lovett-Meka rounding x → x′
SLIDE 59 The algorithm
(1) Compute a fractional LP solution x (2) FOR log n iterations DO
(3) Rebuild incidence matrix Effect: Rows of A get small · 2-norm (4) Apply Lovett-Meka rounding x → x′ Effect:
◮ |frac(x′)| ≤ 1
2 · |frac(x)|
SLIDE 60 The algorithm
(1) Compute a fractional LP solution x (2) FOR log n iterations DO
(3) Rebuild incidence matrix Effect: Rows of A get small · 2-norm (4) Apply Lovett-Meka rounding x → x′ Effect:
◮ |frac(x′)| ≤ 1
2 · |frac(x)|
◮ cost(x′) ≤ cost(x) + O(1)
SLIDE 61 Assigning items to patterns
Items: Bins: xp1 = 1
2
xp2 = 1
2
xp3 = 1
2
b1 = 2 b2 = 1 b3 = 7
SLIDE 62 Assigning items to patterns
Items: Bins: xp1 = 1
2
xp2 = 1
2
xp3 = 1
2
b1 = 2 b2 = 1 b3 = 7
1 2 1 2 1 2 1 2
SLIDE 63 Assigning items to patterns
Items: Bins: xp1 = 1
2
xp2 = 1
2
xp3 = 1
2
b1 = 2 b2 = 1 b3 = 7
1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2
SLIDE 64 Assigning items to patterns
Items: Containers: Bins: xp1 = 1
2
xp2 = 1
2
xp3 = 1
2
yC1 = 1 yC2 = 1 yC3 = 2
b1 = 2 b2 = 1 b3 = 7
SLIDE 65 Assigning items to patterns
Items: Containers: Bins:
1 2 1 2 1 2 1 2 1 2 1 2 1 2
xp1 = 1
2
xp2 = 1
2
xp3 = 1
2
1 1 1 1 1 2 2
yC1 = 1 yC2 = 1 yC3 = 2
b1 = 2 b2 = 1 b3 = 7
SLIDE 66 Assigning items to patterns
Items: Containers: Bins:
1 2 1 2 1 2 1 2 1 2 1 2 1 2
xp1 = 1
2
xp2 = 1
2
xp3 = 1
2
1 1 1 1 1 2 2
yC1 = 1 yC2 = 1 yC3 = 2
b1 = 2 b2 = 1 b3 = 7
◮ deficiency = total size of non-assignable items+containers
SLIDE 67 Container building
◮ Consider fract. solution x at beginning of iteration
A
2
SLIDE 68 Container building
◮ Consider fract. solution x at beginning of iteration
A
supp(x) 2
SLIDE 69 Container building
◮ Consider fract. solution x at beginning of iteration
A
supp(x) . . . pattern p 2
SLIDE 70 Container building
◮ Consider fract. solution x at beginning of iteration
A
supp(x) container C . . . pattern p 2
SLIDE 71 Container building
◮ Consider fract. solution x at beginning of iteration
Lemma
Can reassign containers so that for container C of size sC ∈ [ 1
k, 2 k]: ◮ Each row has∗ AC1 ≥ k1/2 ◮ All entries ≤ k1/4
Deficiency increase is O(1).
∗ modulo technicalities
A
supp(x) container C . . . pattern p 2
SLIDE 72 Container building (2)
container: patterns: For each size class [ 1
k, 2 k] (starting with smallest items) do:
SLIDE 73 Container building (2)
container: patterns: For each size class [ 1
k, 2 k] (starting with smallest items) do:
(1) Group containers so that AC1 ≥ k1/2 → cost O( k1/2
k )
SLIDE 74 Container building (2)
container: patterns: k1/4 k1/4 For each size class [ 1
k, 2 k] (starting with smallest items) do:
(1) Group containers so that AC1 ≥ k1/2 → cost O( k1/2
k )
SLIDE 75 Container building (2)
container: patterns: For each size class [ 1
k, 2 k] (starting with smallest items) do:
(1) Group containers so that AC1 ≥ k1/2 → cost O( k1/2
k )
(2) Replace any multiples of k1/4 copies of same container in same pattern by super-container
SLIDE 76 Container building (2)
container: patterns: For each size class [ 1
k, 2 k] (starting with smallest items) do:
(1) Group containers so that AC1 ≥ k1/2 → cost O( k1/2
k )
(2) Replace any multiples of k1/4 copies of same container in same pattern by super-container
◮ Deficiency increase: O(k1/2 · 1 k) = Θ( 1 k1/2) for class 1 k.
SLIDE 77 Container building (2)
container: patterns: For each size class [ 1
k, 2 k] (starting with smallest items) do:
(1) Group containers so that AC1 ≥ k1/2 → cost O( k1/2
k )
(2) Replace any multiples of k1/4 copies of same container in same pattern by super-container
◮ Deficiency increase: O(k1/2 · 1 k) = Θ( 1 k1/2) for class 1 k. ◮ Over all k: k Θ(k−1/2) = O(1)
SLIDE 78
Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
A
SLIDE 79 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
A
◮ Given: x. Find: y with |( j≤i Aj)(x − y)| small
SLIDE 80 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
◮ Given: x. Find: y with |( j≤i Aj)(x − y)| small ◮ Suppose 1 k ≤ si ≤ 2 k
SLIDE 81 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
I
◮ Given: x. Find: y with |( j≤i Aj)(x − y)| small ◮ Suppose 1 k ≤ si ≤ 2 k ◮ For interval I ⊆ [n]:
SLIDE 82 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
I + 1 0 2 1 1 1 1 1 ) vI = (
◮ Given: x. Find: y with |( j≤i Aj)(x − y)| small ◮ Suppose 1 k ≤ si ≤ 2 k ◮ For interval I ⊆ [n]: vI := i∈I Ai
SLIDE 83 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
. . . . . . ← level I vI1 = ck17/16
◮ Given: x. Find: y with |( j≤i Aj)(x − y)| small ◮ Suppose 1 k ≤ si ≤ 2 k ◮ For interval I ⊆ [n]: vI := i∈I Ai
SLIDE 84 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
. . . . . . ← level . . . . . . 1 I vI1 = 2−1ck17/16
◮ Given: x. Find: y with |( j≤i Aj)(x − y)| small ◮ Suppose 1 k ≤ si ≤ 2 k ◮ For interval I ⊆ [n]: vI := i∈I Ai
SLIDE 85 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
. . . . . . ← level . . . . . . 1 . . . . . . 2 I vI1 = 2−2ck17/16
◮ Given: x. Find: y with |( j≤i Aj)(x − y)| small ◮ Suppose 1 k ≤ si ≤ 2 k ◮ For interval I ⊆ [n]: vI := i∈I Ai
SLIDE 86 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
. . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3 I vI1 = 2−3ck17/16
◮ Given: x. Find: y with |( j≤i Aj)(x − y)| small ◮ Suppose 1 k ≤ si ≤ 2 k ◮ For interval I ⊆ [n]: vI := i∈I Ai
SLIDE 87 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
. . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3 I vI1 = 2−3ck17/16
◮ Given: x. Find: y with |( j≤i Aj)(x − y)| small ◮ Suppose 1 k ≤ si ≤ 2 k ◮ For interval I ⊆ [n]: vI := i∈I Ai , λI := level(I)
SLIDE 88 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
m columns . . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3
◮ Run Partial coloring with vI := i∈I Ai and λI := level(I)
SLIDE 89 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
m columns . . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3
◮ Run Partial coloring with vI := i∈I Ai and λI := level(I)
e−λ2
I/16
SLIDE 90 Applying the Partial Coloring Lemma
sum ≤ k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
m columns . . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3
◮ Run Partial coloring with vI := i∈I Ai and λI := level(I)
e−λ2
I/16 ≤
k · m ck17/162−ℓ · e−ℓ2/16
SLIDE 91 Applying the Partial Coloring Lemma
sum ≤ k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
m columns . . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3
◮ Run Partial coloring with vI := i∈I Ai and λI := level(I)
e−λ2
I/16 ≤
k · m ck17/162−ℓ · e−ℓ2/16 ≤ m 100 · k1/16
SLIDE 92 Applying the Partial Coloring Lemma
i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
m columns . . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3
◮ Bound error for item i:
|(
Aj)(x − y)| ≤
SLIDE 93 Applying the Partial Coloring Lemma
i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
m columns . . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3 . . .
◮ Bound error for item i:
|(
Aj)(x − y)| ≤
SLIDE 94 Applying the Partial Coloring Lemma
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
m columns . . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3 . . .
◮ Bound error for item i:
|(
Aj)(x − y)| ≤
ℓ · vI on level ℓ2
SLIDE 95 Applying the Partial Coloring Lemma
vI1 = Θ(k17/16) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
m columns . . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3 I
◮ Bound error for item i:
|(
Aj)(x − y)| ≤
ℓ · vI on level ℓ2 ≤ O(1) · vI2
SLIDE 96 Applying the Partial Coloring Lemma
vI1 = Θ(k17/16) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
m columns . . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3 I
◮ Bound error for item i:
|(
Aj)(x − y)| ≤
ℓ · vI on level ℓ2 ≤ O(1) · vI2
H¨
≤ vI1 ·
k1/2
SLIDE 97 Applying the Partial Coloring Lemma
vI1 = Θ(k17/16) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
m columns . . . . . . ← level . . . . . . 1 . . . . . . 2 . . . . . . 3 I
◮ Bound error for item i:
|(
Aj)(x − y)| ≤
ℓ · vI on level ℓ2 ≤ O(1) · vI2
H¨
≤ vI1 ·
k1/2 ≤ O(k15/16)
SLIDE 98 The algorithm
(1) Compute a fractional LP solution x (2) FOR log n iterations DO
(3) Rebuild incidence matrix Effect: Rows of A get small · 2-norm (4) Apply Lovett-Meka rounding x → x′ Effect: |frac(x′)| ≤ 1
2 · |frac(x)|
SLIDE 99 The algorithm
(1) Compute a fractional LP solution x (2) FOR log n iterations DO
(3) Rebuild incidence matrix Effect: Rows of A get small · 2-norm Deficiency increase: O(1) (4) Apply Lovett-Meka rounding x → x′ Effect: |frac(x′)| ≤ 1
2 · |frac(x)|
SLIDE 100 The algorithm
(1) Compute a fractional LP solution x (2) FOR log n iterations DO
(3) Rebuild incidence matrix Effect: Rows of A get small · 2-norm Deficiency increase: O(1) (4) Apply Lovett-Meka rounding x → x′ Effect: |frac(x′)| ≤ 1
2 · |frac(x)|
Deficiency increase:
k O(k15/16) · 1 k = O(1)
SLIDE 101 The algorithm
(1) Compute a fractional LP solution x (2) FOR log n iterations DO
(3) Rebuild incidence matrix Effect: Rows of A get small · 2-norm Deficiency increase: O(1) (4) Apply Lovett-Meka rounding x → x′ Effect: |frac(x′)| ≤ 1
2 · |frac(x)|
Deficiency increase:
k O(k15/16) · 1 k = O(1) ◮ Total deficiency increase: O(log n).
SLIDE 102 So, what about the ∗ ?
(1) FOR log n iterations DO
(2) For each size class [ 1
k, 2 k] (starting with smallest items):
(3) Group containers so that AC1 ≥ k1/2 (4) Replace any multiples of k1/4 copies of same container in same pattern by super-container
(5) Apply Lovett-Meka rounding x → x′
SLIDE 103 So, what about the ∗ ?
(1) FOR log n iterations DO
(2) For each size class [ 1
k, 2 k] (starting with smallest items):
(3) Group containers so that AC1 ≥ k1/2 (4) Replace any multiples of k1/4 copies of same container in same pattern by super-container
(5) Apply Lovett-Meka rounding x → x′
◮ Problem: (4) destroys (3)
SLIDE 104 So, what about the ∗ ?
(1) FOR log n iterations DO
(2) For each size class [ 1
k, 2 k] (starting with smallest items):
(3) Group containers so that AC1 ≥ k1/2 (4) Replace any multiples of k1/4 copies of same container in same pattern by super-container
(5) Apply Lovett-Meka rounding x → x′
◮ Problem: (4) destroys (3) ◮ Solution: Define intervals for sizes [ 1 k, 2 k] after (3)
SLIDE 105 So, what about the ∗ ?
(1) FOR log n iterations DO
(2) For each size class [ 1
k, 2 k] (starting with smallest items):
(3) Group containers so that AC1 ≥ k1/2 (4) Replace any multiples of k1/4 copies of same container in same pattern by super-container
(5) Apply Lovett-Meka rounding x → x′
◮ Problem: (4) destroys (3) ◮ Solution: Define intervals for sizes [ 1 k, 2 k] after (3) ◮ Problem: Items are counted many times on left side of
∀k :
e−λ2
I/16 ≤ #incidences of class [ 1
k, 2 k] in A
k17/16
SLIDE 106 So, what about the ∗ ?
(1) FOR log n iterations DO
(2) For each size class [ 1
k, 2 k] (starting with smallest items):
(3) Group containers so that AC1 ≥ k1/2 (4) Replace any multiples of k1/4 copies of same container in same pattern by super-container
(5) Apply Lovett-Meka rounding x → x′
◮ Problem: (4) destroys (3) ◮ Solution: Define intervals for sizes [ 1 k, 2 k] after (3) ◮ Problem: Items are counted many times on left side of
∀k :
e−λ2
I/16 ≤ #incidences of class [ 1
k, 2 k] in A
k17/16
SLIDE 107 So, what about the ∗ ?
(1) FOR log n iterations DO
(2) For each size class [ 1
k, 2 k] (starting with smallest items):
(3) Group containers so that AC1 ≥ k1/2 (4) Replace any multiples of k1/4 copies of same container in same pattern by super-container
(5) Apply Lovett-Meka rounding x → x′
◮ Problem: (4) destroys (3) ◮ Solution: Define intervals for sizes [ 1 k, 2 k] after (3) ◮ Problem: Items are counted many times on left side of
∀k :
e−λ2
I/16 ≤ #incidences of class [ 1
k, 2 k] in A
k17/16
SLIDE 108 So, what about the ∗ ?
(1) FOR log n iterations DO
(2) For each size class [ 1
k, 2 k] (starting with smallest items):
(3) Group containers so that AC1 ≥ k1/2 (4) Replace any multiples of k1/4 copies of same container in same pattern by super-container
(5) Apply Lovett-Meka rounding x → x′
◮ Problem: (4) destroys (3) ◮ Solution: Define intervals for sizes [ 1 k, 2 k] after (3) ◮ Problem: Items are counted many times on left side of
∀k :
e−λ2
I/16 ≤ #incidences of class [ 1
k, 2 k] in A
k17/16
SLIDE 109 So, what about the ∗ ?
(1) FOR log n iterations DO
(2) For each size class [ 1
k, 2 k] (starting with smallest items):
(3) Group containers so that AC1 ≥ k1/2 (4) Replace any multiples of k1/4 copies of same container in same pattern by super-container
(5) Apply Lovett-Meka rounding x → x′
◮ Problem: (4) destroys (3) ◮ Solution: Define intervals for sizes [ 1 k, 2 k] after (3) ◮ Problem: Items are counted many times on left side of
∀k :
e−λ2
I/16 ≤ #incidences of class [ 1
k, 2 k] in A
k17/16
SLIDE 110 So, what about the ∗ ?
(1) FOR log n iterations DO
(2) For each size class [ 1
k, 2 k] (starting with smallest items):
(3) Group containers so that AC1 ≥ k1/2 (4) Replace any multiples of k1/4 copies of same container in same pattern by super-container
(5) Apply Lovett-Meka rounding x → x′
◮ Problem: (4) destroys (3) ◮ Solution: Define intervals for sizes [ 1 k, 2 k] after (3) ◮ Problem: Items are counted many times on left side of
∀k :
e−λ2
I/16 ≤ #incidences of class [ 1
k, 2 k] in A
k17/16
◮ Solution: Use slack!
SLIDE 111
The end
Open question I
Close the gap 1 ≤ additive integrality gap ≤ O(log n)
SLIDE 112
The end
Open question I
Close the gap 1 ≤ additive integrality gap ≤ O(log n)
Thanks for your attention