algorithm engineering „suffix-bäume und suffix-arrays“ stefan edelkamp

44
Algorithm Engineering „Suffix-Bäume und Suffix- Arrays“ Stefan Edelkamp

Upload: nadine-beutel

Post on 06-Apr-2016

253 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Algorithm Engineering

„Suffix-Bäume und Suffix-Arrays“

Stefan Edelkamp

Page 2: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Übersicht

Suffix-Mehrwegsuchbaum (-Trie) Patricia-Bäume Suffix-Bäume Konstruktion von Suffix-Bäumen nach McCreight Generalisierte Suffix-Bäume Suffix-Arrays

Page 3: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Suffix-Tries

Page 4: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Definierende Eigenschaft

Page 5: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Suffix-Bäume (aka Suffixbäume)

Page 6: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Suffixbaum für den String 11010$

Page 7: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Definitionen

Page 8: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Notation

Page 9: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Definierende Eigenschaft

Page 10: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Beweis

Page 11: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Konstruktion von Suffix-Bäumen

Page 12: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Naives Verfahren

Page 13: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Beweis

Page 14: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Visualisierung

Page 15: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Algorithmus von McCreightAlgorithmus

Page 16: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Zentrale Eigenschaft

Page 17: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Invarianten des Algorithmus

Page 18: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Bezeichnungen

Page 19: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Schritt 1: Einfügen des Ortes von headi+1

Page 20: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Schritt 2: Einfügen des Suffix-Zeigers für den Ort von headi+1

Page 21: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Korrektheit

Page 22: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Zu zeigen:

Page 23: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Beispiel

Page 24: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Analyse: Algorithmus von McCreight

to be continued …

Page 25: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Analyse Rescannen

Page 26: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Analyse Scannen

Page 27: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Beispiel

Page 28: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Beispiel (ctd.)

Page 29: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

PseudoCode

Page 30: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Verwendung von Suffix-Bäumen

Page 31: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Generalisierte Suffix-Bäume

Page 32: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Beispiel

Page 33: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Beobachtungen

Page 34: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Beispiel

Page 35: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Löschen von Strings

Page 36: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Erkenntnisse

Page 37: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Korrektheit

Page 38: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Invarianz

Page 39: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Pseudo-Code

Page 40: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Pseudo-Code

Page 41: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Suffix-Arrays

Page 42: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Eigenschaft

Page 43: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Beispiel

Page 44: Algorithm Engineering „Suffix-Bäume und Suffix-Arrays“ Stefan Edelkamp

Engineering