研究概要 |
本年度も単一の文字列を導出するチョムスキー標準形の文脈自由文法である,直線的プログラム (Straight line program, 以下 SLP) によって圧縮表現された文字列を対象に研究を行った.主な成果は以下の通りである.1)長さ N の文字列 T とそれを表現する大きさ n の SLPが与えられたとき,T の長さ q の全部分文字列の情報が,大きさN’ = N - α ≦ N のトライ構造で表現できる(ここで α は q と SLP 表現の圧縮性能に関連した非負整数を表し,N’ ≦ qn が成り立つ),という昨年度得られた成果を応用し,次の2つの成果を得た.A)長さ m のパターン文字列と大きさ N’ の木に対する畳み込みが O(N’ log m) 時間で計算できることを示し,更にこのことにより,パターンと長さ N の文字列との畳み込みの時間計算量を従来の O(N log m) 時間から O(N + N’ log m) 時間に短縮することに成功した.B) SLP で表現された文字列を陽に展開することなく,その LZ78 分解を求めるアルゴリズムを提案した。この成果により,LZ78 を用いた正規化圧縮距離 (NCD) の計算,ひいては NCD に基づくデータの分類などを,圧縮表現のまま効率良く行うことを可能となる.2)連長圧縮表現された文字列を LZ78 分解する効率的なアルゴリズム,また,逆に SLP 表現から連長圧縮表現への変換を高速に行うアルゴリズムを考案した.3)SLP で表現された文字列が,連続して2回出現する部分文字列 (square) を含むかどうかを検証する多項式時間アルゴリズムを考案した.
|