LOUDS によるパトリシア(概要)

これまでの実験では単純なトライのみを対象としてきましたが,LOUDS や LOUDS++ による実装では子ノードへの移動時に呼び出す select() のコストが高いため,パトリシア(PATRICIA)の方が高速に検索できる可能性があります.

※ パトリシアについては,トライから分岐を持たない枝を刈り取ったものと考えてください.

Succinct なトライの実験で述べたように,LOUDS や LOUDS++ によるトライの検索時間は,どうしても select() の効率に大きく左右されます.以前の実験では,select() 用に小さな索引を追加するだけで検索時間を 20 〜 30% ほど短縮できました.すなわち,select() の効率化によって検索を高速化できることは既に示されています.

一方,トライからパトリシアの移行では,select() の呼び出し回数を削減することにより,検索の高速化を目指します.単語やフレーズのリストを登録する場合,パトリシアのノード数はトライのノード数と比べて半分以下になることが経験的に分かっているので,それなりに効果があると思います.