English

A Faster Grammar-Based Self-Index

Data Structures and Algorithms 2012-09-28 v6

Abstract

To store and search genomic databases efficiently, researchers have recently started building compressed self-indexes based on grammars. In this paper we show how, given a straight-line program with rr rules for a string (S [1..n]) whose LZ77 parse consists of zz phrases, we can store a self-index for SS in \Ohr+zloglogn\Oh{r + z \log \log n} space such that, given a pattern (P [1..m]), we can list the \occ\occ occurrences of PP in SS in \Ohm2+\occloglogn\Oh{m^2 + \occ \log \log n} time. If the straight-line program is balanced and we accept a small probability of building a faulty index, then we can reduce the \Ohm2\Oh{m^2} term to \Ohmlogm\Oh{m \log m}. All previous self-indexes are larger or slower in the worst case.

Keywords

Cite

@article{arxiv.1109.3954,
  title  = {A Faster Grammar-Based Self-Index},
  author = {Travis Gagie and Paweł Gawrychowski and Juha Kärkkäinen and Yakov Nekrich and Simon J. Puglisi},
  journal= {arXiv preprint arXiv:1109.3954},
  year   = {2012}
}

Comments

journal version of LATA '12 paper

R2 v1 2026-06-21T19:06:52.772Z