Hub Labeling Algorithms
Andrew V. Goldberg
Amazon.com
A.V. Goldberg Hub Labeling 6/2/2016 1 / 45
Hub Labeling Algorithms Andrew V. Goldberg Amazon.com A.V. - - PowerPoint PPT Presentation
Hub Labeling Algorithms Andrew V. Goldberg Amazon.com A.V. Goldberg Hub Labeling 6/2/2016 1 / 45 Algorithms at Amazon Work on hub labeling was done while I was at Microsoft Research Amazon has may interesting algorithmic problems with OR
A.V. Goldberg Hub Labeling 6/2/2016 1 / 45
A.V. Goldberg Hub Labeling 6/2/2016 2 / 45
A.V. Goldberg Hub Labeling 6/2/2016 3 / 45
A.V. Goldberg Hub Labeling 6/2/2016 4 / 45
A.V. Goldberg Hub Labeling 6/2/2016 5 / 45
A.V. Goldberg Hub Labeling 6/2/2016 6 / 45
A.V. Goldberg Hub Labeling 6/2/2016 7 / 45
A.V. Goldberg Hub Labeling 6/2/2016 7 / 45
◮ may take much longer than a query ◮ can use a more powerful machine
A.V. Goldberg Hub Labeling 6/2/2016 8 / 45
◮ may take much longer than a query ◮ can use a more powerful machine
A.V. Goldberg Hub Labeling 6/2/2016 8 / 45
A.V. Goldberg Hub Labeling 6/2/2016 9 / 45
A.V. Goldberg Hub Labeling 6/2/2016 10 / 45
◮ trees: O(log n)-size labels ◮ planar graphs: O∗(√n), Ω∗(n1/3) ◮ general graphs: Ω∗(n)
A.V. Goldberg Hub Labeling 6/2/2016 10 / 45
A.V. Goldberg Hub Labeling 6/2/2016 11 / 45
A.V. Goldberg Hub Labeling 6/2/2016 12 / 45
A.V. Goldberg Hub Labeling 6/2/2016 13 / 45
A.V. Goldberg Hub Labeling 6/2/2016 13 / 45
A.V. Goldberg Hub Labeling 6/2/2016 13 / 45
A.V. Goldberg Hub Labeling 6/2/2016 13 / 45
A.V. Goldberg Hub Labeling 6/2/2016 13 / 45
A.V. Goldberg Hub Labeling 6/2/2016 13 / 45
A.V. Goldberg Hub Labeling 6/2/2016 14 / 45
A.V. Goldberg Hub Labeling 6/2/2016 14 / 45
A.V. Goldberg Hub Labeling 6/2/2016 15 / 45
A.V. Goldberg Hub Labeling 6/2/2016 15 / 45
A.V. Goldberg Hub Labeling 6/2/2016 16 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 17 / 45
A.V. Goldberg Hub Labeling 6/2/2016 18 / 45
A.V. Goldberg Hub Labeling 6/2/2016 18 / 45
A.V. Goldberg Hub Labeling 6/2/2016 18 / 45
A.V. Goldberg Hub Labeling 6/2/2016 19 / 45
A.V. Goldberg Hub Labeling 6/2/2016 20 / 45
A.V. Goldberg Hub Labeling 6/2/2016 20 / 45
A.V. Goldberg Hub Labeling 6/2/2016 21 / 45
A.V. Goldberg Hub Labeling 6/2/2016 21 / 45
A.V. Goldberg Hub Labeling 6/2/2016 21 / 45
A.V. Goldberg Hub Labeling 6/2/2016 21 / 45
A.V. Goldberg Hub Labeling 6/2/2016 21 / 45
A.V. Goldberg Hub Labeling 6/2/2016 22 / 45
A.V. Goldberg Hub Labeling 6/2/2016 23 / 45
A.V. Goldberg Hub Labeling 6/2/2016 24 / 45
A.V. Goldberg Hub Labeling 6/2/2016 24 / 45
A.V. Goldberg Hub Labeling 6/2/2016 24 / 45
◮ before scanning w check the following condition ◮ is d(w) ≥ (estimate given by current labels)? ◮ if yes, prune w (do not scan)
A.V. Goldberg Hub Labeling 6/2/2016 25 / 45
◮ before scanning w check the following condition ◮ is d(w) ≥ (estimate given by current labels)? ◮ if yes, prune w (do not scan)
A.V. Goldberg Hub Labeling 6/2/2016 25 / 45
◮ basis is trivial ◮ by the inductive hypothesis, statement holds for the predecessor u′
◮ Dijkstra’s search from v scans u′, setting d(u) to correct distance ◮ when u is scanned, L(u) ∩ Puv = ∅, so
◮ u scanned, v added to L(u) with d(u)
A.V. Goldberg Hub Labeling 6/2/2016 26 / 45
A.V. Goldberg Hub Labeling 6/2/2016 27 / 45
A.V. Goldberg Hub Labeling 6/2/2016 28 / 45
◮ related to contraction hierarchies [GSSD 08]
◮ can be made faster by sampling [DGPW 14] A.V. Goldberg Hub Labeling 6/2/2016 28 / 45
A.V. Goldberg Hub Labeling 6/2/2016 29 / 45
A.V. Goldberg Hub Labeling 6/2/2016 29 / 45
A.V. Goldberg Hub Labeling 6/2/2016 30 / 45
A.V. Goldberg Hub Labeling 6/2/2016 30 / 45
◮ tree rooted at vi represents all SPs from vi A.V. Goldberg Hub Labeling 6/2/2016 31 / 45
◮ tree rooted at vi represents all SPs from vi
A.V. Goldberg Hub Labeling 6/2/2016 31 / 45 u
u
u
u
u
◮ tree rooted at vi represents all SPs from vi
A.V. Goldberg Hub Labeling 6/2/2016 31 / 45 u
u
u
u
u
◮ tree rooted at vi represents all SPs from vi
A.V. Goldberg Hub Labeling 6/2/2016 31 / 45
◮ tree rooted at vi represents all SPs from vi
A.V. Goldberg Hub Labeling 6/2/2016 31 / 45
◮ tree rooted at vi represents all SPs from vi
A.V. Goldberg Hub Labeling 6/2/2016 31 / 45
◮ tree rooted at vi represents all SPs from vi
A.V. Goldberg Hub Labeling 6/2/2016 31 / 45
◮ tree rooted at vi represents all SPs from vi
A.V. Goldberg Hub Labeling 6/2/2016 31 / 45
A.V. Goldberg Hub Labeling 6/2/2016 32 / 45
A.V. Goldberg Hub Labeling 6/2/2016 32 / 45
◮ sample is biased (e.g., vertices close to roots) ◮ eliminate outliers A.V. Goldberg Hub Labeling 6/2/2016 32 / 45
◮ sample is biased (e.g., vertices close to roots) ◮ eliminate outliers
A.V. Goldberg Hub Labeling 6/2/2016 32 / 45
◮ sample is biased (e.g., vertices close to roots) ◮ eliminate outliers
A.V. Goldberg Hub Labeling 6/2/2016 32 / 45
◮ sample is biased (e.g., vertices close to roots) ◮ eliminate outliers
A.V. Goldberg Hub Labeling 6/2/2016 32 / 45
◮ sample is biased (e.g., vertices close to roots) ◮ eliminate outliers
A.V. Goldberg Hub Labeling 6/2/2016 32 / 45
A.V. Goldberg Hub Labeling 6/2/2016 33 / 45
A.V. Goldberg Hub Labeling 6/2/2016 34 / 45
A.V. Goldberg Hub Labeling 6/2/2016 35 / 45
◮ poly-time O(log n) approximation in O(n5) time [CHKZ 03] ◮ O(n3 log n) time improvement [DGSW 14] ◮ NP-hard [BGKSW 15]
◮ poly-time O(log n) approximation in O(n5) time [BGGN 13] ◮ O(n3 log2 n) time improvement [DGSW 14] A.V. Goldberg Hub Labeling 6/2/2016 36 / 45
◮ poly-time O(log n) approximation in O(n5) time [CHKZ 03] ◮ O(n3 log n) time improvement [DGSW 14] ◮ NP-hard [BGKSW 15]
◮ poly-time O(log n) approximation in O(n5) time [BGGN 13] ◮ O(n3 log2 n) time improvement [DGSW 14]
A.V. Goldberg Hub Labeling 6/2/2016 36 / 45
A.V. Goldberg Hub Labeling 6/2/2016 37 / 45
1
2
3
4
A.V. Goldberg Hub Labeling 6/2/2016 37 / 45
1
2
3
4
A.V. Goldberg Hub Labeling 6/2/2016 37 / 45
A.V. Goldberg Hub Labeling 6/2/2016 38 / 45
A.V. Goldberg Hub Labeling 6/2/2016 38 / 45
1
2
3
4
5
A.V. Goldberg Hub Labeling 6/2/2016 39 / 45
1
2
3
4
5
A.V. Goldberg Hub Labeling 6/2/2016 39 / 45
1
2
3
4
5
A.V. Goldberg Hub Labeling 6/2/2016 39 / 45
A.V. Goldberg Hub Labeling 6/2/2016 40 / 45
A.V. Goldberg Hub Labeling 6/2/2016 40 / 45
A.V. Goldberg Hub Labeling 6/2/2016 41 / 45
A.V. Goldberg Hub Labeling 6/2/2016 41 / 45
A.V. Goldberg Hub Labeling 6/2/2016 41 / 45
A.V. Goldberg Hub Labeling 6/2/2016 42 / 45
◮ O(n1/2 log n) upper bound ◮ Ω(n1/2) lower bound
◮ O(n1/2 log n) upper bound ◮ Ω(n1/3) lower bound A.V. Goldberg Hub Labeling 6/2/2016 43 / 45
◮ O(n1/2 log n) upper bound ◮ Ω(n1/2) lower bound
◮ O(n1/2 log n) upper bound ◮ Ω(n1/3) lower bound
◮ M = O(h log n log D) (h: highway dimension; D: diameter) ◮ O(n1/2 log n log D) upper and Ω(n1/2) lower bounds on approx ratio A.V. Goldberg Hub Labeling 6/2/2016 43 / 45
◮ O(n1/2 log n) upper bound ◮ Ω(n1/2) lower bound
◮ O(n1/2 log n) upper bound ◮ Ω(n1/3) lower bound
◮ M = O(h log n log D) (h: highway dimension; D: diameter) ◮ O(n1/2 log n log D) upper and Ω(n1/2) lower bounds on approx ratio
A.V. Goldberg Hub Labeling 6/2/2016 43 / 45
A.V. Goldberg Hub Labeling 6/2/2016 44 / 45
A.V. Goldberg Hub Labeling 6/2/2016 45 / 45