Lower Bounds on Non-Adaptive Data Structures Maintaining Sets of Numbers, from Sunflowers Sivaramakrishnan Natarajan Ramamoorthy, Anup Rao University of Washington
What is the most efficient way to maintain a set of numbers from { 1,2,….,n } ? — insert new elements — compute the median — compute the predecessors
Universe is [n] Predecessor( x ) = Max {y ≤ x} subject to y ∈ S S={1,3,5,6,11,13,16}
Universe is [n] Predecessor( x ) = Max {y ≤ x} subject to y ∈ S S={1,3,5,6,11,13,16} Sorted Array size Time Complexity: insert: n 1 3 5 6 11 13 16 7 median: 2 predecessor: log n
Universe is [n] Predecessor( x ) = Max {y ≤ x} subject to y ∈ S S={1,3,5,6,11,13,16} Sorted Array size Time Complexity: insert: n 1 3 5 6 11 13 16 7 median: 2 predecessor: log n Bit Vector Time Complexity: insert: 1 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 median: n predecessor: n
Universe is [n] Predecessor( x ) = Max {y ≤ x} subject to y ∈ S S={1,3,5,6,11,13,16} Sorted Array size Time Complexity: insert: n 1 3 5 6 11 13 16 7 median: 2 predecessor: log n Bit Vector Time Complexity: insert: 1 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 median: n predecessor: n Predecessor Array Time Complexity: insert: n 1 1 3 3 5 6 6 6 6 6 11 11 13 13 13 16 median: n predecessor: 1
Binary Search Trees S={1,3,6,11,13,16} 3 3 6 16 #left #right 2 1 1 2 3 6 maxL maxR 11 16 1 1 1 0 0 1 1 1 Operations: 1 3 6 0 0 11 16 13 insert 5 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 1 11 0 13 0 1 0 3 0 0 6 0 0 0 0 0 16 1 3 6 11 13 16 insertions, median and predecessor in O(log n) time
Binary Search Trees S={1,3,6,11,13,16} 4 3 6 16 #left #right 2 2 1 2 3 6 maxL maxR 11 16 1 1 2 0 0 1 1 1 Operations: 1 3 6 0 0 11 16 13 insert 5 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 11 0 13 0 1 0 3 0 5 6 0 0 0 0 0 16 1 3 5 6 11 13 16 insertions, median and predecessor in O(log n) time
Binary Search Trees S={1,3,5,6,11,13,16} 4 3 6 16 #left #right 2 2 1 2 3 6 maxL maxR 11 16 1 1 2 0 0 1 1 1 Operations: 1 3 6 0 0 11 16 13 median 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 11 0 13 0 1 0 3 0 5 6 0 0 0 0 0 16 1 3 5 6 11 13 16 insertions, median and predecessor in O(log n) time
Binary Search Trees S={1,3,5,6,11,13,16} 4 3 6 16 #left #right 2 2 1 2 3 6 maxL maxR 11 16 1 1 2 0 0 1 1 1 Operations: 1 3 6 0 0 11 16 13 median output = 6 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 11 0 13 0 1 0 3 0 5 6 0 0 0 0 0 16 1 3 5 6 11 13 16 insertions, median and predecessor in O(log n) time
Binary Search Trees S={1,3,5,6,11,13,16} 4 3 6 16 #left #right 2 2 1 2 3 6 maxL maxR 11 16 1 1 2 0 0 1 1 1 Operations: 1 3 6 0 0 11 16 13 predecessor(15) 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 11 0 13 0 1 0 3 0 5 6 0 0 0 0 0 16 1 3 5 6 11 13 16 insertions, median and predecessor in O(log n) time
Binary Search Trees S={1,3,5,6,11,13,16} 4 3 6 16 #left #right 2 2 1 2 3 6 maxL maxR 11 16 1 1 2 0 0 1 1 1 Operations: 1 3 6 0 0 11 16 13 predecessor(15) output = 13 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 11 0 13 0 1 0 3 0 5 6 0 0 0 0 0 16 1 3 5 6 11 13 16 insertions, median and predecessor in O(log n) time
van Emde Boas Algorithm[77] min=1 max=16 S={1,3,11,13,16} √ n √ n √ n √ n 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 S’={i:S i ≠ ∅ } S 1 S 2 S 3 S 4 min=1 min=0 min=3 min=1 min=1 max=3 max=0 max=3 max=4 max=4 Recursion: T(n)=T( √ n)+O(1) (at every level, recurse on S i or S’ ) insertions, median and predecessor in O(log log n) time
Cell Probe Model [Yao81] Data structure is a collection of cells that stores the data w bits Update Algorithm: access subset of cells, modifying some to reflect changes time = #cells accessed during update insert x
Cell Probe Model [Yao81] Data structure is a collection of cells that stores the data w bits Update Algorithm: access subset of cells, modifying some to reflect changes Median time = #cells accessed during update Query Algorithm: access subset of cells and outputs answer time = #cells accessed during query 25
Non-Adaptive Inserts 4 3 6 16 #left #right 2 2 1 2 maxL maxR 3 6 11 16 1 1 2 0 0 1 1 1 1 3 6 0 0 11 16 13 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 11 0 13 0 1 0 3 0 5 6 0 0 0 0 0 16 1 3 5 6 11 13 16 An operation is non-adaptive if locations of cells accessed depends only on the operation and not on contents of the cell
Adaptive Median 4 3 6 16 #left #right 2 2 1 2 3 6 maxL maxR 11 16 1 1 2 0 0 1 1 1 1 3 6 0 0 11 16 13 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 11 0 13 0 1 0 3 0 5 6 0 0 0 0 0 16 1 3 5 6 11 13 16 An operation is non-adaptive if locations of cells accessed depends only on the operation and not on contents of the cell
Non-Adaptive Predecessors 4 3 6 16 #left #right 2 2 1 2 3 6 maxL maxR 11 16 1 1 2 0 0 1 1 1 1 3 6 0 0 11 16 13 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 1 11 0 13 0 1 0 3 0 5 6 0 0 0 0 0 16 1 3 5 6 11 13 16 An operation is non-adaptive if locations of cells accessed depends only on the operation and not on contents of the cell
Adaptive Queries and Updates min=1 max=16 S={1,3,11,13,16} √ n √ n √ n √ n 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 S’={i:S i ≠ ∅ } S 1 S 2 S 3 S 4 min=1 min=0 min=3 min=1 min=1 max=3 max=0 max=3 max=4 max=4 insertions, median and predecessor in O(log log n) time
Advantages of Non-Adaptivity • Non-adaptive data structures are simpler. • An implementation perspective: can load all relevant cells into cache at one go.
Some Known Dynamic Data Structure Lower Bounds Dynamic connectivity [FredmanSaks89] log n with edge insertions, chronogram t q ≥ log wt u Parity Sum technique [PatrascuThorup14] log n k th smallest t q ≥ reduction to Parity log wt u Adaptive Sum Dynamic connectivity [PatrascuDemaine04] updates max { t u , t q } ≥ log n with edge insertions + information transfer and technique deletions queries log 2 n [Larsen12] 2D range counting cell sampling + t q ≥ log 2 wt u chronogram log 2 n 2D range counting [WeinsteinYu16] t q ≥ (amortized + large a new communication log 2 wt u model error) directed graph reachability Non-Adaptive [BrodyLarsen12] max { t u , t q } ≥ n/w with non-adaptive queries
Non-Adaptive Lower Bounds Minimum with deletions log n non-adaptive delete and this work t del + t min ≥ minimum operations log log n + log w Median Bit vectors: t i =1, t m =n log n non-adaptive insert and this work t i + t m ≥ median operations log log n + log w 1 t m ≥ n ti +1 this work non-adaptive inserts w 2 · t 2 i adaptive insert and even super constant open median operations Predecessor Search Predecessor Arrays: Binary trees: t i = log n, t p = log n independent non-adaptive insert and t p ≥ min {| S | , w/ 2 } · log n t i =n, t p =1 t i ≥ log n or [BoningerBrody predecessor operations w · log wt i Kephart17] 1 log n non-adaptive predecessor 2( tp +1) vEB: t i = loglog n, t p = loglog n t i ≥ t p · n or this work t p ≥ operation log log n + log w log n adaptive insert and [A88][BF02][SV04] t i + t p ≥ log log n predecessor operation [PatrascuThorup06]
Results for Median in Other Models • Time Space trade offs. [MunroRaman96,Chan10], [BeameLiewPatrascu15] • Streaming Algorithms. [ChakrabartiJayramPatrascu08] • Data Structures in the Comparison Model. [BrodalChaudriRadhakrishnan96] insert time = t , • median computation ≥ m/4 t , median computation ≤ m/2 t •
The Key Technical Tool
Sunflower Lemma X m [ErdosRado60] X 1 X 2 X 10 For every sequence X=X 1 ,X 2 ,…,X n such that |X i | ≤ t , if n ≥ t !( p − 1) t +1
Sunflower Lemma [ErdosRado60] X 1 X p X 2 C For every sequence X=X 1 ,X 2 ,…,X n such that |X i | ≤ t , if n ≥ t !( p − 1) t +1 , then there is a Sunflower with p petals: after renaming, ∃ C such that X i ∩ X j =C for distinct i,j ∈ [p]
Sunflowers in Complexity • Monotone Circuit Lower bounds: [Razborov85] [AlonBoppana87] • Dynamic data structures with w=1 : [FrandsenMiltersenSkyum93] • Static data structures with w=1 : [GalMiltersen07] (succinct representations)
First Lower Bound for Median Theorem 1: Any data structure for Median on [ n ] with non-adaptive insert and median operations must have log n t i + t m ≥ log log n + log w w : word size t i : time for inserts t m : time for median
Outline of Proof 1. Let X = X 1 ,X 2 ,….,X n , where X i = {j| j is accessed while inserting i or computing median } 2. Identify a Sunflower in X with p petals X 1 X p 3. Use C to encode a random subset C of [ p/3,2p/3 ] X 2p/3 X p/3
Proof of Theorem 1 X i = {j| j is accessed while inserting i or computing median } X 1 X p C X 2p/3 X p/3
Recommend
More recommend