Algorithmen auf Zeichenketten

Größe: px
Ab Seite anzeigen:

Download "Algorithmen auf Zeichenketten"

Transkript

1 Algorithmen auf Zeichenketten Rabin-Karp Algorithmus Christoph Hermes Zeichenketten: Rabin-Karp Algorithmus p. 1/19

2 Ausblick auf den Vortrag theoretische Grundlagen... Zeichenketten: Rabin-Karp Algorithmus p. 2/19

3 Ausblick auf den Vortrag theoretische Grundlagen... Motivation Zeichenketten: Rabin-Karp Algorithmus p. 2/19

4 Ausblick auf den Vortrag theoretische Grundlagen... Motivation...aber in der Praxis? Zeichenketten: Rabin-Karp Algorithmus p. 2/19

5 Ausblick auf den Vortrag theoretische Grundlagen... Motivation...aber in der Praxis? Wahrscheinlichkeitstheoreme Zeichenketten: Rabin-Karp Algorithmus p. 2/19

6 Ausblick auf den Vortrag theoretische Grundlagen... Motivation...aber in der Praxis? Wahrscheinlichkeitstheoreme Ergänzungen Zeichenketten: Rabin-Karp Algorithmus p. 2/19

7 Ausblick auf den Vortrag theoretische Grundlagen... Motivation...aber in der Praxis? Wahrscheinlichkeitstheoreme Ergänzungen Analyse / Demonstration Zeichenketten: Rabin-Karp Algorithmus p. 2/19

8 Ausblick auf den Vortrag theoretische Grundlagen... Motivation...aber in der Praxis? Wahrscheinlichkeitstheoreme Ergänzungen Analyse / Demonstration Literaturangaben Zeichenketten: Rabin-Karp Algorithmus p. 2/19

9 Theorie: Einführung Algorithmus von R.M. Karp und M.O. Rabin 1987 veröffentlicht Zeichenketten: Rabin-Karp Algorithmus p. 3/19

10 Theorie: Einführung Algorithmus von R.M. Karp und M.O. Rabin 1987 veröffentlicht Grundidee: Transformation Vergleich von Zeichenketten Arithmetik Zeichenketten: Rabin-Karp Algorithmus p. 3/19

11 Theorie: Einführung Algorithmus von R.M. Karp und M.O. Rabin 1987 veröffentlicht Grundidee: Transformation Vergleich von Zeichenketten Arithmetik In diesem Vortrag gilt: Σ = {0, 1} binärer Text (Bsp.: ) T : Text m = T Länge d. Textes P : Pattern n = P Länge d. Musters Zeichenketten: Rabin-Karp Algorithmus p. 3/19

12 Theorie: Hashfunktion I Eine Hashfunktion versucht, einen Bereich von Daten durch eine Ganzzahl zu repräsentieren Zeichenketten: Rabin-Karp Algorithmus p. 4/19

13 Theorie: Hashfunktion I Eine Hashfunktion versucht, einen Bereich von Daten durch eine Ganzzahl zu repräsentieren Funktion für das Muster P der Länge n: H(P ) = n i=1 2 n i P (i) Zeichenketten: Rabin-Karp Algorithmus p. 4/19

14 Theorie: Hashfunktion I Eine Hashfunktion versucht, einen Bereich von Daten durch eine Ganzzahl zu repräsentieren Funktion für das Muster P der Länge n: H(P ) = n i=1 2 n i P (i) Beispiel: P = (1101), n = 4 H(P ) = = 13 Zeichenketten: Rabin-Karp Algorithmus p. 4/19

15 Theorie: Hashfunktion II analog gilt für T an der Stelle r: H(T r ) = n i=1 2 n i T (r + i 1) Zeichenketten: Rabin-Karp Algorithmus p. 5/19

16 Theorie: Hashfunktion II analog gilt für T an der Stelle r: H(T r ) = n i=1 2 n i T (r + i 1) Beispiel: T = ( ), r = 3, n = 4 H(T r ) = 13 Zeichenketten: Rabin-Karp Algorithmus p. 5/19

17 Theorie: Hashfunktion II analog gilt für T an der Stelle r: H(T r ) = n i=1 2 n i T (r + i 1) Beispiel: T = ( ), r = 3, n = 4 H(T r ) = 13 Zeichenketten: Rabin-Karp Algorithmus p. 5/19

