8. Mustersuche in Zeichenketten

Größe: px
Ab Seite anzeigen:

Download "8. Mustersuche in Zeichenketten"

Transkript

1 8. Mustersuche in Zeichenketten Zeichenkette (String) T ist endliche Folge von Symbolen aus endlichem Alphabet Σ. Besteht T aus n Symbolen, so werden diese in T[1], T[2],..., T[n] gespeichert. T[i..j], 1 i j n ist das an der Position i beginnende und an der Position j endende Teilwort von T. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 1

2 Grundlegendes Problem: Gegeben: Zwei Zeichenketten P[1..m] und T[1..n] mit Frage: Kommt P als Teilwort in T vor? m n. Naiver Algorithmus: for i = 1 to n m + 1 do überprüfe, ob P = T[i..i+m 1] od Laufzeit im Worst Case O(m n). Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 2

3 8.1 Der Algorithmus von Knuth-Morris-Pratt Naiver Algorithmus verschwendet gewissermaßen Information: Merkt sich nicht, welche Zeichen in T bereits mit Anfangsstück von P übereingestimmt haben, bis Mismatch auftrat: Situation: (naiveralg.) Vergleichszeiger T a b a a b a a P a b a b a a Mismatch Nächster Schleifendurchlauf: Verschiebung des Vergleichsfensters um eins nach rechts: T a b a a b a a b wurde zurückgesetzt P a b a b a a Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 3

4 Im Gegensatz dazu speichert der Alg. von KMP besagte Information einerseits, um Verschiebung der Muster nach rechts zu vergrößern und andererseits, um Vergleichszeiger nicht zurückzusetzen. Die Präfixfunktion eines Musters Zentral für den KMP-Algorithmus: Angenommen, P[1..q] = T[s+1..s+q], q < m. Was ist das kleinste s > s, sodass P[1..k] = T[s +1..s +k], wobei s +k = s+q? Für solches s stimmen die ersten k Zeichen von P mit den entsprechenden Zeichen in T überein. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 4

5 Beispiel: T b a c b a b a b a a b c b a s = 4 a b a b a c a q = 5 Mismatch Hier: s = 6 a b a b a c a s + q = 9 = s + k k = 3 (s = 5 (= s+1) führt notwendig sofort zu Mismatch!) Zur Beantwortung obiger Frage notwendige Information kann vorausberechnet werden, indem Muster P mit sich selbst verglichen wird! Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 5

6 Def.: Gegeben sei Muster P[1..m]. Dann Präfixfunktion π : {1,..., m} {0,..., m 1} für P definiert durch π ( q) : = max k P[ 1..k] ist Suffix von P[ 1..q] 0 k < q { } q k d.h. P Σ : P[ 1.. q] = P op[ 1.. k] Beispiel: P = a b a b a b a b c a i = π(i) = z.b. Berechnung von P[4]: P[1..q] = a b a b Test k = 3: P[1..3] = a b a Test k = 2: P[1..2] = a b kein Suffix! Suffix! Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 6

7 KMP-Matcher(T, P) (1) n Länge von T; m Länge von P; (2) π Berechne_Präfixfunktion(P); (3) q 0; (4) for i 1 to n do (5) while q > 0 and P[q+1] T[i] do (6) q π[q] (7) od; (8) if P[q+1] = T[i] (9) then q q + 1; (10) fi (11) if q = m (12) then Ausgabe Muster kommt ab Stelle i m+1 vor (13) q π[q] (14) fi (15) od Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 7

8 Berechne_Präfixfunktion(P) (1) m Länge von P; (2) π[1] 0; (3) k 0; (4) for q 2 to m do (5) while k > 0 and P[k+1] P[q] (6) do k π[k] (7) od; (8) if P[k+1] = P[q] (9) then k k+1 (10) fi; (11) π[q] k (12) od (13) return π Beispiel: P = a b a a b a a a b q = π(q) = Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 8

9 Zeitkomplexität: Laufzeit von Berechne_Präfixfunktion(P): Betrachte k: while-schleife (5) - (7) nur ausgeführt, falls k > 0. Wir beginnen mit k = 0 in (3), und in jedem Durchlauf der for-schleife wird k um maximal 1 erhöht. Andererseits in jedem Durchlauf der while-schleife k um mindestens 1 erniedrigt, denn π[k] < k k! D.h., amortisiert betrachtet: Kosten pro einem for-schleifendurchlauf O(1). Damit Laufzeit von Berechne_Präfixfunktion(P): O(m). Gesamtlaufzeit von KMP-Matcher: O(m+n) O(m) für Berechne_Präfixfunktion(P) und O(n) für Rest: Analyse analog zu Berechne_Präfixfunktion(P) mit q anstelle von k... Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 9

10 Korrektheit von Berechne_Präfixfunktion(P): Lemma 1: Sei π*(q) := {q, π(q), π(π(q)),... }. Dann gilt für q = 1, 2,..., m, dass π*(q) = { k P[1..k] ist Suffix von P[1..q] }. Beweis: " ": i π* ( q) ( ). j i = π q für ein j Beweis per Induktion über j: Ind anfang: j = 0 i = q und Beh. folgt, da P[1..q] Suffix von sich selbst ist. Ind beh. folgt aus der Tatsache, dass P[1.. π(i)] Suffix von P[1..i] und der Transitivität der Suffixrelation. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 10

11 " ": Widerspruchsbeweis: Ann.: j k P 1..k ist Suffix von P 1..q \ π* [ ] [ ] { } ( q). OE sei j maximal. Es muss j < q gelten, da q in beiden Mengen ist. Sei j kleinste Zahl in π*(q), die größer als j ist. P[1..j] ist Suffix von P[1..q] P[1..j ] ist Suffix von P[1..q] P[1..q] P[1..j] P[1..j ] P[1..j] ist Suffix von P[1..j ] und j ist maximal unter Zahlen mit dieser Eigenschaft. π(j ) = j und damit j π *( q) Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 11

12 Klar: Berechne_Präfixfunktion(P) korrekt für π(1) = 0 (siehe Zeile (2) ). Lemma 2: ( q) > 0 π( q) 1 π* ( q ). q = 1, 2,..., m: π 1 Beweis: Falls k = π(q) > 0, so ist P[1..k] Suffix von P[1..q]. D.h. auch, dass P[1..k 1] Suffix von P[1..q 1] ist. Mit Lemma 1 folgt k 1 π *( q 1). P[1..q] P[1..q-1] P[1..k] P[1..k-1] P[1..k] P[1..k-1] Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 12

13 Definiere für q = 2,..., m ( q 1) und P[ k + 1] P[ ] { k k π* } E q 1 : = = q Lemma 3: q = 2,..., m: π ( q) 0, = 1+ max falls E q-1 { k E } = o/ q 1, sonst. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 13

