Iterated Straight-Line Programs
摘要
We explore an extension to straight-line programs (SLPs) that outperforms, for some text families, the measure \(\delta \) based on substring complexity, a lower bound for most measures and compressors exploiting repetitiveness (which are crucial in areas like Bioinformatics). The extension, called iterated SLPs (ISLPs), allows rules of the form \(A \rightarrow \varPi _{i=k_1}^{k_2} B_1^{i^{c_1}}\cdots B_t^{i^{c_t}}\) , for which we show how to extract any substring of length \(\lambda \) , from the represented text \(T[1\mathinner {.\,.}n]\) , in time \(O(\lambda + \log ^2 n\log \log n)\) . This is the first compressed representation for repetitive texts breaking \(\delta \) while, at the same time, supporting direct access to arbitrary text symbols in polylogarithmic time. As a byproduct, we extend Ganardi et al.’s technique to balance any SLP (so it has a derivation tree of logarithmic height) to a wide generalization of SLPs, including ISLPs.