String Matching 2. Definition Ein Alphabet ist eine nichtleere, endliche Menge S von Zeichen.

Größe: px
Ab Seite anzeigen:

Download "String Matching 2. Definition Ein Alphabet ist eine nichtleere, endliche Menge S von Zeichen."

Transkript

1 1

2 2 1. Strings Definition Ein Alphabet ist eine nichtleere, endliche Menge S von Zeichen. Ein String über S ist eine endliche Folge S = S(1)S(2)...S(n) von Zeichen S(i) aus S, dessen Länge n wir mit S bezeichnen. Der leere String hat keine Zeichen, er hat die Länge 0 und wird mit e bezeichnet. Die Menge aller Strings über S wird mit S* bezeichnet. Die Verkettung zweier Strings S = S(1)...S(n) und T = T(1)...T(m) ist der String ST = S(1)...S(n)T(1)...T(m). Ist S ein String der Länge n und sind i und j Indizes mit 1 i j n, so ist S[i..j] der String S(i)S(i+1)...S(j). Wir nennen ihn einen Teilstring von S mit Startposition i und Endposition j. Einen Teilstring S[1..i] nennen wir ein räfix von S. Ist i < n, so heißt S[1..i] ein echtes räfix von S. Einen Teilstring S[j..n] nennen wir ein Suffix von S. Ist 1 < j, so heißt S[j..n] ein echtes Suffix von S. Eine Teilsequenz von String S = S(1)...S(n) ist ein String der Form S(i 1 )S(i 2 )...S(i k ), für eine (eventuell leere) Indexfolge i 1,i 2,...,i k mit 1 i 1 < i 2 <... < i k n. räfix Teilwort Suffix

3 3 Alphabete, die wir verwenden werden, sind: S binary = {0,1} S decimal = {0,1,2,3,4,5,6,7,8,9} S nucleotides = {A,C,G,T} S amino_acids = {ala, arg, asn, asp, cys, gln, glu, gly, his, ile, leu, lys, met, phe, pro, ser, thr, trp, tyr, val} 2. Algorithmus von Knuth-Morris-ratt ATTERN MATCHING EINGABE Ein String T der Länge n (Text) und ein String der Länge m (attern/suchmuster) AUFGABE Stelle fest, ob ein Teilstring von T ist. Wenn ja, finde eine oder alle Startpositionen von in T. Der triviale Algorithmus M simple legt an das linke Ende von T an und vergleicht die Zeichen von mit den entsprechenden Zeichen von T. Wird eine Stelle mit unterschiedlichen Zeichen gefunden (mismatch), so wird um eine osition nach rechts verschoben und der Vergleich beginnt von vorne. Sind alle Zeichen identisch (match), so wird die Startposition von in T ausgegeben und um eine osition nach rechts verschoben (um das nächste Vorkommen von in T zu suchen). In einem seudocode formuliert:

4 4 INUT string T, ; int i, j; FOR i := 1 to n-m+1 DO IF test(i) THEN output(i); ROCEDURE test(i); BEGIN FOR j := 1 TO m DO IF (j) T(i+j-1) THEN return(false); return(true); Der Algorithmus macht (n-m+1) m Vergleiche, seine Laufzeit ist also O(n m). Wir verwenden dabei die bekannte O-Notation: Definition Seien f: N Æ N und g: N Æ N Funktionen. Wir sagen, dass f = O(g) ist, falls es c > 0 und n 0 Œ N gibt, so dass f(n) c g(n) für alle n n 0 gilt. Effizientere Algorithmen erhalten wir, wenn wir beim Durchschieben des attern durch den Text T gewisse Informationen über mitprotokollieren, die es uns im Falle eines mismatches ermöglichen, weiter durch T hindurchzuschieben, ohne jeweils wieder am Anfang von mit dem erneuten Vergleichen beginnen zu müssen. Hierzu ist eine gewisse Vorverarbeitung von (preprocessing) erforderlich.

