Algorithmen auf Zeichenketten
|
|
|
- Elizabeth Feld
- vor 8 Jahren
- Abrufe
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 = Erkennung von Zeichenketten. Problemstellung & Anwendungen Grundlagen Rabin-Karp Verfahren (basierend auf hashing) String-matching mit endlichen Automaten Knuth-Morris-Pratt
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
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
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.......................................
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
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:
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==
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.
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:
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
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
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:
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
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
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:
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
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
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
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
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
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],
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
Ü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.
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
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
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
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
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
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:
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
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
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
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,
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
Ü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
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
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,
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
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,
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
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
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,
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
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
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:
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
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:
