Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
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
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.