18 Theorie: Hashfunktion II analog gilt für T an der Stelle r: H(T r ) = n i=1 2 n i T (r + i 1) Beispiel: T = ( ), r = 3, n = 4 H(T r ) = 13 Falls P in T an der Stelle r vorkommt, muss gelten: H(P ) = H(T r ) Zeichenketten: Rabin-Karp Algorithmus p. 5/19

19 Motivation Warum einen solchen Algorithmus verwenden? leichte Erweiterung auf andere Probleme: zweidimensionales Pattern Matching (Bildsuche) Zeichenketten: Rabin-Karp Algorithmus p. 6/19

20 Motivation Warum einen solchen Algorithmus verwenden? leichte Erweiterung auf andere Probleme: zweidimensionales Pattern Matching (Bildsuche) gilt als sicher : Vollständig analysiert mit Hilfe von Beweisen Zeichenketten: Rabin-Karp Algorithmus p. 6/19

21 Motivation Warum einen solchen Algorithmus verwenden? leichte Erweiterung auf andere Probleme: zweidimensionales Pattern Matching (Bildsuche) gilt als sicher : Vollständig analysiert mit Hilfe von Beweisen einfache Implementierung Zeichenketten: Rabin-Karp Algorithmus p. 6/19

22 Fingerprint-Methode I Problem: Der Speicherbereich wird sehr schnell in der Hashfunktion verletzt: unsigned int: 2 32 P < 32 Zeichenketten: Rabin-Karp Algorithmus p. 7/19

23 Fingerprint-Methode I Problem: Der Speicherbereich wird sehr schnell in der Hashfunktion verletzt: unsigned int: 2 32 P < 32 Lösung: Verwendung des Modulo-Operators (%, mod ) mit einer Primzahl p (Fingerprint) Zeichenketten: Rabin-Karp Algorithmus p. 7/19

24 Fingerprint-Methode I Problem: Der Speicherbereich wird sehr schnell in der Hashfunktion verletzt: unsigned int: 2 32 P < 32 Lösung: Verwendung des Modulo-Operators (%, mod ) mit einer Primzahl p (Fingerprint) Somit ergeben sich für die Hashfunktionen: [H p (P ) = H(P ) mod p] [H p (T r ) = H(T r ) mod p] Zeichenketten: Rabin-Karp Algorithmus p. 7/19

25 Fingerprint-Methode I Problem: Der Speicherbereich wird sehr schnell in der Hashfunktion verletzt: unsigned int: 2 32 P < 32 Lösung: Verwendung des Modulo-Operators (%, mod ) mit einer Primzahl p (Fingerprint) Somit ergeben sich für die Hashfunktionen: [H p (P ) = H(P ) mod p] [H p (T r ) = H(T r ) mod p] Aber: Der Bereich der exakten Suche wird verlassen! Zeichenketten: Rabin-Karp Algorithmus p. 7/19

26 Fingerprint-Methode II Problem: H p verletzt vor der mod-operation immer noch den Speicher! Zeichenketten: Rabin-Karp Algorithmus p. 8/19

27 Fingerprint-Methode II Problem: H p verletzt vor der mod-operation immer noch den Speicher! Lösung: Horner-Regel H p (P ) = {[... ({[P (1) 2 mod p + P (2)] 2 mod p + P (3)} 2 mod p + P (4))... ] 2 mod p + P (n)} mod p Zeichenketten: Rabin-Karp Algorithmus p. 8/19

28 Fingerprint-Methode II Problem: H p verletzt vor der mod-operation immer noch den Speicher! Lösung: Horner-Regel H p (P ) = {[... ({[P (1) 2 mod p + P (2)] 2 mod p + P (3)} 2 mod p + P (4))... ] 2 mod p + P (n)} mod p Vorteile: keine Zahl 2p Zeichenketten: Rabin-Karp Algorithmus p. 8/19

29 Fingerprint-Methode II Problem: H p verletzt vor der mod-operation immer noch den Speicher! Lösung: Horner-Regel H p (P ) = {[... ({[P (1) 2 mod p + P (2)] 2 mod p + P (3)} 2 mod p + P (4))... ] 2 mod p + P (n)} mod p Vorteile: keine Zahl 2p lineare Berechnung, aber... Zeichenketten: Rabin-Karp Algorithmus p. 8/19

30 Berechnung in linearer Zeit I Problem: Algorithmus läuft insgesamt immer noch in O(nm) Zeichenketten: Rabin-Karp Algorithmus p. 9/19

