Space-Efficient SLP Encoding for O(log N)-Time Random Access
摘要
A Straight-Line Program (SLP) \(\mathcal {G}\) for a string \(\mathcal {T}\) is a context-free grammar (CFG) that derives \(\mathcal {T}\) only, which can be considered as a compressed representation of \(\mathcal {T}\) .In this paper, we show how to encode \(\mathcal {G}\) in \(n \lceil \lg N \rceil + (n + n') \lceil \lg (n+\sigma ) \rceil + 4n - 2n' + o(n)\) bits to support random access queries of extracting \(\mathcal {T}[p..q]\) in worst-case \(O(\log N + q - p)\) time, where N is the length of \(\mathcal {T}\) , \(\sigma \) is the alphabet size, n is the number of variables in \(\mathcal {G}\) and \(n' \le n\) is the number of symmetric centroid paths in the DAG representation for \(\mathcal {G}\) .