研究概要 |
接尾辞は文字列検索のための代表的データ構造である.長さ$n$,アルファベットサイ$\sizealph$の文字列$S$に対し,従来のデータ構造では接尾辞木は$\Order(n\log n)$ビット,具体的な実装では$n<2^{30}$のときに$10n$〜$13n$バイトの領域を必要としていた.これは文字列自身のサイズ($n\log\sizealph$ビット,通常の文字列では$n$バイト,DNAでは$n/4$バイト)と比較すると非常に大きい.本研究で提案した圧縮接尾辞木は,接尾辞木の機能を保ったままサイズを圧縮する.圧縮接尾辞木のデータ構造は,文字列に対する圧縮接尾辞配列,接尾辞木の木構造を表現する簡潔データ構造,木の枝長を表現するデータ構造から構成される.各構成要素のサイズはそれぞれ$\Order(n\log\sizealph)$ビット,$4n+\order(n)$ビット,$2n+\order(n)$ビットである.このデータ構造は接尾辞木を線形サイズ($\Order(n\log\sizealph$ビット)で表現する初めてののデータ構造である.接尾辞木の巡回などの演算は多くは圧縮前と同じ時間計算量で行える.一部の演算は圧縮前よりも遅くなるが,その計算量は圧縮接尾辞配列の1要素を復元する時間と等しく,速度低下はわずかである.
|