(Data) STRUCTURES Mihai P ă trașcu
LSD dyn. marked ancestor reachability oracles in the butterfly partial match(1+ε)-ANN ℓ 1, ℓ 2 NN in ℓ 1, ℓ 2 3-ANN in ℓ ∞ worst-case union-find dyn. trees, graphs dyn. 1D stabbing partial sums 2D stabbing 4D reporting2D counting dyn. NN in 2D dyn. 2D reporting
LSD dyn. marked ancestor reachability oracles in the butterfly partial match(1+ε)-ANN ℓ 1, ℓ 2 NN in ℓ 1, ℓ 2 3-ANN in ℓ ∞ worst-case union-find dyn. trees, graphs dyn. 1D stabbing partial sums 2D stabbing 4D reporting2D counting dyn. NN in 2D dyn. 2D reporting better bound simpler, same bound simpler, loses lglg n
How Hard is Range Reporting? SELECT * FROM employees WHERE salary <= AND startdate <= Static, 2D: O(lglg n) [Alstrup, Brodal, Rauhe FOCS’00] Dynamic, 2D: Ω(lg n / lglg n) [Alstrup,Husfeldt, Rauhe FOCS’98]
How Hard is Range Reporting? Static, 2D: O(lglg n) [Alstrup, Brodal, Rauhe FOCS’00] Dynamic, 2D: Ω(lg n / lglg n) [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(lglg n) [Alstrup, Brodal, Rauhe FOCS’00] Dynamic, 2D: Ω(lg n / lglg n) [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 (x 1, x 2, …, x N ) to answer: query(y, t): answer query ℙ (y) after update ℙ (x 1 ), …, update ℙ (x t )” Persistent(incremental 2D range reporting) = static 3D range reporting
How Hard is Range Reporting? Static, 2D: O(lglg n) [Alstrup, Brodal, Rauhe FOCS’00] Dynamic, 2D: Ω(lg n / lglg n) [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(lg 2 lg n)…
How Could 4D be Hard? Fully-persistent data structures: FullyPersistent(Marked Ancestor) ≤ Static 2D Stabbing ≤ Static 4D Reporting v0v0 v1v1 v2v2 v3v3 v6v6 v4v4 v5v5 v7v7 query(y)? update(y)
FullyPersistent (Marked Ancestor)
“reachability oracles”
Lopsided Set Disjointness Review: Communication Complexity set Sset 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 B 1-ε’ ⇒ Bob must identify his elements in uncertainty sets, sending Ω(S∙B 1-ε’ ) bits
LSD ➙ Reachability Oracles
T = { } = deleted edges
LSD ➙ Reachability Oracles T = { } = deleted edges S = { } = one out-edge / node
LSD dyn. marked ancestor reachability oracles in the butterfly partial match(1+ε)-ANN ℓ 1, ℓ 2 NN in ℓ 1, ℓ 2 3-ANN in ℓ ∞ worst-case union-find dyn. trees, graphs dyn. 1D stabbing partial sums 2D stabbing 4D reporting2D counting dyn. NN in 2D dyn. 2D reporting The End