Shift-And und Karp-Rabin

Slides:



Advertisements
Ähnliche Präsentationen
Fast Fourier Transformation
Advertisements

Informatik II: Algorithmen und Datenstrukturen SS 2013
Motivation Bisher: Codes mit möglichst kurzer Codelänge.
Definition [1]: Sei S eine endliche Menge und sei p eine Abbildung von S in die positiven reellen Zahlen Für einen Teilmenge ES von S sei p definiert.
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Eine dynamische Menge, die diese Operationen unterstützt,
Algebraische Zahlen: Exaktes Rechnen mit Wurzeln
Schnelle Matrizenoperationen von Christian Büttner
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Das LCA – Problem in Suffixbäumen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
Suche in Texten (Stringsuche )
Verifizieren versus Berechnen
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Bestimmung des Next-Arrays im KMP-Algorithmus
Kapitel 5 Stetigkeit.
Kapitel 1 Das Schubfachprinzip
Kapitel 6 Differenzierbarkeit. Kapitel 6: Differenzierbarkeit © Beutelspacher Juni 2005 Seite 2 Inhalt 6.1 Die Definition 6.2 Die Eigenschaften 6.3 Extremwerte.
Kapitel 2 Die rationalen und die irrationalen Zahlen.
V. Algebra und Geometrie
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Algorithmische Geometrie
Christian Schindelhauer
Christian Schindelhauer
AC Analyse.
AC Analyse. 2Ausgewählte Themen des analogen Schaltungsentwurfs Sprungantwort.
Wir suchen ‘ mit m = m    ‘ c  ‘ mod 26
(Ron Rivest, Adi Shamit, Leonard Adleman , 1977)
Hauptseminar Automaten und Formale Sprachen
Exact String Matching II1 Exact String Matching: A Deeper Look at Classical Methods Erweiterte Anwendungen zu Boyer-Moore und Knuth-Morris-Pratt Hauptseminar.
Folie 1 § 29 Determinanten: Eigenschaften und Berechnung (29.1) Definition: Eine Determinantenfunktion auf K nxn ist eine Abbildung (im Falle char(K) ungleich.
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation
Information und Kommunikation
Hartmut Klauck Universität Frankfurt WS 06/
Folie 1 Kapitel IV. Matrizen Inhalt: Matrizen als eigenständige mathematische Objekte Zusammenhang zwischen Matrizen und linearen Abbildungen Produkt von.
Polynome und schnelle Fourier-Transformation
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
ENDLICHE KÖRPER RSA – VERFAHREN.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Christian Schindelhauer Wintersemester 2006/07 2. Vorlesung
 Präsentation transkript:

Shift-And und Karp-Rabin Seminar „Fortgeschrittene algorithmische Bioinformatik“ SS 2005 Wadim Bayerbach Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Einführung Gegenstand: Exaktes Stringmatching Welche Algorithmen kennen wir bereits? Z-Box-Algorithmus Boyer-Moore-Algorithmus Knuth-Morris-Prath-Algorithmus 1 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Einführung Gegenstand: Exaktes Stringmatching Welche Algorithmen kennen wir bereits? Z-Box-Algorithmus Boyer-Moore-Algorithmus Knuth-Morris-Prath-Algorithmus Warum noch ein Algorithmus?.. alle bisherigen Algorithmen sind vergleichs-basiert (comparison-based) es gibt aber noch Verfahren, die auf Bit-Operationen basieren 1 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Unser Fahrplan 1. Karp-Rabin-fingerprint-Methode Grundbegriffe: H(P), H(Tr ) Fingerprints von P und T: Hp(P), Hp(Tr), die Wahl von p als Primzahl Hauptsatz von Karp-Rabin randomisierter fingerprint-Algorithmus Erweiterungen 2. Shift-And-Algorithmus Grundbegriffe: Matrix M, Bit-Shift-Vektor, Vektor U(x) Laufzeitanalyse und Platzverbrauch agrep: Erweiterung auf nicht-exaktes Stringmatching 2 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Konventionen Zunächst einige Konventionen: P – Pattern der Länge n T – Template der Länge m 3 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Karp-Rabin-fingerprint-Methode von R.Karp und M.Rabin 1987 publiziert ursprünglicher Name: Randomisierte Fingerprint-Methode lineare Laufzeit, kaum Fehler keine Fehler, überlineare Laufzeit Sichtweise als arithmetisches Problem 4 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Karp-Rabin-fingerprint-Methode von R.Karp und M.Rabin 1987 publiziert ursprünglicher Name: Randomisierte Fingerprint-Methode lineare Laufzeit, kaum Fehler keine Fehler, überlineare Laufzeit Sichtweise als arithmetisches Problem O.B.d.A: 4 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Arithmetik ersetzt Vergleich Definition 1: Für einen Text-String T bezeichnen wir mit einen Substring von T der Länge n, welcher an Position r in T anfängt. Falls n aus dem Kontext bekannt, so schreibe 5 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Arithmetik ersetzt Vergleich Definition 1: Für einen Text-String T bezeichnen wir mit einen Substring von T der Länge n, welcher an Position r in T anfängt. Falls n aus dem Kontext bekannt, so schreibe Beispiel: 123456789012 T = 011010111100 = 0111 5 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Arithmetik ersetzt Vergleich Definition 2: Für ein binäres Pattern sei , wobei P(i) Zeichen in P an der Stelle i ist. Analog 6 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Arithmetik ersetzt Vergleich Definition 2: Für ein binäres Pattern sei , wobei P(i) Zeichen in P an der Stelle i ist. Analog Beispiel: P = 10011 n = 5, T = 10010111010010, n = 4, r = 5 6 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Wann tritt P in T auf ? Satz 1: Ein Pattern P tritt in einem Template T an der Position r genau dann auf, wenn . Beweisidee: jede Integer-Zahl kann eindeutig als eine Summe von positiven Zweierpotenzen geschrieben werden 7 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Wann tritt P in T auf ? Satz 1: Ein Pattern P tritt in einem Template T an der Position r genau dann auf, wenn . Beweisidee: jede Integer-Zahl kann eindeutig als eine Summe von positiven Zweierpotenzen geschrieben werden Stringmatching als numerisches Problem: Vergleiche nicht zwei Zeichen, sondern zwei Zahlen 7 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Problem: für große n ist die Berechnung nicht effizient. 8 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Problem Problem: für große n ist die Berechnung nicht effizient. für müssen wir Integers bis bewältigen können Kann man aus berechnen?... 8 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Fingerprints von P und T Lösung: benutze Modulo-Werte (mod p) dadurch kleine Anzahl von Bits für Darstellung es treten Fehler auf 9 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Fingerprints von P und T Lösung: benutze Modulo-Werte (mod p) dadurch kleine Anzahl von Bits für Darstellung es treten Fehler auf Definition 3: Für eine positive ganze Zahl p sei . D.h. der Rest von der Division von durch p. Analog: . Die Zahlen und nennen wir fingerprints von P und T. 9 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Fingerprints von P und T Als Resultat: Zahlen zwischen 0 und p-1. Aber: Um zu berechnen brauchen wir wieder ! wir sind beim Anfangsproblem wir brauchen eine neue Herangehensweise !.. 10 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Horner’s Schema Ausflug in die Mathematik: Sei p(x) ein Polynom des n-ten Grades: durch sukzessive Ausklammerung erreiche folgende Form: 11 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Fingerprints von P und T Lemma 1: dabei übersteigt keine Zahl während der Berechnung den Wert 2p 12 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Fingerprints von P und T Lemma 1: dabei übersteigt keine Zahl während der Berechnung den Wert 2p Beispiel: P=100110 und p = 7, so ist H(P)=38, 12 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Fingerprints von P und T Wir stellen fest: Anzahl von Multiplikationen und Additionen linear Zwischenergebnisse sind klein 13 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Fingerprints von P und T Wir stellen fest: Anzahl von Multiplikationen und Additionen linear Zwischenergebnisse sind klein Unser jetziges Ziel: für r >1 aus mit konstanter Operationenanzahl Wir haben: 13 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Fingerprints von P und T Beispiel: Sei n=5 und r =7 12345678901234567890 T=10110110010101100111 T6= 11001 _ 2*T6= 110010 25*T(6) 100000 = 010010 + T(11) 0 = 010010 entspricht 18 Folglich: 14 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Fingerprints von P und T Außerdem: Fazit: jeder Wert von kann für r >1 in konstanter Zeit berechnet werden. 15 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Wir wissen: P tritt in T (an r) auf Umkehrung gilt nicht ! Wahl von p als Primzahl Wir wissen: P tritt in T (an r) auf Umkehrung gilt nicht ! 16 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Wahl von p als Primzahl Wir wissen: P tritt in T (an r) auf Umkehrung gilt nicht ! Definition 4: Gilt , aber P tritt in T an r nicht auf, so sagen wir es gibt einen falschen Match an Position r. Wunsch: p möglichst klein, aber Wahrscheinlichkeit eines falschen Matches gering Lösung: p – Primzahl 16 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Wahl von p als Primzahl Definiton 5: Für eine positive Zahl u bezeichnen wir mit die Anzahl aller Primzahlen, welche kleiner oder gleich als u sind. 17 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Wahl von p als Primzahl Definiton 5: Für eine positive Zahl u bezeichnen wir mit die Anzahl aller Primzahlen, welche kleiner oder gleich als u sind. Satz 2 (ohne Beweis): Es gilt: Lemma 2: Wenn ist, so ist der Produkt aller Primzahlen, die kleiner oder gleich als u sind, größer als 2u. 17 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Wahl von p als Primzahl Definiton 5: Für eine positive Zahl u bezeichnen wir mit die Anzahl aller Primzahlen, welche kleiner oder gleich als u sind. Satz 2 (ohne Beweis): Es gilt: Lemma 2: Wenn ist, so ist der Produkt aller Primzahlen, die kleiner oder gleich als u sind, größer als 2u. Beispiel: u=29 Primzahlen: 2, 5, 7, 11, 13, 17, 19, 23, 29 deren Produkt: 2,156,564,410 ; während 229 = 536,870,912 17 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Wahl von p als Primzahl Folgerung 1: Falls und x eine Zahl kleiner gleich 2u ist, so hat x weniger als verschiedene Primteiler. 18 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Hauptsatz Nun können wir den Hautzsatz von Karp-Rabin formulieren: Hauptsatz: Seien P und T zwei Strings mit . Sei I eine positive ganze Zahl. Wenn p eine zufällig gewählte Primzahl mit p < I ist, so ist die Wahrscheinlichkeit eines falschen Matches zwischen P und T kleiner gleich . Abschätzung abhängig von p unabhängig von P und T ! abhängig von Längen |P | und |T | 19 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Randomisierter fingerprint-Algorithmus 1. Wähle eine positive ganze Zahl I 2. Wähle zufällig eine Primzahl und berechne 3. in T berechne und vergleiche mit falls gleich (wahrscheinlicher) Match auf Wunsch: prüfe explizit Aber: Laufzeit O(m) ohne expliziten Check 20 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Die Wahl von I Die Wahl von I: große I besser, kleinere Fehler-Wahrscheinlichkeit aber mehr Aufwand bei Berechnung von , 21 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Die Wahl von I Die Wahl von I: große I besser, kleinere Fehler-Wahrscheinlichkeit aber mehr Aufwand bei Berechnung von , Oft nimmt man: I = nm2 Satz 3: Falls I = nm2 ist, so ist die Wahrscheinlichkeit eines falschen Matches höchstens Beispiel: Sei n = 250 und m = 4000. Wir erhalten dann: I = nm2 =4*109 < 232. Wahrscheinlichkeit eines falschen Matches höchstens 21 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Erweiterungen Nahe liegende Idee: k viel Primzahlen zu nehmen Match, falls für jedes i=1,…, k falscher Match, falls , aber für jedes i=1,…, k 22 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Erweiterungen Nahe liegende Idee: k viel Primzahlen zu nehmen Match, falls für jedes i=1,…, k falscher Match, falls , aber für jedes i=1,…, k Satz 4: Werden Primzahlen zwischen 1 und I gewählt und k fingerprints berechnet, so liegt die Wahrscheinlichkeit eines falschen Matches bei höchstens . 22 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Erweiterungen Beispiel: Sei n = 250 und m = 4000 So liegt die Wahrscheinlichkeit eines falschen Matches bei höchstens ! Laufzeit erhöht sich lediglich um einen konstanten Faktor 4 ! 23 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Fazit Karp-Rabin-fingerprint-Methode ist sehr effizient hat sehr kleine Wahrscheinlichkeit eines Fehlerauftretens, dafür Laufzeit O(m) ist exakt, dafür Laufzeit O(mn) 24 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Shift-And-Algorithmus von R.Baeza-Yates und G.Gonnet entworfen relativ einfache bit-orientierte Methode für relativ kleine Pattern sehr effizient Ursprünglicher Name: Shift-Or 25 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Shift-And-Algorithmus Definition 1: Sei M ein n x m Matrix mit Einträgen aus {0, 1}, i = 1..n, j = 1..m. Ein Eintrag M(i,j) ist 1 dann, und nur dann, wenn die ersten i Zeichen von P exakt mit i Zeichen in T matchen, welche an Position j enden. d.h. M(i,j) = 1 P[1..i] = T[j-i+1..j] 26 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Beispiel 1234 i P = dach 12345678 j T = verdacht so ist M(1,4) = M(2,5) = M(3,6) = M(4,7) = 1 alle restlichen Einträge sind 0 1 2 3 4 5 6 7 8 v e r d a c h t 1 1 2 3 4 27 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Beispiel j Interessant ist die letzte Zeile: Die Einträge M(n,j ) = 1 signalisieren das Vorkommen von P in T, welches an der Position j endet Wir brauchen also eigentlich nur die letzte Zeile der Matrix v e r d a c h t 1 i 28 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Shift-And-Algorithmus Hilfsmittel: Für jedes Zeichen unseres Alphabetes berechnen wir einen Vektor der Dimension n, welcher an allen denjenigen Stellen einen 1-Eintrag hat, an denen das Zeichen x in P vorkommt. d.h. 29 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Shift-And-Algorithmus Hilfsmittel: Für jedes Zeichen unseres Alphabetes berechnen wir einen Vektor der Dimension n, welcher an allen denjenigen Stellen einen 1-Eintrag hat, an denen das Zeichen x in P vorkommt. d.h. Beispiel: P = cgtcgtattca U(c) = 10010000010 U(t) = 00100101100 29 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Shift-And-Algorithmus Definition 2: Ein Bit-Shift(j-1)-Vektor ist ein Vektor, der aus (j-1)-ten Spalte wie folgt entsteht: Shifte die Spalte um eine Position nach unten Verwerfe den Überlauf und setze den ersten Spalteneintrag gleich 1. 30 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Shift-And-Algorithmus Definition 2: Ein Bit-Shift(j-1)-Vektor ist ein Vektor, der aus (j-1)-ten Spalte wie folgt entsteht: Shifte die Spalte um eine Position nach unten Verwerfe den Überlauf und setze den ersten Spalteneintrag gleich 1. j-1 v e r d a c h t 1 30 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

spaltenweise von links nach rechts Konstruktion der Matrix M spaltenweise von links nach rechts 31 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Konstruktion der Matrix M spaltenweise von links nach rechts Schritt 1: Fülle erste Spalte von M mit Nullen, falls Andererseits setze M(1,1)=1 31 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Konstruktion der Matrix M spaltenweise von links nach rechts Schritt 1: Fülle erste Spalte von M mit Nullen, falls Andererseits setze M(1,1)=1 Schritt 2: Für alle j > 1: M(j) = Bit-Shift(j-1) AND U(T(j)), wobei M(j) – j-te Spalte von M ist 31 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Beispiel: P = acag M(j) = Bit-Shift(j-1) AND U(T(j)) T = actacagacga Konstruktion der Matrix M (2) Beispiel: P = acag M(j) = Bit-Shift(j-1) AND U(T(j)) T = actacagacga j = 1 a c t g 1 Erster Eintrag 1, da T(1)=P(1) 32 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Beispiel: P = acag M(j) = Bit-Shift(j-1) AND U(T(j)) T = actacagacga Konstruktion der Matrix M (2) Beispiel: P = acag M(j) = Bit-Shift(j-1) AND U(T(j)) T = actacagacga j = 2, T(2) = c a c t g 1 32 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Beispiel: P = acag M(j) = Bit-Shift(j-1) AND U(T(j)) T = actacagacga Konstruktion der Matrix M (2) Beispiel: P = acag M(j) = Bit-Shift(j-1) AND U(T(j)) T = actacagacga j = 3, T(3) = t a c t g 1 32 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Beispiel: P = acag M(j) = Bit-Shift(j-1) AND U(T(j)) T = actacagacga Konstruktion der Matrix M (2) Beispiel: P = acag M(j) = Bit-Shift(j-1) AND U(T(j)) T = actacagacga j = 6, T(6) = a a c t g 1 32 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Beispiel: P = acag M(j) = Bit-Shift(j-1) AND U(T(j)) T = actacagacga Konstruktion der Matrix M (2) Beispiel: P = acag M(j) = Bit-Shift(j-1) AND U(T(j)) T = actacagacga a c t g 1 32 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Korrektheit Für alle i >1 gilt: M(i,j) = 1 gdw. 1. P[1..i-1] = T[j-i+1..j-1] und a c a g … t a c a g a … 33 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Korrektheit Für alle i >1 gilt: M(i,j) = 1 gdw. 1. P[1..i-1] = T[j-i+1..j-1] und 2. P[i] = T[j] Erste Bedingung ist wahr, falls M(i-1,j-1) = 1 a c a g … t a c a g a … 6 a c t g 1 33 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Korrektheit Für alle i >1 gilt: M(i,j) = 1 gdw. 1. P[1..i-1] = T[j-i+1..j-1] und 2. P[i] = T[j] Erste Bedingung ist wahr, falls M(i-1,j-1) = 1 Zweite Bedingung ist wahr, falls U(T(j))[i] = 1 a c a g … t a c a g a … i = 4 6 T(j) = g a c t g 1 33 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Korrektheit Für i =1: Durch Bit-Shifting erzeugte 1 ist notwendig für UND-Verknüpfung Insgesamt: Algorithmus erzeugt korrekte Matrix M. 7 T(j) = a a c t g 1 34 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Laufzeitanalyse und Platzverbrauch im „worst-case“ ist die Anzahl von Bit-Operationen sehr effizient, wenn n kleiner als die Größe des Computer-Wortes U(x) und Bit-Shift(j-1) in einem Wort kodieren Bit-Shift und VerUNDung sind einfache Wort-OP‘s 35 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Laufzeitanalyse und Platzverbrauch im „worst-case“ ist die Anzahl von Bit-Operationen sehr effizient, wenn n kleiner als die Größe des Computer-Wortes U(x) und Bit-Shift(j-1) in einem Wort kodieren Bit-Shift und VerUNDung sind einfache Wort-OP‘s Platzverbrauch: für jedes berechne U(x)  O(n) für j-te Spalte brauchen wir neben U(x) nur (j-1)-te Spalte Insgesamt: O(n) 35 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Fazit sehr gut für nicht so große Pattern z.B. Wörter der deutschen oder englischen Sprache rein theoretisch nicht linear aber ist praktisch und wird eingesetzt 36 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

von S.Wu und U.Manber entwickelt im Unix-Werkzeug agrep implementiert Erweiterung des Shift-And-Algorithmus von S.Wu und U.Manber entwickelt im Unix-Werkzeug agrep implementiert 37 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Erweiterung des Shift-And-Algorithmus von S.Wu und U.Manber entwickelt im Unix-Werkzeug agrep implementiert Shift-And-Algorithmus mit „Fehlern“ d.h. wir erlauben bestimmte (kleine) Anzahl von Mismatches, Insertions oder Deletions für eine kleine Anzahl von Fehlern und kleine Pattern ist agrep sehr effizient Wir beschränken uns auf Mismatches 37 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 agrep Definition 3: Seien Strings P und T gegeben mit |P| = n, |T| = m; sei Mk eine Matrix mit Einträgen aus {0, 1}. Wir setzen M(i, j) = 1 dann und nur dann, wenn mindestens i - k Zeichen von P[1..i] mit i Zeichen von T bis zur Position j matchen. 38 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 agrep Definition 3: Seien Strings P und T gegeben mit |P| = n, |T| = m; sei Mk eine Matrix mit Einträgen aus {0, 1}. Wir setzen M(i, j) = 1 dann und nur dann, wenn mindestens i - k Zeichen von P[1..i] mit i Zeichen von T bis zur Position j matchen. Erweiterung von M(i, j)-Definition, M0 M Mk(n, j) = 1 P tritt in Suffix von T[1..j] mit höchstens k Mismatches auf für k müssen M0, M1 ,…, Mk berechnet werden für k = 3, 4 extrem schnell 38 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Berechnung von Mk Sei k fixiert. Es müssen Ms für alle s=0,..,k berechnet werden. berechne M0 berechne Ms aus Ms-1 wie folgt: Ms(j) = Ms-1(j) OR [Bit-Shift(Ms(j-1)) AND U(T(j))] OR Ms-1(j-1) 39 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05 Berechnung von Mk Sei k fixiert. Es müssen Ms für alle s=0,..,k berechnet werden. berechne M0 berechne Ms aus Ms-1 wie folgt: Ms(j) = Ms-1(j) OR [Bit-Shift(Ms(j-1)) AND U(T(j))] OR Ms-1(j-1) Denn: P[1..i] matcht mit Suffix von T[1..j] mit höchstens s-1 Missmatches ODER P[1..i-1] matcht mit Suffix von T[1..j-1] mit höchstens s Missmatches UND es gilt P[i] = T[j] ODER P[1..i-1] matcht mit Suffix von T[1..j-1] mit höchstens s-1 Missmatches 39 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

Vielen Dank fürs Zuhören! Fragen ? 40 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05