Suche in Texten: Suffix-Bäume

Ähnliche Dokumente
Algorithmentheorie. 15 Suchen in Texten (1)

Algorithmen auf Sequenzen Volltext-Indexdatenstrukturen: Suffixbäume

Suche in Texten. Naiver Algorithmus. Knuth-Morris-Pratt-Algorithmus. Karp-Rabin-Algorithmus

Warum Bäume? Teil 1: Suchen. Bäume: Begriffe und Eigenschaften (2) Bäume: Begriffe und Eigenschaften (1)

Übungen zur Vorlesung Modellierung WS 2003/2004 Blatt 11 Musterlösungen

Funktionen und Mächtigkeiten

Kürzeste Wege. möglich ist 6. Füge v zu S hinzu und setze d[v] d [v] (u,v) E. Datenstrukturen und Algorithmen 14. Elementare Graphalgorithmen

Formale Systeme, Automaten, Prozesse SS 2010 Musterlösung - Übung 2 M. Brockschmidt, F. Emmes, C. Fuhs, C. Otto, T. Ströder

Definition Suffixbaum

Graphen vielseitig verwendbar zur Repräsentation von Zusammenhängen, etwa:

Wurzelbäume. Definition 1

Datenstrukturen & Algorithmen Lösungen zu Blatt 2 FS 16

Der Begriff der Stammfunktion

Mathematik für Studierende der Biologie und des Lehramtes Chemie

Algorithmische Bioinformatik I

Hans U. Simon Bochum, den Annette Ilgen. Beispiele zur Vorlesung. Theoretische Informatik. WS 08/09

Automaten, Spiele, und Logik

ping karlsruhe Mining Software Call Graphs Frank Eichinger

Der Tigerschwanz kann als Stimmungsbarometer gesehen werden. a) Richtig b) Falsch. Tiger sind wasserscheu. a) Richtig b) Falsch

Algorithmische Bioinformatik 1

Ober- und Untersummen, Riemann Integrale

Erstellen einer DLL-Datei zur Verwendung in LabView 8.2 mittels Microsoft Visual C Express Edition

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume

Automaten und formale Sprachen Notizen zu den Folien

Hausaufgabe 2 (Induktionsbeweis):

R. Brinkmann Seite

10 1 Grundlagen der Schulgeometrie. 1.3 Das Dreieck

Bezeichnungen. Arten von String-Matching-Problemen

Die Satzgruppe des Pythagoras

29 Uneigentliche Riemann-Integrale

Automaten und formale Sprachen Notizen zu den Folien

4. Suche in Texten. Einführung

Informatik II SS Pumping Lemma für reguläre Sprachen (1/2) Pumping Lemma für reguläre Sprachen (2) Beweis

Mit Würfeln Quader bauen 14

Protokoll zur Vorlesung Theoretische Informatik I

1. Voraussetzung. 2. Erstmalig anmelden Login beantragen. Online Fahrzeug-Registrierung. Anleitung

Algorithmen und Datenstrukturen II

Uneigentliche Riemann-Integrale

Deterministische endliche Automaten

a q 0 q 1 a M q 1 q 3 q 2

gehört ebenfalls zu einem Paar. Da 5 eine Primzahl und kein anderes Quadervolumen ein Vielfaches von 5 V o

4.9.7 Konstruktion der Suffixbäume

Potenzautomat. Gegeben: A = (Z, I, d, s 0, F ) P(A) = (P(Z), I, D, {s 0 }, F P ) P(Z) = {S S Z}: Potenzmenge von Z; D : P(Z) I P(Z) mit

Algorithmen und Datenstrukturen II. Suchen in Texten. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Datenmodell = Datenobjekte + Operatoren

dem Verfahren aus dem Beweis zu Satz 2.20 erhalten wir zunächst die folgenden beiden ε-ndeas für die Sprachen {a} {b} und {ε} {a} +

Lösungshinweise/-vorschläge zum Übungsblatt 2: Software-Entwicklung 1 (WS 2015/16)

Ehrenfeucht-Fraïssé-Spiele über Spuren

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11

Symmetrien und Winkel

Frank Heitmann 2/71. 1 Betrachten wir Σ für ein Alphabet Σ, so ist Σ die Menge

Polynominterpolation (Varianten)