31 Berechnung in linearer Zeit I Problem: Algorithmus läuft insgesamt immer noch in O(nm) Lösung: Information aus der Berechnung von H(T r 1 ) für H(T r ) nutzen Zeichenketten: Rabin-Karp Algorithmus p. 9/19

32 Berechnung in linearer Zeit I Problem: Algorithmus läuft insgesamt immer noch in O(nm) Lösung: Information aus der Berechnung von H(T r 1 ) für H(T r ) nutzen rekusive Formulierung für H(T r ): H(T r ) = 2 H(T r 1 ) 2 n T (r 1)+T (r + n 1) Zeichenketten: Rabin-Karp Algorithmus p. 9/19

33 Berechnung in linearer Zeit I Problem: Algorithmus läuft insgesamt immer noch in O(nm) Lösung: Information aus der Berechnung von H(T r 1 ) für H(T r ) nutzen rekusive Formulierung für H(T r ): H(T r ) = 2 H(T r 1 ) 2 n T (r 1)+T (r + n 1) mit der Definition von H p (T r ) H p (T r ) = H(T r ) mod p gilt dann... Zeichenketten: Rabin-Karp Algorithmus p. 9/19

34 Berechnung in linearer Zeit II H p (T r ) = [(2 H p (T r 1 ) mod p) (2 n mod p) T (r 1) + T (r + n 1)] mod p Zeichenketten: Rabin-Karp Algorithmus p. 10/19

35 Berechnung in linearer Zeit II H p (T r ) = [(2 H p (T r 1 ) mod p) (2 n mod p) T (r 1) + T (r + n 1)] mod p mit 2 n mod p = 2 (2 n 1 mod p) mod p Zeichenketten: Rabin-Karp Algorithmus p. 10/19

36 Berechnung in linearer Zeit II mit H p (T r ) = [(2 H p (T r 1 ) mod p) (2 n mod p) T (r 1) + T (r + n 1)] mod p 2 n mod p = 2 (2 n 1 mod p) mod p Nun haben wir alles, um einen Algorithmus aufzustellen, der in O(n + m) läuft Zeichenketten: Rabin-Karp Algorithmus p. 10/19

37 Pseudocode 1: RabinKarp (P : Muster, T : Text, p: Primzahl) 2: n P, m T 3: H p (P ) computehash(), H p (T 1 ) computehash() Zeichenketten: Rabin-Karp Algorithmus p. 11/19

38 Pseudocode 1: RabinKarp (P : Muster, T : Text, p: Primzahl) 2: n P, m T 3: H p (P ) computehash(), H p (T 1 ) computehash() 4: if (H p (T 1 ) == H p (P )) then 5: print Match an der Stelle 0 gefunden 6: end if Zeichenketten: Rabin-Karp Algorithmus p. 11/19

39 Pseudocode 1: RabinKarp (P : Muster, T : Text, p: Primzahl) 2: n P, m T 3: H p (P ) computehash(), H p (T 1 ) computehash() 4: if (H p (T 1 ) == H p (P )) then 5: print Match an der Stelle 0 gefunden 6: end if 7: for (i 2) to (m n + 1) do 8: H p (T i ) makeshift(h p (T i 1 )) 9: if (H p (P ) == H p (T i )) then 10: print Match an der Stelle, i, gefunden 11: end if 12: end for Zeichenketten: Rabin-Karp Algorithmus p. 11/19

40 false matches Wie schon erwähnt, gilt H p (P ) H p (T r ) aber H p (T r ) H p (P ) (false match) Zeichenketten: Rabin-Karp Algorithmus p. 12/19

41 false matches Wie schon erwähnt, gilt H p (P ) H p (T r ) aber H p (T r ) H p (P ) (false match) Zwickmühle: p klein: Effiziente Berechnung p groß: geringe Wahrscheinlichkeit eines false matches Zeichenketten: Rabin-Karp Algorithmus p. 12/19

42 false matches Wie schon erwähnt, gilt H p (P ) H p (T r ) aber H p (T r ) H p (P ) (false match) Zwickmühle: p klein: Effiziente Berechnung p groß: geringe Wahrscheinlichkeit eines false matches Wie muss p gewählt werden? Wahrscheinlichkeitsrechnung Zeichenketten: Rabin-Karp Algorithmus p. 12/19

43 The Central Theorem I Definition: Für alle u N gibt π(u) die Anzahl der Primzahlen u an Zeichenketten: Rabin-Karp Algorithmus p. 13/19

