Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Shift-And und Karp-Rabin

Ähnliche Präsentationen


Präsentation zum Thema: "Shift-And und Karp-Rabin"—  Präsentation transkript:

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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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: T = = 0111 5 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

10 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

11 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 = n = 5, T = , n = 4, r = 5 6 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

12 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

13 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

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

15 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

16 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

17 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

18 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

19 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

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

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

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

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

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

25 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

26 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

27 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

28 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

29 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

30 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= Primzahlen: 2, 5, 7, 11, 13, 17, 19, 23, 29 deren Produkt: 2,156,564,410 ; während = 536,870,912 17 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

31 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

32 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

33 Randomisierter fingerprint-Algorithmus
1. Wähle eine positive ganze Zahl I 2. Wähle zufällig eine Primzahl und berechne 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

34 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

35 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 = Wir erhalten dann: I = nm2 =4*109 < Wahrscheinlichkeit eines falschen Matches höchstens 21 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

36 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

37 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

38 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

39 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

40 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

41 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) = P[1..i] = T[j-i+1..j] 26 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

42 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05
Beispiel i P = dach 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

43 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

44 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

45 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) = U(t) = 29 Seminar „Fortgeschrittene algorithmische Bioinformatik“, SS05

46 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

47 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

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

49 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

50 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

51 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

52 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

53 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

54 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

55 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

56 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

57 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

58 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

59 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

60 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

61 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

62 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

63 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

64 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

65 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

66 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) = 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

67 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

68 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

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


Herunterladen ppt "Shift-And und Karp-Rabin"

Ähnliche Präsentationen


Google-Anzeigen