Mathematische Probleme, SS 2013 Montag $Id: dreieck.tex,v /04/15 09:12:15 hk Exp hk $ 1.4 Dreiecksberechnung mit Seiten und Winkeln

D-MAVT/D-MATL Analysis I HS 2016 Dr. Andreas Steiger. Lösung - Serie 9

Konstruktion mit Zirkel und Lineal

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Endliche Automaten 7. Endliche Automaten

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz

Automaten und formale Sprachen Notizen zu den Folien

a) Behauptung: Es gibt die folgenden drei stabilen Matchings:

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kurzer Einschub: das Schubfachprinzip.

Präfixcodes und der Huffman Algorithmus

Wir haben ein Koordinatensystem mit der x-achse und der y-achse. Nun wird ein Kreis gebildet mit dem Radius r=1.

Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* aller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt:

Übungsblatt 1. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

solche mit Textzeichen (z.b. A, a, B, b,!) solche mit binären Zeichen (0, 1)

a b = a b a b = 0 a b

7 Modellierung von Abläufen 7.1 Endliche Automaten

Definition 3.33 (Oberintegral und Unterintegral). Es sei f : [a,b] R eine beschränkte Funktion. Weiter sei

Automaten und formale Sprachen Notizen zu den Folien

Effiziente Algorithmen 2

Datenstrukturen & Algorithmen Lösungen zu Blatt 2 FS 12

11.1 Grundlagen - Denitionen

Grundlagen der Theoretischen Informatik

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 2

18. Algorithmus der Woche Der Euklidische Algorithmus

Algorithmische Bioinformatik 1

Strings & Pattern Matching

Seminar zum anorganisch-chemischen Praktikum I. Quantitative Analyse. Prof. Dr. M. Scheer Patrick Schwarz

Mathematik Trigonometrie Einführung

Kapitel 7. Integralrechnung für Funktionen einer Variablen

01 Proportion Verhältnis Maßstab

7.4. Teilverhältnisse

In diesem Kapitel stellen wir einige wichtige Verfahren zur näherungsweisen Berechnung bestimmter Integrale b

Lineare Gleichungssysteme mit 3 und mehr Variablen

Name... Matrikel Nr... Studiengang...

Umwandlung von endlichen Automaten in reguläre Ausdrücke

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Motivation: Petrinetze. Vorlesung Modellierung nebenläufiger Systeme Sommersemester 2011 Universität Duisburg-Essen. Motivation: Petrinetze

Berechenbarkeitstheorie 2. Vorlesung

Algorithmische Bioinformatik I

Satz 6.5 (Mittelwertsatz der Integralrechnung) Sei f : [a, b] R stetig. Dann gibt es ein ξ [a, b], so dass. b a. f dx = (b a)f(ξ) f dx (b a)m.

2 Huffman-Algorithmus 2

Muss der Umfang (u) oder der Flächeninhalt (A) berechnet werden? Kreuze an! Der Umfang (u) ist die Länge des Weges um eine Fläche herum.

kann man das Riemannsche Unter- bzw. Oberintegral auch wie folgt definieren: xk+1 x k

Erkundungen. Terme vergleichen. Rechteck Fläche als Produkt der Seitenlängen Fläche als Summe der Teilflächen A B

Technische Universität München SS 2006 Fakultät für Informatik Übungsblatt 5 Prof. Dr. A. Knoll 30. Juni 2006

Lösung 18: Reelle innere Produkte, Normen und Gram-Schmidt Orthogonalisierung

Name... Matrikel-Nr... Studiengang...

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Sprachen. Grammatiken (Einführung)

Transkript:

Suhe in Texten: Suffix-Bäume Prof. Dr. S. Alers Prof. Dr. Th. Ottmnn 1

Suhe in Texten Vershiedene Szenrios: Dynmishe Texte Texteditoren Symolmnipultoren Sttishe Texte Literturdtennken Biliothekssysteme Gen-Dtennken WWW-Verzeihnisse 2

Eigenshft von Suffix-Bäume Suhindex zu einem Text σ für Suhe nh vershiedenen Mustern α Eigenshften: 1. Teilwortsuhe in Zeit O( α ). 2. Anfrgen n σ selst, z.b.: Längstes Teilwort von σ, ds n mind. 2 Stellen uftritt. 3. Präfix-Suhe: Alle Stellen in σ mit Präfix α. 3

