1 / 26

How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)

How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound). Mihai P ătra ș cu Liam Roditty FOCS’10. Distance Oracles. Distance oracle = replacement of APSP matrix

Download Presentation

How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. How to Grow Your Balls(Distance Oracles Beyond the Thorup–Zwick Bound) Mihai PătrașcuLiam Roditty FOCS’10

  2. Distance Oracles Distance oracle = replacement of APSP matrix [Thorup, Zwick STOC’01] For k=1,2,3,…:Preprocess undirected, weighted graph G to answer:query(s,t): return đ with dG(s,t) ≤ đ ≤ (2k-1) · dG(s,t) Space O(n1+1/k) with O(1) query time

  3. Two Sides of Distance Oracles Compression question:Encode dense graphs with O(n1+1/k) bits, such that (2k-1)-apx distances can be retrieved [Matoušek’96] (∀) finite metric space on n points ↦ ℓ∞ with dimension O(k·n1+1/k lg n) with distortion 2k-1 Spanners: (∀) unweighted graph G(∃) H ⊆ G with O(n1+1/k) edges: dG ≤ dH≤ (2k-1)dG Data structures question: A data structure of size O(n1+1/k) can answer (2k-1)-apx distance queries in constant time ~ ~

  4. Two Sides of Distance Oracles Compression question:Encode dense graphs with O(n1+1/k) bits, such that (2k-1)-apx distances can be retrieved [Matoušek’96] (∀) finite metric space on n points ↦ ℓ∞ with dimension O(k·n1+1/k lg n) with distortion 2k-1 Spanners: (∀) unweighted graph G(∃) H ⊆ G with O(n1+1/k) edges: dG ≤ dH≤ (2k-1)dG Data structures question: A data structure of size O(n1+1/k) can answer (2k-1)-apx distance queries in constant time ~ Optimal space, assuming: Girth conjecture: [Erdős] et al. (∃) graphs with Ω(n1+1/k) edges and girth 2k+2 ~

  5. Two Sides of Distance Oracles Compression question:Encode dense graphs with O(n1+1/k) bits, such that (2k-1)-apx distances can be retrieved [Matoušek’96] (∀) finite metric space on n points ↦ ℓ∞ with dimension O(k·n1+1/k lg n) with distortion 2k-1 Spanners: (∀) unweighted graph G(∃) H ⊆ G with O(n1+1/k) edges: dG ≤ dH≤ (2k-1)dG Data structures question: A data structure of size O(n1+1/k) can answer (2k-1)-apx distance queries in constant time [Sommer, Verbin, Yu FOCS’09] Assumem=O(n) – sparse graphs.If c-apx distance queries take O(1) time ⇒ the space is ≥ n1+Ω(1/c) Beat [Thorup, Zwick] for graphs with ≪ n1+1/k edges? ~ ~ ~

  6. Two Sides of Distance Oracles Many other spanners: [BKMP’05] dH≤ dG+6 with O(n4/3) edges [EP’01] dH≤ (1+ε)dG + O(1) with O(n1+δ) edges … Use additive approximation in distance oracles? Compression question:Encode dense graphs with O(n1+1/k) bits, such that (2k-1)-apx distances can be retrieved [Matoušek’96] (∀) finite metric space on n points ↦ ℓ∞ with dimension O(k·n1+1/k lg n) with distortion 2k-1 Spanners: (∀) unweighted graph G(∃) H ⊆ G with O(n1+1/k) edges: dG ≤ dH≤ (2k-1)dG Data structures question: A data structure of size O(n1+1/k) can answer (2k-1)-apx distance queries in constant time ~ ~

  7. New Upper Bounds Unweighted graphs:Preprocess any graph G ⇒ distance oracle of size O(n5/3) that finds distance ≤ 2dG + 1 Weighted graphs:Preprocess G with m=n2/α edges ⇒ distance oracle of size O(n2 / α1/3) with approximation 2 Can report path in O(1) / edge.

  8. The Algorithm A = { } = sample n2/3 vertices

  9. The Algorithm A = { } = sample n2/3 vertices B = { } = sample n1/3 vertices

  10. The Algorithm A = { } = sample n2/3 vertices B = { } = sample n1/3 vertices C = ∪u∈BBall(u→ A) E[|C|]=n2/3 Data structure: • distances C ↔ V

  11. The Algorithm A = { } = sample n2/3 vertices B = { } = sample n1/3 vertices C = ∪u∈BBall(u→ A) E[|C|]=n2/3 Data structure: • distances C ↔ V Query(s,t): t s

  12. The Algorithm A = { } = sample n2/3 vertices B = { } = sample n1/3 vertices C = ∪u∈BBall(u→ A) E[|C|]=n2/3 Data structure: • distances C ↔ V Query(s,t): • Rs, Rt = distance to NN in C • If Ball(s, Rs) ∩ Ball(t, Rt) = ∅ ⇒ min { Rs, Rt } ≤ ½ d(s,t)

  13. The Algorithm A = { } = sample n2/3 vertices B = { } = sample n1/3 vertices C = ∪u∈BBall(u→ A) E[|C|]=n2/3 Data structure: • distances C ↔ V Query(s,t): • Rs, Rt = distance to NN in C • If Ball(s, Rs) ∩ Ball(t, Rt) = ∅ ⇒ min { Rs, Rt } ≤ ½ d(s,t) ✔

  14. The Algorithm A = { } = sample n2/3 vertices B = { } = sample n1/3 vertices C = ∪u∈BBall(u→ A) E[|C|]=n2/3 Data structure: • distances C ↔ V • pairs when Ball(s)∩Ball(t) Query(s,t): • Rs, Rt = distance to NN in C • If Ball(s, Rs) ∩ Ball(t, Rt) = ∅ ⇒ min { Rs, Rt } ≤ ½ d(s,t) ✔ • If Ball(s, Rs) ∩ Ball(t, Rt) ≠ ∅

  15. The Algorithm A = { } = sample n2/3 vertices B = { } = sample n1/3 vertices C = ∪u∈BBall(u→ A) E[|C|]=n2/3 Data structure: • distances C ↔ V • pairs when Ball(s)∩Ball(t) Query(s,t): • Rs, Rt = distance to NN in C • If Ball(s, Rs) ∩ Ball(t, Rt) = ∅ ⇒ min { Rs, Rt } ≤ ½ d(s,t) ✔ • If Ball(s, Rs) ∩ Ball(t, Rt) ≠ ∅ Key observation: E[#pairs] = O(n5/3)

  16. The Algorithm A = { } = sample n2/3 vertices B = { } = sample n1/3 vertices C = ∪u∈BBall(u→ A) E[|C|]=n2/3 Data structure: • distances C ↔ V • pairs when Ball(s)∩Ball(t) Query(s,t): • Rs, Rt = distance to NN in C • If Ball(s, Rs) ∩ Ball(t, Rt) = ∅ ⇒ min { Rs, Rt } ≤ ½ d(s,t) ✔ • If Ball(s, Rs) ∩ Ball(t, Rt) ≠ ∅ ✔ This is a lie.

  17. Geometric balls ≠ Balls in graphs Weighted graphs: Ball(s,r)={edges adjacent to vertices at distance ≤ r} To bound ball, sample edges ⇒ sparsity matters! s t

  18. Geometric balls ≠ Balls in graphs Weighted graphs: Ball(s,r)={edges adjacent to vertices at distance ≤ r} To bound ball, sample edges ⇒ sparsity matters! Unweighted graphs: d(s,u) = d(t,v) = ⌈ ½ d(s,t) ⌉ Just accept additive 1… s t u v

  19. Upper Bounds Can we get rid of “+1” for not-too-dense graphs? Unweighted graphs:Preprocess any graph G ⇒ distance oracle of size O(n5/3) that finds distance ≤ 2dG + 1 Weighted graphs:Preprocess G with m=n2/α edges ⇒ distance oracle of size O(n2 / α1/3) with approximation 2 Better bounds? Milder dependence on m? E.g. O(m + n5/3)

  20. Set-Intersection Hardness Preprocess S1, …, Sn ⊆ [X]query(i,j): is Si ∩ Sj = ∅ ? Conjecture: Let X = lgO(1)n. If query time = O(1), space = Ω(n2) Even in sparse graphs, approximation < 2 requires Ω(n2) space ~ ~ S1 1 X Sn

  21. Set-Intersection Hardness Preprocess S1, …, Sn ⊆ [X]query(i,j): is Si ∩ Sj = ∅ ? Conjecture: Let X = lgO(1)n. If query time = O(1), space = Ω(n2) Even in sparse graphs, approximation < 2 requires Ω(n2) space Apx. (2-ε)dG+ O(1) in unweighted graphs requires Ω(n2) space ~ ~ ~

  22. Set-Intersection Hardness Preprocess S1, …, Sn ⊆ [X]query(i,j): is Si ∩ Sj = ∅ ? Conjecture: Let X = lgO(1)n. If query time = O(1), space = Ω(n2) Even in sparse graphs, approximation < 2 requires Ω(n2) space Apx. (2-ε)dG+ O(1) in unweighted graphs requires Ω(n2) space ~ ~ ~

  23. New Lower Bounds Preprocess S1, …, Sn ⊆ [X]query(i,j): is Si ∩ Sj = ∅ ? Conjecture: Let X = lgO(1)n. If query time = O(1), space = Ω(n2) In unweighted graphs with m=n2/α edges,constant-time 2-approximation needs space Ω(n2 / √α) Constant-time approximation 2dG+O(1) needs space Ω(n1.5) ~ Actually, randomized conjecture… ~ ~

  24. Lower Bound ~ ~ In graphs with O(n)edges, 2-apx needs space Ω(n1.5) (Sab ∩ Tc ≠ ∅) ∧ (Ta ∩ Scd ≠ ∅) ⇒ distance = 3 3-apx ⇒ distance ≤ 5 (a,x,y) Sab× Ta (c,d) (a,b) Tc× Sab (c,x,y) [√n] × X2 [√n] × X2 [√n] ×[√n] [√n] ×[√n]

  25. Lower Bound ~ ~ In graphs with O(n)edges, 2-apx needs space Ω(n1.5) (Sab ∩ Tc ≠ ∅) ∧ (Ta ∩ Scd ≠ ∅) ⇒ distance = 3 3-apx ⇒ distance ≤ 5 ⇒ either Ta ∩ Scd ≠ ∅ or Sab ∩ Tc ≠ ∅ (a,x,y) Sab× Ta (c,d) (a,b) Tc× Sab (c,x,y) (a,b’) [√n] × X2 [√n] × X2 [√n] ×[√n] [√n] ×[√n]

  26. The End • Recent progress: • space Ω(n5/3) for 2-apx • many result for apx > 2 My flight is at 4:36. Questions @ 857-253-1282

More Related