Grammar Compression by Induced Suffix Sorting
Daniel Nunes, Felipe Louza, Simon Gog, Mauricio Ayala-Rincón, and
Gonzalo Navarro
A grammar compression algorithm, called GCIS, is introduced in this work. GCIS
is based on the induced suffix sorting algorithm SAIS, presented by Nong et
al. in 2009. The proposed solution builds on the factorization performed by
SAIS during suffix sorting.
A context-free grammar is used to replace factors by non-terminals. The
algorithm is then recursively applied on the shorter sequence of non-terminals.
The resulting grammar is encoded by exploiting some redundancies, such as common
prefixes between right-hands of rules, sorted according to SAIS. GCIS excels
for its low space and time required for compression while obtaining competitive
compression ratios. Our experiments on regular and repetitive, moderate and
very large texts, show that GCIS stands as a very convenient choice compared to
well-known compressors such as Gzip, 7-Zip, and RePair, the gold standard in
grammar compression.
In exchange, GCIS is slow at decompressing. Yet, grammar compressors are more
convenient than Lempel-Ziv compressors in that one can access text substrings
directly in compressed form, without ever decompressing the text. We demonstrate
that GCIS is an excellent candidate for this scenario because it shows to be
competitive among its RePair based alternatives. We also show, how GCIS relation
with SAIS makes it a good intermediate structure to build the suffix array and
the LCP array during decompression of the text.