• Keine Ergebnisse gefunden

Algorithmen auf Sequenzen Exakte Mustersuche

N/A
N/A
Protected

Academic year: 2022

Aktie "Algorithmen auf Sequenzen Exakte Mustersuche"

Copied!
19
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Algorithmen auf Sequenzen

Exakte Mustersuche

Sven Rahmann

Genominformatik Universit¨atsklinikum Essen Universit¨at Duisburg-Essen Universit¨atsallianz Ruhr

(2)

Das Pattern Matching Problem (Exakte Mustersuche)

Gegeben sei ein endliches Alphabet Σ, ein TextT ∈Σn und ein Muster (Pattern)P ∈Σm i.d.R.mn.

Gesucht sind alle Positioneni, f¨ur die gilt:T[i :i+m] =P.

Varianten:

Kommt P in T vor?

Wie oft kommt P in T vor?

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 2

(3)

Das Pattern Matching Problem (Exakte Mustersuche)

Gegeben sei ein endliches Alphabet Σ, ein TextT ∈Σn und ein Muster (Pattern)P ∈Σm i.d.R.mn.

Gesucht sind alle Positioneni, f¨ur die gilt:T[i :i+m] =P. Varianten:

Kommt P in T vor?

Wie oft kommt P in T vor?

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 2

(4)

Naiver Algorithmus

T

0 1 2 . . . n1

P

Insgesamtn−m+ 1 Verschiebungen. Pro Verschiebung bis zum Vergleiche. Gesamte Laufzeit:O(mn).

1 def naive(P, T):

2 m, n = len(P), len(T)

3 for i in range(n - m + 1):

4 if T[i:i+m] == P:

5 yield (i, i+m)

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 3

(5)

Naiver Algorithmus

T

0 1 2 . . . n1

P

Insgesamtn−m+ 1 Verschiebungen. Pro Verschiebung bis zum Vergleiche. Gesamte Laufzeit:O(mn).

1 def naive(P, T):

2 m, n = len(P), len(T)

3 for i in range(n - m + 1):

4 if T[i:i+m] == P:

5 yield (i, i+m)

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 3

(6)

Naiver Algorithmus

T

0 1 2 . . . n1

P

Insgesamtn−m+ 1 Verschiebungen. Pro Verschiebung bis zum Vergleiche. Gesamte Laufzeit:O(mn).

1 def naive(P, T):

2 m, n = len(P), len(T)

3 for i in range(n - m + 1):

4 if T[i:i+m] == P:

5 yield (i, i+m)

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 3

(7)

Naiver Algorithmus

T

0 1 2 . . . n1

P

Insgesamtn−m+ 1 Verschiebungen. Pro Verschiebung bis zum Vergleiche. Gesamte Laufzeit:O(mn).

1 def naive(P, T):

2 m, n = len(P), len(T)

3 for i in range(n - m + 1):

4 if T[i:i+m] == P:

5 yield (i, i+m)

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 3

(8)

Naiver Algorithmus

T

0 1 2 . . . n1

P

Insgesamtn−m+ 1 Verschiebungen. Pro Verschiebung bis zum Vergleiche. Gesamte Laufzeit:O(mn).

1 def naive(P, T):

2 m, n = len(P), len(T)

3 for i in range(n - m + 1):

4 if T[i:i+m] == P:

5 yield (i, i+m)

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 3

(9)

Naiver Algorithmus

T

0 1 2 . . . n1

P

Insgesamtn−m+ 1 Verschiebungen. Pro Verschiebung bis zum Vergleiche. Gesamte Laufzeit:O(mn).

1 def naive(P, T):

2 m, n = len(P), len(T)

3 for i in range(n - m + 1):

4 if T[i:i+m] == P:

5 yield (i, i+m)

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 3

(10)

Naiver Algorithmus

T

0 1 2 . . . n1

P

Insgesamtn−m+ 1 Verschiebungen.

Pro Verschiebung bis zum Vergleiche.

Gesamte Laufzeit:O(mn).

1 def naive(P, T):

2 m, n = len(P), len(T)

3 for i in range(n - m + 1):

4 if T[i:i+m] == P:

5 yield (i, i+m)

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 3

(11)

Naiver Algorithmus

T

0 1 2 . . . n1

P

Insgesamtn−m+ 1 Verschiebungen.

Pro Verschiebung bis zum Vergleiche.

Gesamte Laufzeit:O(mn).

1 def naive(P, T):

2 m, n = len(P), len(T)

3 for i in range(n - m + 1):

4 if T[i:i+m] == P:

5 yield (i, i+m)

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 3

(12)

Laufzeitanalyse des naiven Algorithmus

Theorem (Erwartete Laufzeit)

Sei|Σ| ≥2. Seien ein Muster der L¨ange m und ein Text der L¨ange n zuf¨allig gleichverteilt gew¨ahlt. Dann betr¨agt die Worst-case-Laufzeit des naiven AlgorithmusO(mn), aber die erwartete Laufzeit lediglichO(n).

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 4

(13)

Laufzeitanalyse des naiven Algorithmus

Die Wahrscheinlichkeitp, dass jeweils ein zuf¨allig gezogenes Zeichen ausP und T ¨ubereinstimmen, betr¨agt

p := |Σ|

|Σ|2 = 1

|Σ|.

Die W’keit, dass alle Zeichen des Musters mit dem Text

¨

ubereinstimmen, betr¨agtpm.

Die W’keit, dass das Muster erst an Stelle j mit dem Text nicht ¨ubereinstimmt, betr¨agt pj−1·(1−p).

