www.wikidata.de-de.nina.az
Ein Suffixbaum ist in der Informatik eine vielseitige Datenstruktur die effiziente Losungen zahlreicher Probleme im Bereich der Stringverarbeitung ermoglicht Ein Suffixbaum speichert alle Suffixe Endungen einer Zeichenkette Er kann in linearer Zeit mit linearem Speicherverbrauch aufgebaut werden und ermoglicht einmal aufgebaut das schnelle Durchfuhren vieler Operationen wie zum Beispiel die Suche nach Wortern oder Satzen in langeren Texten Suffixbaum fur abbabbab Blatter sind mit den Startindizes 1 basiert der entsprechenden Suffixe beschriftet markiert das Ende eines Suffixes Inhaltsverzeichnis 1 Definition 2 Konstruktion 3 Anwendungen 4 Geschichte 5 Siehe auch 6 Literatur 7 WeblinksDefinition BearbeitenEin Suffixbaum T fur einen String S mit m Symbolen ist ein gerichteter Baum mit m Blattern Jede Kante ist mit einem Teilstring von S beschriftet Jeder innere Knoten von T hat mindestens zwei Kinder deren Kantenbeschriftungen nie mit dem gleichen Symbol beginnen Fur jedes Blatt i in T ergeben die Beschriftungen der Kanten auf dem Pfad von der Wurzel zu i aneinander gehangt das Suffix von S das an Index i beginnt Somit enthalt T alle Suffixe von S wobei mehrfach auftretende Teilstrings nur einmal in T enthalten sind siehe Abbildung Konstruktion BearbeitenDer Baum besteht zu Anfang aus einem Wurzelknoten und einer Liste von Zeigern auf allen fortsetzbaren Stellen im Baum das heisst zu Anfang aus lediglich einem Zeiger auf den Wurzelknoten Der Baum wird fur ein schrittweise zu verlangerndes Wort aufgebaut Fur alle Knoten aus der Liste der fortsetzbaren Stellen wird eine Kante zu einem neuen Knoten gezogen Diese Kante wird mit dem zuletzt an das Wort angefugten Buchstaben beschriftet Dieser neue Knoten wird dann in eine Liste der fortsetzbaren Stellen fur die nachste Iteration aufgenommen Zuletzt wird immer auch der Startknoten mit in die neue Liste aufgenommen da das leere Wort immer ein gultiges Suffix ist Existiert zu einer fortsetzbaren Stelle bereits eine Kante deren Beschriftung dem zuletzt angefugten Buchstaben entspricht so wird kein Knoten hinzugefugt und stattdessen der bereits existierende Zielknoten in die Liste der fortsetzbaren Stellen aufgenommen Durch das Hinzufugen des Startknotens in jedem Schritt ist die Liste der fortsetzbaren Stellen nach n Iterationen auch n 1 Elemente lang was in quadratischer Laufzeit resultiert Es existiert ein Algorithmus mit linearer Laufzeit der auf dem Suffixarray aufbaut Anwendungen BearbeitenDadurch ermoglicht ein Suffixbaum die effiziente Losung zahlreicher Probleme im Bereich der Stringverarbeitung Die Konstruktion des Baumes ist in linear wachsender Laufzeit und linear wachsendem Speicherplatzbedarf moglich Ein Suffixbaum ermoglicht etwa im Bereich des exakten Stringvergleichs in einem Text der Lange m nach Vorverarbeitung in O m das Suchen von k Mustern der Lange n mit einer Laufzeitkomplexitat von nur O k n Auch im Bereich des weichen Stringvergleichs ermoglicht ein Suffixbaum effiziente Verfahren etwa beim Matching mit wildcards oder k mismatch siehe Gusfield 1999 199 ff oder in Form einer Beschleunigung der Ermittlung der Levenshtein Distanz uber hybrides dynamic programming siehe Gusfield 1999 279 ff Fur eine ausfuhrliche Darstellung und mehr als 20 weitere Anwendungen von Suffixbaumen siehe Gusfield 1999 89ff Geschichte BearbeitenMorrison 1968 Patricia Trie Weiner 1973 Erster Algorithmus zur Konstruktion von Suffixbaumen mit linear wachsender Laufzeit McCreight 1976 Weiterentwicklung mit hoherer Speicherplatzeffizienz Ukkonen 1995 Konzeptionell neuer einfacherer Algorithmus mit Laufzeit und Speicherplatzkomplexitat O n ermoglicht zudem eine on line Konstruktion des Baumes Giegerich amp Kurtz 1995 Beschleunigter Algorithmus mittels funktionaler Sprache und lazy evaluation Aufbau wahrend des Suchens nur relevante Teile des Baums werden erstellt wenn noch nicht vorhanden Siehe auch BearbeitenSuffixarray Trie Patricia TrieLiteratur BearbeitenDan Gusfield Algorithms on Strings Sequences and Trees 1999 ISBN 978 0 521 58519 4 englisch Erstausgabe 1997 Hans Joachim Bockenhauer und Dirk Bongartz Algorithmische Grundlagen der Bioinformatik 2003 ISBN 978 3 519 00398 4 Weblinks Bearbeiten nbsp Commons Suffix tree Sammlung von Bildern Videos und Audiodateien Definition nist gov englisch Fast String Searching with Suffix Trees englisch Abgerufen von https de wikipedia org w index php title Suffixbaum amp oldid 234658633