The -index represented a breakthrough in compressed indexing of repetitive text collections, outperforming its alternatives by orders of magnitude in query time. Its space usage, where is the number of runs in the Burrows–Wheeler Transform of the text, is however higher than Lempel–Ziv (LZ) and grammar-based indexes, and makes it uninteresting in various real-life scenarios of milder repetitiveness. We introduce the -index, a variant that limits the space to for a text of length and a given parameter , at the expense of multiplying by the time per occurrence reported. The -index is obtained subsampling the text positions indexed by the -index, being still able to support pattern matching with guaranteed performance. Our experiments show that the theoretical analysis falls short in describing the practical advantages of the -index, because it performs much better on real texts than on synthetic ones: the -index retains the performance of the -index while using 1.5–4.0 times less space, sharply outperforming {\em virtually every other} compressed index on repetitive texts in both time and space. Only a particular LZ-based index uses less space than the -index, but it is an order of magnitude slower. Our second contribution are the -csa and -csa indexes. Just like the -index adapts the well-known FM-Index to repetitive texts, the -csa adapts Sadakane’s Compressed Suffix Array (CSA) to this case. We show that the principles used on the -index turn out to fit naturally and efficiently in the CSA framework. The -csa is the corresponding subsampled version of the -csa. While the CSA performs better than the FM-Index on classic texts with alphabets larger than DNA, we show that the -csa outperforms the -index on repetitive texts over those larger alphabets and some DNA texts as well.

生成讲解博客的中文版本

生成AI智能校验的中文版本