Definition Suffixbaum

Ähnliche Dokumente
Vorlesung. Einführung in die mathematische Sprache und naive Mengenlehre

Hausaufgabe 2 (Induktionsbeweis):

Mathematik schriftlich

Präfixcodes und der Huffman Algorithmus

Algorithmen und Datenstrukturen (Th. Ottmann und P. Widmayer) Folien: Editierdistanz Autor: Sven Schuierer

Musterlösungen (ohne Gewähr) Aufgabe 1 ( 7 Punkte) Geben Sie die Koordinaten des Flächenschwerpunktes des dargestellten Querschnitts an!

Großübung zu Kräften, Momenten, Äquivalenz und Gleichgewicht

Mathe Warm-Up, Teil 1 1 2

Die Regelungen zu den Einsendeaufgaben (Einsendeschluss, Klausurzulassung) finden Sie in den Studien- und Prüfungsinformationen Heft Nr. 1.

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

Mathematik. Name, Vorname:

Endliche Automaten. S. Kuske: Endliche Automaten; 6.Novenber 2006

LUDWIG-MAXIMILIANS-UNIVERSITÄT MÜNCHEN. 7. Übung/Lösung Mathematik für Studierende der Biologie

3 Wiederholung des Bruchrechnens

Thema 13 Integrale, die von einem Parameter abhängen, Integrale von Funktionen auf Teilmengen von R n

Einführung in Mathcad H.

onlinecomponents.com

Teilfachprüfung Mathematik Studiengang: Wirtschaft Neue Diplomprüfungsordnung (NPO)

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

A1 Web Presence Service

Rahmen und Bogen

Leitfaden für die Berechnung des Netzentgeltes bei der Rhein-Ruhr Verteilnetz GmbH

Aufgaben zur Vorlesung Analysis II Prof. Dr. Holger Dette SS 2012 Lösungen zu Blatt 6

1. Voraussetzung. 2. Web-Account anlegen. 3. Einloggen. 4. Kunden-Portal verwenden 5. Sub-Accounts 5.1Sub-Account anlegen. 5.2 Sub-Account bearbeiten

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Abitur - Leistungskurs Mathematik. Sachsen-Anhalt 1999

Grundwissen am Ende der Jahrgangsstufe 9. Wahlpflichtfächergruppe II / III

Schriftliche Prüfungsarbeit zum mittleren Schulabschluss 2007 im Fach Mathematik

Algorithmen II Vorlesung am

Unterrichts- und Prüfungsplanung M306 Modulverantwortlicher: Beat Kündig Modulpartner: R. Rubin

1KOhm + - y = x LED leuchtet wenn Schalter x gedrückt ist

SPSS Clementine. Auswertung von offenen Fragen mit TextMining für Clementine. Beispiel: Haustiere

Multiplikative Inverse

BÜrO HYPER aufgebautes BÜrOsYsteM

Dehnungsmessstreifen E3d

Algorithmentheorie Maximale Flüsse

Wirtschaftsmathematik für International Management (BA) und Betriebswirtschaft (BA)

Gussnummern-Lesesystem

SV-Meldungen: Sondermeldung 54 und 91 bei Einmalzahlungen

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

N-Depotdüngungsversuche in Saatmais

1 Kurvendiskussion /40

Domäne und Bereich. Relationen zwischen Mengen/auf einer Menge. Anmerkungen zur Terminologie. r Relationen auf/in einer Menge.

Nerreter, Grundlagen der Elektrotechnik Carl Hanser Verlag München. 8 Schaltvorgänge

Funktionen und Mächtigkeiten

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Pause im Alltag - Babysitterbörse der Caritas macht-s möglich

Definition und Begriffe

1 Mathematische Grundlagen

1 topologisches Sortieren

Übungsblatt Gleichungssysteme Klasse 8

Übung Theoretische Grundlagen

UNIVERSITÄT KARLSRUHE Institut für Analysis HDoz. Dr. P. C. Kunstmann Dipl.-Math. M. Uhl. Sommersemester 2009

Sport Club (SC) Swiss Re München e.v.

4.2 Balkensysteme. Aufgaben

PKV- Projektanlage Assistent

16.3 Unterrichtsmaterialien

ITF Funktionsbeschreibung

Freischaltung eines neuen VR-NetKeys mit SecureGo

BMS Aufnahmeprüfung Jahr 2014 Basierend auf Lehrmittel: Mathematik (Schelldorfer)