5 5 Beispiel: Der Text T ist anananasss und das attern ist ananas : Das erste Anlegen von an T liefert folgende Informationen: matches erster mismatch a n a n a n a s s s a n a n a s Der triviale Algorithmus würde nun von osition 6 auf osition 2 zurückfallen und dort erneut anlegen. Dass dies aber keinen Erfolg bringen kann, kann man ohne Ansehen des Textes T allein schon einer Analyse des Musters und dem aktuellen Textbuchstaben n entnehmen. Das längste Suffix von ananan, welches auch gleichzeitig räfix des bereits gelesenen und erfolgreich mit dem Text gematchten Anfangsstückes anana von ist, ist das Wort anan der Länge 4. Die nächste Chance, ein Vorkommen von zu finden, ist somit 6 4 = 2 ositionen weiter rechts von der ursprünglichen Suchposition von. An dieser Stelle können wir auch bereits 4 erfolgreiche matches aus dem vorherigen Vergleich übernehmen, ohne sie noch einmal explizit durchführen zu müssen. Anders ausgedrückt, wir gehen im Suchtext T an osition 7 einfach weiter, stellen uns dabei aber vor, dass wir das Suchmuster um 6 4 = 2 ositionen nach rechts verschoben haben: matches Hier geht der Vergleich weiter. a n a n a n a s s s a n a n a s a n a n a s maximal viele schon etablierte matches

6 6 Hätten wir statt des längsten ein kürzeres Suffix von ananan gewählt, etwa das Suffix an der Länge 2, das auch ein räfix von anana ist, und hätten wir in Gedanken um 6 2 = 4 ositionen nach rechts verschoben, so hätten wir ein Vorkommen von in T übersprungen: matches Hier geht der Vergleich weiter. a n a n a n a s s s a n a n a s a n a n a s schon etablierte matches Beim Vorwärtsschieben von (in Gedanken) kommt es also im Allgemeinen auf folgendes an: Wenn wir während des aktuellen Vergleichs von mit T bereits q < m viele matches gefunden haben, dann aber das q+1-te Zeichen von mit dem in T an der entsprechenden Stelle gelesenen Zeichen a nicht mehr übereinstimmt (mismatch), so benötigen wir die Länge p des längsten Suffixes von [1..q]a, welches gleichzeitig ein räfix von [1..q] ist: matches mismatch T Dann geht die Suche nach in T rechts von der mismatch-osition in T mit dem in Gedanken um p Felder nach rechts verschobenen Musters mit bereits p erfolgreich gematchten Zeichen weiter.

7 7 matches hier geht die Suche weiter T bereits etablierte matches Der Vorschub p ist dem attern und dem aktuelles Zeichen von T, an dem der erste mismatch aufgetreten ist, zu entnehmen, der restliche Text T spielt hierfür keine Rolle. Man berechnet vor dem Durchsuchen von T für jedes räfix [1..q], das ein potenziell erfolgreich mit T an der aktuellen Suchposition gematches räfix von sein könnte, und für jeden Buchstaben a, der ein potenzieller mismatch-buchstabe an der aktuellen osition in T sein könnte, auf Vorrat den oben beschriebenen Vorschub ( preprocessing von ). Dies lässt sich in Form eines endlichen Automaten angeben. Definition Ein endlicher Automat M ist ein 5-Tupel (Q,S,d,i,F) mit folgenden Bestandteilen: Q ist eine nichtleere endliche Menge (der Zustände) S ist ein Alphabet (der Eingabezeichen) d: Q S Æ Q ist die Überführungsfunktion i Œ Q ist der Initialzustand F Õ Q ist die Finalmenge

8 8 Ein endlicher Automat liest, beginnend im Zustand i, einen String S Zeichen für Zeichen von links nach rechts und verändert in Abhängigkeit vom gelesenen Zeichen gemäß seiner Überführungsfunktion seinen Zustand. Ist der letzte Zustand ein Element von F, so wird S akzeptiert, ansonsten wird S verworfen. Formal lässt sich dies wie folgt definieren: Definition Sei M = (Q,S,d,i,F) ein endlicher Automat. Wir definieren die Funktion d*: Q S* Æ Q als Erweiterung der Funktion d: Q S Æ Q wie folgt: d*(q,e) = q d*(q,as) = d*(d(q,a),s) Der Automat M akzeptiert den String S, falls d*(i,s) Œ F. Der Automat M verwirft den String S, falls d*(i,s) œ F. Die von M akzeptierte Sprache ist die Menge L(M) := { S M akzeptiert S }. Zu einem attern der Länge m über S betrachten wir den endlichen Automaten M := ({0,1,...,m},S,d,0,{m}) mit folgender Überführungsfunktion: d (q,a) := Länge des längsten Suffixes von [1..q]a, das gleichzeitig ein räfix von [1..q] ist

