Engineering Fully-Compressed Suffix Trees

Christian Ocker
2015
Hiermit versichere ich, dass ich diese Arbeit selbständig verfasst und keine anderen, als die angegebenen Quellen und Hilfsmittel benutzt, die wörtlich oder inhaltlich übernommenen Stellen als solche kenntlich gemacht und die Satzung des Karlsruher Instituts für Technologie zur Sicherung guter wissenschaftlicher Praxis in der jeweils gültigen Fassung beachtet habe. Karlsruhe, den 29. Mai 2015 Zusammenfassung Der Suffixbaum ist eine klassische Datenstruktur, die optimale Lösungen für zahlreiche
more » ... robleme aus dem Bereich der Stringverarbeitung ermöglicht. Eine zeigerbasierte Repräsentation des Suffixbaums benötigt für einen Text der Länge n einen Speicheraufwand von Θ(n log n) Bit, wohingegen kompakte Repräsentationen O(n) Bit zusätzlich zum Speicherbedarf des komprimierten Textes benötigen. Der Fully-Compressed Suffix Tree (FCST) bietet dieselbe Funktionalität und benötigt o(n) Bit zusätzlich zum Speicherbedarf des komprimierten Textes, wohingegen die Abfragezeit um einen logarithmischen Faktor langsamer ist als bei kompakten Repräsentationen. Im Rahmen dieser Arbeit wird eine generische Implementierung des FCST angefertigt, einschließlich einer kürzlich veröffentlichten Variante von Navarro und Russo, welche ein abweichendes Sampling verwendet, um eine bessere Zeitkomplexität zu erreichen. Es wird eine Variante des FCST vorgestellt, die einen auf blind search basierenden Ansatz verwendet, um String-Matching sowohl theoretisch als auch praktisch zu verbessern. Es wird eine ausführliche empirische Evaluation und ein Vergleich der implementierten Datenstrukturen durchgeführt und gezeigt, dass die Implementierung dem vorherigen Prototypen in Platzbedarf sowie Abfrage-und Konstruktionszeit überlegen ist. Abstract The suffix tree is a classical data structure that provides optimal solutions to countless string processing problems. For a text of length n, a pointerbased representation of a suffix tree requires Θ(n log n) bits, whereas compact representations use O(n) bits on top of the size of the compressed text. The fully-compressed suffix tree (FCST) provides the same functionality using o(n) bits on top of the size of the compressed text, whereas queries are slowed down by a logarithmic factor compared to compact representations. Our contribution is a generic implementation of the FCST, including a recent proposal by Navarro and Russo that uses a different sampling to achieve a better query time complexity. We propose a variant of the FCST that improves pattern matching both in theory and in practice using a blind search approach. We provide an extensive empirical evaluation and comparison of the implemented data structures and show that our implementation outperforms the previous prototype in both space consumption and query/construction time.
doi:10.5445/ir/1000063445 fatcat:2bapcwfwrzcw7loal33xlhsrf4