1.5 Boyer-Moore-Algorithmus
|
|
- Reiner Geisler
- vor 5 Jahren
- Abrufe
Transkript
1 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: O(mn) im schlechtesten Fall, O(n/σ) im durchschnittlichen Fall. Es gibt Varianten mit Laufzeit O(n) im schlechtesten Fall, O( n log m m ) im durchschnittlichen Fall. R. Stiebe: Textalgorithmen, WS 2003/04 45
2 Bad Character Regel Findet man beim ersten Vergleich das Textsymbol x, so darf man P am Ende der Phase so weit verschieben, daß das rechteste Vorkommen von x in P auf diese Textposition trifft. x x y P P x T R. Stiebe: Textalgorithmen, WS 2003/04 46
3 Good Suffix Regel Teil 1 Stimmt ein Suffix α von P mit dem aktuellen Text überein, so darf man P so weit verschieben, daß das letze Vorkommen von α in P = P [1... m 1] gegenüber dem entsprechenden Text steht. α α α α P P T R. Stiebe: Textalgorithmen, WS 2003/04 47
4 Good Suffix Regel Teil 2 Sollte ein Vorkommen des Suffixes α nicht existieren, so darf man P so weit verschieben, daß das längste Suffix von α, das ein Präfix von P ist, gegenüber dem Ende des aktuellen Textstückes steht. β β P α β P α β T R. Stiebe: Textalgorithmen, WS 2003/04 48
5 Boyer-Moore-Verschiebungsregel Tritt im ersten Vergleich ein Mismatch auf, so verschiebe nach der Bad Character Regel. Anderenfalls verschiebe nach der Good Suffix Regel. Bemerkung: Es gibt zahlreiche Varianten, z.b.: Horspool-Algorithmus: Verschiebe stets nach der Bad Character Regel. R. Stiebe: Textalgorithmen, WS 2003/04 49
6 Formalisierung Definition. Für P Σ mit P = m und x Σ ist R x (P ) := max ({1 i < m : P [i] = x} {0}), d.h., R x (P ) ist das letzte Vorkommen von x in P vor der letzten Stelle von P. Definition. Sei P Σ mit P = m. Für 1 i m sei ( L i (P ) := max {j : m i + 1 j < m P [i... m] = P [j + i m... j]} ) {j : 0 j m i P [m j m] = P [1... j]} l i (P ) := max{j : 0 j m i P [m j m] = P [1... j]}, d.h. l i ist die Länge des längsten echten Suffixes von P [i... m], das Präfix von P ist, und L i ist die letzte Position, an der in P [1... m 1] ein Vorkommen von P [i... m] endet, bzw. l i, falls ein solches Vorkommen nicht existiert. R. Stiebe: Textalgorithmen, WS 2003/04 50
7 Beispiel Für P = ababcbab mit Σ = {a, b, c, d} ergibt sich: x a b c d R x i L i Dies führt zu folgenden Verschiebungen. Suchwort: ababcbab ababcbab ababcbab Textausschnitt:...d......aab...cabcbab... Verschiebung: R. Stiebe: Textalgorithmen, WS 2003/04 51
8 Algorithmus 1.6 Boyer-Moore-Algorithmus Eingabe: Wörter P, T mit P = m, T = n (Die Werte R x und L i für P sind bekannt) Ausgabe: Menge S der Vorkommen von P in T (1) S ; k m; (2) while k n (3) i m; j k; x T [k]; (4) while i 1 and P [i] = T [j] (5) i i 1; j j 1; (6) if i = 0 then S S {k m + 1}; (7) if i = m then k k + m R x ; (8) else k k + m L i+1 ; Satz. Der Boyer-Moore-Algorithmus findet alle Vorkommen von P in T. R. Stiebe: Textalgorithmen, WS 2003/04 52
9 Boyer-Moore-Präprozessing in Linearzeit Algorithmus 1.7 BM-Präprozessing: R x -Werte Eingabe: Wort P Σ, P = m Ausgabe: R x (P ) für x Σ (1) foreach x Σ (2) R x 0; (3) for i 1 to m 1 (4) x P [i]; R x i; Satz. Die Werte R x (P ) können mit einem Aufwand von O(m + σ) bestimmt werden. R. Stiebe: Textalgorithmen, WS 2003/04 53
10 BM-Präprozessing l i -Werte Algorithmus 1.8 BM-Präprozessing: l i -Werte Eingabe: Wort P Σ, P = m Ausgabe: l i (P ) für 1 i m (1) Bestimme die Ränder von P und speichere ihre Längen in fallender Reihenfolge als Stack L; (Das oberste Element von L ist Border(P ), das unterste ist 0.) (2) i 1; (3) while L nicht leer (4) l Pop(L); (5) while l m i (6) l i l; i i + 1; Satz. Algorithmus 1.8 berechnet für ein Wort P der Länge m die Werte l i (1 i m) in einer Zeit von O(m). R. Stiebe: Textalgorithmen, WS 2003/04 54
11 BM-Präprozessing L i -Werte ähnlich zum MP-Algorithmus Verwendung von Rändern (diesmal der Suffixe) offensichtlich: L i (P ) l i (P ) für alle i Definition. Für 1 i P = m sei Border r i (P ) die Länge des längsten Randes von P [i... m]. Offensichtlich: Border r i (P ) = Border m i+1 (P r ), d.h. die Werte Border r i sind in Zeit O(m) berechenbar. R. Stiebe: Textalgorithmen, WS 2003/04 55
12 Algorithmus 1.9 BM-Präprozessing: L i -Werte Eingabe: Wort P Σ, P = m Ausgabe: L i (P ) für 1 i m (1) Berechne Border r i für 1 i m. (2) for i 1 to m (3) L i l i ; (4) i m; k m 1; j k; (5) while j > 0 (6) while j > 0 and P [i] = P [j] (7) if L i < k then L i k; (8) i i 1; j j 1; (9) if j = k then k j 1; j k; i m; (10) else k j + Border r i+1; i m Border r i+1; Satz. Algorithmus 1.9 berechnet für ein Wort P der Länge m die Werte L i (1 i m) in einer Zeit von O(m). R. Stiebe: Textalgorithmen, WS 2003/04 56
13 Laufzeit im schlechtesten Fall Θ(mn) für P = a m, T = a n Laufzeit beträgt Θ(n), falls P nicht in T vorkommt (Knuth, Morris, Pratt) Beweis: siehe [Gusfield], Abschnitt 3.2 lineare Laufzeit bei Beachtung der folgenden Regel Regel von Galil Wurde ein Vorkommen von P in T gefunden, so prüfe in der nächsten Phase höchstens die letzten Per(P ) Zeichen. R. Stiebe: Textalgorithmen, WS 2003/04 57
14 Durchschnittliche Laufzeit des Boyer-Moore-Algorithmus Der Einfachheit halber Betrachtung des Horspool-Algorithmus (Verschiebung immer nach der Bad Character Regel) Comp(m) mittlere Anzahl der Vergleiche in einer Phase Wie bei Naivem Algorithmus: Comp(m) σ σ 1. Shift(m) mittlere Verschiebung nach einer Phase Mittlere Laufzeit: t(m, n) n Comp(m) Shift(m). R. Stiebe: Textalgorithmen, WS 2003/04 58
15 Mittlere Verschiebung Shift(m) Shift(m) = m 1 i=0 p i (i + 1) p i : Wahrscheinlichkeit, daß R x (P ) = m 1 i für zufälliges x Σ und P Σ k. p i = ( ) σ 1 i σ 1 σ für 0 i m 2, p m 1 = ( ) σ 1 m 1 σ Rechnung analog zum Naiven Algorithmus ergibt: Shift(m) σ ( 1 ( 1 1 σ) m ). Folgerung. Shift(m) = Θ(min{σ, m}). Für σ = 100 erhalten wir beispielsweise: m Shift(m) R. Stiebe: Textalgorithmen, WS 2003/04 59
16 Erweiterte Bad Character Regel Bestimme letztes Vorkommen in P für jedes Wort aus Σ q, q 1. Bestimme in jeder Phase die letzten q Textzeichen β und verschiebe P bis zum letzten Vorkommen von β. Definition. Für q 1, α Σ q, P Σ, P = m q sei R α (P ) die rechteste Stelle in P = P [1... m 1], an der ein Vorkommen von α endet oder die Länge des längsten Suffixes von α, das Präfix von P ist, falls α nicht in P auftritt. Erweiterte Bad Character Regel Ergeben die q letzten aktuellen Textzeichen das Wort α, so verschiebe um den Betrag m R α (P ). R. Stiebe: Textalgorithmen, WS 2003/04 60
17 Erweiterte Bad Character Regel Beispiel P = abaababb, q = 3 α aaa aab aba abb baa bab bba bbb R α mittlere Verschiebung für P : ( )/8 = 5. R. Stiebe: Textalgorithmen, WS 2003/04 61
18 Erweiterte Bad Character Regel Laufzeit Zeit für Präprozessing: Θ(m + σ q ) Durchschnittliche Zeit für die Suche Comp(m) q, Shift(m) = Θ(min{m, σ q }) n q t(m, n) = Θ( Optimale Wahl min{m,σ q } ) q = log σ m: t(m, n) = Θ( n log m m ) R. Stiebe: Textalgorithmen, WS 2003/04 62
19 1.6 Apostolico-Giancarlo-Algorithmus Variante des Boyer-Moore-Algorithmus Vergleiche werden eingespart, indem einige gefundene Übereinstimmungen mit dem Text gespeichert werden. Laufzeit im schlechtesten Fall: Θ(n) (relativ einfach nachweisbar) R. Stiebe: Textalgorithmen, WS 2003/04 63
20 Zusätzliches Präprozessing N-Werte Definition. Es sei P ein Wort der Länge m. Für 1 i m 1 sei N i (P ) die Länge des längsten Suffixes von P, das Suffix von P [1... i] ist. Offensichtlich: N i (P ) = Z m i+1 (P r ) für P = m. Beispiel. Für P = ababcbab erhält man i N i R. Stiebe: Textalgorithmen, WS 2003/04 64
21 Speicherung gefundener Übereinstimmungen Jeder Stelle j des Textes wird ein Wert M j zugeordnet, der mit 0 initialisiert ist. Wird in einer Phase des Algorithmus die Stelle k als Ende eines Vorkommens getestet, so wird M k am Ende der Phase derart modifiziert, daß folgende Bedingungen erfüllt sind. (*) P [m M k m] = T [k m k k]. (**) Für alle k M k < j < k gilt j M j k M k. R. Stiebe: Textalgorithmen, WS 2003/04 65
22 Ein Schritt im Algorithmus In einer Phase sei bisher die Übereinstimmung P [i m] = T [j n] festgestellt worden. M j = 0: expliziter Vergleich von P [i] und T [j] (Fälle 1,2) Wir werden zeigen: j liegt in keinem Intervall [l M l + 1, l]. M j 0: kein expliziter Vergleich; weiteres Vorgehen ergibt sich aus N i und M j (Fälle 3,4,5) Fall 1: M j = 0 und P [i] = T [j] Die Phase wird fortgesetzt. i i 1; j j 1; Fall 2: M j = 0 und P [i] T [j]. Die Phase wird beendet; Verschiebung wie beim Boyer-Moore-Algorithmus. Anpassung von M k : M k k j R. Stiebe: Textalgorithmen, WS 2003/04 66
23 Fall 3: N i M j P T Es gilt P [i M j i] = T [j M j j]. Die nächsten M j Vergleiche darf man auslassen. i i M j ; j j M j ; R. Stiebe: Textalgorithmen, WS 2003/04 67
24 Fall 4: M j > N i = i P T Es gilt P [1... i] = T [j i j], d.h. ein Vorkommen von P wurde gefunden. Ende der Phase. Verschiebung wie beim Boyer-Moore-Algorithmus. M k k j; (um Bedingung (**) zu erfüllen). R. Stiebe: Textalgorithmen, WS 2003/04 68
25 Fall 5: M j > N i i > N i P T Es gilt P [i N i i] = T [j N i j] und P [i N i ] T [j N i ], d.h. das erste Mismatch für die Position k besteht zwischen P [i N i ] und T [j N i ]. Ende der Phase. Verschiebung wie beim Boyer-Moore-Algorithmus i i N i ; M k k j; R. Stiebe: Textalgorithmen, WS 2003/04 69
26 Algorithmus 1.10 Apostolico-Giancarlo-Algorithmus Eingabe: Wörter P, T mit P = m, T = n (Die Werte R x, L i und N i für P sind bekannt) Ausgabe: Menge S der Vorkommen von P in T (1) Initialisiere M j 0 für 1 j n; (2) S ; k m; (3) while k n (4) i m; j k; x T [k]; stop false ; (5) while i 1 and not stop (6) if T j = 0 and P [i] = T [j] then i i 1; j j 1; (7) if T j = 0 and P [i] T [j] then stop true ; (8) if T j 0 and N i M j then i i M j ; j j M j ; (9) if T j 0 and M j > N i = i then i 0; (10) if T j 0 and M j > N i and i > N i then i i N i ; stop true ; (11) M k k j; if i = 0 then S S {k m + 1}; (12) if i = m then k k + m R x ; (13) else k k + m L i+1 ; R. Stiebe: Textalgorithmen, WS 2003/04 70
27 Korrektheit und Laufzeit des Algorithmus Lemma. 1. Vor und nach jedem Schritt gilt (a) P [i m] = T [k m + i k] und m i k j, (b) j l M l für alle l > j. 2. Zu jedem Zeitpunkt erfüllen die Werte von M 1, M 2,..., M n die Bedingungen (*) und (**). 3. Am Ende jeder Phase ist der Wert von i die Stelle in P mit dem ersten Mismatch. Satz. Der Apostolico-Giancarlo-Algorithmus findet alle Vorkommen von P in T mit einer Laufzeit von O(m). R. Stiebe: Textalgorithmen, WS 2003/04 71
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,
MehrKapitel 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
MehrTextalgorithmen. (Theoretische Informatik 2 im Fernstudium Informatik) Ralf Stiebe Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg
Textalgorithmen (Theoretische Informatik 2 im Fernstudium Informatik) Ralf Stiebe Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg Vorlesung im Sommersemester 25 R. Stiebe: Textalgorithmen,
Mehr1.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
MehrExakte 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
MehrAlgorithmische 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
MehrEffiziente 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
MehrKapitel 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
Mehr2.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
MehrDer 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
MehrAlgorithmische 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
MehrString - 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
MehrKapitel 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
MehrAlgorithmen 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
MehrSuchen 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
MehrSuche 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
MehrTextsuche. 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
MehrAlgorithmen 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:
MehrAlgorithmische 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
MehrAlgorithmen 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.......................................
MehrAlgorithmische 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
MehrAlgorithmen 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
Mehr4.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)
MehrBoyer Moore Algorithmus
LMU, CIS, SoSe 2006 Veranstaltung: Programmierung von Stringmatchingalgorithmen in C Kursleiter: Max Hadersbeck Referenten: Galina Hinova Stefan Partusch Andreas Neumann Die Erfinder J Strother Moore J.
MehrInformatik 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
MehrVoronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :
Mehr5.4 Der Algorithmus von Boyer und Moore
Kapitel 5 Textalgorithmen 5.4 Der Algorithmus von Boyer und Moore Ziel: Finden aller Vorkommen eines Musters P P[1..m] über einem Alphabet Σ in einem Text S S[1..n]. Dies ist die gleiche Aufgabe wie beim
MehrInformatik 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)
MehrInformatik 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)
MehrInformatik 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)
Mehr11. Suchen in Texten. Prof. Dr. O. Bittel, HTWG Konstanz Algorithmen und Datenstrukuren Suchen in Texten SS
11. Suchen in Texten Problemstellung Naive Suche Heuristische Suche Knuth-Morris-Pratt-Algorithmus Boyer-Moore-Algorithmus Karp-Rabin-Algorithmus Approximative Suche Literatur Prof. Dr. O. Bittel, HTWG
MehrZeichenketten. 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:
MehrZeichenketten 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
MehrEinwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008
Problemseminar Komplexitätstheorie und Kryptographie Martin Huschenbett Student am Institut für Informatik an der Universität Leipzig 30. Oktober 2008 1 / 33 Gliederung 1 Randomisierte Algorithmen und
MehrÜ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.
MehrAlgorithmen 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.
MehrEuklidischer 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
MehrPraktikum Algorithmische Anwendungen WS 2006/07 Ausarbeitung: Schnelle Stringsuchalgorithmen Boyer-Moore und Knuth-Morris-Pratt
Praktikum Algorithmische Anwendungen WS 2006/07 Ausarbeitung: Schnelle Stringsuchalgorithmen Boyer-Moore und Knuth-Morris-Pratt Team A Rot Daniel Baldes (Nr. 11041002, ai688@gm.fh-koeln.de) Holger Pontius
MehrAlgorithmen 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
MehrString 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
MehrZeichenketten. 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
MehrUniversität Bremen. Textsuche. Thomas Röfer. Naive Suche Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuche Editierdistanz
Textsuche Thomas Röfer Naive Suche Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuche Editierdistanz Rückblick Graphenalgorithmen Scan-Line-Prinzip Adjazenzmatrix Adjazenzlisten
MehrInformatik 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
MehrAlgorithmen 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Übung zur Vorlesung Berechenbarkeit und Komplexität
RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein
MehrProseminar 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
MehrRange-Search. Operationen: Welche Datenstrukturen sind geeignet? Arrays? Listen? AVL-Bäume? Splay-Bäume?
Algorithmische Geometrie Die Technik der Sweepline Range-Search (Folie 431, Seite 79 im Skript) Operationen: 1 Einfügen einer Zahl x 2 Löschen einer Zahl x 3 Ausgabe aller gespeicherter Zahlen in [a, b]
MehrEin sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.
2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert
MehrAlgorithmische Anwendungen WS 2005 / Praktikum
Algorithmische Anwendungen WS 2005 / 2006 Praktikum Prof. Dr. Heiner Klocke Thema: Erweiterungen und Verbesserungen des Boyer-Moore-String-Searching- Algorithmus Sabrina Hackl 110 275 30 Gruppe D gelb
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner. Musterlösung Problem : Average-case-Laufzeit vs. Worst-case-Laufzeit ** (a) Im schlimmsten Fall werden für jedes Element
MehrZeichenketten. 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
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Suchen in Texten Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.
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 6 Paradigmen Übersicht 5 Editdistanz (Folie 446, Seite 83 im Skript) Eingabe: Zwei Strings v und w Frage: Kommt
MehrSeminar. Algorithmische Geometrie
Seminar Algorithmische Geometrie WS 2000/2001 Thema: Konvexe Hülle Mirko Dennler 21439 Inhaltsverzeichnis Konvexe Hülle 1. Problemstellung 3 2. GRAHAMS SCAN 4-5 3. JARVIS' MARCH 5-6 4. QUICK HULL 6-7 5.
MehrInformatik 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:
MehrWann sind Codes eindeutig entschlüsselbar?
Wann sind Codes eindeutig entschlüsselbar? Definition Suffix Sei C ein Code. Ein Folge s {0, 1} heißt Suffix in C falls 1 c i, c j C : c i = c j s oder 2 c C und einen Suffix s in C: s = cs oder 3 c C
Mehr2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung
2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrKnuth 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
MehrProportional Symbol Maps
Proportional Symbol Maps Florian Simon 8. Dezember, 2009 Proportional Symbol Maps Gegeben: Punkte p 1,..., p n R 2 mit zugeordneten Werten w 1,..., w n R Proportional Symbol Maps Gegeben: Punkte p 1,...,
MehrVorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 22.04.2014 Überlagern von Kartenebenen Beispiel: Gegeben zwei verschiedene Kartenebenen,
MehrBerechnung von Abständen
3. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 3.4. Es sei G = (V, E) ein Graph. Der Abstand d(v, w) zweier Knoten v, w V ist die minimale Länge eines Weges von v nach w.
Mehr8. 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],
MehrPraktikum BKSPP: Blatt 2
Praktikum BKSPP: Blatt 2 PD Dr. David Sabel WS 2014/15 Zeichenbasierte Komprimierung Stringersatzverfahren Codebäume Huffman-Kodierung Zeichenbasierte Komprimierung mit Codebäumen Idee: Kodiere jedes Zeichen
MehrAbgabe: (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,
MehrAlgorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016
Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 e0926364@student.tuwien.ac.at 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +
MehrProbabilistische 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
MehrDiskrete 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
MehrOrdnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität): Ordnen Sie die folgenden Funktionen nach
MehrAlgorithmen 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:
MehrADS: Algorithmen und Datenstrukturen 1
ADS: Algorithmen und Datenstrukturen 1 Teil 12 Uwe Quasthoff Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 16. Januar 2018 [Letzte Aktualisierung: 15/01/2018, 15:02]
MehrVoronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.06.2014 1 Das Postamt-Problem b(p, q) = {x 2 R 2 : xp = xq } p q h(p, q) h(q, p) = {x
MehrMatchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)
Praktikum Diskrete Optimierung (Teil 5) 6.05.009 Matchings in Graphen Es sei ein ungerichteter Graph G = (V, E) gegeben. Ein Matching in G ist eine Teilmenge M E, so dass keine zwei Kanten aus M einen
Mehr19. Dynamic Programming I
Fibonacci Zahlen 9. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixettenmultipliation, Matrixmultipliation nach Strassen [Ottman/Widmayer,
MehrHalteproblem/Kodierung von Turing-Maschinen
Halteproblem/Kodierung von Turing-Maschinen Unser Ziel ist es nun zu zeigen, dass das sogenannte Halteproblem unentscheidbar ist. Halteproblem (informell) Eingabe: Turing-Maschine M mit Eingabe w. Frage:
MehrADS: Algorithmen und Datenstrukturen 1
ADS: Algorithmen und Datenstrukturen 1 Teil 12 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität
MehrLemma 185 Mit den zusätzlichen Festlegungen
4.7.2 Stirling-Zahlen der ersten Art Lemma 185 Mit den zusätzlichen Festlegungen und gilt: s 0,0 = 1 s n,k = 0 k 0, n > 0 s n,k = s n 1,k 1 + (n 1) s n 1,k n, k > 0. Diskrete Strukturen 4.7 Abzählkoeffizienten
MehrLösungen zur Vorlesung Berechenbarkeit und Komplexität
Lehrstuhl für Informatik 1 WS 009/10 Prof. Dr. Berthold Vöcking 0.0.010 Alexander Skopalik Thomas Kesselheim Lösungen zur Vorlesung Berechenbarkeit und Komplexität. Zulassungsklausur Aufgabe 1: (a) Worin
MehrTheoretische 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
MehrBerechenbarkeits- und Komplexitätstheorie
Berechenbarkeits- und Komplexitätstheorie Lerneinheit 5: Die Klasse NP Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2015/2016 26.9.2015 Einleitung Thema dieser Lerneinheit
Mehr3.5 Schnelle Fouriertransformation (FFT, DFT)
3.5 Schnelle Fouriertransformation (FFT, DFT) 3.5.1 Grundlagen Ein Polynom P = i a ix i C[x] vom Grad n ist eindeutig durch seine Koeffizienten a i bestimmt, d.h. man hat eine Bijektion {Polynome C[x]
MehrAlgorithmen 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
MehrTheoretische Informatik
Theoretische Informatik Lektion 10: Entscheidbarkeit Kurt-Ulrich Witt Wintersemester 2013/14 Kurt-Ulrich Witt Theoretische Informatik Lektion 10 1/15 Inhaltsverzeichnis Kurt-Ulrich Witt Theoretische Informatik
MehrKryptographische 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
MehrGrundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier
Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik
Mehr9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion
Experiment: Die Türme von Hanoi. Rekursion Mathematische Rekursion, Terminierung, der Aufrufstapel, Beispiele, Rekursion vs. Iteration Links Mitte Rechts Mathematische Rekursion Viele mathematische Funktionen
MehrTheoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 17. Januar 2012 INSTITUT FÜR THEORETISCHE 0 KIT 18.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der
MehrDefinition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An
Definition 4 (Operationen auf Sprachen) Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A 0 = {ɛ}, A n+1 = AA n A = n 0 An A + = n 1 An Beispiel 5 {ab, b}{a, bb} = {aba, abbb,
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 07..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum
MehrAlgorithmen und Datenstrukturen SoSe 2008 in Trier. Henning Fernau Universität Trier
Algorithmen und Datenstrukturen SoSe 2008 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Algorithmen und Datenstrukturen Gesamtübersicht Organisatorisches / Einführung Grundlagen: RAM,
MehrVorlesung 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
MehrKap. 3: Sortieren (3)
Kap. 3: Sortieren (3) Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund 6. VO DAP2 SS 2009 30. April 2009 Überblick Quick-Sort Analyse von Quick-Sort Quick-Sort
MehrEinführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2 Lösungsblatt 2 3. Mai 2 Einführung in die Theoretische Informatik Hinweis:
MehrAlgorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck
Lemma 15 KLP 1 ist genau dann lösbar, wenn das dazugehörige LP KLP 2 eine Lösung mit dem Wert Z = 0 besitzt. Ist Z = 0 für x 0, x 0, dann ist x eine zulässige Lösung von KLP 1. Beweis von Lemma 15: Nach
Mehr4.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
Mehr14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften
Heapsort, Quicksort, Mergesort 14. Sortieren II 14.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 397 398 Heapsort [Max-]Heap 7 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum
Mehr