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

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

Upload: mina

Post on 24-Feb-2016

97 views

Category:

Documents


0 download

DESCRIPTION

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. Suffix- Tries. Definierende Eigenschaft. - PowerPoint PPT Presentation

TRANSCRIPT

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

Algorithm Engineering

„Suffix-Bäume und Suffix-Arrays“

Stefan Edelkamp

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

Ü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“

Suffix-Tries

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

Definierende Eigenschaft

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

Suffix-Bäume (aka Suffixbäume)

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

Suffixbaum für den String 11010$

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

Definitionen

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

Notation

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

Definierende Eigenschaft

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

Beweis

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

Konstruktion von Suffix-Bäumen

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

Naives Verfahren

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

Beweis

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

Visualisierung

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

Algorithmus von McCreightAlgorithmus

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

Zentrale Eigenschaft

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

Invarianten des Algorithmus

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

Bezeichnungen

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

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

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

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

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

Korrektheit

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

Zu zeigen:

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

Beispiel

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

Analyse: Algorithmus von McCreight

to be continued …

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

Analyse Rescannen

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

Analyse Scannen

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

Beispiel

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

Beispiel (ctd.)

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

PseudoCode

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

Verwendung von Suffix-Bäumen

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

Generalisierte Suffix-Bäume

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

Beispiel

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

Beobachtungen

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

Beispiel

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

Löschen von Strings

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

Erkenntnisse

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

Korrektheit

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

Invarianz

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

Pseudo-Code

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

Pseudo-Code

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

Suffix-Arrays

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

Eigenschaft

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

Beispiel

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

Engineering