1

私は、最も長く繰り返された部分文字列を見つけなければならないphpスクリプトに取り組んでいます。このサフィックスツリーのことを見つけました。Ukkonnen のアルゴリズムを実装しようとしていますが、ツリーを拡張するタイミングと方法がわかりません。

ツリーにない新しい文字があっても大丈夫ですが、新しいノードを作成し、そのルートから egde を作成する必要があります。しかし、エッジを分割する必要があるかどうかはどうすればわかりますか?

私はそれのC++実装を見つけ(リンク)、それをphpに変換しようとしましたが、ほとんど良い結果が得られるため、タイプオが含まれていると思います。問題は、修正しない限り修正できないことですそれを完全に理解し...

Suffix-Trees の説明をたくさん読みましたが、中にはあまり深く入っていないものもあれば、2 番目のセンテンスの後で頭が痛くなるものもあります。

これが私が今持っているコードです: Suffix-tree.php (申し訳ありませんが、このエディターはそれを受け入れることができませんでした) 私はこのサイトを使用して結果を確認しました。

アドバイスをいただければ幸いです...

編集: 上記のサイトで見つかった JavaScript のものから書き直しました。ソースへのリンクは次のとおりです: Suffix-Tree v0.1

4

1 に答える 1

1

データ圧縮の専門家であるMattMahoneyが良い説明をしています。しかし、私も実装を理解していませんでした、それはかなり難しいです。参考までに、私はサフィックスツリーのphp拡張機能を実行することができました。それが助けになるなら、sourceforgeで私のコードを見つけることができます。私はあなたの最終的なコードを見たいです!

于 2011-04-16T12:26:20.460 に答える