1.5 Boyer-Moore-Algorithmus
|
|
|
- Reiner Geisler
- vor 6 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,
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
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
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
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
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
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
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
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
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
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:
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.......................................
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)
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.
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 :
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
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 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
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
Ü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.
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.
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
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
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
Ü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
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
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
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
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.
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.
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
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
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.
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
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.
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],
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,
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 +
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
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
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
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:
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
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
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,
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:
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
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]
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
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
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
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
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
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,
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
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:
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
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
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
