Small Uncolored and Colored Choice Dictionaries

09/20/2018
by   Torben Hagerup, et al.
0

A choice dictionary can be initialized with a parameter n∈N and subsequently maintains an initially empty subset S of {1,...,n} under insertion, deletion, membership queries and an operation choice that returns an arbitrary element of S. The choice dictionary is fundamental in space-efficient computing and has numerous applications. The best previous choice dictionary can be initialized with n and t∈N and subsequently executes all operations in O(t) time and occupies n+O(n(t/w)^t+ n) bits on a word RAM with a word length of w=Ω( n) bits. We describe a new choice dictionary that executes all operations in constant time and, in addition to the space needed to store the integer n, occupies only n+1 bits, which is shown to be optimal if w=o(n). A generalization of the choice dictionary called a colored choice dictionary is initialized with c∈N in addition to n and subsequently maintains a semipartition (S_0,...,S_c-1) of {1,...,n} under the operations setcolor(j,ℓ), which moves ℓ from its current subset to S_j, color(ℓ), which returns the unique j∈{0,...,c-1} with ℓ∈ S_j, and choice(j), which returns an arbitrary element of S_j. We describe new colored choice dictionaries that, if initialized with constant c, execute setcolor, color and choice in constant time and occupy n_2c+1 bits plus the space needed to store n if c is a power of 2, and at most n_2c+n^ϵ bits in general, for arbitrary fixed ϵ>0. We also study the possibility of iterating over the set S or over S_j for given j∈{0,...,c-1} and an application of this to breadth-first search.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset