17

接尾辞ツリーが拡張接尾辞配列よりも優れている場合、私はちょっと知りたいです。接尾辞配列対接尾辞木

Replacing suffix trees with enhanced suffix arraysを読んだ後、私はもうサフィックスツリーを使用する理由はありません。いくつかのメソッドは複雑になることがありますが、接尾辞配列ですべてを行うことができます。接尾辞ツリーで何ができ、同じ複雑さが必要ですが、メモリは少なくて済みます。

surveyも示していますが、接尾辞配列はキャッシュフレンドリであり、キャッシュミスやサフィックスツリーを生成しないため、より高速です(キャッシュは配列の使用状況をはるかによく予測でき、再帰的木構造)。

だから、接尾辞配列よりも接尾辞ツリーを選択する理由は誰にも分かりますか? [OK]を

編集 、あなたはより多くのこれまでのところ、私に教えて知っている場合:

  • Suffixarraysが追加(いくつかのパターンマッチングアルゴリズムはSuffixtrees
  • 上で高速に実行するオンライン建設
  • 許可いけません)オンライン構築のために、それをhd aに保存し、既存の接尾辞ツリーを拡大することができます。 SSDを使用している場合、SSDもすばやく静かでなければなりません。
+4

簡単な実装ですか? –

+0

実際の実装では、サフィックスツリーはメモリの点ではもっと小さくなる可能性があります。 – Justin

+1

@ジャスティン:いいえ、実際には拡張された接尾辞配列はメモリを消費しません。これはリンクされた論文のことです。 –

答えて

1

interesting thoughtsがSO自体の中にあります。オンラインでmore technical materialをご利用いただけます。これらの構造を実装する別の効率的な方法であると主張し、問題を解決するのに役立つanother paperがあります。

私はこの問題のエキスパートではありませんが、スペース効率が良いにもかかわらず、接尾辞配列がやや遅くなるようです。それにもかかわらず、私は両者についてより詳細な実践的な経験が不足しています。

-3

別の例接尾辞木が優れていることを示すために:

すでに接尾辞木を持っている場合は、簡単に接尾辞配列を構築することができます。

しかし、接尾辞配列から接尾辞ツリーを構築する方がずっと複雑です。

関連する問題