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