paper

Nearly Optimal Static Las Vegas Succinct Dictionary

arXiv:1911.01348

Abstract

Given a set of (distinct) keys from key space , each associated with a value from , the \emph{static dictionary} problem asks to preprocess these (key, value) pairs into a data structure, supporting value-retrieval queries: for any given , must return the value associated with if , or return if . The special case where is called the \emph{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 bits, which could be much less. In this paper, we design a randomized dictionary data structure using bits of space, and it has \emph{expected constant} query time, assuming the query algorithm can access an external lookup table of size . The lookup table depends only on , and , and not the input. Previously, even for membership queries and , the best known data structure with constant query time requires bits of space (Pagh [Pag01] and Pǎtraşcu [Pat08]); the best-known using space has query time ; the only known non-trivial data structure with space has query time and requires a lookup table of size (!). Our new data structure answers open questions by Pǎtraşcu and Thorup [Pat08,Tho13]. We also present a scheme that compresses a sequence to its zeroth order (empirical) entropy up to extra bits, supporting decoding each in expected time.

preliminary version appeared in STOC'20