Zeichenketten Benedikt Straßner. Programming Systems Group Martensstr Erlangen Germany
|
|
- Claus Pfaff
- vor 5 Jahren
- Abrufe
Transkript
1 Zeichenketten Benedikt Straßner Programming Systems Group Martensstr Erlangen Germany
2 Übersicht String Matching Algorithmen Naive Stringsuche Knuth Morris Pratt (KMP) Algorithmus Boyer-Moore Algorithmus Rabin-Karp Algorithmus Manacher-Algorithmus Suffix-Tries Suffix-Arrays Zeichenketten Folie 2
3 Naive Stringsuche - Darstellung Suche nach BAUM A B A B A U M A B B A U B B A U M Zeichenketten Folie 3
4 Naive Stringsuche - Code outer: for (int i = 0; i <= text.length - pattern.length; i++) { for (int j = 0; j < pattern.length; j++) { if (text[i + j]!= pattern[j]) continue outer; } return true; } return false; Einfach und intuitiv, aber... O(n m) Zeichenketten Folie 4
5 KMP Algorithmus 1970 entwickelt Benannt nach Donald Knuth, James Morris und Vaughan Pratt Effizientere Variante der naiven Suche Zeichenketten Folie 5
6 KMP Algorithmus Prinzip: Der Suchrahmen kann bei Mismatch meist mehrere Zeichen weiter geschoben werden Bei Wiederholungen des Präfix innerhalb des Pattern kann bei einem Mismatch die Überprüfung folgender Zeichen übersprungen werden 2 Phasen Aufbau einer Präfixtabelle Eigentliche Suche Zeichenketten Folie 6
7 KMP Algorithmus - Aufbau der Präfixtabelle Die Präfixtabelle beschreibt Wiederholungen des Präfixes im Pattern Zu jedem Zeichen des Patterns wird gespeichert, das wievielte Zeichen des Präfixes hintereinander damit wiederholt wird A B C A D A B C E Zeichenketten Folie 7
8 KMP Algorithmus - Aufbau der Präfixtabelle Weitere Beispiele: A A A A A A A 5 6 A B B B B A B C A D A B C A B Zeichenketten Folie 8
9 KMP Algorithmus - Suche Pattern: A B C A B D Text: A B C A B C A B D E A B C A B D A B C A B D Zeichenketten Folie 9
10 KMP Algorithmus - Laufzeit Vorbereitung: O(m) Suche: O(n) Gesamt: O(n + m) Lineare Laufzeit Zeichenketten Folie 10
11 Boyer-Moore Algorithmus 1977 entwickelt Benannt nach Robert Boyer und J Moore Pattern wird wie bei KMP geschoben, allerdings werden 2 verschiedene Strategien angewendet Zeichenketten Folie 11
12 Boyer-Moore Algorithmus Prinzip: 2 verschiedene Strategien (Heuristiken) zur Berechnung der Schiebedistanz werden gleichzeitig verwendet Bad Character Heuristic Good Suffix Heuristic Für beide Strategien wird als Vorbereitung eine Tabelle erstellt Bei jeder Verschiebung wird der größere der beiden Werte verwendet Zeichenketten Folie 12
13 Boyer-Moore Algorithmus - Bad Character Heuristic In der Tabelle wird für jedes Zeichen der Index des letzten Auftretens im Pattern gespeichert Für alle Zeichen des Alphabets muss ein Eintrag angelegt werden! Kommt ein Zeichen im Pattern nicht vor, wird -1 eingetragen Pattern: A B C D D C B C E Tabelle: A B C D E F Zeichenketten Folie 13
14 Boyer-Moore Algorithmus - Bad Character Heuristic Das Pattern wird von hinten beginnend verglichen Bei Mismatch wird das Pattern nach rechts geschoben so lange bis kein Mismatch mehr auftritt Verschiebung = Index im Pattern Wert in Tabelle Zeichenketten Folie 14
15 Boyer-Moore Algorithmus - Bad Character Heuristic Verschiebung = Index im Pattern Wert in Tabelle Pattern: Tabelle: A B C D A D A B C D E Text: A A B A A B C D A D E A B C D A D i = 5; Tabelle B = 1 Verschiebung um 5 1 = 4 A B C D A D Zeichenketten Folie 15
16 Boyer-Moore Algorithmus - Bad Character Heuristic Weiteres Beispiel: Pattern: Tabelle: A B A B A B A B C Text: A A B B A C A B A B A A B A B A B i = 5; Tabelle C = 1 Verschiebung um 5 ( 1) = 6 B A B A B A B Zeichenketten Folie 16
17 Boyer-Moore Algorithmus - Good Suffix Heuristic Bei Mismatch wird der Suchrahmen soweit geschoben, dass das Suffix wieder passt Sehr ähnlich zu KMP, nur mit Suffix statt Präfix A A B C A D E A D E C A D E A D C A D E A D Zeichenketten Folie 17
18 Boyer-Moore Algorithmus - Kombination Es wird in jedem Schritt das Verfahren verwendet, welches die größere Schiebedistanz erlaubt Beide Strategien sind in bestimmten Szenarien ineffektiv, dann kann aber die jeweils andere verwendet werden Laufzeit: Vorbereitung O(m) Worst Case O(n m) Best Case O(n/m) Besonders geeignet, wenn das Alphabet im Vergleich zum Muster sehr groß ist Zeichenketten Folie 18
19 Rabin-Karp Algorithmus 1987 entwickelt Benannt nach Michael Rabin und Richard Karp Vergleicht den Hash des Patterns mit Hashes der Substrings des Suchtextes Zeichenketten Folie 19
20 Rabin-Karp Algorithmus Prinzip: Das Pattern wird gehasht Berechne nacheinander den Hash aller Substrings des Suchtextes Vergleiche jeweils den berechneten Hash mit dem Pattern Überprüfe, ob bei gleichem Hash wirklich der gesuchte String gefunden wurde Die Effektivität des Algorithmus hängt stark mit der Hash- Funktion zusammen Zeichenketten Folie 20
21 Rabin-Karp Algorithmus Hash-Funktion Anforderungen an die verwendete Hashfunktion: Sollte Kollisionen (einigermaßen) vermeiden Muss ein sog. Rolling Hash sein Darf bestimmte Grenzen nicht überschreiten (z.b. INT_MAX) Der Algorithmus ist nur effektiv, wenn ein Rolling Hash verwendet wird: Hash kann bei Veränderung von nur einem Zeichen aus dem vorherigen Hash in O(1) berechnet werden Eine geeignete Hash-Funktion: Rabin-Fingerprint Zeichenketten Folie 21
22 Rabin-Karp Algorithmus Rabin-Fingerprint Jedes Zeichen des Alphabets wird als Ziffer interpretiert Bei mehr als 10 möglichen Zeichen reicht das Dezimalsystem nicht mehr Basis somit z.b. 256 Nach jeder Ziffer wird ein Modulo berechnet, damit die Zahlen klein bleiben Der nächste Hash (nach shift) kann dann einfach berechnet werden: 1. Ziffer entfernen Mit Basis multiplizieren Neue Ziffer hinzufügen Zeichenketten Folie 22
23 Rabin-Karp Algorithmus Rabin-Fingerprint Formel b: Basis (Anzahl möglicher Zeichen) p: Länge des Patterns q: Modulus (Primzahl) t: Suchtext h 0 = ((( t 0 b p 1 mod q) t 1 b p 2 mod q) t p 1 )mod q h i = h i 1 t i 1 b p 1 mod q) b + t[i + p 1])mod q Funktioniert aufgrund der Homomorphie bei Modulo: a mod q b mod q mod q = a b mod q Zeichenketten Folie 23
24 Rabin-Karp Algorithmus - Zusammenfassung Laufzeit: Vorbereitung O(n) Worst Case O(n m) Average Case O(n) Best Case O(n/m) Besonders geeignet, wenn viele verschiedene [gleich lange] Patterns gesucht werden Zeichenketten Folie 24
25 Vergleich von String Matching Algorithmen Algorithmus Preprocessing Average Worst Naive Stringsuche Nicht nötig O(n m) O(n m) KMP O(m) O(n) O(n) Boyer-Moore O(m+k) O(n) O(n m) Rabin-Karp O(m+k) O(n) O(n m) Zeichenketten Folie 25
26 Vergleich von String Matching Algorithmen Naive Stringsuche Ist immer schlecht KMP Immer lineare Laufzeit Boyer-Moore Gut bei großem Alphabet Rabin-Karp Gut, wenn der gleiche Suchstring auf mehrere Patterns überprüft wird Zeichenketten Folie 26
27 Manacher Algorithmus 1975 entwickelt Benannt nach Glenn Manacher Findet den längsten Substring eines Eingabestrings, der ein Palindrom ist Zeichenketten Folie 27
28 Manacher Algorithmus - Naiver Ansatz als Basis A A A B A B A B A Baut auf folgendem naiven Ansatz auf: Betrachte nacheinander jedes Zeichen eines Strings sowie jede Position zwischen Zeichen als Zentrum Überprüfe, ob die benachbarten Zeichen des Zentrums gleich sind Wenn sie gleich sind, überprüfe die jeweils nächsten Zeichen, usw. Gehe alle möglichen Zentren durch und speichere jeweils das längste gefundene Palindrom Problem: O(n²) Zeichenketten Folie 28
29 Manacher Algorithmus Prinzip: Für jedes untersuchte Zentrum wird die Länge des längsten möglichen Palindroms in einer Tabelle gespeichert Das längste Palindrom hat sein Zentrum dann am Index des größten Werts in der Tabelle Ziel: Die Tabelle soll möglichst effizient angelegt werden Dazu wird die Symmetrieeigenschaft von Palindromen ausgenutzt Zeichenketten Folie 29
30 Manacher Algorithmus - Vorgehen Zwischen allen Zeichen sowie am Anfang und Ende wird jeweils ein Füllzeichen eingefügt Dadurch muss nicht mehr zwischen Palindromen gerader und ungerader Länge unterschieden werden Das Füllzeichen darf nicht Teil des Alphabets sein B A B A A B C A # B # A # B # A # A # B # C # A # Zeichenketten Folie 30
31 Manacher Algorithmus - Vorgehen Danach nach und nach die Tabelle ausfüllen Wenn das Zentrum noch NICHT innerhalb eines bekannten Palindroms liegt: Größe des Palindroms durch wiederholte Vergleiche der jeweils angrenzenden Zeichen bestimmen # B # A # B # A # A # B # C # A # Wenn das Zentrum innerhalb eines bekannten Palindroms liegt Es werden 3 Fälle unterschieden, die die Spiegeleigenschaft von Palindromen effektiv ausnutzen Zeichenketten Folie 31
32 Manacher Algorithmus - Vorgehen 1. Fall: Ein Palindrom liegt vollständig innerhalb eines Größeren R' i' Z i R # B # A # B # A # A # B # C # A # X1 Falls i + P i P i = P[i ] < R, dann gilt Zeichenketten Folie 32
33 Manacher Algorithmus - Vorgehen 2. Fall: Ein Palindrom geht über den linken Rand eines anderen hinaus R' i' Z i R # B # A # B # A # A # B # C # A # X1 Falls i + P i > R, dann gilt P i = R i Denn: Sonst wäre ja das Palindrom um Z auch größer Zeichenketten Folie 33
34 Manacher Algorithmus - Vorgehen 3. Fall: Ein Palindrom geht genau bis zum linken Rand eines anderen R' i' Z # B # A # B # A # A # B # A # A # X5 i R Falls i + P i = R, dann gilt P i P i Ob und um wie viel P i größer ist, muss durch Vergleiche überprüft werden Zeichenketten Folie 34
35 Manacher Algorithmus - Zusammenfassung Die Tabelle enthält am Ende das größte Palindrom um jedes Zentrum Das größte Palindrom insgesamt ist dann also um die größte Zahl in der Tabelle herum und kann leicht ausgegeben werden Laufzeit: O(n) Zeichenketten Folie 35
36 Suffix-Tries Trie: Baum-Datenstruktur, die den effektiven Abruf der gespeicherten Daten ermöglichen soll Wortspiel aus Tree und Retrieval Suffix Trie: Enthält alle möglichen Suffixe, die in einem gegebenen Wort vorkommen Es führt immer genau ein Weg von der Wurzel zu einem Blatt Jedes Blatt stellt ein Suffix dar Der Aufbau eines Suffix Tries stellt ein Preprocessing dar, durch das viele Algorithmen effektiv angewendet werden können Zeichenketten Folie 36
37 Suffix-Tries - Beispiel Suffix-Trie für das Wort BANANA banana\0 a na \0 na \0 na\0 \0 na\0 \0 Zeichenketten Folie 37
38 Suffix-Tries - Zusammenfassung Laufzeit Aufbau des Suffix-Tries: O(n) Space: O(n) Viele Anwendungen: Longest Common Substring zweier Strings Pattern Matching Longest Palindrome Substring Longest Repeated Substring Zeichenketten Folie 38
39 Suffix-Arrays Suffix Array: Ein Array aller Suffixe eines Strings Das Array ist sortiert (z.b. alphabetisch) Enthält nicht die eigentlichen Strings sondern nur die Integer Indizes des Anfangs der Substrings Aufbau des Arrays: O(n) Space: O(n) Sehr ähnlich zum Suffix-Trie Suffix-Array kann mithilfe von DFS in O(n) aus einem Suffix- Trie generiert werden Zeichenketten Folie 39
40 Suffix-Arrays - Beispiel Wort mit Indizes: Sortierte Suffixe: B A N A N A \0 6 a\0 5 ana\0 3 anana\0 1 banana\0 0 na\0 4 nana\0 2 6 \0 Suffix-Array: { 6, 5, 3, 1, 0, 4, 2 } Zeichenketten Folie 40
41 Suffix-Arrays - Anwendungen Suffix-Arrays sind nützlich bei: Alle Vorkommen eines Patterns finden (= jedes Suffix finden, dass mit dem Pattern beginnt) Alle Anwendungen des Suffix-Tries Suffix-Array vs. Suffix-Tree Suffix-Array braucht weniger Platz (beide O(n), aber absolut weniger, da nur eine Liste von Integern gespeichert wird) Bestimmte Arten von Pattern Matching sind langsamer in Suffix-Arrays (Patterns mit Wildcards) Zeichenketten Folie 41
42 Quellen Folien der letzten Jahre: KMP: Bayer-Moore Rabin-Karp Manacher Suffix-Tries Suffix-Arrays Zeichenketten Folie 42
43 Vielen Dank für eure Aufmerksamkeit Noch Fragen? [Katze für Bonuspunkte] Zeichenketten Folie 43
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:
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
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
MehrZeichenketten. Von Lisa Marie Dreier. Informatik 2 Programmiersysteme Martensstraße Erlangen
Zeichenketten Von Lisa Marie Dreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt! String-Matching-Algorithmen Allgemeines Naiver Ansatz Knuth-Morris-Pratt-Algorithmus Boyer-Moore-Algorithmus
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
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
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 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)
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
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.......................................
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)
MehrZeichenketten. Hallo Welt für Fortgeschrittene Daniel Wust Informatik 2 Programmiersysteme Martensstraße Erlangen
Zeichenketten Hallo Welt für Fortgeschrittene Daniel Wust 23.04.2013 Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Zeichenketten ASCII Regionsspezifische Erweiterungen Unicode Speicherung
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
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 und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2014 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Entartete Suchbäume. Beispiel: Balancieren von Suchbaum. Wintersemester 2012/13
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Fortgeschrittene Datenstrukturen Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 8 Such-Algorithmen
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
MehrAlgorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 06 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Such-Algorithmen für Wörterbücher. Wörterbuch. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Fortgeschrittene Datenstrukturen Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Such-Algorithmen
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]
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
MehrMathematisches Praktikum - SoSe 2015
Mathematisches Praktikum - SoSe 2015 Prof. Dr. Wolfgang Dahmen Felix Gruber, Igor Voulis Aufgabe 4 Bearbeitungszeit: drei Wochen (bis Freitag, 5. Juni 2015) Mathematischer Hintergrund: String-Matching-Algorithmen,
MehrRückblick: Längste gemeinsame Zeichenkette
aaadg3icdvjdb9mwfhuwbin8bcablxytanngm5rjbjogkvhcc9kq6dapjirhvu3donfmoxvbyn/gff4z/wyngrib48pjjs/98m25tgrbtqndx96kf2f17r21+8gdh48ep1nfehqizakyjjguup0lvipgoywmnwlocgu0swscjsspjf/0aptmmv9iqglijky5n3fgjammg55pforwywsw0xxqcvwkvtoomgxe20edkiyaucqsygsiy1m9pcehpn4148nfvi2pmbewm8qgjigu57bnry0bwnje0ulh+65zhyt4neyupstkagavokg6fneb3zfbs5imgpwyv4lithi4x2a8adg5vrhna1tx3228g6p/fju6qhqqcl/zdrkqxdo56u3wn8pe4ga/fhua/wvrl2xtc/gctxbszevjvliyg9wwqbuer2fhylfwccbafs41fjqtaqpjgha0abxbfgqgrlxx3q7mnamd23aanx7lmcmesewe3ocw/tvd0kzrkktczkoivulryft9izrlqxn97xxr+pjbxzri8errvtucyut9o1mz248tz4vsqm66rmelwebi5mrhkvfajkgcoexxjwvmc6oom+4cbqrntp2rdrv+mghlfu9/qvqtwhfott0x1mdxfuaype45wadunh/0x/8hj4nefpaiz3ubw/1urmgnvuav0rak0ds0rb/rmroh5i28794p76e/6u/4a3+vc13xrnkeowvmh/0gfb8bjw==
MehrMathematisches Praktikum - SoSe 2014
Mathematisches Praktikum - SoSe 2014 Prof. Dr. Wolfgang Dahmen Felix Gruber, M. Sc., Christian Löbbert, M. Sc., Yuanjun Zhang, M. Sc., Klaus Kaiser, M. Sc. Aufgabe 3 Bearbeitungszeit: zwei Wochen (bis
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
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
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
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 20 (23.7.2014) All Pairs Shortest Paths, String Matching (Textsuche) Algorithmen und Komplexität Vorlesungsevaluation Sie sollten alle eine
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
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
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
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:
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:
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
MehrIndexieren und Suchen
Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Indexieren und Suchen Tobias Scheffer Peter Haider Paul Prasse Index-Datenstrukturen, Suchalgorithmen Invertierte Indizes Suffix-Bäume
Mehr8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen
8.4 Suffixbäume Ziel: Datenstruktur, die effiziente Operationen auf (langen) Zeichenketten unterstützt: - Suche Teilzeichenkette (Substring) - Präfix - längste sich wiederholende Zeichenkette -... Anwendungen:
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
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
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:
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
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
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.
Mehr1.5 Boyer-Moore-Algorithmus
1.5 Boyer-Moore-Algorithmus Suche nach Vorkommen von P in T von links nach rechts. In einer Phase erfolgen Vergleiche von rechts nach links. Verschiebungsheuristiken: Bad Character und Good Suffix. Laufzeit:
MehrAlgorithms & Data Structures 2
Algorithms & Data Structures 2 Strings & Pattern Matching WS2017 B. Anzengruber-Tanase (Institute for Pervasive Computing, JKU Linz) (Institute for Pervasive Computing, JKU Linz) STRING SEARCHING Problemstellung:
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
MehrADS: Algorithmen und Datenstrukturen 1
ADS: Algorithmen und Datenstrukturen 1 Teil 13+ɛ Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität
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
MehrADS: Algorithmen und Datenstrukturen 1
ADS: Algorithmen und Datenstrukturen 1 Teil 13 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität
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
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
MehrIndexieren und Suchen
Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Indexieren und Suchen Tobias Scheffer Paul Prasse Michael Großhans Überblick Index-Datenstrukturen Invertierte Indizes Suffix-Bäume
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II Algorithmen zur Textverarbeitung III: D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009,
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
MehrAlgorithmen auf Sequenzen Vorbereitung zur Prüfung
Algorithmen auf Sequenzen Vorbereitung zur Prüfung Dominik Kopczynski Lehrstuhl für Algorithm Engineering (LS11) Fakultät für Informatik TU Dortmund Überblick Zusammenfassung aller Themen Fragen, die in
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
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
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 8. Vorlesung Peter Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Suche in Texten Einführung Suche in dynamischen
Mehr1.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,
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 (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 207 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8
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],
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.
MehrString-Matching-Algorithmen. von. Thomas Kramer
String-Matching-Algorithmen von Thomas Kramer 20.11.2011 1. Problemstellung und Allgemeines String-Matching-Algorithmen sind Algorithmen, die das Finden von Textfragmenten innerhalb einer Zeichenkette
MehrHallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Zeichenketten von Christopher Saloman Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht 1. Was sind Zeichenketten und wofür braucht man sie? 2. Suchen
MehrDAP2-Klausur
DAP2-Klausur 09.10.2004 Vorname : Familienname: Ich studiere (Bitte markieren): Informatik (inkl. angewandte Informatik)/ Lehramt Informatik/Informationstechnik/ Physik/Mathe/Statistik/Sonstiges: Bitte
MehrNon-Standard-Datenbanken
Non-Standard-Datenbanken Zeichenkettenabgleich Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Danksagung Das folgende Präsentationsmaterial wurde von Sven Groppe für das Modul
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Kap. 19: Suffixbäume Faculty of Technology robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Sommer 2011 Bekannte Verfahren zur exakten Suche in Zeichenreihen Exakte
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 8 (13.5.2016) Hashtabellen I Algorithmen und Komplexität Dictionary mit sortiertem Array Laufzeiten: create: O(1) insert: O(n) find: O(log
MehrStud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
MehrTeil VII. Hashverfahren
Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:
MehrIndexieren und Suchen
Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Indexieren und Suchen Tobias Scheffer Index-Datenstrukturen, Suchalgorithmen Invertierte Indizes Suffix-Bäume und -Arrays Signaturdateien
MehrAlgorithmische Bioinformatik
Algorithmische Bioinformatik Suffixbäume Ulf Leser Wissensmanagement in der Bioinformatik Ziele Perspektivenwechsel: Von Online zu Offline-Stringmatching Verständnis von Suffix-Bäumen als Datenstruktur
MehrText Analytics. Referat: Improving Suffix Array Locality for Fast Pattern Matching on Disk
Text Analytics Referat: Improving Suffix Array Locality for Fast Pattern Matching on Disk Nils Alberti & Jürgen Eicher, 12. Juni 2008 Einführung Stringmatching bisher: Analyse des Patterns zum schnellen
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 9. Vorlesung Peter Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Invertierte Listen Nutzung vor allem zur Textsuche
MehrInformatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren Danksagung Das folgende Präsentationsmaterial wurde
MehrTU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume
TU München Hauptseminar: WS 2002 / 2003 Einführung in Suffix - Bäume Bearbeiterin: Shasha Meng Betreuerin: Barbara König Inhalt 1. Einleitung 1.1 Motivation 1.2 Eine kurze Geschichte 2. Tries 2.1 Basisdefinition
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.
MehrGrundlagen der Informatik
Jörn Fischer j.fischer@hs-mannheim.de Willkommen zur Vorlesung Grundlagen der Informatik ADS-Teil Page 2 Überblick Inhalt 1 Eigenschaften von Algorithmen Algorithmenbegriff O-Notation Entwurfstechniken
MehrHashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung
Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 2 Effizienz
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]
MehrHashing II. Übersicht. 1 Hashing und Verkettung. 2 Offene Adressierung
Übersicht Datenstrukturen und Algorithmen Vorlesung 13: 1 Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group https://moves.rwth-aachen.de/teaching/ss-18/dsal/ 2 Effizienz
MehrKlausur Algorithmen und Datenstrukturen II 01. Agust 2016
Technische Universität Braunschweig Sommersemester 2016 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur Algorithmen und Datenstrukturen
MehrADS: Algorithmen und Datenstrukturen 1
ADS: Algorithmen und Datenstrukturen 1 Teil 15: Fragestunde Uwe Quasthoff Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 30. Januar 2018 [Letzte Aktualisierung: 30/01/2018,
Mehr(08 - Einfache Sortierverfahren)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (08 - Einfache Sortierverfahren) Prof. Dr. Susanne Albers Sortieren Motivation, Einführung Datenbestände müssen sehr oft sortiert werden, etwa um
MehrINFORMATIK FÜR BIOLOGEN
Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie
MehrLernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
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
MehrBerühmte Informatiker
Berühmte Informatiker Teil 10: J. Backus & D. E. Knuth 1924-1938- * 03.12.1924 in Philadelphia John Backus Vorzeitiger Abbruch des Studiums der Chemie (1942) und der Medizin (1945) Während der Arbeit als
MehrAlgorithmen und Datenstrukturen (Informatik II) SS Klausur
Lehrstuhl für Algorith. und Datenstrukturen Prof. Dr. Hannah Bast Axel Lehmann Algorithmen und Datenstrukturen (Informatik II) SS 2013 http://ad-wiki.informatik.uni-freiburg.de/teaching Klausur Mittwoch
MehrGrundlegende Algorithmen
ST 430k HEUH (ä.) Volker Heun Grundlegende Algorithmen Einführung in den Entwurf und die Analyse effizienter Algorithmen 2., verbesserte und erweiterte Auflage >( "4.? Einleitung und Grundlagen 1 1.1 Ziele
MehrADS: Algorithmen und Datenstrukturen 1
ADS: Algorithmen und Datenstrukturen 1 Teil 13 Uwe Quasthoff Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 23. Januar 2018 [Letzte Aktualisierung: 22/01/2018, 16:35]
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 8 FS 16
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik. April 0
MehrKlausur Algorithmen und Datenstrukturen II
Technische Universität Braunschweig Sommersemester 2017 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Arne Schmidt Klausur Algorithmen und Datenstrukturen
MehrArrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss
Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei
Mehr