Nearly Optimal Static Las Vegas Succinct Dictionary
Abstract
Given a set S of n (distinct) keys from key space [U], each associated with a value from , the static dictionary problem asks to preprocess these (key, value) pairs into a data structure, supporting value-retrieval queries: for any given x∈ [U], valRet(x) must return the value associated with x if x∈ S, or return if x S. The special case where ||=1 is called the membership problem. The "textbook" solution is to use a hash table, which occupies linear space and answers each query in constant time. On the other hand, the minimum possible space to encode all (key, value) pairs is only OPT:= 2Un+n2|| bits, which could be much less. In this paper, we design a randomized dictionary data structure using OPT+poly n+O( U) bits of space, and it has expected constant query time, assuming the query algorithm can access an external lookup table of size n0.001. The lookup table depends only on U, n and ||, and not the input. Previously, even for membership queries and U≤ nO(1), the best known data structure with constant query time requires OPT+n/poly n bits of space (Pagh [Pag01] and Patrascu [Pat08]); the best-known using OPT+n0.999 space has query time O( n); the only known non-trivial data structure with OPT+n0.001 space has O( n) query time and requires a lookup table of size ≥ n2.99 (!). Our new data structure answers open questions by Patrascu and Thorup [Pat08,Tho13]. We also present a scheme that compresses a sequence X∈n to its zeroth order (empirical) entropy up to ||·poly n extra bits, supporting decoding each Xi in O( ||) expected time.
Turn this paper into a lesson
ArcXiv compiles a structured reading guide from this paper's metadata: plain-English importance, contributions, prerequisite concepts, which sections to read first, flashcards, and a quiz. Grounded in the abstract, never invented.