Eigenshft von Suffix-Bäume 4. Bereihs-Suhe: Alle Stellen in σ im Intervll [α, β] mit α lex β, z.b. rkdr, i [, ], us [, ]. 5. Linere Komplexität: Speiherpltzedrf und Konstruktionszeit O( σ ) 4

Tries Trie: Bum zur Repräsenttion von Shlüsseln. Alphet Σ, Menge S von Shlüsseln, S Σ* =ˆ Shlüssel Zeihenkette us Σ* Knte eines Tries T: Beshriftung mit einzelnen Zeihen us Σ enhrte Knten: vershiedene Zeihen 5

Tries Beispiel: 6

Tries Bltt repräsentiert Shlüssel: Entspriht Beshriftung der Knten des Weges von der Wurzel zu Bltt! Shlüssel werden niht in Knoten gespeihert! 7

Suffix-Tries Trie für lle Suffixe eines Wortes Beispiel: σ = Suffixe: = suf 1 = suf 2 = suf 3 = suf 4 = suf 5 8

Suffix-Tries Innere Knoten eines Suffix-Tries = Teilwort von σ. Jedes ehte Teilwort von σ ist ls innerer Knoten repräsentiert. Sei σ = n n : n 2 + 2n + 1 vershied. Teilwörter = innere Knoten Speiherpltzedrf O(n 2 ). 9

Suffix-Tries Ein Suffix-Trie T erfüllt ereits einige der geforderten Eigenshften: 1. Zeihenkettensuhe nh α : Folge dem Weg mit Knteneshriftung α in T in Zeit O( α ). Blätter des Teilumes Vorkommen von α 2. Längstes, doppelt uftretendes Wort: Innerer Knoten mit größter Tiefe, der mind. zwei Söhne ht. =ˆ 3. Präfix-Suhe: lle Vorkommen von Zeihenketten mit Präfix α finden sih in dem Teilum unterhl des inneren Knotens von α in T. 10

Suffix-Bäume Suffix-Bum entsteht durh Kontrktion von unären Knoten us Suffix-Trie: Suffix-Bum = kontrktierter Suffix-Trie 11

Interne Repräsenttion von Suffix-Bäumen Sohn/Bruder-Repräsenttion Teilwort: Zhlenpr (i,j) Beispiel: σ = T 12

Interne Repräsenttion von Suffix-Bäumen Beispiel σ = ( ) (1,2) (2,2) (5,$) (3,$) (5,$) (3,$) (5,$) Knoten v = (v.w, v.o, v.sn, v.r) Weitere Zeiger (Suffix-Zeiger) kommen später hinzu 13

Eigenshften von Suffix-Bäumen (S1) Kein Suffix ist Präfix eines nderen Suffixes; gilt, flls (letztes Zeihen von σ ) = $ Σ Suhe: =ˆ (T1) Knte nihtleeres Teilwort von σ. (T2) Benhrte Knten: zugeordnete Teilworte eginnen mit vershiedenen Zeihen. 14

Eigenshften von Suffix-Bäumen Größe (T3) Innerer Knoten ( Wurzel): mind. zwei Söhne. =ˆ (T4) Bltt (niht-leeres ) Suffix von σ. Sei n = σ 1 ( T 4) ( T 3) Anzhl der Anzhl der Blätter : n inneren Knoten n 1 Speiherpltz Ο( n) 15

Konstruktion von Suffix-Bäumen Definition: prtieller Weg: Weg von der Wurzel zu einem Knoten von T Weg: Ein prtieller Weg, der ei einem Bltt endet. Ort einer Zeihenkette α: Knoten m Ende des mit α eshrifteten prtiellen Weges (flls er existiert). T 16

Konstruktion von Suffix-Bäumen Erweiterung einer Zeihenkette α: Zeihenkette mit Präfix α erweiterter Ort einer Zeihenkette α: Ort der kürzesten Erweiterung von α, deren Ort definiert ist. kontrktierter Ort einer Zeihenkette α: Ort des längsten Präfixes von α, dessen Ort definiert ist. T 17

Konstruktion von Suffix-Bäumen Definitionen: suf i : n Position i eginnendes Suffix von σ, lso z.b. suf 1 = σ, suf n = $. hed i : längstes Präfix von suf i, ds uh Präfix von suf j für ein j < i ist. Beispiel: σ = α = (ht keinen Ort) suf 4 = hed 4 = 18

