arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2002.11691cs.DS
收藏

带游程的位向量和后继/前导问题

Bitvectors with runs and the successor/predecessor problem

Adrián Gómez-Brandón

摘要:

后继者和前导者问题包括在一组整数中获得最接近的值,大于/小于给定值。这个问题有一些有趣的应用,比如倒排列表的交集。通过使用大小为$n$的位向量及其操作rank和select,可以很容易地对其进行建模。然而,有一种实用的方法,它保持了最佳的理论界限,并允许更有效地解决后继和前导。基于该技术,我们设计了一种新的紧凑的数据结构的位向量与$k$运行,实现访问,排名,并在$O(1)$时间通过消耗空间$O(\sqrt{kn})$位的继任者/前任。在实践中,当运行大于$100$时,它获得$0.04\%-26.33\%$的压缩比,并且成为在后继/前驱查询中考虑压缩性的最快技术。此外,我们提出了一个递归的变体,我们的结构,这往往$O(k)$位和$O(\log \frac{n}{k})$时间。

英文摘要:

The successor and predecessor problem consists of obtaining the closest value in a set of integers, greater/smaller than a given value. This problem has interesting applications, like the intersection of inverted lists. It can be easily modeled by using a bitvector of size $n$ and its operations rank and select. However, there is a practical approach, which keeps the best theoretical bounds, and allows to solve successor and predecessor more efficiently. Based on that technique, we designed a novel compact data structure for bitvectors with $k$ runs that achieves access, rank, and successor/predecessor in $O(1)$ time by consuming space $O(\sqrt{kn})$ bits. In practice, it obtains a compression ratio of $0.04\%-26.33\%$ when the runs are larger than $100$, and becomes the fastest technique, which considers compressibility, in successor/predecessor queries. Besides, we present a recursive variant of our structure, which tends to $O(k)$ bits and takes $O(\log \frac{n}{k})$ time.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