14 Beweis: π ( > 0): q Sei r = π( q), d.h. P[ 1.. r] ist Suffix vonp[ 1.. q] und mit r 1folgt P[] r = P[] q. Falls r auf von Also P P Lemma2 r [ 1.. k + 1] [ 1.. q] E = 0, so ex. kein = o. q 1 / { k π* P[ k + 1] = P[ q] } = 1+ max k π * = E q 1 ( q 1) für welches P 0). [ 1.. k] ausgeweitet werden kann, sodass ein Suffix entsteht (sonst wäre π( q) > Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 14

15 Korrektheit von Berechne-Präfixfunktion (P) nun wie folgt: Zu Beginn der for-schleife in Zeilen (4)-(12) gilt immer k = π [q - 1] Betreten der Schleife: Zeilen (2) und (3) Weitere Durchläufe: Zeile (11) Zeilen (5)-(10) passen k so an, dass es der korrekte Wert von π [q - 1] wird: while-schleife in Zeilen (5)-(7) sucht durch alle Werte mit k π * [ q 1] bis einer gefunden wird mit P[ k + 1] = P[ q]; dann ist k maximaler Wert in Menge E q 1 und dank Lemma 3 können wir π [q] den Wert k + 1 zuweisen. Falls kein solches k gefunden; sprich k=0, so wird π [q] auf 0 gesetzt. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 15

16 Mitteilung: Mit wenig Mehraufwand und i.w. analog zur Korrektheit von Berechne_Präfixfunktion(P) folgt schließlich die Korrektheit von KMP-Matcher(T,P). Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 16

17 8.1.2 Der KMP-Algorithmus als DEA Idee: Für festes Pattern P liest der KMP-Algorithmus den Text T von links nach rechts ein. Er kann also als deterministischer endlicher Automat (DEA, engl. DFA) interpretiert werden, wenn man den Fortschritt des Matchens in den Zuständen des DEA kodiert Sei M = M (M hängt von P ab) P = ( Σ, Q, q0, δ, F) P = P 1... P m, Q = {0, 1,... m}, q 0 = 0, F = {m} k δ ( i, a) = 0 P[1.. k] = z a und z ist max.anfangswort von P[1..i], das gleichzeitig auch Endwort von P[1..i]ist ( z = P[1..i]ist zulässig). falls es kein solches k gibt Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 17

18 Beispiel 1: q = P = a a b b a a b π(q) = b a a b b a a b a a a b b b Dieser Algorithmus ist besonders geeignet, wenn man zu festem Pattern P und vielen Textstrings T testen will, ob P in T vorkommt. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 18

19 Beispiel 2: q = P = a b a a b a a a b π(q) = b a 0 1 a b 2 a 3 a 4 b 5 a 6 a 7 a 8 b 9 b b a b b b a Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 19

20 8.2 Der Algorithmus von Boyer-Moore Für Anwendungen in der Praxis ist meist der Algorithmus von Boyer-Moore (bzw. Variationen davon) erste Wahl. Er ist besonders vorteilhaft bei großen Alphabeten und relativ langen Mustern. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 20

21 Naiver Matcher ( T, P, ) (1) n Länge von T; m Länge von P; (2) (3) (4) s 0 (5) while s n m do (6) j m ; (7) while j > 0 and P [ j] = T[ s + j] do (8) j j 1 (9) od (10) if j = 0 (11) then Ausgabe Muster kommt ab Stelle s+1 vor ; (12) s s +1 (13) else s s +1 (14) fi (15) od Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 21

22 Boyer-Moore-Matcher ( T, P, ) (1) n Länge von T; m Länge von P; (2) λ Berechne_Letztes _Vorkommen ( P, m, ); (3) γ Berechne_Gutes_Suffix( P, m) ; (4) s 0 (5) while s n m do (6) j m ; (7) while j > 0 and P [ j] = T[ s + j] do (8) j j 1 (9) od (10) if j = 0 (11) then Ausgabe Muster kommt ab Stelle s+1 vor ; (12) s s +1 s s +γ [0] (13) else s s +1 s s + max (γ [j], j λ[t[s+j]]) (14) fi (15) od Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 22

23 Die wesentlichen Eigenschaften des Algorithmus von Boyer-Moore sind der Vergleich des Musters selbst gegen ein Textstück von rechts nach links und die Benutzung zweier, unabhängig voneinander arbeitender Heuristiken schlechter Buchstabe und gutes Suffix. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 23

24 Die Heuristik schlechter Buchstabe Angenommen, es kommt beim zeichenweisen Vergleich P j T s + j für ein j, 1 j m zum Mismatch [ ] [ ]. Definiere k { i T[ s + j] = P[ i] }, fallst[ s j] max + i m 0, sonst. 1 : = in P vorkommt. Lemma: s kann gemäß der Heuristik schlechter Buchstabe um j-k erhöht werden. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 24

25 Beweis: Fall 1: k=0: D.h., T + Beispiel: [ s j] gegenüber T um T[s+j] kommt nicht in j nach rechts vor und so kann l T: a b r d a d a b r a P: s = 3 Verschiebung um j=2: a b a d j=2 verschoben werden. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 25 P a b a d n m Extremfall: T = b, P = a k = 0 und j = m in allen Fällen, also maximale Verschiebung möglich! P

26 Fall 2: k < j : D.h., T s + [ j] kommt in Ohne Verlust kann um P j k links von der Stelle verschoben werden. j vor und j k > 0. Beispiel: T[s+j] l T: a b r d a d a b r a P: s = 1 k = 2 a l a d j=4 (=m) j-k =2 a l a d Verschiebung um j-k = 4-2 = 2 Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 26

27 Fall 3: k >j: D.h. T[s+j] kommt in P rechts von der Stelle j vor und j-k < 0. Heuristik schlägt Verschiebung des Vergleichsfensters nach links vor, d.h. Verkleinerung von s. Boyer-Moore-Algorithmus umgeht diese Problematik dadurch, dass zweite Heuristik gutes Suffix immer Verschiebung nach rechts vorschlägt und der BM-Algorithmus immer die maximale Verschiebung nach rechts wählt (vgl. auch Zeile (13) im Algorithmus). Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 27

28 Beispiel: T[s+j] T: a b r a l l d a b r a P: s=2 k=4 (=m) a l a j=3 Negative Verschiebung um j-k = -1: l a l a l Sei λ[a] die am weitesten rechte Position in P, an der in P vorkommt (also insbesondere a = P[λ[a]]). Falls a nicht in P vorkommt, so setze λ[a]:= 0 a Σ λ heißt Letztes_Vorkommen und wird durch folgenden Algorithmus bestimmt: Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 28

29 Berechne_letztes_Vorkommen ( P, m,σ) : for alle a Σ do λ[ a] 0; od; for j 1 to m do λ[ P[] j ] j; od; return λ Laufzeit: O ( Σ + m) Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 29

30 Die Heuristik gutes Suffix : T[s+j] T: a b r a l a l a b r a s=2 P: a l b a l j=3 gutes Suffix Verschiebung, bis γ[j] = 5-2 = 3 al wieder auftritt: a l b a l Seien Q und R Zeichenketten: Q heißt ähnlich zu R (in Zeichen Q ~ R), falls Q Suffix von R oder R Suffix von Q ist. Heuristik gutes Suffix besagt, dass wir, falls P [ j] T[ s + j] (j < m), das Vergleichsfenster um γ [ j] : = m max{ k P[ j m] ~ P[ 1.. k] } 0 k< m nach rechts schieben können. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 30

31 γ ist die Funktion Gutes_Suffix Zur Berechnung von : γ Beobachtung 1: γ[ j] m π[ m] Damit Umschreiben der Definition von γ[ j]: γ [ j] = m π max ( m) k< m { k P[ j m] ~ P[ 1.. k] } Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 31

32 [ 1 ] [ ] Beobachtung 2: Falls P..k Suffix von P j +1.. m ist, dann ist es auch Suffix von P [ 1..m] und deshalb k π m gemäß Definition. [ ] von π P[1..m] 1 P[1..k] P[j+1..m] k j+1 m [ ] Damit weiteres Umschreiben der Definition von γ j : γ [ j] = m π max ( m) k< m ({ π[ m] } { k P[ j m] ist Suffix von P[ 1.. k] }) Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 32

33 Zur weiteren Vereinfachung von γ: s Sei P : = P ( P revertiert), und π die Präfixfunktion von Sei weiter k maximal unter allen Worten mit der Eigenschaft, dass P j m Suffix von P 1.. k [ ] [ ]ist. P. Lemma: [ l] = m j, wobei l = ( m k) + ( m j). π Beisp: T = b a c a c a b... P = a c b a c m = 5, k = 2 ist maximal a c b a c j = 3 Verschiebung P = c a b c a π [l] = π [l] = m j = 2, wobei l = (m k) + (m j) π [5] = 2 = (5 2) + (5 3) = 5 Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 33

34 Beweis: P [ 1.. m j] ist Suffix von P [ 1.. l], also π [ l] m j. P [1..2] ist Suffix von P [1..5], also π [5] >= 5 3. Widerspruchsannahme: π l > m P [1..3] Suffix von P [1..5], P [1..3] = P [3..5] P[3..5] = P[1..3] Def. π P d.h. P d.h. P m [ ] j [ 1.. π [ l ] ist Suffix von P [ 1.. l], [ 1.. π [] l ] = P [ l π [ l] l], [ π [] l m] = P m l m l + π [ l] [ ]. Einsetzen von l = ( m k) + ( m j) = 2m k j ergibt : P[ m π [ l] m] = P[ k m + j k m + j + π [ l ] P[ m π [ l] m] ist Suffix von P[ 1.. k m + j + π [ l] ]. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 34

35 Nun gilt: m π und damit ist [ l] + 1 < m ( m j) + 1 = j + 1 [ j m] Suffix von P[ 1.. k m + j + [ l ] P π =: k Schließlich gilt wegen π [ ] k : = k m + j + π [ l]. l > m j auch k > k, wobei zur Maximalität von k Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 35

36 Mit Hilfe des Lemmas und der Tatsache, dass aus π [ l] = m j folgt, dass j = m π [ l] und k = m l + π [ l], können wir die Definition von γ ein letztes Mal umschreiben: γ [ j] = m max( { π[ m] } { m l + π [ l] j = m π [ l] }) 1 l m = min 1 l m ({ m π[ m] } { l π [] l j = m π [] l }) Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 36

37 Berechne_Gutes_Suffix (P,m): Beispiel: m = 5 π Berechne_Präfixfunktion( P); P Revertiere ( P); π Berechne_Präfixfunktion ( P ); for j 0 to m do γ[ j] m π[ m] od; for l 1 to m do j m π [ l]; if γ[ j] > l π [ l] then γ[ j] l π [ l] fi od; return γ for l := 5: j := 5 - π [5] = 3 γ = P = a c b a c π = P = c a b c a π = for j... γ = for l := 1 j := 5 - π [1] = 5 γ = for l := 2 j := 5 - π [2] = 5 γ = for l := 3:... for l := 4: j := 5 - π [4] = 4 γ = Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 37

38 Laufzeit Berechne_Gutes_Suffix: O(m) Gesamte Laufzeit Boyer-Moore: (Worst Case) O (( n m) m + Σ ) Unter der Annahme eines großen Alphabets Σ (z.b. alle Buchstaben) und eines relativ kurzen Suchstrings P mit Länge m << n ergibt sich eine Laufzeit (Average Case) O( n m) Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 38

39 Boyer-Moore-Matcher ( T, P, ) Wiederholung für Beispiel (1) n Länge von T; m Länge von P; (2) λ Berechne_Letztes _Vorkommen ( P, m, ); (3) γ Berechne_Gutes_Suffix( P, m) ; (4) s 0 (5) while s n m do (6) j m ; (7) while j > 0 and P [ j] = T[ s + j] do (8) j j 1 (9) od (10) if j = 0 (11) then Ausgabe Muster kommt ab Stelle s+1 vor ; (12) s s +γ [0] (13) else s s + max (γ [j], j λ[t[s+j]]) (14) fi (15) od Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 39

40 Beispiel für Boyer-Moore-Algorithmus: T = b a c a c a b c a c b a c b a P = a c b a c, P = c a b c a m = 5, k = 2 max π = π = γ = Gutes Suffix λ[a] = 4, λ[b] = 3, λ[c] = 5, letztes Vorkommen T = b a c a c a b c a c b a c b a P = a c b a c j = 3, s s + max(γ [j], j λ[t[s+j]]) = 0 + max(γ [3], 3 λ[c]) = 3 P = a c b a c j = 4, s 3 + max(γ [4], 4 λ[b]) = 6 P = a c b a c j = 5, s 6 + max(γ [5], 5 λ[b]) = 6 +2 = 8 P = a c b a c j = 0. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 40

41 Und noch ein Beispiel für den Boyer-Moore-Algorithmus: T = D I E S I S T J E T Z T D E R T E X T... P = P = P = P = P = P = P = P = T E S T T E S T T E S T T E S T T E S T T E S T T E S T T E S T Beobachtung: In Texten mit einem großen Alphabet Σ ist die Heuristik Falscher Buchstabe oft sehr erfolgreich, sie ist meist wichtiger als gutes Suffix. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 41

42 8.3 Der Algorithmus von Karp-Rabin Vereinfachende Annahme: Σ = { 0,1,...,9} Verallgemeinerung auf beliebige Alphabete leicht zu tun. Definiere folgende Fingerabdrucksfunktion für eine Primzahl p: F ( x) x ( mod ). : Z Z +, F p p p p = Zur Vereinfachung sucht folgender Algorithmus nur nach dem ersten Auftreten von P in T. Er interpretiert Zeichenketten als natürliche Zahlen. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 42

43 Algorithmus von Karp-Rabin: Karp_Rabin_Matcher (T, P) p zufällige Primzahl zwischen 1 und mn match false; s 0; while match=false and s n m do if Fp ( T[ s s + m] ) = Fp ( P) then match true else Berechne F p T[ s s + m + 1] aus F p ( T[ s s + m] ); s s + 1 fi; od; return match ( ) 2 2 log( mn ); Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 43

44 Entscheidend für die Effizienz des Algorithmus: T[ s + 2..s + m + 1] läßt sich einfach und schnell F p T s s + m berechnen F p F p ( ) aus ( [ ]) : ( T[ s s + m + 1] ) = ( ( m 1 10 F ( T[ s s + m] ) 10 T[ s + 1] ) + T[ s + m + 1] )( mod p) p ( T[ s + 2..s + m + 1] ) F p kann also mit konstant vielen arithmetischen Operationen modulo p aus F p ( T[ s s + m] ) berechnet werden, m falls 10 1 ( mod p) schon einmalig vorausberechnet wurde. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 44

45 Beispiel: T = P = Primzahl p = 13 F F F F ( P) = 7 ( T[ 1..5] ) = F ( ) ( T[ 2.. 6] ) = F ( ) 13 ( T[ 3..7] ) = F ( 31415) 13 = 0 = 1 = 7 Match! F 13 ( T[ 9..13]) = F ( ) = 7 Mismatch! 13 Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 45

46 Mitteilung: Der Karp-Rabin-Algorithmus benötigt O(n+m) Schritte und hat Fehlerwahrscheinlichkeit O 1. n Im Gegensatz zu anderen Algorithmen läßt sich der Karp-Rabin- Algorithmus leicht auf zweidimensionale Mustersuche verallgemeinern und ist auch für Online-(Realzeit)-Eingabe geeignet. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 46

47 8.4 Suffixbäume Definition: Ein Suffixbaum T für eine Zeichenkette S mit S = n ist ein Baum mit Wurzel mit n Blättern, nummeriert von 1 bis n: Jeder interne, von der Wurzel verschiedene Knoten hat mindestens zwei Kinder und jede Kante in T ist mit einem nichtleeren Teilwort von S beschriftet. Keine zwei Kanten, die einen Knoten verlassen, können Beschriftungen haben, die mit demselben Buchstaben beginnen. Für jedes Blatt i ( 1 i n) gilt, dass die Konkatenation der Kantenbeschriftungen auf dem Pfad der Wurzel zu i genau das Suffix S i.. n von S [ ] ergibt. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 47

48 Um zu gewährleisten, dass Suffixbaum für eine Zeichenkette S immer existiert, nehmen wir an, dass S[ n] = $, wobei $ ein Sonderzeichen ist, das nirgends sonst in S vorkommt. Beispiel: S=aabbabb$ a $ b 8 abbabb$ bb $ abb$ aabbabb$ b 1 abb$ $ 4 abb$ $ 7 aabbabb$ aabbabb$ aabbabb$ aabbabb$ aabbabb$ aabbabb$ Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 48

49 Eine erste Anwendung: Lösung des grundlegenden Problems Mustersuche in Zeichenketten mittels Suffixbäumen: Gegeben Suffixbaum T für Text S und ein Muster P. Gehe in T entlang des durch P eindeutig bestimmten Pfades, bis P entweder erschöpft ist oder bis keine Übereinstimmung mehr möglich ist. Im ersten Fall repräsentiert jedes Blatt im zugehörigen Unterbaum die Anfangsposition eines Vorkommens von P in S. Im zweiten Fall kommt P nicht in S vor. Beispiel (Fortsetzung): P = ab, S = aabbabb$ P kommt in S ab den Positionen 2 und 5 vor. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 49

50 Es gilt: Kommt Pk-mal in S vor, so ist die Zeit zur Bestimmung aller Vorkommen von P in S (bei gegebenem Suffixbaum) O(m+k). Denn: Mache Tiefensuche auf betreffendem Unterbaum und notiere die vorkommenden Blattnummern. Da jeder innere Knoten mindestens zwei Kinder hat, ist die Zahl der vorkommenden Blätter proportional zur Zahl der traversierten Kanten und somit ist die Laufzeit der Tiefensuche O(k). Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 50

51 Ein naiver Algorithmus zum Aufbau von Suffixbäumen: Idee: Beginne mit einzelner Kante für das Suffix Mit i=2 beginnend, füge sukzessiv Suffixe S[ 1.. n]. S i.. n [ ] hinzu. Genauer: Sei N i der Baum, der nach Eintragen von Suffix S i.. n entstand. [ ] Konstruktion von N i+1 aus N i : Starte an der Wurzel von N i und finde den eindeutig bestimmten längsten Pfad, der mit einem Präfix von i +1.. n übereinstimmt. S[ ] Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 51

52 Zwei Fälle: Der Pfad endet inmitten einer Kante (u,v) in T: Dann zerteile (u,v) in zwei Kanten durch Einfügen eines neuen Knotens w an der Stelle, wo die letzte Buchstabenübereinstimmung war. Beschrifte Kanten (u,w) und (w,v) durch entsprechende Aufteilung der Kantenbeschriftung für (u,v). (*) Füge neue Kante (w,i+1) hinzu und beschrifte sie mit dem Suffix von S [ i +1.. n], das noch nicht beim Finden des beschriebenen längsten Pfades verbraucht wurde. Der Pfad endet an einem Knoten w in T : (*). Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 52

53 Beispiel: aabbabb$ S=aabbabb$ abbabb$ a bbabb$ 1 aabbabb$ 1 aabbabb$ 2 aabbabb$ a bbabb$ a b abbabb$ 1 aabbabb$ bbabb$ 3 2 aabbabb$ aabbabb$ abbabb$ 1 aabbabb$ bbabb$ 2 aabbabb$ babb$ 3 aabbabb$ abb$ 4 aabbabb$ Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 53

54 Bei Annahme eines Alphabets konstanter Größe hat obiger Algorithmus Laufzeit O(n²). Mitteilung: Mit Hilfe der Algorithmen von McCreight, Weiner oder Ukkonen lassen sich Suffixbäume in Zeit O(n) aufbauen. Anwendungen von Suffixbäumen: Suffixbäume sind den Algorithmen von KMP oder BM weit überlegen, falls für eine gegebene, feste (!) Zeichenkette mehrmals häufig nach verschiedenen Mustern gesucht werden muss. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 54

55 Verallgemeinerte Suffixbäume: Darstellung einer Menge von Zeichenketten anstelle nur einer. { S S..., } 1, 2, S r Eine Konstruktionsmöglichkeit: Nimm an, alle r Zeichenketten enden in verschiedenen Endsymbolen $ 1,$ 2,...,$ r. Konkateniere S, S, , S r und bilde Suffixbaum für konkatenierte Zeichenkette in Zeit O( S S ). 1 r Die entstehenden Blattnummern lassen sich leicht in zwei Blattnummern umwandeln, wobei eine die zugehörige Zeichenkette und die andere die Position in der jeweiligen Zeichenkette bezeichnet... Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 55

56 Problem: Künstliche Suffixe, die sich über mehr als eine Zeichenkette erstrecken. Da aber $ i $ j für i j, muss jeder Pfad von der Wurzel zu einem inneren Knoten mit einer Teilzeichenkette nur einer der Zeichenketten S, S, , S r beschriftet sein. Daher können nur Kanten zu Blättern mit Teilwörtern aus verschiedenen Zeichenketten beschriftet sein; Weglassen des entsprechenden zweiten Beschriftungsteils löst das Problem. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 56

57 Beispiel: S S 1 3 = ab$ 1, = S o S 1 2 S = 2 = aa$ 2, ab$ aa$ 1 2 b$ b$ 1 aa$ 1 aa$ 2 2 $ 2 a$ 2 a $ 2 $ 1 aa$ Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 57

58 Anwendung: Beispiel: Längste gemeinsame Teilzeichenkette zweier Zeichenketten S 1 = superiorcalifornialives S 2 = sealiver Lösung: alive Satz: Das Problem des Findens der längsten gemeinsamen Zeichenkette zweier Zeichenketten S 1 und S 2 kann in Zeit O ( S 1 + S 2 ) gelöst werden. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 58

59 Allgemeine Lösungsmethode: Bilde verallgemeinerten Suffixbaum für S 1 und S 2. Jedes Blatt repräsentiert entweder ein Suffix von S 1 oder ein Suffix von S 2. Markiere jeden inneren Knoten v mit 1 bzw. 2 je nachdem, ob es ein Blatt in seinem Unterbaum gibt, das ein Suffix von S 1 oder S 2 ist. Die Pfadbeschriftungen zu einem mit sowohl 1 als auch 2 markierten inneren Knoten bilden eine gemeinsame Teilzeichenkette von S 1 und S 2. Suche also denjenigen Pfad dieser Art, der die längste Teilzeichenkette ergibt. Dies geht z.b. mit Tiefensuche in Linearzeit. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 59

60 Anwendung: Datenkompression: Definition: Gegeben: Eine Zeichenkette S der Länge n und sei 1 i n 1. Die Teilzeichenkette Prior i ist das längste Präfix von S[i.. n], welches zugleich als Teilzeichenkette in S[1.. i-1] vorkommt. 2. l i := Prior i und für l i > 0 sei s i die Anfangsposition des am weitesten linken Vorkommens von Prior i in S[1.. i-1]. Beispiel: S = a b a x c a b a x a b z Prior 7 = b a x l 7 = 3, s 7 = 2. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 60

61 Wir betrachten Variante der Ziv-Lempel-Kompressionsmethode Idee: Falls S[1.. i-1] schon repräsentiert (komprimiert) ist und falls l i > 0, so müssen die nächsten l i Buchstaben von S (d.h. Prior i ) nicht explizit angegeben werden, sondern können durch das Paar (s i,l i ) beschrieben werden. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 61

62 Kompressionsalgorithmus: i 1; repeat berechne l i und s i ; if l i > 0 then output (s i, l i ); i i + l i else output S[ i ]; i i + 1 fi; until i > n Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 62

63 Beispiel: 1. S = a b a c a b a x a b z 2. S = ( ) 16 ab ab(1,1) c (1,3) x (1,2) z ab ( 1,2 )( 1,4 )( 1,8 )( 1,16) Implementierung des Kompressionsalgorithmus mit Hilfe von Suffixbäumen: Zentral: Berechnung von l i und s i. Beobachtung: Komprimierte Teilwörter überlappen nicht miteinander. Falls jedes gewünschte Paar (s i,l i ) in Zeit O(l i ) gefunden werden kann, so ist die Gesamtlaufzeit des Algorithmus O(n). Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 63

64 Realisierung: Zunächst konstruiere Suffixbaum T zu S in Linearzeit. Nummeriere jeden Knoten v mit: c v := kleinste Blattnummerierung im Unterbaum von v D.h., gibt die am weitesten linke Anfangsposition in S für alle Vorkommen derjenigen Teilzeichenkette in S, die den Pfad von der Wurzel von T bis v beschriftet. Mit Standardbaumtraversierungen (z.b. Tiefensuche) können die -Werte in O(n) Zeit für alle Baumknoten bestimmt werden. c v c v Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 64

65 Nun Anwendung der c v -Werte: Zur Berechnung von (s i,l i ) folgt der Algorithmus dem eindeutig bestimmten Pfad in T, der durch ein Präfix von S[i.. n] bestimmt ist. Der Pfad endet an einem Punkt p (nicht notwendig einem Knoten) und sei v der erste Knoten nach p (p = v möglich). Dabei ergibt sich p entweder dadurch, dass ein Mismatch auftritt oder dass auf dem Pfad zu p bereits i-c v Symbole verbraucht wurden. s l i i : = c : = v Zahl der auf dem Pfad zu p verbrauchten Symbole Bei konstanter Alphabetgröße findet sich somit (s i,l i ) in Zeit O(l i ), w.z.z.w. Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 65

66 < Ende Vorlesung Algorithmen > Vorlesung Algorithmen (RN/MK/AZ) WSI für Informatik, Universität Tübingen 66

String - Matching. Kapitel Definition

String - Matching. Kapitel Definition Kapitel 1 String - Matching 1.1 Definition String - Matching ( übersetzt in etwa Zeichenkettenanpassung ) ist die Suche eines Musters ( Pattern ) in einem Text. Es findet beispielsweise Anwendung bei der

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Effiziente Algorithmen 2

Effiziente Algorithmen 2 Effiziente Algorithmen 2 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Teil 6: Suche in Zeichenketten Martin Hofmann LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 16. April 2016 Martin Hofmann

Mehr

String matching: Überblick

String matching: Überblick String matching: Überblick String matching = Erkennung von Zeichenketten. Problemstellung & Anwendungen Grundlagen Rabin-Karp Verfahren (basierend auf hashing) String-matching mit endlichen Automaten Knuth-Morris-Pratt

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 21 (29.7.2014) String Matching (Textsuche) II Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)

Mehr

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume TU München Hauptseminar: WS 2002 / 2003 Einführung in Suffix - Bäume Bearbeiterin: Shasha Meng Betreuerin: Barbara König Inhalt 1. Einleitung 1.1 Motivation 1.2 Eine kurze Geschichte 2. Tries 2.1 Basisdefinition

Mehr

Algorithmen zur exakten Suche in Texten. Algorithmen und Datenstrukturen II 1

Algorithmen zur exakten Suche in Texten. Algorithmen und Datenstrukturen II 1 Algorithmen zur exakten Suche in Texten Algorithmen und Datenstrukturen II 1 Die Klasse String Zeichenketten sind in Java Objekte. Sie können mit dem +-Operator zu neuen Objekten verknüpft werden. String

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 20 (9.7.2018) String Matching (Textsuche) Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II AG Praktische Informatik Technische Fakultät Vorlesung Sommer 2009 Teil I Algorithmen zur exakten Suche in Texten Die Klasse String Zeichenketten sind in Java Objekte.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 4 Suchen in Texten Version vom: 15. November 2016 1 / 39 Vorlesung 8 15. November

Mehr

2.2 Der Algorithmus von Knuth, Morris und Pratt

2.2 Der Algorithmus von Knuth, Morris und Pratt Suchen in Texten 2.1 Grundlagen Ein Alphabet ist eine endliche Menge von Symbolen. Bsp.: Σ a, b, c,..., z, Σ 0, 1, Σ A, C, G, T. Wörter über Σ sind endliche Folgen von Symbolen aus Σ. Wörter werden manchmal

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 20 (13.7.2016) String Matching (Textsuche) Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)

Mehr

Suche in Texten. Verschiedene Szenarios: Dynamische Texte. Texteditoren Symbolmanipulatoren. Statische Texte

Suche in Texten. Verschiedene Szenarios: Dynamische Texte. Texteditoren Symbolmanipulatoren. Statische Texte Suche in Texten Suche in Texten Verschiedene Szenarios: Dynamische Texte Texteditoren Symbolmanipulatoren Statische Texte Literaturdatenbanken Bibliothekssysteme Gen-Datenbanken WWW-Verzeichnisse 2 Suche

Mehr

Algorithmen und Datenstrukturen II. Suchen in Texten. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Algorithmen und Datenstrukturen II. Suchen in Texten. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Algorithmen und Datenstrukturen II Suchen in Texten Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 27.03.2018 06:32 Inhaltsverzeichnis Ein Text.......................................

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 21 (11.7.2018) String Matching (Textsuche) II Greedy Algorithmen I Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei

Mehr

1.3 Knuth-Morris-Pratt-Algorithmus

1.3 Knuth-Morris-Pratt-Algorithmus 1.3 Knuth-Morris-Pratt-Algorithmus Präprozessing bestimmt längste Ränder der Präfixe von P Die Kenntnis der Ränder erspart Vergleiche bei periodischen Suchwörtern Laufzeit: Θ(m) für das Präprozessing,

Mehr

Zeichenketten Benedikt Straßner. Programming Systems Group Martensstr Erlangen Germany

Zeichenketten Benedikt Straßner. Programming Systems Group Martensstr Erlangen Germany Zeichenketten 16.04.2018 Benedikt Straßner Programming Systems Group Martensstr. 3 91058 Erlangen Germany Übersicht String Matching Algorithmen Naive Stringsuche Knuth Morris Pratt (KMP) Algorithmus Boyer-Moore

Mehr

Algorithmen zur exakten Suche in Texten

Algorithmen zur exakten Suche in Texten Kapitel 4 Algorithmen zur exakten Suche in Texten In diesem Kapitel wird ein Problem aus der Sequenzanalyse näher betrachtet, die exakte Textsuche: Gegeben ein Text und ein Muster, finde alle Vorkommen

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Kapitel 5. Textalgorithmen. 5.1 Grundbegriffe

Kapitel 5. Textalgorithmen. 5.1 Grundbegriffe Kapitel 5 Textalgorithmen 5.1 Grundbegriffe Wir beschäftigen uns hauptsächlich mit Textsuche (und Varianten). Gegeben: Alphabet Σ (mindestens zwei Buchstaben). Text S = s 1... s n Σ in Array S[1..n]. Muster

Mehr

Der Boyer-Moore Algorithmus

Der Boyer-Moore Algorithmus Der Boyer-Moore Algorithmus Hauptseminar Pattern-Matching und Textalgorithmen 29.10.2002 Thomas Hellwig Der Naive Algorithmus Um auf den Boyer-Moore Algorithmus hinzuleiten, betrachten wir zuerst das grundsätzliche

Mehr

Informatik II Precomputation

Informatik II Precomputation lausthal Informatik II Precomputation. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Definitionen Preconditioning (Vorbehandlung): Aufgabe: löse nacheinander mehrere Probleme, die einen

Mehr

Zeichenketten. 10. Mai 2017 Simon Bachstein Simon Bachstein Hallo Welt -Seminar - LS 2 Zeichenketten 1

Zeichenketten. 10. Mai 2017 Simon Bachstein Simon Bachstein Hallo Welt -Seminar - LS 2 Zeichenketten 1 Zeichenketten 10. Mai 2017 Simon Bachstein 10.05.2017 Simon Bachstein Hallo Welt -Seminar - LS 2 Zeichenketten 1 Übersicht String-Matching Problem Motivation Algorithmen zur Lösung Naive Stringsuche KMP

Mehr

1.5 Boyer-Moore-Algorithmus

1.5 Boyer-Moore-Algorithmus 1.5 Boyer-Moore-Algorithmus Suche nach Vorkommen von P in T von links nach rechts. In einer Phase erfolgen Vergleiche von rechts nach links. Verschiebungsheuristiken: Bad Character und Good Suffix. Laufzeit:

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 21 (15.7.2016) String Matching (Textsuche) Approximate String Matching Algorithmen und Komplexität Textsuche / String Matching Gegeben:

Mehr

Zeichenketten. 29. April 2015 Benedikt Lorch. Benedikt Lorch Zeichenketten April

Zeichenketten. 29. April 2015 Benedikt Lorch. Benedikt Lorch Zeichenketten April Vorlage Zeichenketten 29. April 2015 Benedikt Lorch Benedikt Lorch Zeichenketten 17. 29. April 2015 1 Motivation String Matching in the DNA Alphabet 1 Σ DNA = {A, G, C, T} DNA Text: 1 982 672 Zeichen Suchstring:

Mehr

1.8 Shift-And-Algorithmus

1.8 Shift-And-Algorithmus .8 Shift-And-Algorithmus nutzt durch Bitoperationen mögliche Parallelisierung Theoretischer Hintergrund: Nichtdeterministischer endlicher Automat Laufzeit: Θ(n), falls die Länge des Suchwortes nicht größer

Mehr

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz

Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Suchen in Texten Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Textsuche Gegeben ist ein Zeichensatz (Alphabet) Σ. Für einen Text T Σ n und

Mehr

4.4 Anwendungen von Suffixbäumen und Suffix-Arrays

4.4 Anwendungen von Suffixbäumen und Suffix-Arrays 4.4 Anwendungen von Suffixbäumen und Suffix-Arrays exakte Suche in unveränderlichen Texten (schon besprochen) inexakte Suche in unveränderlichen Texten Finden von Regelmäßigkeiten (z.b. längste Wiederholungen)

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II Algorithmen zur Textverarbeitung III: D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009,

Mehr

Proseminar String Matching

Proseminar String Matching Proseminar Textsuche Proseminar String Matching PD Dr. habil. Hanjo Täubig Lehrstuhl für Theoretische Informatik (Prof. Dr. Susanne Albers) Institut für Informatik Technische Universität München Wintersemester

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Kap. 19: Suffixbäume Faculty of Technology robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Sommer 2011 Bekannte Verfahren zur exakten Suche in Zeichenreihen Exakte

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 20 (23.7.2014) All Pairs Shortest Paths, String Matching (Textsuche) Algorithmen und Komplexität Vorlesungsevaluation Sie sollten alle eine

Mehr

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11 Kapitel 1 Exakte Suche nach einem Wort R. Stiebe: Textalgorithmen, WS 2003/04 11 Überblick Aufgabenstellung Gegeben: Text T Σ, Suchwort Σ mit T = n, = m, Σ = σ Gesucht: alle Vorkommen von in T Es gibt

Mehr

Zeichenketten. Michael Fularczyk Michael Fularczyk Zeichenketten / 41

Zeichenketten. Michael Fularczyk Michael Fularczyk Zeichenketten / 41 Zeichenketten Michael Fularczyk 17.05.2011 Michael Fularczyk Zeichenketten 17.05.2011 1 / 41 Inhalt Zeichenketten Zeichensätze Darstellung Suchverfahren naive Stringsuche Knuth-Morris-Pratt Boyer-Moore

Mehr

Algorithmische Bioinformatik

Algorithmische Bioinformatik Algorithmische Bioinformatik Knuth-Morris-Pratt Algorithmus Natürliche Erweiterung des naiven Matching Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Knuth-Morris-Pratt Algorithmus

Mehr

Algorithmische Bioinformatik 1

Algorithmische Bioinformatik 1 Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen

Mehr

Die Nerode-Relation und der Index einer Sprache L

Die Nerode-Relation und der Index einer Sprache L Die Nerode-Relation und der Index einer Sprache L Eine zweite zentrale Idee: Sei A ein vollständiger DFA für die Sprache L. Repäsentiere einen beliebigen Zustand p von A durch die Worte in Σ, die zu p

Mehr

Übersicht. 1 Einführung. 2 Suchen und Sortieren. 3 Graphalgorithmen. 4 Algorithmische Geometrie. 5 Textalgorithmen. 6 Paradigmen

Übersicht. 1 Einführung. 2 Suchen und Sortieren. 3 Graphalgorithmen. 4 Algorithmische Geometrie. 5 Textalgorithmen. 6 Paradigmen Übersicht 1 Einführung 2 Suchen und Sortieren 3 Graphalgorithmen 4 Algorithmische Geometrie 5 6 Paradigmen Übersicht 5 Editdistanz (Folie 446, Seite 83 im Skript) Eingabe: Zwei Strings v und w Frage: Kommt

Mehr

4.9.7 Konstruktion der Suffixbäume

4.9.7 Konstruktion der Suffixbäume .9.7 Konstruktion der Suffixbäume Beipiel: xabxa (siehe Abbildung.27) Man beginnt mit der Konstruktion eines Suffixbaumes für gesamten String und schreibt eine 1 am Blatt, weil der Suffix xabxa an der

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Entartete Suchbäume. Beispiel: Balancieren von Suchbaum. Wintersemester 2012/13

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Entartete Suchbäume. Beispiel: Balancieren von Suchbaum. Wintersemester 2012/13 Programm heute Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Fortgeschrittene Datenstrukturen Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 8 Such-Algorithmen

Mehr

Wintersemester 2004/ Februar 2005

Wintersemester 2004/ Februar 2005 Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

Kapitel 2. Suche nach endlich vielen Wörtern. R. Stiebe: Textalgorithmen, Winter 2005/06 113

Kapitel 2. Suche nach endlich vielen Wörtern. R. Stiebe: Textalgorithmen, Winter 2005/06 113 Kapitel 2 Suche nach endlich vielen Wörtern R. Stiebe: Textalgorithmen, Winter 2005/06 113 Übersicht Aufgabenstellung Gegeben: Text T und eine endliche Menge von Wörtern P = {P 1,..., P r }; Gesucht: alle

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 06 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen

Mehr

4. Tries und kd-bäume

4. Tries und kd-bäume 4. Tries und kd-bäume Digitale Suchbäume (Tries) kd-bäume Prof. Dr. O. Bittel, HTWG Konstanz Algorithmen und Datenstrukuren Tries und kd-bäume SS 2019 4-1 Tries (1) Problem mit den bisherigen Suchbäumen

Mehr

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen 8.4 Suffixbäume Ziel: Datenstruktur, die effiziente Operationen auf (langen) Zeichenketten unterstützt: - Suche Teilzeichenkette (Substring) - Präfix - längste sich wiederholende Zeichenkette -... Anwendungen:

Mehr

Algorithmen auf Zeichenketten

Algorithmen auf Zeichenketten Algorithmen auf Zeichenketten Rabin-Karp Algorithmus Christoph Hermes hermes@hausmilbe.de Zeichenketten: Rabin-Karp Algorithmus p. 1/19 Ausblick auf den Vortrag theoretische Grundlagen... Zeichenketten:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens 1 Suchen Bisher: Sequentielle Suche Binäre Suche Interpolationssuche Jetzt: Suchen in Zeichenfolgen 2 1 Suchen in Zeichenfolgen Das Problem:

Mehr

Konstruktion von Suffix Bäumen

Konstruktion von Suffix Bäumen Konstruktion von Suffix Bäumen Prof. Dr. S. Albers Prof. Dr. Th. Ottmann 1 : Impliziter Suffix Baum Definition: Ein impliziter Suffix Baum ist der Baum, den man aus dem Suffix Baum für t$ enthält indem

Mehr

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1

Mehr

Algorithmische Bioinformatik

Algorithmische Bioinformatik Algorithmische Bioinformatik Suffixbäume Ulf Leser Wissensmanagement in der Bioinformatik Ziele Perspektivenwechsel: Von Online zu Offline-Stringmatching Verständnis von Suffix-Bäumen als Datenstruktur

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Euklidischer Algorithmus

Euklidischer Algorithmus Euklidischer Algorithmus Ermitteln des größten gemeinsamen Teilers mit Euklid: function ggt (m, n) Hierbei ist m begin 0undn 0vorausgesetzt. if m = 0 then return n else return ggt (n mod m, m) fi end Man

Mehr

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Such-Algorithmen für Wörterbücher. Wörterbuch. Sommersemester Dr.

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Such-Algorithmen für Wörterbücher. Wörterbuch. Sommersemester Dr. Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Fortgeschrittene Datenstrukturen Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Such-Algorithmen

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 20. November 2014 INSTITUT FÜR THEORETISCHE 0 KIT 20.11.2014 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

Konstruktion von Suffix Bäumen

Konstruktion von Suffix Bäumen Konstruktion von Suffix Bäumen Prof. Dr. S. Albers Prof. Dr. Th. Ottmann 1 Ukkonen s Algorithmus: Impliziter Suffix Baum Definition: Ein impliziter Suffix Baum ist der Baum, den man aus dem Suffix Baum

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 17.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Evaluation Ergebnisse

Mehr

Gierige Algorithmen Interval Scheduling

Gierige Algorithmen Interval Scheduling Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A Gierige Algorithmen Interval Scheduling Beweisidee:

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 4 Programm des

Mehr

Exakte Suche nach einem Wort

Exakte Suche nach einem Wort Kapitel Exakte Suche nach einem Wort Wir betrachten die folgende grundlegende Aufgabenstellung: Gegeben sind ein Suchwort (pattern) P und ein Text T über einem Alphabet Σ mit P = m, T = n, Σ = σ. Gesucht

Mehr

Relationen und DAGs, starker Zusammenhang

Relationen und DAGs, starker Zusammenhang Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind

Mehr

Informatik II, SS 2018

Informatik II, SS 2018 Informatik II - SS 28 (Algorithmen & Datenstrukturen) Vorlesung 22 (6.7.28) Greedy Algorithmen II (Datenkompression) Algorithmen und Komplexität Datenkompression Reduziert Größen von Files Viele Verfahren

Mehr

Algorithmen und Datenstrukturen 1 Kapitel 6 Algorithmen auf Zeichenreihen

Algorithmen und Datenstrukturen 1 Kapitel 6 Algorithmen auf Zeichenreihen Algorithmen und Datenstrukturen 1 Kapitel 6 Algorithmen auf Zeichenreihen Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2006/2007 February 5, 2007 Kapitel 6: Algorithmen

Mehr

AUTOMATENBASIERTE ALGORITHMEN UND EXAKTES 2D-PATTERN-MATCHING. Vincent Holluba

AUTOMATENBASIERTE ALGORITHMEN UND EXAKTES 2D-PATTERN-MATCHING. Vincent Holluba AUTOMATENBASIERTE ALGORITHMEN UND EXAKTES 2D-PATTERN-MATCHING Vincent Holluba Gliederung 1. Einleitung und Wiederholung 2. Suchwortbaum (Trie) 3. Aho-Corasick Automat i. Matching mit Wildcards ii. 2D-Pattern

Mehr

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat Formale Grundlagen der Informatik 1 Kapitel 5 Über reguläre Sprachen hinaus und (Teil 2) Frank Heitmann heitmann@informatik.uni-hamburg.de 21. April 2015 Der Kellerautomat - Formal Definition (Kellerautomat

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

Mehr

Kryptographische Protokolle

Kryptographische Protokolle Kryptographische Protokolle Lerneinheit 2: Generierung von Primzahlen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2018/2019 15.11.2018 Einleitung Einleitung Diese Lerneinheit

Mehr

Rückblick: Längste gemeinsame Zeichenkette

Rückblick: Längste gemeinsame Zeichenkette aaadg3icdvjdb9mwfhuwbin8bcablxytanngm5rjbjogkvhcc9kq6dapjirhvu3donfmoxvbyn/gff4z/wyngrib48pjjs/98m25tgrbtqndx96kf2f17r21+8gdh48ep1nfehqizakyjjguup0lvipgoywmnwlocgu0swscjsspjf/0aptmmv9iqglijky5n3fgjammg55pforwywsw0xxqcvwkvtoomgxe20edkiyaucqsygsiy1m9pcehpn4148nfvi2pmbewm8qgjigu57bnry0bwnje0ulh+65zhyt4neyupstkagavokg6fneb3zfbs5imgpwyv4lithi4x2a8adg5vrhna1tx3228g6p/fju6qhqqcl/zdrkqxdo56u3wn8pe4ga/fhua/wvrl2xtc/gctxbszevjvliyg9wwqbuer2fhylfwccbafs41fjqtaqpjgha0abxbfgqgrlxx3q7mnamd23aanx7lmcmesewe3ocw/tvd0kzrkktczkoivulryft9izrlqxn97xxr+pjbxzri8errvtucyut9o1mz248tz4vsqm66rmelwebi5mrhkvfajkgcoexxjwvmc6oom+4cbqrntp2rdrv+mghlfu9/qvqtwhfott0x1mdxfuaype45wadunh/0x/8hj4nefpaiz3ubw/1urmgnvuav0rak0ds0rb/rmroh5i28794p76e/6u/4a3+vc13xrnkeowvmh/0gfb8bjw==

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 22 (20.7.2016) Greedy Algorithmen - Datenkompression Algorithmen und Komplexität Greedy Algorithmen Greedy Algorithmen sind eine Algorithmenmethode,

Mehr

Effiziente Algorithmen und Komplexitätstheorie

Effiziente Algorithmen und Komplexitätstheorie 1 Effiziente lgorithmen und Komplexitätstheorie Vorlesung Thomas Jansen 29.06.2006 2 Burrows-Wheeler-Kompression: Verbesserungen dreischrittiges Kompressionsverfahren Burrows- Wheeler- Transformation Globale

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung

Informatik III. Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 8. Vorlesung 17.11.2006 schindel@informatik.uni-freiburg.de 1 Prinzip des Kellerautomats Push-Down-Automaton (PDA) Ein Kellerautomat vereinigt

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 16.11.2010 INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Algorithmen auf Sequenzen

Algorithmen auf Sequenzen Algorithmen auf Sequenzen Vorlesung von Prof. Dr. Sven Rahmann im Sommersemester 2008 Kapitel 4 Reguläre Ausdrücke Webseite zur Vorlesung http://ls11-www.cs.tu-dortmund.de/people/rahmann/teaching/ss2008/algorithmenaufsequenzen

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr

Algorithmen und Datenstrukturen (Informatik II) SS Klausur

Algorithmen und Datenstrukturen (Informatik II) SS Klausur Lehrstuhl für Algorith. und Datenstrukturen Prof. Dr. Hannah Bast Axel Lehmann Algorithmen und Datenstrukturen (Informatik II) SS 2013 http://ad-wiki.informatik.uni-freiburg.de/teaching Klausur Mittwoch

Mehr

Einleitung. Kapitel 1

Einleitung. Kapitel 1 Kapitel 1 Einleitung In diesem Abschnitt geben wir einen kurzen Überblick über den Inhalt der Vorlesung. Wir werden kurz die wesentlichen Probleme erläutern, die wir ansprechen wollen. Wir werden auch

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Kapitel 1 Markus Lohrey Universität Leipzig http://www.informatik.uni-leipzig.de/~lohrey/rand WS 2005/2006 Markus Lohrey (Universität Leipzig) Randomisierte Algorithmen WS 2005/2006

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

Suffixautomaten. Stringologie. Weitere mögliche Datenstrukturen, die uns Zugriff auf die Suffixe eines Suchtextes erlauben.

Suffixautomaten. Stringologie. Weitere mögliche Datenstrukturen, die uns Zugriff auf die Suffixe eines Suchtextes erlauben. Suffixautomaten Stringologie Suffix-Bäume Peter Leupold Weitere mögliche Datenstrukturen, die uns Zugriff auf die Suffixe eines Suchtextes erlauben. Etwas grösser als Suffix Arrays, dafür noch effizienterer

Mehr

Datenstrukturen und Algorithmen Beispiellösung zu Heimübungsblatt 7. Abbildung 1: Das Array A als Baum (vgl. Foliensatz 16, Folie 3)

Datenstrukturen und Algorithmen Beispiellösung zu Heimübungsblatt 7. Abbildung 1: Das Array A als Baum (vgl. Foliensatz 16, Folie 3) Aufgabe 3 a) Wir verwenden zur Lösung den Algorithmus Build-Heap 1, dieser verwendet die Funktion Heapify. Unser Array A ist gegeben durch [7, 10,, 5, 5,, 3, 3, 17]. 10 5 5 3 17 7 Abbildung 1: Das Array

Mehr

Algorithmen auf Sequenzen

Algorithmen auf Sequenzen Algorithmen auf Sequenzen Fehlertolerante Mustersuche: Distanz- und Ähnlichkeitsmaße Sven Rahmann Genominformatik Universitätsklinikum Essen Universität Duisburg-Essen Universitätsallianz Ruhr Einführung

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. 2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum

Mehr

Textsuche. Textsuche

Textsuche. Textsuche Textsuche Stringologie Online-Algorithmen Peter Leupold Das allgemeine Problem der Text- oder Mustersuche besteht darin ein (Such-) Muster (pattern) x der Länge m in einem (Such-) Text (text) y der Länge

Mehr

Aufgabe (Schreibtischtest, lexikographische Ordnung)

Aufgabe (Schreibtischtest, lexikographische Ordnung) Aufgabe (Schreibtischtest, lexikographische Ordnung) Führen Sie einen Schreibtischtest für den Algorithmus Bubblesort aus der VL für die folgenden Eingabe-Arrays durch. Geben Sie das Array S nach jedem

Mehr

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g: TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 3 Programm des

Mehr

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem

Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Andreas Moser Dietmar Ebner Christian Schauer Markus Bauer 9. Dezember 2003 1 Einführung Der in der Vorlesung gezeigte Algorithmus für das Steiner

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt

Mehr

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 16 Programm: Einführung

Mehr

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Wortproblem: der CYK-Algorithmus Pumping Lemma für kontextfreie Sprachen

Mehr

Theoretische Informatik. Alphabete, Worte, Sprachen

Theoretische Informatik. Alphabete, Worte, Sprachen Theoretische Informatik Alphabete, Worte, Sprachen Alphabete, Worte, Sprachen 1. Alphabete und Worte Definitionen, Beispiele Operationen mit Worten Induktionsbeweise 2. Sprachen Definition und Beispiele

Mehr

Auswählen nach Rang (Selektion)

Auswählen nach Rang (Selektion) Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)

Mehr