Konstruktion von Suffix-Bäumen σ = 19

Nive Suffix-Bum-Konstruktion Beginne mit dem leeren Bum T 0 Der Bum T i+1 entsteht us T i durh Einfügen des Suffixes suf i+1. Algorithmus Suffix-Bum Input: Eine Zeihenkette σ Output: Der Suffix-Bum T von σ 1 n := σ ; T 0 := ; 2 for i := 0 to n 1do 3 füge suf i+1 in T i ein, dies sei T i+1 ; 4 end for 20

Nive Suffix-Bum-Konstruktion In T i hen lle Suffixe suf j, j < i ereits einen Ort. hed i = längstes Präfix von suf i, dessen erweiterter Ort in T i-1 existiert. Definition: til i := suf i hed i, d.h. lso suf i = hed i til i. (S1) til i ε. 21

Nive Suffix-Bum-Konstruktion Beispiel: σ = suf 3 = hed 3 = til 3 = T 0 = T 1 = T 2 = 22

Nive Suffix-Bum-Konstruktion T i+1 knn us T i wie folgt konstruiert werden: 1. Mn estimmt den erweiterten Ort von hed i+1 in T i und teilt die letzte zu diesem Ort führende Knte in zwei neue Knten uf durh Einfügen eines neuen Knotens. 2. Mn shffe ein neues Bltt ls Ort für suf i+1 hed i+1 v x = erweiterter Ort von hed i+1 x til i+1 23

Nive Suffix-Bum-Konstruktion Beispiel: σ = T 3 T 2 hed 3 til 3 = = 24

Nive Suffix-Bum-Konstruktion Algorithmus Suffix-Einfügen Input: Der Bum T i und der Suffix suf i+1 Output: Der Bum T i+1 1 v := Wurzel von T i 2 j := i 3 repet 4 finde Sohn w von v mit σ w.u = σ j+1 5 k := w.u 1; 6 while k < w.o nd σ k+1 = σ j+1 do 7 k := k +1; j := j + 1 end while 25

Nive Suffix-Bum-Konstruktion 8 if k = w.o then v := w 9 until k <w.o or w = nil 10 /* v ist konktrktierter Ort von hed i+1 */ 11 füge den Ort von hed i+1 und til i+1 in T i unter v ein Lufzeit für Suffix-Einfügen: O( ) Gesmtlufzeit für nive Suffix-Bum-Konstruktion: O( ) 26

Der Algorithmus M (M Creight, 1976) Flls erweiterter Ort von hed i+1 in T i gefunden: Erzeugen eines neuen Knotens und Aufsplten einer Knte O(1) Zeit.+ Idee: Erweiterter Ort von hed i+1 wird in konstnter mortisierter Zeit in T i estimmt. (Zustzinformtion erforderlih!) 27

Anlyse des Algorithmus M Theorem 1 Algorithmus M liefert in Zeit O( σ ) einen Suffix-Bum für σ mit σ Blättern und höhstens σ - 1 inneren Knoten. 28

Suffix-Bum Anwendung Verwendung von Suffix-Bum T: 1 Suhe nh Zeihenkette α: Folge dem Weg mit Knteneshriftung α in T in Zeit O( α ). Blätter des Teilumes =ˆ Vorkommen von α 2 Suhe längstes, doppelt uftretendes Wort: Finde Ort eines Wortes mit größter gewihteter Tiefe, der innerer Knoten ist. 3 Suhe nh Präfix: Alle Vorkommen von Zeihenketten mit Präfix α finden sih in dem Teilum unterhl des Ortes von α in T. 29

Suffix-Bum Anwendung 4 Bereihssuhe nh [α, β] : Bereihsgrenzen 30

Suffix-Bum Beispiel T 0 = T 1 = suf 1 = suf 2 = hed 2 = 31

Suffix-Bum Beispiel T 2 = T 3 = suf 3 = hed 3 = ε suf 4 = hed 4 = 32

Suffix-Bum Beispiel T 4 = Ort von hed 4 suf 5 = hed 5 = 33

Suffix-Bum Beispiel T 5 = Ort von hed 5 suf 6 = hed 6 = 34

Suffix-Bum Beispiel T 6 = Ort von hed 6 suf 7 = hed 7 = 35

Suffix-Bum Beispiel T 7 = suf 8 = 36

Suffix-Bum Beispiel T 8 = 37