9 9 Für das Suchmuster ananas würde die Überführungsfunktion wie folgt aussehen Anzahl erfolgreich gematchter Zeichen a n a n a s nächstes gelesenes Zeichen im Text a n s sonst Dass wir für jedes Alphabetzeichen eine eigene Zeile berechnen und abspeichern müssen, ist insbesondere vom Aspekt des Speicherplatzverbrauches etwas lästig. Wir werden in Kürze eine alternative, in dieser Hinsicht günstigere und auch etwas einfacher zu analysierende Vorgehensweise betrachten. Die naive Methode, den endliche Automaten M zu erzeugen, würde für alle q von 0 bis m, jedes Zeichen a und alle möglichen Suffixlängen k von 0 bis q das Suffix [q-k+1..q]a mit dem räfix [1..k] vergleichen, bis das maximale k mit [q-k+1..q]a = [1..k] gefunden ist. Das würde O(m 3 ) viele Vergleiche erforderlich machen. Glücklicherweise geht es wesentlich besser, nämlich in O(m) Schritten. 1 Haben wir den endlichen Automaten in O( ) Schritten erzeugt, so können wir mit dem folgenden Algorithmus M finiteautomaton in einem beliebigen Text T in O( T ) Schritten wie folgt nach suchen: 1 Wir werden dies nicht beweisen, sondern in Kürze ein ähnliches reprocessing im nächsten Algorithmus von Knuth, Morris und ratt behandeln. Der interessierte Leser möge das dortige Vorgehen auf die hier vorliegende Situation übertragen.

10 10 INUT string, T; int n, m, q, k ; erzeuge den endlichen Automaten M ; n := T ; m := ; matchanzahl := 0 ; FOR k := 1 TO n DO matchanzahl := d (matchanzahl,t(k)); IF matchanzahl = m THEN output(k m + 1) ; Die Gesamtlaufzeit in O( + T ), also linear in der Eingabelänge. Ein leicht modifiziertes Vorgehen führt zum Algorithmus von Knuth-Morris-ratt. Der Unterschied zum vorigen Algorithmus ist, dass wir allein aus dem attern heraus eine Verschiebetabelle berechnen, die uns sagt, wie weit nach rechts zu verschieben ist, wenn ein Mismatch zwischen und T auftritt. Bei dieser Verschiebung berücksichtigen wir dabei nicht den mismatch-buchstaben a von T. Dies hat den Vorteil, dass wir nicht für alle S vielen Zeichen a (wie oben) Verschiebungen ausrechnen müssen, von denen viele vielleicht im Verlauf des Durchgangs durch den Text T gar nicht auftauchen. Der Nachteil ist, dass wir eventuell etwas zu zaghaft verschieben (zu ositionen, an denen gar nicht auftreten kann, wenn man die Information aus dem Mismatch berücksichtigen würde) und dies deshalb weitere Male durchführen müssen, bis ein nächster Match eintritt. Die Details: Für q =1,..., m sei p (q) die Länge des längsten echten Suffixes von [1..q], das auch räfix von [1..q] ist. Wir müssen dabei echte Suffixe betrachten, weil ansonsten stets p (q) gleich q wäre, also nie weiter geschoben werden würde. Zur Illustration ein Ablauf mit zweimaligem Vorschub:

11 11 mismatch an osition q + 1 T matches Vorschub zur nächsten Matchoption: erneuter mismatch an osition q + 1 T matches Erneuter Vorschub zur nächsten Matchoption: match an osition q + 1 T