44 The Central Theorem I Definition: Für alle u N gibt π(u) die Anzahl der Primzahlen u an Beispiel: u = 29 π(u) = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29} = 10 Zeichenketten: Rabin-Karp Algorithmus p. 13/19

45 The Central Theorem I Definition: Für alle u N gibt π(u) die Anzahl der Primzahlen u an Beispiel: u = 29 π(u) = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29} = 10 Das zentrale Theorem von Rabin&Karp: (w sei die Wahrscheinlichkeit, dass ein false match auftritt) (n m) 29: I N: p I: w π(nm) π(i) Zeichenketten: Rabin-Karp Algorithmus p. 13/19

46 The Central Theorem II Beispiel: Wähle n = 250, m = und I = 2 31 (max. Speicherbereich für int in der Horner-Regel) π(nm) π(i) 0, 0017 Zeichenketten: Rabin-Karp Algorithmus p. 14/19

47 The Central Theorem II Beispiel: Wähle n = 250, m = und I = 2 31 (max. Speicherbereich für int in der Horner-Regel) π(nm) π(i) 0, 0017 Die Wahrscheinlichkeit, dass ein false match auftritt, beträgt 0.1%! Zeichenketten: Rabin-Karp Algorithmus p. 14/19

48 Erweiterung: Mehrere Primzahlen eine Primzahl ist gut, mehrere sind besser... Wähle p 1, p 2,..., p k I zufällig und berechne k Fingerprints Zeichenketten: Rabin-Karp Algorithmus p. 15/19

49 Erweiterung: Mehrere Primzahlen eine Primzahl ist gut, mehrere sind besser... Wähle p 1, p 2,..., p k I zufällig und berechne k Fingerprints Wahrscheinlichkeit w eines false matches: w [ ] k π(nm) Exponentielle Verringerung! π(i) Zeichenketten: Rabin-Karp Algorithmus p. 15/19

50 Erweiterung: Mehrere Primzahlen eine Primzahl ist gut, mehrere sind besser... Wähle p 1, p 2,..., p k I zufällig und berechne k Fingerprints Wahrscheinlichkeit w eines false matches: w [ ] k π(nm) Exponentielle Verringerung! π(i) Somit ergibt sich mit k = 4 für das Beispiel: [ ] 4 π(nm) w 9, π(i) Zeichenketten: Rabin-Karp Algorithmus p. 15/19

51 Erweiterung: Mehrere Primzahlen aber man kann die Schranke nach Rabin&Karp noch weiter heruntersetzen: w m [ π(n) π(i) ] k Zeichenketten: Rabin-Karp Algorithmus p. 16/19

52 Erweiterung: Mehrere Primzahlen aber man kann die Schranke nach Rabin&Karp noch weiter heruntersetzen: w m [ π(n) π(i) ] k daraus folgt für das Beispiel: w 6, Zeichenketten: Rabin-Karp Algorithmus p. 16/19

53 Erweiterung: Mehrere Primzahlen aber man kann die Schranke nach Rabin&Karp noch weiter heruntersetzen: w m [ π(n) π(i) ] k daraus folgt für das Beispiel: w 6, ein false match kann damit praktisch ausgeschlossen werden Zeichenketten: Rabin-Karp Algorithmus p. 16/19

54 Analyse Der eigentliche Algorithmus läuft in O(n + m) = Θ(n + m) Zeichenketten: Rabin-Karp Algorithmus p. 17/19

55 Analyse Der eigentliche Algorithmus läuft in O(n + m) = Θ(n + m) Mit der Primzahlenerweiterung: O(k (n + m)) Zeichenketten: Rabin-Karp Algorithmus p. 17/19

56 Analyse Der eigentliche Algorithmus läuft in O(n + m) = Θ(n + m) Mit der Primzahlenerweiterung: O(k (n + m)) Um eine exakte Suche durchzuführen, müssen die Ergebnisse noch zusätzlich getestet werden. Zeichenketten: Rabin-Karp Algorithmus p. 17/19

57 Analyse Der eigentliche Algorithmus läuft in O(n + m) = Θ(n + m) Mit der Primzahlenerweiterung: O(k (n + m)) Um eine exakte Suche durchzuführen, müssen die Ergebnisse noch zusätzlich getestet werden. Insgesamt also wesentlich schlechter als BMH oder KMP! Sie laufen sogar in sublinearer Zeit und sind exakt Zeichenketten: Rabin-Karp Algorithmus p. 17/19

