Skip to main content
QUICK REVIEW

[论文解读] More Haste, Less Waste: Lowering the Redundancy in Fully Indexable Dictionaries

Roberto Grossi, Alessio Orlandi|ArXiv.org|Feb 16, 2009
Algorithms and Data Compression参考文献 25被引用 12
一句话总结

本文提出了一种参数化的全索引字典(FID),通过递归应用分层分解与多重排名技术,显著减少了压缩位向量表示中的冗余,实现了接近信息论最小值的空间复杂度,并支持常数时间的 rank/select 操作。通过结合多层排名与简明字符串 B-树,其冗余度为 $ B(n,m) + O(n^{1+u} + n(m/n^s)^\rho) $ 位,相较于以往在一般情形 $ n \leq m $ 下的界有显著改进。

ABSTRACT

We consider the problem of representing, in a compressed format, a bit-vector $S$ of $m$ bits with $n$ 1s, supporting the following operations, where $b \in \{0, 1 \}$: $rank_b(S,i)$ returns the number of occurrences of bit $b$ in the prefix $S[1..i]$; $select_b(S,i)$ returns the position of the $i$th occurrence of bit $b$ in $S$. Such a data structure is called \emph{fully indexable dictionary (FID)} [Raman et al.,2007], and is at least as powerful as predecessor data structures. Our focus is on space-efficient FIDs on the extsc{ram} model with word size $Θ(\lg m)$ and constant time for all operations, so that the time cost is independent of the input size. Given 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}} ceil$. The state of the art in building a FID for $S$ is given in [Patrascu,2008] using $B(m,n)+O(m / ((\log m/ t) ^t)) + O(m^{3/4}) $ bits, to support the operations in $O(t)$ time. Here, we propose a parametric data structure exhibiting a time/space trade-off such that, for any real constants $0 < δ\leq 1/2$, $0 < \eps \leq 1$, and integer $s > 0$, it uses \[ B(n,m) + O(n^{1+δ} + n (\frac{m}{n^s})^\eps) \] bits and performs all the operations in time $O(sδ^{-1} + \eps^{-1})$. The improvement is twofold: our redundancy can be lowered parametrically and, fixing $s = O(1)$, we get a constant-time FID whose space is $B(n,m) + O(m^\eps/\poly{n})$ bits, for sufficiently large $m$. This is a significant improvement compared to the previous bounds for the general case.

研究动机与目标

  • 减少在 $ m $ 位中包含 $ n $ 个 1 的压缩位向量中全索引字典(FID)的冗余。
  • 在仅超出信息论下界 $ B(n,m) = \lceil \log{m \choose n} \rceil $ 的最小额外空间下,实现常数时间的 rank 和 select 操作。
  • 提供一种时间/空间权衡机制,允许通过参数控制冗余与查询时间。
  • 在一般情形 $ n \leq m $ 下改进先前的界,将冗余降低至 $ O(m^\varepsilon / \mathrm{poly}(n)) $,同时保持常数查询时间。

提出的方法

  • 将位向量递归地分解为更小的序列,对 $ s $ 层递归应用定理 4.3。
  • 通过在超块上应用多重排名,以级联方式在递归的 FID 实例中支持 $ \mathtt{rank}_1 $ 查询。
  • 利用简明字符串 B-树高效地导航并定位前驱元素。
  • 通过双重表示法表示集合,使 $ \mathtt{select}_0 $ 操作可复用与 $ \mathtt{select}_1 $ 相同的机制。
  • 引入高位多重集合表示 ($ H' $),以紧凑方式存储并查询每个块的最高有效位。
  • 若剩余的宇宙大小低于块大小,则提前终止递归,对最终段落使用小型 FID。

实验结果

研究问题

  • RQ1是否可以参数化地减少全索引字典中的冗余,同时保持常数时间操作?
  • RQ2在 $ O(s\delta^{-1} + \varepsilon^{-1}) $ 时间内支持 $ \mathtt{rank}_b $ 和 $ \mathtt{select}_b $ 的 FID,其最小冗余是多少?
  • RQ3在一般情形 $ n \leq m $ 下,冗余如何随 $ n $、$ m $ 以及参数 $ \delta $、$ \varepsilon $、$ s $ 变化?
  • RQ4即使当 $ n = o(m / \mathrm{polylog}(m)) $ 时,是否仍可将冗余降低至 $ O(m^\varepsilon / \mathrm{poly}(n)) $,且保持常数查询时间?

主要发现

  • 所提出的 FID 对任意 $ 0 < \delta \leq 1/2 $、$ 0 < \varepsilon \leq 1 $ 及整数 $ s > 0 $,均实现冗余度为 $ B(n,m) + O(n^{1+\delta} + n(m/n^s)^\varepsilon) $ 位。
  • 当 $ s = O(1) $ 时,该数据结构在 $ O(\delta^{-1} + \varepsilon^{-1}) $ 时间内支持所有操作,冗余度为 $ O(m^\varepsilon / \mathrm{poly}(n)) $,显著优于先前的界。
  • 空间复杂度主要由递归的根层决定,且 $ B(n_i, m_i) + O(n_i^{1+\delta}) $ 项的几何衰减确保了总冗余渐近地由根层贡献所主导。
  • 通过将集合转换为其对偶形式,可复用用于 $ \mathtt{select}_1 $ 的递归机制来支持 $ \mathtt{select}_0 $。
  • 该构造结合了多重排名、简明字符串 B-树与高位多重集合表示,以实现高效的导航与前驱查询。
  • 当递归深度达到宇宙大小低于块大小的点时,使用小型 FID,其对整体冗余界的影响可忽略不计。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。