中文

欲速则不达:降低完全可索引字典中的冗余度

数据结构与算法 2009-02-17 v1

摘要

我们考虑以压缩格式表示一个包含nn个1的mm位比特向量SS的问题,支持以下操作,其中b{0,1}b \in \{0, 1\}rankb(S,i)rank_b(S,i)返回前缀S[1..i]S[1..i]中比特bb的出现次数;selectb(S,i)select_b(S,i)返回SS中第ii个比特bb出现的位置。这种数据结构称为完全可索引字典(FID) [Raman et al., 2007],其功能至少与前驱数据结构相当。我们的重点是在字长为Θ(lgm)\Theta(\lg m)且所有操作时间为常数的\textsc{ram}模型上构建空间高效的FID,使得时间成本与输入大小无关。给定待编码的比特串SS,长度为mm且包含nn个1,需要存储的最小信息量为B(n,m)=log(mn)B(n,m) = \lceil \log {{m}\choose{n}} \rceil。为SS构建FID的最新成果见[Patrascu, 2008],使用B(m,n)+O(m/((logm/t)t))+O(m3/4)B(m,n)+O(m / ((\log m/ t) ^t)) + O(m^{3/4})比特,以O(t)O(t)时间支持操作。在此,我们提出一种参数化数据结构,展现出时间/空间权衡,使得对于任意实常数0<δ1/20 < \delta \leq 1/20<\eps10 < \eps \leq 1和整数s>0s > 0,它使用B(n,m)+O(n1+δ+n(mns)\eps) B(n,m) + O(n^{1+\delta} + n (\frac{m}{n^s})^\eps) 比特,并以O(sδ1+\eps1)O(s\delta^{-1} + \eps^{-1})时间执行所有操作。改进是双重的:我们的冗余度可以参数化地降低,并且固定s=O(1)s = O(1)时,对于足够大的mm,我们得到一个空间为B(n,m)+O(m\eps/\polyn)B(n,m) + O(m^\eps/\poly{n})比特的常数时间FID。与之前的一般情况界限相比,这是一个显著的改进。

关键词

引用

@article{arxiv.0902.2648,
  title  = {More Haste, Less Waste: Lowering the Redundancy in Fully Indexable Dictionaries},
  author = {Roberto Grossi and Alessio Orlandi and Rajeev Raman and S. Srinivasa Rao},
  journal= {arXiv preprint arXiv:0902.2648},
  year   = {2009}
}