RLBWT 技巧
数据结构与算法
2022-07-15 v2
摘要
直到最近,大多数专家可能都会同意,我们无法在游程压缩的 Burrows-Wheeler 变换(RLBWT)上以常数时间进行反向步进,因为这样做依赖于稀疏位向量上的 rank 查询,而这些查询继承了前驱查询的下界。然而,在 ICALP '21 上,Nishimoto 和 Tabei 描述了一种新的、简单的常数时间实现。对于一个排列 ,它存储一个 空间的表——其中 是满足 或 的位置 的数量——该表能够通过查表和线性扫描来计算 的连续值。Nishimoto 和 Tabei 展示了如何增加表中的行数以限制线性扫描的长度,使得计算 的查询时间为常数,同时保持 空间。在本文中,我们改进了 Nishimoto 和 Tabei 的方法,包括一种时间-空间权衡,并通过实验评估了不同的实现,证明了他们部分结果的实用性。我们表明,即使不向表中添加行,在实践中我们在查询期间几乎总是只扫描少量条目。我们提出了一种对应于 LF-映射的排列 的分解方案,该方案允许改进数据结构的压缩,同时限制查询时间。我们在真实世界的基因组数据集上测试了我们的实现,发现如果不压缩表,反向步进比稀疏位向量实现快得多,但不幸的是,也使用了更多的空间。经过压缩后,反向步进在时间和空间上都与现有的最佳实现具有竞争力。
引用
@article{arxiv.2112.04271,
title = {RLBWT Tricks},
author = {Nathaniel K. Brown and Travis Gagie and Massimiliano Rossi},
journal= {arXiv preprint arXiv:2112.04271},
year = {2022}
}
备注
15 pages, 8 figures. New edition with expanded experimental results after poster acceptance at earlier conference. Section 4 removed, sections added for implementation details