12 12 Entweder kommt es an der aktuellen osition q + 1 nach endlich vielen Vorschüben zu einem Match, oder es ist irgendwann einmal das gesamte Muster über die osition q hinweg geschoben worden (erkennbar an p (q) = 0). q p (q) a n a n a s Beispiel einer Tabelle mit den Vorschüben an allen potenziellen mismatch-ositionen Der Algorithmus M Knuth-Morris-ratt arbeitet nun wie folgt: INUT strings und T; int m := ; int n := T ; int matchanzahl := 0 ; int k ; Berechne die Verschiebetabelle von ; FOR k := 1 TO n DO WHILE (matchanzahl > 0 AND (matchanzahl + 1) T(k)) DO matchanzahl := p (matchanzahl); IF (matchanzahl + 1) = T(k) THEN matchanzahl := matchanzahl + 1; IF matchanzahl = m THEN output(k m + 1); matchanzahl := p (matchanzahl);

13 13 Nach Berechnung der Verschiebetabelle von, die wir gleich noch durchführen müssen, wird der Text von links nach rechts einmal durchlaufen; die osition, an der jeweils (in Gedanken) angelegt wird, läuft hinterher. Insgesamt kann höchstens n mal nach rechts verschoben werden, so dass der Gesamtaufwand O(2n) = O(n) ist. Eine alternative Begründung, die aber dasselbe beinhaltet und zum selben Ergebnis führt, erhält man, wenn man den Verlauf der Werte von matchanzahl und k protokolliert und folgendes beachtet: Wenn sich k verändert, dann nur zu k+1; matchanzahl kann bei stagnierendem k mehrmals kleiner werden (auch um mehr als 1), aber höchstens so oft, wie k vorher größer geworden war. Ein typischer Verlauf sieht also wie folgt aus: matchanzahl k Die Berechnung der Verschiebetabelle muss effizient erfolgen; der triviale Algorithmus würde offensichtlich O(m 3 ) Schritte machen. Die Idee ist dieselbe wie im obigen Algorithmus, nur wird nun über sich selbst hinweg geschoben. Bei der Berechnung von p (q) für q > 1 ist das längste echte Suffix von [1..q] zu finden, das auch räfix von [1..q] ist. q

14 14 Lassen wir das letzte Zeichen (q) in diesem längsten Suffix weg, so erhalten wir ein echtes Suffix (nicht unbedingt das längste solche) von [1..q-1], welches auch ein räfix von [1..q- 1] ist. q Das längste echtes Suffix von [1..q-1], welches auch ein räfix von [1..q-1] ist, kennen wir aus dem vorigen Schritt des Algorithmus: q Seine Länge ist in einer Variablen matchanzahl gespeichert worden. Wir stellen uns diese Situation wiederum als einen Vorschub von über sich selbst vor: q-1 matchanzahl

15 15 Wir beginnen also mit diesem Vorschub und testen, ob auch noch ein Match an der Stelle q vorliegt. Nach endlich vielen Mismatches an der Stelle q und jeweils weiteren Vorschüben, die wir unter Verwendung der bereits berechneten Werte p (1,),..., p (q-1) bestimmen können, gelangen wir entweder einmal zu einem match an der Stelle q, oder das Vorschieben endet mit matchanzahl = 0. In ersterem Fall wird matchanzahl um 1 vergrößert. Am Ende enthält die Variable matchanzahl wiederum den korrekten Wert, nämlich p (q). INUT string ; int matchanzahl := 0; int m := ; int q; p (1) := 0; FOR q := 2 TO m DO WHILE ( matchanzahl > 0 AND (matchanzahl + 1) (q)) DO matchanzahl := p (matchanzahl); IF (matchanzahl + 1) = (q) THEN matchanzahl := matchanzahl + 1; p (q) := matchanzahl; Zur Illustration die Berechnung von p (q) mit zweimaligem Vorschub, der sich jeweils unter Zuhilfenahme bereits berechneter Werte p (q ) mit q < q ergibt, bei Vorliegen eines mismatches an osition q:

16 16 mismatch an osition q matchanzahl erneuter mismatch an osition q matchanzahl nun match an osition q matchanzahl Die osition q wandert in m Schritten von links nach rechts, wird maximal m mal hinterher geschoben. Der Aufwand für die Berechnung der Verschiebetabelle ist somit O(2m) = O(m).

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

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

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

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

Informatik II, SS 2016

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

Mehr

Informatik II, SS 2014

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

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

Aminosäurenanalytik. Probenvorbereitung Eiweißfällung, Oxidation und Hydrolyse Karl-Heinz Jansen SYKAM CHROMATOGRAPHIE