Quadratische Gleichungen

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Dein Trainingsplan. sportmannschaft. ... und was sonst noch wichtig ist. Deine Zähne sind wie deine. und du bist der Trainer!

Sobotta Atlas der Anatomie des Menschen

Die Komplexitätsklassen P und NP

Achtung! In Abhängigkeit Ihrer Lohnlizenz können einzelne Felder evtl. nicht angezeigt werden (z.b. Pfänd.summe, PV-frei, UV-frei).

Vereinsverwaltung DFBnet Verein. Anleitung Familienbeiträge und Gemeinschaften

Das Stationsportal der DB Station&Service AG - Das Rollenkonzept. DB Station&Service AG Vertrieb Stationsportal Berlin, Juli 2015

3D-Konstruktion Brückenpfeiler für WinTrack (H0)

B 2. " Zeigen Sie, dass die Wahrscheinlichkeit, dass eine Leiterplatte akzeptiert wird, 0,93 beträgt. (genauerer Wert: 0,933).!:!!

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Reinigung 146. Reinigen des Hindernissensors. Reinigung der Projektoroberfläche. Reinigen des Projektionsfensters. Warnung. Warnung.

Suche in Texten: Suffix-Bäume

Modellbildungssysteme: Pädagogische und didaktische Ziele

2m Band der Freiwilligen. Feuerwehren im. Lkr. Rottal-Inn

Muster mit Beispielen

7.3 Einrichtung 13. Monatslohn. Auszahlung Ende Jahr / Ende der Beschäftigung

ZAHLUNGSAVIS. Im Zahlungsprogrammteil automatisch erstellen

KOSTENTRÄGER VERWALTUNG / ZUWEISUNG

Installationsanleitung FRITZ!BOX Fon 7270

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Plotten von Linien ( nach Jack Bresenham, 1962 )

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Lorenz & Partners Legal, Tax and Business Consultants

Streuungsmaße. Grundbegriffe

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

1 Räumliche Darstellung in Adobe Illustrator

8 Diskrete Optimierung

Mathematischer Vorbereitungskurs für Ökonomen

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Abiturprüfung Mathematik 2008 (Baden-Württemberg) Berufliche Gymnasien ohne TG Analysis, Aufgabe 1

Kompetitive Analysen von Online-Algorithmen

Transkript:

Suffix-Bäume Definition Suche nch einer Menge von Mustern Längste gemeinsme Zeichenkette Pltzreduktion Suffixbäume für Muster Alle Pre Suffix-Präfix Übereinstimmung Sich wiederholende Strukturen

Definition Suffixbum Suchindex für einen Text T für die Suche nch verschiedenen Mustern P. T = m P = n Suffixbum Gerichteter Bum mit genu m Blättern mit Nummern 1 bis m. Innere Knoten hben mind. 2 Söhne Knten sind mit Teilzeichenketten us T beschriftet Die Beschriftungen der usgehenden Knten eines Knotens beginnen mit unterschiedlichen Buchstben. Die Beschriftungen entlng des Pfdes von der Wurzel zu Bltt i ergeben T[i..m].

Beispiel T = xbx (letztes Zeichen von T = Endmrkierung) 3 6 5 x b u x b x w 4 b x 1 Suche nch bxb Pltzbedrf: O(m) 2 Vorverrbeitung: O(m) Suche nch P: O(n)

Definition Sei v Knoten eines Suffix-Bumes. Dnn ist die Pfd-Beschriftung von v die Konktention der Beschriftungen der Knten uf dem Weg von der Wurzel nch v. Beispiel x 3 6 5 b u x b x w 4 b x 1 2 Pfd-Beschriftung von u: 2: bx

Generlisierte Suffixbäume Gegeben: Menge S 1,...,S k von Zeichenketten S i = m i Gesucht: Repräsenttion der Suffixe von S 1,...,S k Vefhren: Erstelle Suffixbum für S 1 1 S k k ( i j, i j) Jedes Bltt entspricht einem Suffix von einem String S i Bltt j String i mit S 1 1 S i-1 i-1 < j S 1 1 S i i Suffix j - S 1 1 S i-1 i-1 Beschrifte Blätter mit (String, Suffix)

Beispiel S 1 = xbx S 2 = bbxb S 1 1 S 2 2 = xbx 1 bbxb 2 x b x & 1 1,3 b b 1 2 b & 2 2 b 2 b 1 x & x 2 & 1 1 2,3 2,5 x 2,6 1,5 2,4 1,4 1,1 b b & 1 2 2 & 1 = 1 S 2 2,2 1,2 2 2,1 Keine zwei Suffixe von S 1 1 S 2 2 beginnen mit S 1 Suffixbum von Suffixbum von S ~ 1 1 S 2 2 S 1 & 1 und S 2 2

