{"@context":"https:\/\/schema.org\/","@type":"ScholarlyArticle","@id":"#article6597","name":"More Haste, Less Waste: Lowering the Redundancy in Fully Indexable Dictionaries","abstract":"We consider the problem of representing, in a compressed format, a bit-vector~$S$ of $m$ bits with $n$ $\\mathbf{1}$s, supporting the following operations, where $b \\in \\{ \\mathbf{0}, \\mathbf{1} \\}$:\r\n\\begin{itemize}\r\n\\item $\\mathtt{rank}_b(S,i)$ returns the number of occurrences of bit $b$ in the prefix $S\\left[1..i\\right]$;\r\n\\item $\\mathtt{select}_b(S,i)$ returns the position of the $i$th occurrence of bit $b$ in $S$.\r\n\\end{itemize}\r\nSuch a data structure is called \\emph{fully indexable dictionary (\\textsc{fid})} [Raman, Raman, and Rao, 2007], and is at least as powerful as predecessor data structures. Viewing $S$ as a set $X = \\{ x_1, x_2, \\ldots, x_n \\}$ of $n$ distinct integers drawn from a universe $[m] = \\{1, \\ldots, m\\}$, the predecessor of integer $y \\in [m]$ in $X$ is given by $\\ensuremath{\\mathtt{select}^{}_1}(S, \\ensuremath{\\mathtt{rank}_1}(S,y-1))$. {\\textsc{fid}}s have many applications in succinct and compressed data structures, as they are often involved in the construction of succinct representation for a variety of abstract data types.\r\n\r\nOur focus is on space-efficient {\\textsc{fid}}s on the \\textsc{ram} model with word size $\\Theta(\\lg m)$ and constant time for all operations, so that the time cost is independent of the input size.\r\n\r\nGiven the bitstring $S$ to be encoded, having length $m$ and containing $n$ ones, the minimal amount of information that needs to be stored is $B(n,m) = \\lceil \\log {{m}\\choose{n}} \\rceil$. The state of the art in building a \\textsc{fid}\\ for~$S$ is given in~\\mbox{}[P\\v{a}tra\\c{s}cu, 2008] using $B(m,n)+O( m \/ ( (\\log m\/ t) ^t) ) + O(m^{3\/4}) $ bits, to support the operations in $O(t)$ time.\r\n\r\nHere, we propose a parametric data structure exhibiting a time\/space trade-off such that, for any real constants $0 < \\delta \\leq 1\/2$, $0 < \\varepsilon \\leq 1$, and integer $s > 0$, it uses\r\n\\[ B(n,m) + O\\left(n^{1+\\delta} + n \\left(\\frac{m}{n^s}\\right)^\\varepsilon\\right) \\]\r\nbits and performs all the operations in time $O(s\\delta^{-1} + \\varepsilon^{-1})$. The improvement is twofold: our redundancy can be lowered parametrically and, fixing $s = O(1)$, we get a constant-time \\textsc{fid}\\ whose space is $B(n,m) + O(m^\\varepsilon\/\\mathrm{poly}(n))$ bits, for sufficiently large $m$. This is a significant improvement compared to the previous bounds for the general case.","author":[{"@type":"Person","name":"Grossi, Roberto","givenName":"Roberto","familyName":"Grossi"},{"@type":"Person","name":"Orlandi, Alessio","givenName":"Alessio","familyName":"Orlandi"},{"@type":"Person","name":"Raman, Rajeev","givenName":"Rajeev","familyName":"Raman"},{"@type":"Person","name":"Rao, S. Srinivasa","givenName":"S. Srinivasa","familyName":"Rao"}],"position":42,"pageStart":517,"pageEnd":528,"dateCreated":"2009-02-19","datePublished":"2009-02-19","isAccessibleForFree":true,"license":"https:\/\/creativecommons.org\/licenses\/by-nd\/3.0\/legalcode","copyrightHolder":[{"@type":"Person","name":"Grossi, Roberto","givenName":"Roberto","familyName":"Grossi"},{"@type":"Person","name":"Orlandi, Alessio","givenName":"Alessio","familyName":"Orlandi"},{"@type":"Person","name":"Raman, Rajeev","givenName":"Rajeev","familyName":"Raman"},{"@type":"Person","name":"Rao, S. Srinivasa","givenName":"S. Srinivasa","familyName":"Rao"}],"copyrightYear":"2009","accessMode":"textual","accessModeSufficient":"textual","creativeWorkStatus":"Published","inLanguage":"en-US","sameAs":"https:\/\/doi.org\/10.4230\/LIPIcs.STACS.2009.1847","publisher":"Schloss Dagstuhl \u2013 Leibniz-Zentrum f\u00fcr Informatik","isPartOf":{"@type":"PublicationVolume","@id":"#volume6206","volumeNumber":3,"name":"26th International Symposium on Theoretical Aspects of Computer Science","dateCreated":"2009-02-19","datePublished":"2009-02-19","editor":[{"@type":"Person","name":"Albers, Susanne","givenName":"Susanne","familyName":"Albers"},{"@type":"Person","name":"Marion, Jean-Yves","givenName":"Jean-Yves","familyName":"Marion"}],"isAccessibleForFree":true,"publisher":"Schloss Dagstuhl \u2013 Leibniz-Zentrum f\u00fcr Informatik","hasPart":"#article6597","isPartOf":{"@type":"Periodical","@id":"#series116","name":"Leibniz International Proceedings in Informatics","issn":"1868-8969","isAccessibleForFree":true,"publisher":"Schloss Dagstuhl \u2013 Leibniz-Zentrum f\u00fcr Informatik","hasPart":"#volume6206"}}}