Bit-probe lower bounds for succinct data structures
Proceedings of the forty-first annual ACM symposium on Theory of computing
Cache-, hash-, and space-efficient bloom filters
Journal of Experimental Algorithmics (JEA)
Dynamic rank/select structures with applications to run-length encoded texts
Theoretical Computer Science
A Simple, Fast, and Compact Static Dictionary
ISAAC '09 Proceedings of the 20th International Symposium on Algorithms and Computation
A locally encodable and decodable compressed data structure
Allerton'09 Proceedings of the 47th annual Allerton conference on Communication, control, and computing
Changing base without losing space
Proceedings of the forty-second ACM symposium on Theory of computing
Cell-probe lower bounds for succinct partial sums
SODA '10 Proceedings of the twenty-first annual ACM-SIAM symposium on Discrete Algorithms
Fully-functional succinct trees
SODA '10 Proceedings of the twenty-first annual ACM-SIAM symposium on Discrete Algorithms
Compression, indexing, and retrieval for massive string data
CPM'10 Proceedings of the 21st annual conference on Combinatorial pattern matching
Optimal trade-offs for succinct string indexes
ICALP'10 Proceedings of the 37th international colloquium conference on Automata, languages and programming
Data structures: time, I/Os, entropy, joules!
ESA'10 Proceedings of the 18th annual European conference on Algorithms: Part II
Succinct representation of dynamic trees
Theoretical Computer Science
Space-efficient construction of Lempel-Ziv compressed text indexes
Information and Computation
Orthogonal range searching on the RAM, revisited
Proceedings of the twenty-seventh annual symposium on Computational geometry
ACM Transactions on Algorithms (TALG)
CPM'11 Proceedings of the 22nd annual conference on Combinatorial pattern matching
LRM-trees: compressed indices, adaptive sorting, and compressed permutations
CPM'11 Proceedings of the 22nd annual conference on Combinatorial pattern matching
Improved compressed indexes for full-text document retrieval
SPIRE'11 Proceedings of the 18th international conference on String processing and information retrieval
Space-Efficient Preprocessing Schemes for Range Minimum Queries on Static Arrays
SIAM Journal on Computing
New algorithms on wavelet trees and applications to information retrieval
Theoretical Computer Science
Space-efficient data-analysis queries on grids
ISAAC'11 Proceedings of the 22nd international conference on Algorithms and Computation
Succinct representations of permutations and functions
Theoretical Computer Science
The Complexity of Distributions
SIAM Journal on Computing
Fast relative lempel-ziv self-index for similar sequences
FAW-AAIM'12 Proceedings of the 6th international Frontiers in Algorithmics, and Proceedings of the 8th international conference on Algorithmic Aspects in Information and Management
Fast, small, simple rank/select on bitmaps
SEA'12 Proceedings of the 11th international conference on Experimental Algorithms
CPM'12 Proceedings of the 23rd Annual conference on Combinatorial Pattern Matching
LRM-Trees: Compressed indices, adaptive sorting, and compressed permutations
Theoretical Computer Science
New lower and upper bounds for representing sequences
ESA'12 Proceedings of the 20th Annual European conference on Algorithms
Improved compressed indexes for full-text document retrieval
Journal of Discrete Algorithms
Mihai Pǎtraşcu: obituary and open problems
ACM SIGACT News
On compressing and indexing repetitive sequences
Theoretical Computer Science
Succinct sampling from discrete distributions
Proceedings of the forty-fifth annual ACM symposium on Theory of computing
Better space bounds for parameterized range majority and minority
WADS'13 Proceedings of the 13th international conference on Algorithms and Data Structures
On compressing permutations and adaptive sorting
Theoretical Computer Science
Succinct encoding of arbitrary graphs
Theoretical Computer Science
Compact binary relation representations with rich functionality
Information and Computation
Journal of Discrete Algorithms
Hi-index | 0.02 |
We can represent an array of n values from {0,1,2} using ceil(n log_2 3) bits (arithmetic coding), but then we cannot retrieve a single element efficiently. Instead, we can encode every block of t elements using ceil(t log_2 3) bits, and bound the retrieval time by t. This gives a linear trade-off between the redundancy of the representation and the query time.In fact, this type of linear trade-off is ubiquitous in known succinct data structures, and in data compression. The folk wisdom is that if we want to waste one bit per block, the encoding is so constrained that it cannot help the query in any way. Thus, the only thing a query can do is to read the entire block and unpack it.We break this limitation and show how to use recursion to improve redundancy. It turns out that if a block is encoded with two (!) bits of redundancy, we can decode a single element, and answer many other interesting queries, in time logarithmic in the block size.Our technique allows us to revisit classic problems in succinct data structures, and give surprising new upper bounds. We also construct a locally-decodable version of arithmetic coding.