Optimal-Time Text Indexing in BWT-runs Bounded Space
Abstract
Indexing highly repetitive texts --- such as genomic databases, software repositories and versioned text collections --- has become an important problem since the turn of the millennium. A relevant compressibility measure for repetitive texts is , the number of runs in their Burrows-Wheeler Transform (BWT). One of the earliest indexes for repetitive collections, the Run-Length FM-index, used space and was able to efficiently count the number of occurrences of a pattern of length in the text (in loglogarithmic time per pattern symbol, with current techniques). However, it was unable to locate the positions of those occurrences efficiently within a space bounded in terms of . Since then, a number of other indexes with space bounded by other measures of repetitiveness --- the number of phrases in the Lempel-Ziv parse, the size of the smallest grammar generating the text, the size of the smallest automaton recognizing the text factors --- have been proposed for efficiently locating, but not directly counting, the occurrences of a pattern. In this paper we close this long-standing problem, showing how to extend the Run-Length FM-index so that it can locate the occurrences efficiently within space (in loglogarithmic time each), and reaching optimal time within space, on a RAM machine of bits. Within space, our index can also count in optimal time . Raising the space to , we support count and locate in and time, which is optimal in the packed setting and had not been obtained before in compressed space. We also describe a structure using space that replaces the text and extracts any text substring of length in almost-optimal time . (...continues...)
Cite
@article{arxiv.1705.10382,
title = {Optimal-Time Text Indexing in BWT-runs Bounded Space},
author = {Travis Gagie and Gonzalo Navarro and Nicola Prezza},
journal= {arXiv preprint arXiv:1705.10382},
year = {2017}
}