Data STRUCTURES Mihai Ptracu LSD reachability oracles in
(Data) STRUCTURES Mihai Pătrașcu
LSD reachability oracles in the butterfly dyn. marked ancestor worst-case union-find dyn. trees, graphs 2 D stabbing 4 D reporting dyn. 1 D stabbing partial sums dyn. 2 D reporting dyn. NN in 2 D partial match 3 -ANN in ℓ∞ 2 D counting (1+ε)-ANN ℓ 1, ℓ 2 NN in ℓ 1, ℓ 2
LSD reachability oracles in the butterfly dyn. marked ancestor worst-case union-find dyn. trees, graphs 2 D stabbing 4 D reporting partial match 3 -ANN in ℓ∞ (1+ε)-ANN ℓ 1, ℓ 2 NN in ℓ 1, ℓ 2 2 D counting dyn. 1 D stabbing partial sums dyn. 2 D reporting dyn. NN in 2 D better bound simpler, same bound simpler, loses lglg n
How Hard is Range Reporting? Static, 2 D: O(lglg n) [Alstrup, Brodal, Rauhe FOCS’ 00] SELECT * FROM employees WHERE salary <= 70000 AND startdate <= 1998 Dynamic, 2 D: Ω(lg n / lglg n) [Alstrup, Husfeldt, Rauhe FOCS’ 98] 71000 70000 69000 68000
How Hard is Range Reporting? Static, 2 D: O(lglg n) [Alstrup, Brodal, Rauhe FOCS’ 00] Dynamic, 2 D: Ω(lg n / lglg n) [Alstrup, Husfeldt, Rauhe FOCS’ 98] Marked Ancestor: * mark(v) / unmark(v) * query(v): ∃? marked ancestor Dyn. 1 D Stabbing: * insert/delete segment * query(x): does x stab a segment? Dyn. 2 D Range Reporting
How Hard is Range Reporting? Static, 2 D: O(lglg n) [Alstrup, Brodal, Rauhe FOCS’ 00] Dynamic, 2 D: Ω(lg n / lglg n) [Alstrup, Husfeldt, Rauhe FOCS’ 98] Static 3 D ≈ Dynamic 2 D ?
Persistence Persistent : { static data struct. } �{ dynamic data struct. } Given problem ℙ with updateℙ(x), queryℙ(y) Persistent(ℙ) = the problem “preprocess (x 1, x 2, …, x. N) to answer: query(y, t): answer queryℙ(y) after updateℙ(x 1), …, updateℙ(xt)” Persistent(incremental 2 D range reporting) = static 3 D range reporting
How Hard is Range Reporting? Static, 2 D: O(lglg n) [Alstrup, Brodal, Rauhe FOCS’ 00] Dynamic, 2 D: Ω(lg n / lglg n) [Alstrup, Husfeldt, Rauhe FOCS’ 98] Static 3 D = Persistent(Dynamic 2 D) But: Persistent(Marked Ancestor) has O(1) solution… [Nekrich So. CG’ 07] static 3 D in O(lg 2 lg n)…
How Could 4 D be Hard? update(y) v 0 Fully-persistent data structures: v 1 v 3 v 2 v 6 query(y)? Fully. Persistent(Marked Ancestor) ≤ Static 2 D Stabbing ≤ Static 4 D Reporting v 5 v 4 v 7
Fully. Persistent (Marked Ancestor)
Fully. Persistent (Marked Ancestor)
Fully. Persistent (Marked Ancestor) “reachability oracles”
Lopsided Set Disjointness Review: Communication Complexity set S “is S ∩ T = ∅ ? ” set T
LSD Lower Bounds May assume universe is of size 2 T … split in blocks of size B=2 T/S Say Alice sends εS∙lg B bits ⇒ in average block, Alice’s value is uncertain in a set of B 1 -ε’ ⇒ Bob must identify his elements in uncertainty sets, sending Ω(S∙B 1 -ε’) bits
LSD ➙ Reachability Oracles
LSD ➙ Reachability Oracles T = { } = deleted edges
LSD ➙ Reachability Oracles T = { } = deleted edges S = { } = one out-edge / node
LSD reachability oracles in the butterfly dyn. marked ancestor worst-case union-find dyn. trees, graphs partial match 3 -ANN in ℓ∞ 2 D stabbing 4 D reporting (1+ε)-ANN ℓ 1, ℓ 2 NN in ℓ 1, ℓ 2 2 D counting dyn. 1 D stabbing partial sums dyn. 2 D reporting dyn. NN in 2 D T d n E e h
- Slides: 18