Aminosäurenanalytik. Probenvorbereitung Eiweißfällung, Oxidation und Hydrolyse Karl-Heinz Jansen SYKAM CHROMATOGRAPHIE Aminosäurenanalytik Probenvorbereitung Eiweißfällung, Oxidation und Hydrolyse Karl-Heinz Jansen SYKAM CHROMATOGRAPHIE Proteinfällung 2 Proteinfällung 3 Proteinfällung 4 Proteinfällung 5 Proteinfällung

Mehr

Informatik II, SS 2016

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

Mehr

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11

Kapitel 1. Exakte Suche nach einem Wort. R. Stiebe: Textalgorithmen, WS 2003/04 11 Kapitel 1 Exakte Suche nach einem Wort R. Stiebe: Textalgorithmen, WS 2003/04 11 Überblick Aufgabenstellung Gegeben: Text T Σ, Suchwort Σ mit T = n, = m, Σ = σ Gesucht: alle Vorkommen von in T Es gibt

Mehr

Informatik II, SS 2018

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

Mehr

Informatik II, SS 2018

Informatik 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

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

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

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

Kapitel 5. Textalgorithmen. 5.1 Grundbegriffe

Kapitel 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

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

Proseminar String Matching

Proseminar 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

Mehr

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

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

1.5 Boyer-Moore-Algorithmus

1.5 Boyer-Moore-Algorithmus 1.5 Boyer-Moore-Algorithmus Suche nach Vorkommen von P in T von links nach rechts. In einer Phase erfolgen Vergleiche von rechts nach links. Verschiebungsheuristiken: Bad Character und Good Suffix. Laufzeit:

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr

Algorithmische Bioinformatik

Algorithmische 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

Mehr

Verfahren zu Strukturvorhersagen in vereinfachten Modellen. Tobias Voigt Sommerakademie 2002 St. Johann

Verfahren zu Strukturvorhersagen in vereinfachten Modellen. Tobias Voigt Sommerakademie 2002 St. Johann Verfahren zu Strukturvorhersagen in vereinfachten Modellen Tobias Voigt Sommerakademie 2002 St. Johann Einführung! Sequenzierung von Proteinen und Nukleinsäuren ist heute Routine! Die räumliche Struktur

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Teil 6: Suche in Zeichenketten Martin Hofmann LFE Theoretische Informatik, Institut für Informatik, Ludwig-Maximilians Universität, München 16. April 2016 Martin Hofmann

Mehr

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

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

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, ai688@gm.fh-koeln.de) Holger Pontius

Mehr

Algorithmen zur exakten Suche in Texten. Algorithmen und Datenstrukturen II 1

Algorithmen 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

Mehr

Zeichenketten. 10. Mai 2017 Simon Bachstein Simon Bachstein Hallo Welt -Seminar - LS 2 Zeichenketten 1

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

Mehr

Suche in Texten. Verschiedene Szenarios: Dynamische Texte. Texteditoren Symbolmanipulatoren. Statische Texte

Suche 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

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

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

Universität Bremen. Textsuche. Thomas Röfer. Naive Suche Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuche Editierdistanz

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

30. Algorithmus der Woche Texte durchsuchen aber schnell Der Boyer-Moore-Horspool-Algorithmus

30. Algorithmus der Woche Texte durchsuchen aber schnell Der Boyer-Moore-Horspool-Algorithmus 30. Algorithmus der Woche Texte durchsuchen aber schnell Der Boyer-Moore-Horspool-Algorithmus Autor Markus E. Nebel, TU Kaiserslautern Viele Objekte, die ein Computer verarbeitet, speichert er intern in

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

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P 11 Woche: Turingmaschinen, Entscheidbarkeit, P 239/ 333 Einführung in die NP-Vollständigkeitstheorie

Mehr

TU München. Hauptseminar: WS 2002 / Einführung in Suffix - Bäume

TU 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

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

Textsuche. Textsuche

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

Mehr

Algorithmen zur exakten Suche in Texten

Algorithmen 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

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

9. Übung zur Einführung in die Informatik (HaF) (Abschnitt IV: Rechnerstrukturen und Betriebssysteme) Musterlösung