z }| { z}|{

j

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 5

(14)

Laufzeitanalyse des naiven Algorithmus

Die Wahrscheinlichkeitp, dass jeweils ein zuf¨allig gezogenes Zeichen ausP und T ¨ubereinstimmen, betr¨agt

p := |Σ|

|Σ|2 = 1

|Σ|.

Die W’keit, dass alle Zeichen des Musters mit dem Text

¨

ubereinstimmen, betr¨agtpm.

Die W’keit, dass das Muster erst an Stelle j mit dem Text nicht ¨ubereinstimmt, betr¨agt pj−1·(1−p).

z }| { z}|{

j

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 5

(15)

Laufzeitanalyse des naiven Algorithmus

Die erwartete Anzahl an Vergleichen f¨ur ein Muster der L¨ange m betr¨agt demnach (Erfolg + Misserfolg an Stellej f¨ur alle j)

Em :=mpm+

m

X

j=1

jpj−1·(1−p)

F¨ur beliebige L¨angenm→ ∞ ist Em <E:= (1−p)

X

j=0

jpj−1.

Der TermP

j=0jpj−1 ist die Ableitung vonP

j=0pj = 1/(1−p). Somit giltP

j=0jpj−1= 1/(1−p)2, also E= 1−p

(1−p)2 = 1 1−p.

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 6

(16)

Laufzeitanalyse des naiven Algorithmus

Die erwartete Anzahl an Vergleichen f¨ur ein Muster der L¨ange m betr¨agt demnach (Erfolg + Misserfolg an Stellej f¨ur alle j)

Em :=mpm+

m

X

j=1

jpj−1·(1−p) F¨ur beliebige L¨angenm→ ∞ ist

Em <E:= (1−p)

X

j=0

jpj−1.

Der TermP

j=0jpj−1 ist die Ableitung vonP

j=0pj = 1/(1−p). Somit giltP

j=0jpj−1= 1/(1−p)2, also E= 1−p

(1−p)2 = 1 1−p.

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 6

(17)

Laufzeitanalyse des naiven Algorithmus

Die erwartete Anzahl an Vergleichen f¨ur ein Muster der L¨ange m betr¨agt demnach (Erfolg + Misserfolg an Stellej f¨ur alle j)

Em :=mpm+

m

X

j=1

jpj−1·(1−p) F¨ur beliebige L¨angenm→ ∞ ist

Em <E:= (1−p)

X

j=0

jpj−1.

Der TermP

j=0jpj−1 ist die Ableitung vonP

j=0pj = 1/(1−p).

Somit giltP

j=0jpj−1= 1/(1−p)2, also E= 1−p

(1−p)2 = 1 1−p.

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 6

(18)

Laufzeitanalyse des naiven Algorithmus

Mitp = 1/|Σ|folgt

Em <E= 1

1−p = |Σ|

|Σ| −1 f¨ur alle m≥1.

F¨ur ein 2-buchstabiges Alphabet istEm<2 f¨ur alle m. F¨ur|Σ| → ∞ sogarEm &1.

Die erwartete Laufzeit auf gleichverteilten zuf¨alligen Texten ist also O(n·Em) =O(n)

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 7

(19)

Laufzeitanalyse des naiven Algorithmus

Mitp = 1/|Σ|folgt

Em <E= 1

1−p = |Σ|

|Σ| −1 f¨ur alle m≥1. F¨ur ein 2-buchstabiges Alphabet istEm<2 f¨ur alle m.

F¨ur|Σ| → ∞ sogarEm &1.

Die erwartete Laufzeit auf gleichverteilten zuf¨alligen Texten ist also O(n·Em) =O(n)

S. Rahmann|Algorithmen auf Sequenzen|UA Ruhr|Exakte Mustersuche 7

Referenzen

ÄHNLICHE DOKUMENTE

Es gilt die folgende Tabelle, wobei im Schnittpunkt der mit X markierten Zeile und der mit Y markierten Spalte ein Z steht, falls L(Z ) = ESpl(L(X ), L(Y )) gilt. F IN REG CF CS RE F

Wir betrachten das folgende Szenario der Suche nach einem Wort P der L¨ ange m in einem Text T der L¨ ange n uber dem Alphabet Σ = ¨ {a, b}: Die Buchstaben von P und T werden zuf¨

Wenn die Wechselwirkungen zwischen den Molek¨ ulen der fl¨ uchtigeren Komponente und denen des Gemischs (bzw. denen der einen anderen Komponen- te) st¨ arker sind, als

V: PD Dr. Eschrig U: Dr. Die Federkonstante ist κ und die Aufh¨angung wird als masselos ange- nommen. Die L¨ange der Aufh¨angung samt Feder sei l. Beachten Sie dann den Auf-, bzw.

(Danke an das Palmer-Tutorium f¨ur diesen Hinweis.) In diesem Fall f¨uhrt man eine analoge Rechnung mit der Kurve ~r(Φ) durch, d.h. Also liegt die Extremale auch in diesem Fall

e rst komplizierten Bestimmungsinstrumente kann hiet nich t ei ng egange n werden und mögen bloß ei n ig e Angaben der erzielten Resul tate genügen. 07

Eine Intervall der L¨ange 2 wird an einer rein zuf¨allig (Gleichverteilung!) gew¨ahlten Stelle X in zwei Teilintervalle unterteilt. Die Zufallsvariable Y beschreibe die L¨ange des

(Hinweis: Fertigen Sie eine Skizze an. Ignorieren Sie die h¨ugelige Landschaft und die umgebende Bebauung. Nutzen Sie das Internet zur Recherche.) Im etwa 650 km weiter