1.5 Boyer-Moore-Algorithmus

Größe: px
Ab Seite anzeigen:

Download "1.5 Boyer-Moore-Algorithmus"

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 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

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

Exakte Suche nach einem Wort

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

Mehr

Algorithmische Bioinformatik 1

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

Mehr

Effiziente Algorithmen 2

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

Mehr

2.2 Der Algorithmus von Knuth, Morris und Pratt

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

Mehr

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

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

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

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

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

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

4.4 Anwendungen von Suffixbäumen und Suffix-Arrays

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

Mehr

Boyer Moore Algorithmus

Boyer 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.

Mehr

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Voronoi-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 :

Mehr

5.4 Der Algorithmus von Boyer und Moore

5.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

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 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

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008

Einwegfunktionen. 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 Ü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

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

Euklidischer Algorithmus

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

Mehr

Praktikum 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 Praktikum Algorithmische Anwendungen WS 2006/07 Ausarbeitung: Schnelle Stringsuchalgorithmen Boyer-Moore und Knuth-Morris-Pratt Team A Rot Daniel Baldes (Nr. 11041002, [email protected]) Holger Pontius

Mehr

String matching: Überblick

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

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Ü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

Mehr

Ein 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.

Ein 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

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1

1. 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

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

Einführung in die Informatik 2

Einfü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 [email protected] Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.

Mehr

Seminar. Algorithmische Geometrie

Seminar. 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.

Mehr

Wann sind Codes eindeutig entschlüsselbar?

Wann 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

Mehr

2. 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 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0

Mehr

19. Dynamic Programming I

19. 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.

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

Berechnung von Abständen

Berechnung 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.

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

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

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

Mehr

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016 Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 [email protected] 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +

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

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

Ordnen 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)

Ordnen 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

Mehr

Algorithmen auf Zeichenketten

Algorithmen auf Zeichenketten Algorithmen auf Zeichenketten Rabin-Karp Algorithmus Christoph Hermes [email protected] Zeichenketten: Rabin-Karp Algorithmus p. 1/19 Ausblick auf den Vortrag theoretische Grundlagen... Zeichenketten:

Mehr

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Voronoi-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

Mehr

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Matchings 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

Mehr

19. Dynamic Programming I

19. 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,

Mehr

Halteproblem/Kodierung von Turing-Maschinen

Halteproblem/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:

Mehr

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

Lö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

Mehr

3.5 Schnelle Fouriertransformation (FFT, DFT)

3.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]

Mehr

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

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

Mehr

Theoretische Informatik

Theoretische 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

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

9. Rekursion. 1 falls n 1 n (n 1)!, andernfalls. Experiment: Die Türme von Hanoi. Links Mitte Rechts. Mathematische Rekursion

9. 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

Mehr

Theoretische Grundlagen der Informatik

Theoretische 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

Mehr

Definition 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) 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,

Mehr

Algorithmen II Vorlesung am

Algorithmen 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

Mehr

Einführung in die Theoretische Informatik

Einfü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:

Mehr

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Algorithmik 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

Mehr

4.9.7 Konstruktion der Suffixbäume

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

Mehr

14. Sortieren II Heapsort. Heapsort. [Max-]Heap 7. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

14. 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