9. Übung zur Einführung in die Informatik (HaF) (Abschnitt IV: Rechnerstrukturen und Betriebssysteme) Musterlösung INFO V Bayerische Julius Maximilians Universität Würzburg Lehrstuhl für Technische Informatik Am Hubland 9774 Würzburg Tel. 93 888 7 Fax: 93 888 7 9. Übung zur Einführung in die Informatik HaF Abschnitt

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

Rückblick: Längste gemeinsame Zeichenkette

Rückblick: Längste gemeinsame Zeichenkette aaadg3icdvjdb9mwfhuwbin8bcablxytanngm5rjbjogkvhcc9kq6dapjirhvu3donfmoxvbyn/gff4z/wyngrib48pjjs/98m25tgrbtqndx96kf2f17r21+8gdh48ep1nfehqizakyjjguup0lvipgoywmnwlocgu0swscjsspjf/0aptmmv9iqglijky5n3fgjammg55pforwywsw0xxqcvwkvtoomgxe20edkiyaucqsygsiy1m9pcehpn4148nfvi2pmbewm8qgjigu57bnry0bwnje0ulh+65zhyt4neyupstkagavokg6fneb3zfbs5imgpwyv4lithi4x2a8adg5vrhna1tx3228g6p/fju6qhqqcl/zdrkqxdo56u3wn8pe4ga/fhua/wvrl2xtc/gctxbszevjvliyg9wwqbuer2fhylfwccbafs41fjqtaqpjgha0abxbfgqgrlxx3q7mnamd23aanx7lmcmesewe3ocw/tvd0kzrkktczkoivulryft9izrlqxn97xxr+pjbxzri8errvtucyut9o1mz248tz4vsqm66rmelwebi5mrhkvfajkgcoexxjwvmc6oom+4cbqrntp2rdrv+mghlfu9/qvqtwhfott0x1mdxfuaype45wadunh/0x/8hj4nefpaiz3ubw/1urmgnvuav0rak0ds0rb/rmroh5i28794p76e/6u/4a3+vc13xrnkeowvmh/0gfb8bjw==

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 2011 Übungsblatt 1 16. September 2011 Grundlagen: Algorithmen und

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

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

Greedy Algorithms - Gierige Algorithmen

Greedy Algorithms - Gierige Algorithmen Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2

Mehr

Konstruktion von Suffix Bäumen

Konstruktion von Suffix Bäumen Konstruktion von Suffix Bäumen Prof. Dr. S. Albers Prof. Dr. Th. Ottmann 1 : Impliziter Suffix Baum Definition: Ein impliziter Suffix Baum ist der Baum, den man aus dem Suffix Baum für t$ enthält indem

Mehr

Grundlagen der theoretischen Informatik

Grundlagen der theoretischen Informatik Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 09.04.2013 Inhalt der Vorlesung Teil I: Automaten und formale Sprachen (Kurt Sieber)

Mehr

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier fernau@uni-trier.de 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik

Mehr

Der Satz von Rice. Dann ist C(S) eine unentscheidbare Menge.

Der Satz von Rice. Dann ist C(S) eine unentscheidbare Menge. Der Satz von Rice Satz: Sei R die Klasse der (Turing-) berechenbaren Funktionen, S eine nichttriviale Teilmenge von R und C(S) ={w Mw berechnet eine Funktion aus S}. Dann ist C(S) eine unentscheidbare

Mehr

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.

2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. 2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum

Mehr

Informatik II Precomputation

Informatik 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

Mehr

Dendrogramm der Primaten

Dendrogramm der Primaten Arbeitsblatt 1 Dargestellt ist ein Ausschnitt der DNA-Sequenz für das Enzym NAD- Polymerase, dass bei den Primatenarten Mensch(M), Schimpanse(S), Gorilla(G), Orang-Utan(O) und Gibbon(Gi) vorhanden ist.

Mehr

INFORMATIK FÜR BIOLOGEN

INFORMATIK FÜR BIOLOGEN Technische Universität Dresden 15012015 Institut für Theoretische Informatik Professur für Automatentheorie INFORMATIK FÜR BIOLOGEN Musterklausur WS 2014/15 Studiengang Biologie und Molekulare Biotechnologie

Mehr

Algorithmus: // Zähler für jede Regel. // Initialisierung. // Initialisierung von rhs } // 2 N result = ; // Ergebnis-Menge int count[p];