Längste gemeinsme Zeichenkette Zeichenketten S 1 und Frge: Welches ist die längste Zeichenkette, die sowohl in ls uch in vorkommt? S 1 Beispiel S 1 = Bioinformtik Verfhren generlisierter Suffixbum für S 2 S 2 S 2 = Anforderung {S 1,S 2 } Mrkiere innere Knoten mit 1 (2), flls der Teilbum einen Suffix von S 1 (S 2 ) enthält. Derjenige mit 1 und 2 mrkierte Knoten mit größter Zeichentiefe entspricht der längsten gemeinsmen Zeichenkette Zeit: liner

Beispiel S 1 = xbx S 2 = bbxb 1,3 2 2,3 b x b 1 2 2 2 b b & 1 x 2,5 x 2,6 1,5 b b & 1 2 2,1 2 2,2 1,2 & 1 x b b x & 1 2 & 1 2,4 1,4 1,1

Beispiel S 1 = xbx S 2 = bbxb 1,3 2 2,3 x b 1,2 1,2 b 1,2 1 2 2 2 b b 2 & 1 x 2,5 x 2,6 1,5 1,2 b b & 1 2 2,1 2 1,2 2,2 1,2 & 1 x 1,2 1 b b x & 1 2 & 1 2,4 1,4 1,1 bx

