How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)
-
Upload
aileen-palmer -
Category
Documents
-
view
26 -
download
1
description
Transcript of How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)
![Page 1: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/1.jpg)
How to Grow Your Balls(Distance Oracles Beyond the Thorup–Zwick Bound)
Mihai Pătrașcu Liam Roditty
FOCS’10
![Page 2: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/2.jpg)
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
Approximation Space1 n2
3 n1.5
5 n4/3
2k-1 n1+1/k
![Page 3: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/3.jpg)
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
~
~
![Page 4: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/4.jpg)
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
![Page 5: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/5.jpg)
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]Assume m=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?
~
![Page 6: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/6.jpg)
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
~
~
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?
![Page 7: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/7.jpg)
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.
![Page 8: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/8.jpg)
The AlgorithmA = { } = sample n2/3 vertices
![Page 9: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/9.jpg)
The AlgorithmA = { } = sample n2/3 verticesB = { } = sample n1/3 vertices
![Page 10: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/10.jpg)
The AlgorithmA = { } = sample n2/3 verticesB = { } = sample n1/3 vertices
C = ∪u B ∈ Ball(u → A)
E[|C|]=n2/3
Data structure:• distances C ↔ V
![Page 11: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/11.jpg)
The AlgorithmA = { } = sample n2/3 verticesB = { } = sample n1/3 vertices
C = ∪u B ∈ Ball(u → A)
E[|C|]=n2/3
Data structure:• distances C ↔ V
Query(s,t):
st
![Page 12: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/12.jpg)
The AlgorithmA = { } = sample n2/3 verticesB = { } = sample n1/3 vertices
C = ∪u B ∈ Ball(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 { R⇒ s, Rt } ≤ ½ d(s,t)
![Page 13: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/13.jpg)
The AlgorithmA = { } = sample n2/3 verticesB = { } = sample n1/3 vertices
C = ∪u B ∈ Ball(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 { R⇒ s, Rt } ≤ ½ d(s,t)✔
![Page 14: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/14.jpg)
The AlgorithmA = { } = sample n2/3 verticesB = { } = sample n1/3 vertices
C = ∪u B ∈ Ball(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 { R⇒ s, Rt } ≤ ½ d(s,t)✔
• If Ball(s, Rs) ∩ Ball(t, Rt) ≠ ∅
![Page 15: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/15.jpg)
The AlgorithmA = { } = sample n2/3 verticesB = { } = sample n1/3 vertices
C = ∪u B ∈ Ball(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 { R⇒ s, Rt } ≤ ½ d(s,t)✔
• If Ball(s, Rs) ∩ Ball(t, Rt) ≠ ∅
Key observation:E[#pairs] = O(n5/3)
![Page 16: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/16.jpg)
The AlgorithmA = { } = sample n2/3 verticesB = { } = sample n1/3 vertices
C = ∪u B ∈ Ball(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 { R⇒ s, Rt } ≤ ½ d(s,t)
✔
• If Ball(s, Rs) ∩ Ball(t, Rt) ≠ ∅ ✔
This is a lie.
![Page 17: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/17.jpg)
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
![Page 18: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/18.jpg)
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
![Page 19: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/19.jpg)
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 we get rid of “+1”for not-too-dense graphs?
Milder dependence on m?E.g. O(m + n5/3)
Better bounds?
![Page 20: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/20.jpg)
Set-Intersection Hardness
Conjecture: Let X = lgO(1)n. If query time = O(1), space = Ω(n2)
Even in sparse graphs, approximation < 2 requires Ω(n2) space
Preprocess S1, …, Sn [⊆ X]query(i,j): is Si ∩ Sj =
?∅ ~
~
S1
Sn
1
X
![Page 21: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/21.jpg)
Set-Intersection Hardness
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
Preprocess S1, …, Sn [⊆ X]query(i,j): is Si ∩ Sj =
?∅ ~
~
~
![Page 22: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/22.jpg)
Set-Intersection Hardness
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
Preprocess S1, …, Sn [⊆ X]query(i,j): is Si ∩ Sj =
?∅ ~
~
~
![Page 23: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/23.jpg)
New Lower Bounds
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)
Preprocess S1, …, Sn [⊆ X]query(i,j): is Si ∩ Sj =
?∅ ~
~
~
Actually, randomized conjecture…
![Page 24: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/24.jpg)
Lower Bound
In graphs with O(n) edges, 2-apx needs space Ω(n1.5)~~
(a,b)
[√n] ×[√n]
[√n] × X2 [√n] × X2
(c,d)
[√n] ×[√n]
(a,x,y)
(c,x,y)
Sab × Ta
Tc× Sab
(Sab ∩ Tc ≠ ∅) ∧ (Ta ∩ Scd ≠ ∅) ⇒ distance = 3
3-apx distance ≤ 5⇒
![Page 25: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/25.jpg)
Lower Bound
In graphs with O(n) edges, 2-apx needs space Ω(n1.5)~~
(a,b)
[√n] ×[√n]
[√n] × X2 [√n] × X2
(c,d)
[√n] ×[√n]
(a,x,y)
(c,x,y)
Sab × Ta
Tc× Sab
(Sab ∩ Tc ≠ ∅) ∧ (Ta ∩ Scd ≠ ∅) ⇒ distance = 3
3-apx distance ≤ 5⇒
⇒ either Ta ∩ Scd ≠ ∅ or Sab ∩ Tc ≠ ∅
(a,b’)
![Page 26: How to Grow Your Balls (Distance Oracles Beyond the Thorup – Zwick Bound)](https://reader038.fdocuments.in/reader038/viewer/2022102718/56812b91550346895d8fad7a/html5/thumbnails/26.jpg)
The EndRecent progress:• space Ω(n5/3) for 2-apx• many result for apx > 2
My flight is at 4:36. Questions @ 857-253-1282