Algorithmus: // Zähler für jede Regel. // Initialisierung. // Initialisierung von rhs } // 2 N result = ; // Ergebnis-Menge int count[p]; Algorithmus: 2 N result = ; // Ergebnis-Menge int count[p]; // Zähler für jede Regel 2 P rhs[n]; // VorkommeninrechtenSeiten forall (A N) rhs[a] = ; // Initialisierung forall ((A,i) P) { // count[(a,i)]

Mehr

Algorithmen und Datenstrukturen (Informatik II) SS Klausur

Algorithmen und Datenstrukturen (Informatik II) SS Klausur Lehrstuhl für Algorith. und Datenstrukturen Prof. Dr. Hannah Bast Axel Lehmann Algorithmen und Datenstrukturen (Informatik II) SS 2013 http://ad-wiki.informatik.uni-freiburg.de/teaching Klausur Mittwoch

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Effiziente Algorithmen Lösen NP-vollständiger Probleme 320 Approximationsalgorithmen In polynomieller Zeit lässen sich nicht exakte Lösungen von NP-harten Problemen berechnen. Approximationsalgorithmen

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Die mathematische Seite

Die mathematische Seite Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion

Mehr

6 Schaltwerke und endliche Automaten

6 Schaltwerke und endliche Automaten 6 Schaltwerke und endliche Automaten 6.1 Entwicklungsstufen 143 In diesem Abschnitt wird gezeigt, wie das Blockschaltbild aus 1.4 realisiert werden kann. Mithilfe der entwickelten Speicherbausteine und

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

Mathematisches Praktikum - SoSe 2014

Mathematisches 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

Mehr

Die Nerode-Relation und der Index einer Sprache L

Die Nerode-Relation und der Index einer Sprache L Die Nerode-Relation und der Index einer Sprache L Eine zweite zentrale Idee: Sei A ein vollständiger DFA für die Sprache L. Repäsentiere einen beliebigen Zustand p von A durch die Worte in Σ, die zu p

Mehr

Algorithmen und Datenstrukturen in der Bioinformatik Erstes Übungsblatt WS 05/06 Musterlösung

Algorithmen und Datenstrukturen in der Bioinformatik Erstes Übungsblatt WS 05/06 Musterlösung Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Erstes

Mehr

Mathematisches Praktikum - SoSe 2015

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

Mehr

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

Algorithmen II Vorlesung am

Algorithmen II Vorlesung am Algorithmen II Vorlesung am 17.01.013 Parametrisierte Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

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

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

ADS: Algorithmen und Datenstrukturen 1

ADS: 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]

Mehr

5. Übungsblatt zu Algorithmen I im SoSe 2016

5. Übungsblatt zu Algorithmen I im SoSe 2016 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 5. Übungsblatt zu Algorithmen I im SoSe 2016 https://crypto.iti.kit.edu/index.php?id=algo-sose16

Mehr

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen 8.4 Suffixbäume Ziel: Datenstruktur, die effiziente Operationen auf (langen) Zeichenketten unterstützt: - Suche Teilzeichenkette (Substring) - Präfix - längste sich wiederholende Zeichenkette -... Anwendungen:

Mehr

Ausgewählte unentscheidbare Sprachen

Ausgewählte unentscheidbare Sprachen Proseminar Theoretische Informatik 15.12.15 Ausgewählte unentscheidbare Sprachen Marian Sigler, Jakob Köhler Wolfgang Mulzer 1 Entscheidbarkeit und Semi-Entscheidbarkeit Definition 1: L ist entscheidbar

Mehr

3.3 Laufzeit von Programmen

3.3 Laufzeit von Programmen 3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,

Mehr

ADS: Algorithmen und Datenstrukturen 1

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

Mehr

Konstruktion von Suffix Bäumen

Konstruktion von Suffix Bäumen Konstruktion von Suffix Bäumen Prof. Dr. S. Albers Prof. Dr. Th. Ottmann 1 Ukkonen s Algorithmus: Impliziter Suffix Baum Definition: Ein impliziter Suffix Baum ist der Baum, den man aus dem Suffix Baum

Mehr

Aminosäurebestimmung im Kochschinken