58 Analyse Der eigentliche Algorithmus läuft in O(n + m) = Θ(n + m) Mit der Primzahlenerweiterung: O(k (n + m)) Um eine exakte Suche durchzuführen, müssen die Ergebnisse noch zusätzlich getestet werden. Insgesamt also wesentlich schlechter als BMH oder KMP! Sie laufen sogar in sublinearer Zeit und sind exakt Allerdings kann zu jeder Eingabe eine treffende Aussage über das Verhalten gemacht werden Zeichenketten: Rabin-Karp Algorithmus p. 17/19

59 Demonstration Und nun das Ganze in Action..! Zeichenketten: Rabin-Karp Algorithmus p. 18/19

60 Literatur D. Gusfield: Algorithms On Strings, Trees And Sequences Cambridge University Press, 1997 R. Karp / M. Rabin: Effizient Randomized Pattern-Matching Algorithms Journal of Res. and Dev., 1987 T. H. Cormen: Introduction to Algorithms The MIT Press, 1990 Zeichenketten: Rabin-Karp Algorithmus p. 19/19

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

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

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

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

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

Mathematik für Informatiker II (Maikel Nadolski)

Mathematik für Informatiker II (Maikel Nadolski) Lösungen zum 4. Aufgabenblatt vom Mittwoch, den 02.Mai 2012 zur Vorlesung Mathematik für Informatiker II (Maikel Nadolski) 1. Reelles Betrachten Sie die folgenden beiden Mengen reeller Zahlen: S = { m

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

Bioinformatik Für Biophysiker

Bioinformatik Für Biophysiker Bioinformatik Für Biophysiker Sommersemester 2009 Silke Trißl / Ulf Leser Wissensmanagement in der Bioinformatik Wissensmanagement in der Bioinformatik Schwerpunkte Algorithmen der Bioinformatik Management

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

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

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

INFORMATIK FÜR BIOLOGEN

INFORMATIK FÜR BIOLOGEN Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie

Mehr

Algorithmische Kryptographie

Algorithmische Kryptographie Algorithmische Kryptographie Walter Unger Lehrstuhl für Informatik I 16. Februar 2007 Public-Key-Systeme: Rabin 1 Das System nach Rabin 2 Grundlagen Körper Endliche Körper F(q) Definitionen Quadratwurzel

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

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 11 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität

Mehr

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

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

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

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

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

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

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

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

3. Übung Algorithmen I

3. Übung Algorithmen I INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Hashtabellen:

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

Probabilistische Primzahltests

Probabilistische Primzahltests 23.01.2006 Motivation und Überblick Grundsätzliches Vorgehen Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl

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

Der Primzahltest von Agrawal, Kayal und Saxena. Dr. Gerold Jäger

Der Primzahltest von Agrawal, Kayal und Saxena. Dr. Gerold Jäger Der Primzahltest von Agrawal, Kayal und Saxena Dr. Gerold Jäger Habilitationsvortrag Christian-Albrechts-Universität zu Kiel Institut für Informatik 19. Januar 2011 Dr. Gerold Jäger Habilitationsvortrag

Mehr

Bioinformatik Für Biophysiker

Bioinformatik Für Biophysiker Bioinformatik Für Biophysiker Wintersemester 2005 / 2006 Ulf Leser Wissensmanagement in der Bioinformatik Wissensmanagement in der Bioinformatik Lehrstuhl seit 10/2002 Schwerpunkte Algorithmen der Bioinformatik

Mehr

Vorlesung Sicherheit

Vorlesung Sicherheit Vorlesung Sicherheit Dennis Hofheinz ITI, KIT 12.05.2014 1 / 26 Überblick 1 Hashfunktionen Erinnerung Angriffe auf Hashfunktionen Zusammenfassung Hashfunktionen 2 Asymmetrische Verschlüsselung Idee Beispiel:

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Zahlentheorie, Arithmetik und Algebra 1 Florian Habur Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Modulare Arithmetik Rechenregeln Fast Exponentiation

Mehr

4. Übung zu Algorithmen I 17. Mai 2017

4. Übung zu Algorithmen I 17. Mai 2017 4. Übung zu Algorithmen I 17. Mai 2017 Björn Kaidel [email protected] (mit Folien von Julian Arz, Timo Bingmann, Lisa Kohl, Christian Schulz, Sebastian Schlag und Christoph Striecks) Organisatorisches

Mehr

Vorlesung Sicherheit

Vorlesung Sicherheit Vorlesung Sicherheit Dennis Hofheinz ITI, KIT 15.05.2017 1 / 25 Überblick 1 Hashfunktionen Angriffe auf Hashfunktionen Zusammenfassung Hashfunktionen 2 Asymmetrische Verschlüsselung Idee Beispiel: RSA

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

Algorithmische Geometrie Thema: Konvexe Hüllen

Algorithmische Geometrie Thema: Konvexe Hüllen Algorithmische Geometrie Thema: Konvexe Hüllen Christoph Hermes [email protected] 17. Juni 2003 Ausblick auf den Vortrag 1/32 1 Was sind konvexe Hüllen? Wozu braucht man sie? Wie kann man sie berechnen

Mehr

8. Mustersuche in Zeichenketten

8. Mustersuche in Zeichenketten 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],

