研究概要 |
大規模文書データベースのためのアルゴリズムとデータ構造の開発を行った.大量の文書からの検索を高速に行うには索引を用いる必要があるが,従来の索引はサイズが大きいため大量の文書には適用が難しかった.本研究では索引を圧縮することでサイズの問題を解決した.文書の長さをn,アルファベットサイズをkとすると,従来の索引のサイズはO(n log n)ビットであったが,これをO(n H)ビットに削減した(Hは文書の次数0のエントロピー).検索の計算量に関しても圧縮前とほぼ同じオーダである.索引のサイズは元の文書サイズよりも小さくすることができる.つまり,圧縮された文書データベースからの高速検索を実現したことになる. 次に,索引を構築するための高速かつ省スペースなアルゴリズムを開発した.従来手法ではO(n log n)ビットのスペースが必要であったが,これをO(n log k)ビットに削減した.時間計算量に関しては,まずO(n log n)時間のものを開発し,次にO(n log log k)時間のものを開発した.後者は定数サイズアルファベットに対しては時間,領域ともに最適である.また,前者は時間は最適ではないが必要な領域が少ないという利点がある. 次に,上記の索引を動的に更新するためのデータ構造として,動的に変化する数列の部分和を高速に計算するためのコンパクトなデータ構造を開発した.さらに,情報検索において広く用いられている問い合わせである文書列挙問い合わせに対し,高速な問い合わせのためのデータ構造の実際的な実装を行った.このデータ構造は従来法とは異なり任意のパタンに対する検索を行うことができ,データ構造のサイズもコンパクトである.
|