Aminosäurebestimmung im Kochschinken 1. Gegenstand der Untersuchung Es wurden 4 verschiedene Kochschinken eines Discounters hinsichtlich deren Gehalt an freien und NPN-gebundenen sowie möglichen Zusätzen untersucht. Darüber hinaus dienen

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen 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

Mehr

Einleitung. Kapitel 1

Einleitung. Kapitel 1 Kapitel 1 Einleitung In diesem Abschnitt geben wir einen kurzen Überblick über den Inhalt der Vorlesung. Wir werden kurz die wesentlichen Probleme erläutern, die wir ansprechen wollen. Wir werden auch

Mehr

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Wortproblem: der CYK-Algorithmus Pumping Lemma für kontextfreie Sprachen

Mehr

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden: Sprachen und Automaten 1 Deterministische endliche Automaten (DFA) Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden: M = (Z,3,*,qo,E) Z = Die Menge der Zustände 3 = Eingabealphabet

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

Mehr

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Ausgabe 8. Januar 2019 Abgabe 22. Januar 2019, 11:00 Uhr (im

Mehr

Aufgabe 2: (Aminosäuren)

Aufgabe 2: (Aminosäuren) Aufgabe 2: (Aminosäuren) Aufgabenstellung Die 20 Aminosäuren (voller Name, 1- und 3-Buchstaben-Code) sollen identifiziert und mit RasMol grafisch dargestellt werden. Dann sollen die AS sinnvoll nach ihren

Mehr

Berechenbarkeit und Komplexität Vorlesung 10

Berechenbarkeit und Komplexität Vorlesung 10 Berechenbarkeit und Komplexität Vorlesung 10 Prof. Dr. Wolfgang Thomas Lehrstuhl Informatik 7 RWTH Aachen 27. November 2014 Wolfgang Thomas, Informatik 7 () Vorlesung Berechenbarkeit und Komplexität 27.

Mehr

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.

Turing Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p. Thorsten Timmer SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke Turing Maschine SS 2005 p. 1/35 Inhalt Einführung Formale Definition Berechenbare Sprachen und Funktionen Berechnung ganzzahliger

Mehr

Berühmte Informatiker

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

Mehr

Laufzeit einer DTM, Klasse DTIME

Laufzeit einer DTM, Klasse DTIME Laufzeit einer DTM, Klasse DTIME Definition Laufzeit einer DTM Sei M eine DTM mit Eingabealphabet Σ, die bei jeder Eingabe hält. Sei T M (w) die Anzahl der Rechenschritte d.h. Bewegungen des Lesekopfes

Mehr

Grundbegriffe der Informatik Tutorium 3

Grundbegriffe der Informatik Tutorium 3 Grundbegriffe der Informatik Tutorium 3 Tutorium Nr. 32 Philipp Oppermann 9. November 2014 KARLSRUHER INSTITUT FÜR TECHNOLOGIE KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 02. November INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 02. November INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik Vorlesung am 2. November 27 2..27 Dorothea Wagner - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Vorlesung am 2. November 27 Helmholtz-Gemeinschaft

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

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein!

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein! 4 Turingmaschinen Eingabeband nicht nur lesen, sondern auch schreiben kann und die zudem mit ihrem Lese-Schreib-Kopf (LSK) nach links und rechts gehen kann. Das Eingabeband ist zudem in beide Richtungen

Mehr

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

Mehr

Schleifeninvarianten. Dezimal zu Binär

Schleifeninvarianten. Dezimal zu Binär Schleifeninvarianten Mit vollstandiger Induktion lasst sich auch die Korrektheit von Algorithmen nachweisen. Will man die Werte verfolgen, die die Variablen beim Ablauf eines Algorithmus annehmen, dann

Mehr

Daten suchen und durchsuchen. Programmieren und Problemlösen Daten suchen und durchsuchen, weiterführende Komplexitätstheorie

Daten suchen und durchsuchen. Programmieren und Problemlösen Daten suchen und durchsuchen, weiterführende Komplexitätstheorie Daten suchen und durchsuchen Lineare Suche Dennis Komm Programmieren und Problemlösen Daten suchen und durchsuchen, weiterführende Komplexitätstheorie Frühling 2019 1. April 2019 Lineare Suche Einfachste

Mehr