中文

从 RLBWT 到 LZ77 的转换

数据结构与算法 2019-02-15 v1

摘要

将字符串的一种压缩格式转换为另一种压缩格式而不显式解压,是字符串处理中的核心研究课题之一。我们讨论将字符串的游程长度 Burrows-Wheeler 变换(RLBWT)转换为反转字符串的 Lempel-Ziv 77(LZ77)短语的问题。Policriti 和 Prezza 的转换算法 [Algorithmica 2018] 的首批结果为:对于字符串长度 nn、RLBWT 中游程数 rr 和 LZ77 短语数 zz,时间 O(nlogr)O(n \log r)、工作空间 O(r)O(r)。Kempa 的转换算法 [SODA 2019] 近期结果为:对于 RLBWT 的字母表大小 σ\sigma,时间 O(n/logn+rlog9n+zlog9n)O(n / \log n + r \log^{9} n + z \log^{9} n)、工作空间 O(n/logσn+rlog8n)O(n / \log_{\sigma} n + r \log^{8} n)。本文通过改进 Policriti 和 Prezza 的转换算法提出一种新的转换算法,其中使用了通用的动态数据结构。我们论证这些动态数据结构可被替换,并提出新的数据结构以实现更快的转换。采用新数据结构的转换算法的时间和工作空间分别为 O(nmin{loglogn,logrloglogr})O(n \min \{ \log \log n, \sqrt{\frac{\log r}{\log\log r}} \})O(r)O(r)

关键词

引用

@article{arxiv.1902.05224,
  title  = {Conversion from RLBWT to LZ77},
  author = {Takaaki Nishimoto and Yasuo Tabei},
  journal= {arXiv preprint arXiv:1902.05224},
  year   = {2019}
}