We study the problem of constructing a dynamic fully indexable dictionary (FID) in the Word-RAM model using space close to the information-theoretic lower bound. A FID is a data-structure that encodes a bit-vector $B$ of length $u$ and answers, for $b\in\{0,1\}$, $\texttt{rank}_b(B, x)=|{\{y\leq x~|~B[y]=b\}}|$ and $\texttt{select}_b(B, r)=\min\{0\leq x<u~|~\texttt{rank}_b(B, x)=r\}$ ($-1$ if empty). A dynamic FID supports updates that modify a single bit of $B$, i.e., $B[i]\gets b$. We work in the Word-RAM model with $w$-bit words, assuming $w\geq \operatorname{lg} u$. Integer multiplication takes $\mathcal{O}(1)$ time. Our memory model is $\mathcal{M}_B$, allowing access to a fixed precomputed table of $τ=\operatorname{polylog}(w)$ words, which can be computed in $\mathcal{O}(wτ)$ time. In this paper, we show a dynamic FID based on the famous fusion-tree data-structure of P{ă}tra{ş}cu and Thorup [FOCS 2014], modified to use fewer bits and to support $\texttt{select}_0$. Let $n$ denote the number of ones in $B$. We describe a parametric construction: for every $ε\leq 1/2$, there is a dynamic FID using $$\operatorname{lg}\binom{u}{n}+\mathcal{O}(nw^ε/ε)\text{ bits}$$ taking $\mathcal{O}({1/ε+\log_w(n)})$ time for $\texttt{rank}_0/\texttt{rank}_1/\texttt{select}_0$ and updates, and $\mathcal{O}({\log_w(n)})$ time for $\texttt{select}_1$. All time bounds are worst-case. For $ε={1/\sqrt{\operatorname{lg} w}}$, we reduce the space to $\operatorname{lg}\binom{u}{n}+\mathcal{O}(n\log w)$ bits. For $ε=Θ(1)$, the running time matches the lower bound of Fredman and Saks [STOC 1989]. This is the first deterministic dynamic FID in the standard Word-RAM model that achieves $o(n\sqrt{w})$ bits of redundancy in $\mathcal{M}_B$ (e.g., $ε=1/4$), and optimal worst-case time.
翻译:研究在Word-RAM模型下构建动态完全索引字典(FID)的问题,要求空间接近信息论下界。FID是一种数据结构,用于编码长度为$u$的位向量$B$,并对$b\in\{0,1\}$支持以下查询:$\texttt{rank}_b(B, x)=|{\{y\leq x~|~B[y]=b\}}|$和$\texttt{select}_b(B, r)=\min\{0\leq x<u~|~\texttt{rank}_b(B, x)=r\}$(若为空则返回$-1$)。动态FID支持修改$B$中单个比特的更新操作,即$B[i]\gets b$。我们在字长为$w$比特的Word-RAM模型下工作,假设$w\geq \operatorname{lg} u$。整数乘法需$\mathcal{O}(1)$时间。我们的内存模型为$\mathcal{M}_B$,允许访问一个固定预计算表(大小为$τ=\operatorname{polylog}(w)$字),该表可在$\mathcal{O}(wτ)$时间内计算完成。本文基于P{ă}tra{ş}cu与Thorup [FOCS 2014]提出的著名融合树数据结构,通过修改使其使用更少比特并支持$\texttt{select}_0$,从而构建动态FID。设$n$表示$B$中1的个数。我们提出参数化构造:对于每个$ε\leq 1/2$,存在一个动态FID,使用$$\operatorname{lg}\binom{u}{n}+\mathcal{O}(nw^ε/ε)\text{ 比特}$$空间,$\texttt{rank}_0/\texttt{rank}_1/\texttt{select}_0$和更新操作的时间为$\mathcal{O}({1/ε+\log_w(n)})$,$\texttt{select}_1$操作的时间为$\mathcal{O}({\log_w(n)})$。所有时间界均为最坏情形。当$ε={1/\sqrt{\operatorname{lg} w}}$时,空间降至$\operatorname{lg}\binom{u}{n}+\mathcal{O}(n\log w)$比特。当$ε=Θ(1)$时,运行时间与Fredman和Saks [STOC 1989]的下界匹配。这是在标准Word-RAM模型下首个在$\mathcal{M}_B$中实现冗余$o(n\sqrt{w})$比特(例如$ε=1/4$)且最坏情形时间最优的确定性动态FID。