Mehr

Lineare Kongruenzgeneratoren und Quicksort

Lineare Kongruenzgeneratoren und Quicksort Seminar Perlen der theoretischen Informatik Dozenten: Prof. Johannes Köbler und Olaf Beyersdorff Lineare Kongruenzgeneratoren und Quicksort Ausarbeitung zum Vortrag Mia Viktoria Meyer 12. November 2002

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

Knuth Morris Pratt Algorithmus

Knuth Morris Pratt Algorithmus Knuth Morris Pratt Algorithmus PS: Stringmatching Algorithmen in C Dozent: Max Hadersbeck Referentinnen: Joanna Rymarska, Alfina Druzhkova Datum: 5.07.2006 Folien: www.cip.ifi.lmu.de/~droujkov Agenda Historisches

Mehr

String-Matching-Algorithmen. von. Thomas Kramer

String-Matching-Algorithmen. von. Thomas Kramer String-Matching-Algorithmen von Thomas Kramer 20.11.2011 1. Problemstellung und Allgemeines String-Matching-Algorithmen sind Algorithmen, die das Finden von Textfragmenten innerhalb einer Zeichenkette

Mehr

Probabilistische Algorithmen

Probabilistische Algorithmen Proseminar Theoretische Informatik 02.02.2016 Diane Hanke, Alexander Korzec Probabilistische Algorithmen Wolfgang Mulzer 1 Einführung 1.1 Probabilistischer Algorithmus Definition 1. [Probabilistischer

Mehr

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln. 4.4 Perfektes Hashing Das Ziel des perfekten Hashings ist es, für eine Schlüsselmenge eine Hashfunktion zu finden, so dass keine Kollisionen auftreten. Die Größe der Hashtabelle soll dabei natürlich möglichst

Mehr

Berechenbarkeitstheorie 19. Vorlesung

Berechenbarkeitstheorie 19. Vorlesung 1 Berechenbarkeitstheorie Dr. Institut für Mathematische Logik und Grundlagenforschung WWU Münster WS 15/16 Alle Folien unter Creative Commons Attribution-NonCommercial 3.0 Unported Lizenz. Erinnerung:

Mehr

Programmieren und Problemlösen

Programmieren und Problemlösen Dennis Komm Programmieren und Problemlösen Komplexität von Algorithmen Frühling 2019 27. Februar 2019 Komplexität von Algorithmen Aufgabe Primzahltest Schreibe ein Programm, das eine ganze Zahl x als Eingabe

Mehr

Zeichenketten. Von Lisa Marie Dreier. Informatik 2 Programmiersysteme Martensstraße Erlangen

Zeichenketten. Von Lisa Marie Dreier. Informatik 2 Programmiersysteme Martensstraße Erlangen Zeichenketten Von Lisa Marie Dreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt! String-Matching-Algorithmen Allgemeines Naiver Ansatz Knuth-Morris-Pratt-Algorithmus Boyer-Moore-Algorithmus

Mehr

Zahlentheorie, Arithmetik und Algebra I

Zahlentheorie, Arithmetik und Algebra I Zahlentheorie, Arithmetik und Algebra I Viktoria Ronge 04.06.2014 Viktoria Ronge Zahlentheorie, Arithmetik und Algebra I 04.06.2014 1 / 63 Übersicht 1 Modulare Arithmetik 2 Primzahlen 3 Verschiedene Teiler

Mehr

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 5. Algorithmen K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 21. Okt. 2015 1. Berechne 2 n. Zu lösende Probleme 2. Berechne die Fakultät einer nat. Zahl: n! = 1 * 2 *... n 3. Entscheide,

Mehr

Theorie der Informatik. Theorie der Informatik P und NP Polynomielle Reduktionen NP-Härte und NP-Vollständigkeit

Theorie der Informatik. Theorie der Informatik P und NP Polynomielle Reduktionen NP-Härte und NP-Vollständigkeit Theorie der Informatik 13. Mai 2015 20. P, NP und polynomielle Reduktionen Theorie der Informatik 20. P, NP und polynomielle Reduktionen 20.1 P und NP Malte Helmert Gabriele Röger 20.2 Polynomielle Reduktionen

Mehr

Übungen zu Algorithmen

Übungen zu Algorithmen Institut für Informatik Universität Osnabrück, 08.11.2016 Prof. Dr. Oliver Vornberger http://www-lehre.inf.uos.de/~ainf Lukas Kalbertodt, B.Sc. Testat bis 16.11.2016, 14:00 Uhr Nils Haldenwang, M.Sc. Übungen

Mehr

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Technische Universität Dortmund Informatik VII (Graphische Systeme) Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Übungsaufgaben zum Vorkurs Informatik Wintersemester 2015/2016 Teil I

Mehr

Randomisierte Algorithmen und probabilistische Analyse

Randomisierte Algorithmen und probabilistische Analyse Randomisierte Algorithmen und probabilistische Analyse S.Seidl, M.Nening, T.Niederleuthner S.Seidl, M.Nening, T.Niederleuthner 1 / 29 Inhalt 1 Randomisierte Algorithmen 2 Probabilistische Analyse S.Seidl,

Mehr

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen 3: Primzahlen 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen Definition 40 (Teiler, Vielfache, Primzahlen, zusammengesetzte Zahlen) Seien a, b N. a ist ein Teiler von b ( a b ), falls es ein k N gibt

Mehr

3: Zahlentheorie / Primzahlen

3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 96 3: Zahlentheorie / Primzahlen 3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 97 Definition 37 (Teiler, Vielfache, Primzahlen,

Mehr

Diskrete Mathematik 1

Diskrete Mathematik 1 Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May M. Ritzenhofen, M. Mansour Al Sawadi, A. Meurer Lösungsblatt zur Vorlesung Diskrete Mathematik 1 WS 008/09 Blatt

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

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. Hallo Welt für Fortgeschrittene Daniel Wust Informatik 2 Programmiersysteme Martensstraße Erlangen

Zeichenketten. Hallo Welt für Fortgeschrittene Daniel Wust Informatik 2 Programmiersysteme Martensstraße Erlangen Zeichenketten Hallo Welt für Fortgeschrittene Daniel Wust 23.04.2013 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Zeichenketten ASCII Regionsspezifische Erweiterungen Unicode Speicherung

Mehr

5. Mustererkennung. Anwendungsbeispiele: suche Zeichenfolge in Text suche Bitmuster in Pixelbild. gegeben: endliches Alphabet Σ. Muster p Σ m, m IN

5. Mustererkennung. Anwendungsbeispiele: suche Zeichenfolge in Text suche Bitmuster in Pixelbild. gegeben: endliches Alphabet Σ. Muster p Σ m, m IN 5. Mustererkennung Anwendungsbeispiele: suche Zeichenfolge in Text suche Bitmuster in Pixelbild gegeben: endliches Alphabet Σ Text t Σ n, n IN Muster p Σ m, m IN gesucht: erste (bzw. jede) Position von

Mehr

Erweiterter Euklidischer Algorithmus

Erweiterter Euklidischer Algorithmus Erweiterter Euklidischer Algorithmus Algorithmus ERWEITERTER EUKLIDISCHER ALG. (EEA) EINGABE: a, b N 1 If (b = 0) then return (a, 1, 0); 2 (d, x, y) EEA(b, a mod b); 3 (d, x, y) (d, y, x a b y); AUSGABE:

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Zahlentheorie, Arithmetik und Algebra Ibrahim Alagoez 22.06.2009 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Motivation Eine Bande von 17 Räubern stahl

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Rheinisch-Westfälische Technische Hochschule Aachen Lehrstuhl für Informatik VI Algorithmen und Datenstrukturen Vorlesungsmitschrift zur Vorlesung im SS 2004 Prof. Dr.-Ing. H. Ney Letzte Überarbeitung:

Mehr