DNS Kontmintion Gegeben Zeichenkette S 1 beknnte Zeichenkette Kontmintion) (neu sequenzierte DNS) S 2 (Quellen möglicher Gesucht Alle Teilstrings von S 2, die in S 1 vorkommen und die länger ls eine vorgegebene Länge l sind. Verfhren generlisierter Suffixbum für {S 1,S 2 } mrkiere innere Knoten, deren Teilbum sowohl einen Suffix für S 1 ls uch für S 2 enthält. Gebe Zeichenfolgen für lle mrkierten Knoten mit Zeichentiefe l us.

Längste gemeinsme Zeichenkette Gegeben: K Menge S 1,...,S K von Zeichenketten mit Σ Sk = n k=1 Definition l(k) = Länge der längsten Zeichenkette, die in k der Zeichenketten S 1,...,S K enthlten ist. Gesucht: Beispiel l(k), k = 2,...,K {Anforderung, Bioinformtik, Formldehyd, Norm, Sorge} k l(k) Zeichenkette 2 5 form 3 3 for, orm 4 2 or 5 2 or

O(Kn) Verfhren generlisierter Suffixbum für {S 1,...,S K } Definition v innerer Knoten, C(v) Anzhl von Zeichenketten mit mind. einem Suffix in dem Teilbum von v C(v) + Zeichentiefe von v, für lle inneren Knoten des Suffixbumes l(k), k = 2,...,K v Berechnung von l(k) us C(v) L[k] = Länge der längsten Zeichenkette, die genu k-ml vorkommt.

Beispiel {Anforderung, Bioinformtik, Formldehyd, Norm, Sorge} k L[k] Zeichenkette 2 3 4 5 5 3 0 2 l(k) = mx {L[k],...,L[K]} Berechnung von L[k] form for, orm or Durchlufe Suffixbum mit Vektor L innerer Knoten v: if Zeichentiefe von v > L[C(v)] then L[C(v)] Zeichentiefe von v

Berechnung der C(v) innerer Knoten v: Bitvektor b[1,...,k] b[k] = 1 Teilbum mit Wurzel v enthält einen Suffix von S k mit Bitvek- Berechnung innerer Knoten v mit Söhnen v 1,...,v l toren b 1,...,b l Bitvektor b von v: k = 1,...,K b[k] = b 1 [k] or b 2 [k] or or b l [k] C[v] = b[1] + b[2] + + b[k] Zeit: K Bitopertionen pro Knoten O(Kn)

Suffixbäume für Muster Vorverrbeitung des Musters (der Muster) KMP, Boyer-Moore Mtching Sttistiken Definition ms(i) = Länge des längsten Teilstrings von T, der n Position i beginnt und irgendwo in P vorkommt. Beispiel T = bcxbcdex P = wbcybcdz ms(1) = 3 ms(5) = 4

Mtching Sttistiken Vorkommen von P in T n Stelle i: ms(i) = P Anwendungen von Mtching Sttistiken Exkte Zeichenkettensuche Speicherpltzreduktion Approximtive Zeichenkettensuche

Berechnung von Mtching Sttistiken 1. Schritt Suffixbum T für P Behlte Suffix-Zeiger Definition Sei v ein innerer Knoten mit Kntenbeschriftungen S von der Wurzel bis v. (S knn uch ds leere Wort sein.)

Berechnung von Mtching Sttistiken 1. Schritt Suffixbum T für P Behlte Suffix-Zeiger 2. Schritt ms(1): Überprüfe Zeichen von T[1..m] einzelnin T 3. Schritt ms(i) ms(i+1) : Stelle s in T v ist letzter innerer Knoten T[i..j] uf dem Weg mit Kntenschriftung T[i..ms(i)] v T[j..i+ms(i)]α (j = ms(i) möglich) s ( α = uch möglich w ist w ein Bltt)

() Folge Suffix-Zeiger s(v) T[i+1..j] T[i..j] w v s(v) T[i..i+ms(i)] = P[l..l+ms(i)] T[i+1..i+ms(i)] = P[l+1..l+ms(i)]

(b) Überspringe/Zähle-Trick v T[i..j] s(v) T[i+1..j] w α 1 α k

(b) Überspringe/Zähle-Trick v T[i..j] s(v) T[i+1..j] w α 1 T[j+1..i+ms(i)] erster Buchstbe von α 1 gleich T[j+1] α k

(c) Zeichenweiser Vergleich T[i..j] v s(v) T[i+1..j] α 1 w T[j+1..i+ms(i)] α k T[i+ms(i)+1.. i+1+ms(i+1)] zeichenweiser Vergleich α k+1

Anlyse Stz Mit Hilfe eines Suffix-Bumes für P können lle m Mtching Sttistiken von T in Zeit O(m) berechnet werden. Beweis Berechnung von ms(i+1): (mximl) einem Vterzeiger zu v folgen Suffix-zeiger von v folgen Überspringe/Zähle-Opertionen Zeichenvergleichsopertionen

Zeichenvergleichsopertionen T[i+ms(i)+1..i+1+ms(i+1)] und T[i+ms(i)+1] Übereinstimmung Mismtch Pro Schritt i höchstens ein Vergleich, um einen Mismtch festzustellen. m Vergleiche Jedes Zeichen T[j] wird genu einml bei Übereinstimmung verglichen m Vergleiche 2m Vergleiche

Überspringe/Zähle-Opertionen Definition Die Knotentiefe eines Knotens v ist die Anzhl der Knoten uf dem Weg von der Wurzel zu v (ohne v). 0 1 2 Lemm Ist v ein innerer Knoten von T und w der Knoten, uf den s(v) zeigt, dnn gilt: 3 Knotentiefe von w Knotentiefe von v - 1

Beweis Sei u ein Knoten uf dem Weg von der Wurzel zu v P[i..i+k-1]= P[j..j+k-1] u P[i+k] P[j+k] v P[i+1..i+k-1]= P[j+1..j+k-1] u P[i+k] P[j+k] w Außer P[i..i+k-1] ist ein Buchstbe P[i+1..i+k-1] ist leer und u gleich der Wurzel

Überspringe/Zähle-Opertionen Knotentiefe von w Knotentiefe von v - 1 Knotentiefe des Endes von T[i..ms(i)] - 2 über lle Opertionen wird die Knotentiefe um höchstens 2m insgesmt erniedrigt Nun gilt: Knotentiefe eines Knotens n über lle Opertionen wird die Knotentiefe um höchstens 2m+n insgesmt erhöht Überspringe/Zähle-Opertion erhöht Knotentiefe um eins Behuptung

Eine Erweiterung Definition Für jede Position i von T bezeichne p(i) eine Position in P mit T[i..i+ms(i)] = P[p(i)..p(i)+ms(i)] Berechnung der p(i) s Tiefensuche in dem Suffix-Bum T innerer Knoten v wird mit der Nummer eines der Blätter seines Teilbums beschriftet. T[i..ms(i)] endet bei einem Knoten u: p(i) = Beschriftung von u T[i..ms(i)] endet in einer Knte (u,v): p(i) = Beschriftung von v

Beispiel P = xbx x 3 6 5 b u x b x w 4 b x 1 T = xxxbxbx 2 ms(5) = p(5) = ms(2) = p(2) =