lang wiederholte Teilzeichenfolgen in einer massiven Zeichenfolge finden

Ich habe mir naiv vorgestellt, dass ich einen Suffix-Trie erstellen könnte, in dem ich für jeden Knoten eine Anzahl von Besuchen festhalte. Dann sind die tiefsten Knoten mit mehr als einer Anzahl die Ergebnismenge, nach der ich suche.

Ich habe eine wirklich sehr lange Zeichenfolge (Hunderte von Megabyte). Ich habe ungefähr 1 GB RAM.

Deswegen ist das Erstellen eines Suffix-Versuchs mit dem Zählen von Daten zu ineffizient, um für mich zu funktionieren. Zitieren Wikipedia's Suffix Tree:

das Speichern des Suffixbaums einer Zeichenfolge erfordert in der Regel erheblich mehr Speicherplatz als das Speichern der Zeichenfolge selbst.

Die große Informationsmenge in jeder Kante und jedem Knoten macht den Suffix-Baum sehr teuer und verbraucht in guten Implementierungen etwa das Zehn- bis Zwanzigfache der Speichergröße des Quelltextes. Das Suffix-Array reduziert diese Anforderung auf den Faktor vier, und Forscher haben weiterhin kleinere Indexstrukturen gefunde

Und das waren die Kommentare von Wikipedia zum Baum, nicht Trie.

Wie finde ich lange wiederholte Sequenzen in einer so großen Datenmenge und in einer angemessenen Zeitspanne (z. B. weniger als eine Stunde auf einem modernen Desktop-Computer)?

(Einige Wikipedia-Links, um zu vermeiden, dass Personen sie als "Antwort" posten:Algorithmen für Strings und speziell Längste wiederholte Teilzeichenfolge Problem ;-))

Antworten auf die Frage(18)

Ihre Antwort auf die Frage