Algorithmen und Datenstrukturen II. Suchen in Texten. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Größe: px
Ab Seite anzeigen:

Download "Algorithmen und Datenstrukturen II. Suchen in Texten. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München"

Transkript

1 Algorithmen und Datenstrukturen II Suchen in Texten Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: :32 Inhaltsverzeichnis Ein Text Das Suchproblem Suche in dynamischen Texten 3 Das naive Verfahren zur Textsuche Naheliegende Verbesserung des naiven Verfahrens Beispiel Das Verfahren von Knuth-Morris-Pratt Allgemeine Situation beim Mismatch Das Verfahren von Knuth-Morris-Pratt Das Verfahren von Boyer-Moore Minimale Verschiebung des Textzeigers Beispiele Boyer-Moore Berechnung der Verschiebung bei einem Bad-Character Verschiebung des Textzeigers Fall 1: M j + 1 > delta 1(c) Beispiel für Fall Fall 2: M j + 1 delta 1(c) Beispiel für Fall Im schlimmsten Fall naiv Berechnung der Verschiebung bei einem Good-Suffix Formalisierung Beispiel

2 Berechnung der delta 2-Tabelle für banana Das Verfahren von Boyer-Moore Signaturen Beispiel für Signaturen: Verfahren von Karp und Rabin Suchen in statischen Texten 14 Aufbereitung von Texten Suffix-Bäume Einschub: Tries Suffix-Tries Suffix-Bäume Konstruktion von Suffix-Bäumen Naiver Algorithmus Begriffe zur Beschreibung des naiven Verfahrens Naives Verfahren zur Konstruktion des Suffix-Baumes Beispiel Naives Verfahren zur Konstruktion des Suffix-Baumes Beispiel Effiziente Implementierung durch kompakte Repräsentation Ein Text Texte spielen in vielen Anwendungen eine zentrale Rolle z.b. in Texteditoren, Literaturdatenbanken, Systemen zur Symbolmanipulation Texte sind nicht weiter strukturierte Folgen beliebiger Länge über einem endlichen Alphabet das Alphabet kann Buchstaben, Ziffern und zahlreiche Sonderzeichen enthalten der zugrundeliegende Datentyp kann auf verschiedene Arten realisiert sein z.b. Array-of-Characters, verkettete Liste von Zeichen Zeichenkette soll nicht-negative, ganzzahlige Länge zugeordnet sein Zugriff auf das i. Zeichen für jedes i 1 soll möglich sein Das Suchproblem Gegeben sind eine Zeichenkette (Text) a 1...a N von Zeichen aus einem endlichen Alphabet Σ und eine Zeichenkette, das Muster (Pattern), b 1...b M, mit b i Σ, 1 i M Gesucht sind ein oder alle Vorkommen von b 1...b M und a 1...a N, d.h. Indizes i mit 1 i (N M + 1) und a i = b 1, a i+1 = b 2,..., a i+m 1 = b M Letzte Änderung: :32 2

3 in der Regel ist N sehr viel größer als M wir unterscheiden Suche in statischen Texten und in dynamischen Texten Suche in dynamischen Texten Das naive Verfahren zur Textsuche Idee: Muster wird, beginnend beim ersten Zeichen des Textes, der Reihe nach an jeden Teilstring des Textes angelegt wird zeichenweise verglichen bei einem Mismatch wird vom nächsten Zeichen an weiter probiert das Muster B muss im worst-case (N M +1)-mal an den Text A angelegt werden und dann jeweils ganz durchlaufen werden das bedeutet es müssen (N M + 1) M Vergleiche ausgeführt werden Laufzeit also von der Größenordnung Θ(N M) Naheliegende Verbesserung des naiven Verfahrens Muster wird nur bis zum ersten Mismatch durchlaufen und nicht (trotzdem) komplett Wahrscheinlichkeit ist am höchsten, dass das Muster an der ersten Stelle nicht passt in der Praxis reichen dann oft nur noch O(M + N) Vergleiche im worst case schlägt es immer erst beim letzten Zeichen fehl: Ω(N M) naives Verfahren ist gedächtnislos Beispiel er sprach abrakadabra, es bewegte sich aber nichts a a a... ab... Letzte Änderung: :32 3

4 abe a... a aber Das Verfahren von Knuth-Morris-Pratt Idee: Tritt an der j-ten Stelle ein Mismatch auf, haben die vorangegangenen j 1 Stellen übereingestimmt mit dieser Information soll das Muster soweit wie möglich nach rechts verschoben werden Beispiel i Text: Muster: wird das Muster um nur eine Stelle verschoben, tritt sofort wieder ein Mismatch auf offensichtlich kann es gleich um zwei Stellen verschoben werden Allgemeine Situation beim Mismatch 1. Die letzten j 1 gelesenen Zeichen im Text stimmen mit den ersten j 1 Zeichen im Muster überein. 2. Das gerade gelesene i-te Zeichen im Text ist verschieden vom j-ten Zeichen im Muster. Frage Mit welchem Zeichen im Muster kann man das i-te Textzeichen als nächstes vergleichen, so dass man kein Vorkommen im Text übersieht? Das Verfahren von Knuth-Morris-Pratt vom Anfangsstück des Musters mit der Länge j 1 ein längstes Endstück suchen, das ebenfalls Anfangsstück des Musters ist hat Endstück die Länge l, dann nennen wir die Position l + 1 next[j] next[j] muss als nächstes mit Position i verglichen werden Beispiel: Text abababb, Muster ababb Letzte Änderung: :32 4

5 Mismatch beim 5. Zeichen, also Anfangsstück des Musters ist abab Endstück ab ist zugleich Anfangsstück d.h. Muster kann sofort zwei Stellen weiter verschoben werden Das Verfahren von Boyer-Moore Zeichen im Muster werden nicht von links nach rechts, sondern von rechts nach links mit den Zeichen im Text verglichen das Muster wird zwar trotzdem der Reihe nach von links nach rechts an wachsende Textpositionen angelegt, aber der Vergleich beginnt immer mit dem letzten Zeichen des Textes tritt bis zum Vergleich des ersten Zeichens im Muster kein Mismatch auf, ist ein Vorkommen gefunden tritt ein Mismatch auf, wird eine (möglichst große) Verschiebung des Musters berechnet Minimale Verschiebung des Textzeigers seien i der aktuelle Wert des Textzeigers j der aktuelle Wert des Musterzeigers M die Länge des Musters erfolgt ein Mismatch bei i und j kann das Muster um eine Position nach rechts geschoben werden damit der Textzeiger auf das Zeichen zeigt das nach der Verschiebung mit dem letzten Zeichen des verglichen wird, muss er um M j + 1 Stellen nach rechts verschoben werden, also i = i + M j + 1 Beispiel: i... Wettervorhersage... Alter j neuer Wert von i muss auf das v zeigen Letzte Änderung: :32 5

6 Beispiele Boyer-Moore Beispiel 1: er sprach... aber als erstes wird s mit r verglichen Mismatch da s im gesamten Muster nicht vorkommt, kann das Muster gleich um die Musterlänge verschoben werden Beispiel 2: abrakadabra... aber Vergleich a mit r Mismatch da a im Muster vorkommt, kann man es nur so weit verschieben, bis erstmals das Text- und das Musterzeichen untereinander stehen Berechnung der Verschiebung bei einem Bad-Character für die Weite der Sprünge wird, nur abhängig vom Muster und vom Alphabet, aber nicht vom Text, eine delta-1-tabelle erstellt delta 1-Funktion berechnet für jedes c Σ die Entfernung c vom letzten Zeichen und delta 1(c) = M, falls c in b 1...b M nicht vorkommt delta 1(c) = M j, falls c = b j und c b k mit j < k M das Vorgehen heisst auch Vorkommens-Heuristik bzw. Bad-Character-Shift Verschiebung des Textzeigers eigentlich wollen wir nicht das Muster verschieben, sondern den Textzeiger möglichst weit nach rechts Textzeiger soll mindestens über die Position hinaus geschoben werden auf die er gerade zeigt kann aus delta 1-Wert berechnet werden Letzte Änderung: :32 6

7 sei im Folgenden c das den Mismatch verursachende Zeichen und i und j die aktuellen Positionen im Text bzw. im Muster bei einem Mismatch an Position j kann der Textzeiger mindestens so verschoben werden, dass 2 Fälle beim Mismatch c kommt rechts vom Mismatch im Muster bereits vor c kommt nicht rechts vom Mismatch vor Fall 1: M j + 1 > delta 1(c) c kommt rechts vom Mismatch im Muster bereits vor wir wissen außerdem, dass die Zeichen im Muster rechts von c ungleich c sind also können wir den Textzeiger um den Abstand von c vom letzten Zeichen weiter verschieben d.h. i = i + M j + delta 1(c) und j = M Letzte Änderung: :32 7

8 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Letzte Änderung: :32 8

9 Beispiel für Fall 1 TODO: Beispiel passt nicht!! i... Datenstrukturen... Tinktur j j M j + 1 = = 5 delta 1(u) = M j = 7 6 = 1 also i = i = i + 5 und j = M i... Datenstrukturen... Tinktur j Fall 2: M j + 1 delta 1(c) c kommt nicht rechts vom Mismatch vor (vielleicht sogar nicht im Muster) setze i = i + delta 1(c) und j = M Letzte Änderung: :32 9

10 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Letzte Änderung: :32 10

11 Beispiel für Fall 2 i... Wasserstelle... Tankstelle j M j + 1 = = 7 delta 1(r) = M = 10 also i = i + 10 und j = M i... Wasserstelle... Tankstelle j Im schlimmsten Fall naiv im schlechtesten Fall nicht besser als das naive Verfahren Beispiel: Text besteht nur aus Nullen, Muster i j * M j + 1 = , delta 1(0) = M M = 0 i = i + 10 i j Verbesserung durch zweite Heuristik: Match-Heuristik Berechnung der Verschiebung bei einem Good-Suffix ähnlich Knuth-Morris-Pratt Beispiel: orange ananas banana banana Letzte Änderung: :32 11

12 Annahme: die letzten m Zeichen stimmen überein und an Position j von rechts ist erster Mismatch nennen wir die letzten m Zeichen das Submuster dann suchen wir von rechts her nach einem weiteren Vorkommen des Submusters im Muster haben wir so ein Vorkommen gefunden, können wir das Muster so weit nach rechts verschieben, dass das weitere Vorkommen dem entsprechenden Text gegenüber steht im Beispiel können wir um 2 Positionen nach rechts schieben orange ananas banana banana Formalisierung sei wrw(j) die Position an der das von rechts her nächste Vorkommen des Submusters beginnt j ist die Position des Mismatches das Submuster also b j+1...b M Annahme: das dem weiteren Vorkommen vorangehende Zeichen ist verschieden von dem das am Mismatch beteiligt war die Funktion delta 2 gibt an um welche Distanz der Zeiger i im Text bewegt werden kann: delta 2(j) = M + 1 wrw(j) Beispiel i orange ananas banana banana j j = 3, wrw(3) = 2 und delta 2(3) = = 5 i orange ananas banana banana j Letzte Änderung: :32 12

13 Berechnung der delta 2-Tabelle für banana j Suffix vorangehend weiteres Vorkommen wrw(j) delta 2(j) 5 a n banana na a **banana ana n banana nana a ****banana anana b *****banana Anfügen von don t care-symbolen rechts, wenn kein Vorkommen im Muster Position j: Muster:... * * * * * b a n a n a Submuster: n a n a Das Verfahren von Boyer-Moore Verknüpfung der beiden Heuristiken i wird um max{delta 1(a i ) + 1, delta 2(j)} verschoben j wird M gesetzt Hoorspool hat gezeigt, dass die delta 2-Tabelle in der Praxis kaum zur Schnelligkeit beiträgt in der Praxis kommen oft kurze Muster vor, bei denen gar keine mehrfach auftretenden Submuster enthalten sind man kann erwarten, dass das Verfahren für genügend kurze Muster und hinreichend große Alphabete etwas O(N/M) Schritte ausführt und fast immer um die gesamte Musterlänge nach rechts verschoben werden kann Signaturen weiteres Verfahren zur Mustersuche in einem Text Muster der Länge M, Text der Länge N von dem Muster wird ein Hashwert berechnet von allen Teilstrings des Textes der Länge N wird auch der Hashwert berechnet nur wenn der Hashwert gleich ist, kann ein Vorkommen gefunden worden sein Letzte Änderung: :32 13

14 Beispiel für Signaturen: Verfahren von Karp und Rabin Muster über einem Alphabet der Größe d wird als d-adische Zahl interpretiert als Hashfunktion dient dann h(k) = k mod p für eine geeignet gewählte, große Primzahl man kann zeigen, dass das Verfahren mit hoher Wahrscheinlichkeit nur O(M + N) Schritte benötigt Suchen in statischen Texten Aufbereitung von Texten Suffix-Bäume wenn häufig der selbe Text σ nach vielen verschiedenen Mustern durchsucht wird, kann es sich lohnen für σ einen Suchindex aufzubauen ein Suffix-Baum ist ein in linearer Zeit konstruierbare Baum, der linearen Platz benötigt und folgendes effizient ausführt: Teilwortsuche in Zeit O( α ) mit Teilword α, d.h. unabhängig von der Textlänge! Präfixsuche: findet alle Stellen in σ an denen Worte mit dem Präfix α vorkommen Bereichs-Suche: findet alle Stellen in σ, die Worte enthalten, die lexikographisch zwischen zwei Grenzen fallen Beispiel: der Bereich [abc, acc] enthält abrakadarba, acacia, aber nicht abacus ein Suffix-Baum unterstützt auch Anfragen an σ selbst, z.b. Was ist das längste wiederholt auftretende Teilwort von σ, das an mindestens 2 Stellen auftritt? Einschub: Tries Tries (gesprochen wie das englische Wort try) sind Suchbäume und repräsentieren eine Menge M von Schlüsseln Schlüssel sind Zeichenketten über einem endlichen Alphabet Σ jede Kante eines Tries T ist mit einem Zeichen aus Σ beschriftet benachbarte Kanten müssen mit verschiedenen Zeichen beschriftet sein maximaler Grad eines Knoten ist damit Σ Letzte Änderung: :32 14

15 einem einfachen Weg von der Wurzel zu einem Knoten v wird eine Zeichenkette als Konkatenation der Beschriftungen zugeordnet damit repräsentiert jeder Knoten eine eindeutige Zeichenkette um zu testen, ob ein Wort α = a 1 a 2...a n in M enthalten ist, stellt man fest, ob es einen Weg von der Wurzel zu einem Blatt gibt, dessen Beschriftung gleich α ist Suffix-Tries Suffix-Tries (auch Position-Trees) sind Tries die alle Suffixe einer Zeichenkette σ repräsentieren Beispiel für σ = ababc Letzte Änderung: :32 15

16 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Letzte Änderung: :32 16

17 Suffix-Bäume Wege die nur aus unären Knoten bestehen, werden zu einer Kante zusammengezogen, Beispiel: Suffix-Trie zu σ = ababc damit erhält man einen Suffix-Baum (=kontrahierter Suffix-Trie) Beispiel für σ = ababc Letzte Änderung: :32 17

18 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Letzte Änderung: :32 18

19 Konstruktion von Suffix-Bäumen zunächst naiver Algorithmus das Verfahren setzt voraus, dass kein Suffix Prafix eines anderen Suffix ist d.h. jedem Suffix entspricht eindeutig ein Blatt dies ist automatisch gewährleistet, wenn das letzte Zeichen von σ nirgends sonst in σ auftritt ggfs. wird ein neues Endezeichen $ ergänzt Naiver Algorithmus Voraussetzung: Das letzte Zeichen von σ tritt nirgends sonst in σ auf sei n = σ damit der zu σ konstruierende Suffix-Baum T eine lineare Größe in n hat, fordert man für T : jede Kante in T repräsentiert ein nicht-leeres Teilwort von σ die Teilworte, die benachbarten Kanten zugeordnet sind, beginnen mit verschiedenen Buchstaben jeder innere Knoten (außer der Wurzel) hat wenigstens zwei Nachfolger jedes Blatt repräsentiert ein nicht-leeres Suffix von σ damit Anzahl Blätter gleich n und Anzahl der inneren Knoten höchstens gleich n 1 Speicherbedarf also O(n) Begriffe zur Beschreibung des naiven Verfahrens eine zusammenhängende Folge, bei der Wurzel beginnender Kanten, heisst partieller Weg endet ein partieller Weg bei einem Blatt, heisst er Weg der Knoten am Ende des mit α bezeichneten Weges heisst Ort einer Zeichenkette α (falls er existiert) jede Zeichenkette, die α als Präfix hat, heisst Erweiterung von α der Ort der kürzesten Zeichenkette, die α als Präfix hat und deren Ort definiert ist, heisst erweiterter Ort der Zeichenkette α Letzte Änderung: :32 19

20 der Ort des längsten Präfix von α, dessen Ort definiert ist, heisst kontrahierter Ort der Zeichenkette α mit suf i bezeichnen wir das an der Position i beginnende Suffix von σ, also suf 1 = σ und suf n = $ mit head i bezeichnen wir das längste Präfix von suf i, das auch Präfix für ein suf j für ein j < i ist Naives Verfahren zur Konstruktion des Suffix-Baumes wir beginnen mit dem leeren Baum T 0 T i+1 entsteht aus T i durch Einfügen des Suffixes suf i+1 in T i haben alle Suffixe suf j, j < i bereits einen Ort head i ist das längste Präfix von suf i, dessen erweiterter Ort in T i 1 existiert tail i = suf i head i, d.h. suf i = head i tail i tail i ϵ da letztes Zeichen nirgends sonst in σ auftreten darf Letzte Änderung: :32 20

21 Letzte Änderung: :32 21

22 Beispiel Letzte Änderung: Quelle: Ottmann & 06:32 Widmayer, Algorithmen und Datenstrukturen 22

23 Naives Verfahren zur Konstruktion des Suffix-Baumes T i+1 kann aus T i wie folgt konstruiert werden (head i+1 ϵ) bestimme den erweiterten Ort von head i+1 in T i teile die letzte zu diesem Ort führende Kante in zwei neue auf (durch Einfügen eines neuen Knotens) schaffe ein neues Blatt als Ort für suf i+1 = head i+1 tail i+1 Letzte Änderung: :32 23

24 Letzte Änderung: :32 24

25 Beispiel Letzte Änderung: Quelle: Ottmann & 06:32 Widmayer, Algorithmen und Datenstrukturen 25

26 Quelle: Ottmann & Widmayer, Algorithmen und Datenstrukturen Letzte Änderung: :32 26

27 Letzte Änderung: :32 27

28 Effiziente Implementierung durch kompakte Repräsentation Letzte Änderung: Quelle: Ottmann & 06:32 Widmayer, Algorithmen und Datenstrukturen 28

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

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

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

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

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

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

Mehr

Algorithmen und Datenstrukturen

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

Mehr

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

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

String - Matching. Kapitel Definition

String - Matching. Kapitel Definition Kapitel 1 String - Matching 1.1 Definition String - Matching ( übersetzt in etwa Zeichenkettenanpassung ) ist die Suche eines Musters ( Pattern ) in einem Text. Es findet beispielsweise Anwendung bei der

Mehr

Algorithmen und Datenstrukturen (für ET/IT) Programm heute. Sommersemester Dr. Tobias Lasser

Algorithmen 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

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

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

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

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

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

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

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

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Suchen in Texten Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.

Mehr

Kapitel 2. Suche nach endlich vielen Wörtern. R. Stiebe: Textalgorithmen, Winter 2005/06 113

Kapitel 2. Suche nach endlich vielen Wörtern. R. Stiebe: Textalgorithmen, Winter 2005/06 113 Kapitel 2 Suche nach endlich vielen Wörtern R. Stiebe: Textalgorithmen, Winter 2005/06 113 Übersicht Aufgabenstellung Gegeben: Text T und eine endliche Menge von Wörtern P = {P 1,..., P r }; Gesucht: alle

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

Zeichenketten. Hallo Welt für Fortgeschrittene Daniel Wust Informatik 2 Programmiersysteme Martensstraße Erlangen

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

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen 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

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

Indexieren und Suchen

Indexieren 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

Mehr

Effiziente Algorithmen und Komplexitätstheorie

Effiziente Algorithmen und Komplexitätstheorie 1 Effiziente lgorithmen und Komplexitätstheorie Vorlesung Thomas Jansen 29.06.2006 2 Burrows-Wheeler-Kompression: Verbesserungen dreischrittiges Kompressionsverfahren Burrows- Wheeler- Transformation Globale

Mehr

Algorithmen und Datenstrukturen II

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

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

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

Algorithmen und Datenstrukturen 1 Kapitel 6 Algorithmen auf Zeichenreihen

Algorithmen und Datenstrukturen 1 Kapitel 6 Algorithmen auf Zeichenreihen Algorithmen und Datenstrukturen 1 Kapitel 6 Algorithmen auf Zeichenreihen Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2006/2007 February 5, 2007 Kapitel 6: Algorithmen

Mehr

4.9.7 Konstruktion der Suffixbäume

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

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen 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

Mehr

4. Suche in Texten. Suche in (weitgehend) statischen Texten -> Indexierung 4-1. Einführung

4. Suche in Texten. Suche in (weitgehend) statischen Texten -> Indexierung 4-1. Einführung Einführung 4. Suche in Texten Suche in dynamischen Texten (ohne Indexierung) - Naiver Algorithmus (Brute Force) - Knuth-Morris-Pratt (KMP) - Algorithmus - Boyer-Moore (BM) - Algorithmus - Signaturen Suche

Mehr

Algorithmen auf Zeichenketten

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil Hash-Verfahren Version vom: 18. November 2016 1 / 28 Vorlesung 9 18. November 2016

Mehr

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n)

13. Hashing. AVL-Bäume: Frage: Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) AVL-Bäume: Ausgabe aller Elemente in O(n) Suche, Minimum, Maximum, Nachfolger in O(log n) Einfügen, Löschen in O(log n) Frage: Kann man Einfügen, Löschen und Suchen in O(1) Zeit? 1 Hashing einfache Methode

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Algorithmen auf Sequenzen

Algorithmen auf Sequenzen Algorithmen auf Sequenzen Vorlesung von Prof. Dr. Sven Rahmann im Sommersemester 2008 Kapitel 4 Reguläre Ausdrücke Webseite zur Vorlesung http://ls11-www.cs.tu-dortmund.de/people/rahmann/teaching/ss2008/algorithmenaufsequenzen

Mehr

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

String Matching 2. Definition Ein Alphabet ist eine nichtleere, endliche Menge S von Zeichen. 1 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

Mehr

Projektdokumentation String-Searching KMP-Algorithmus Boyer-Moore-Algorithmus

Projektdokumentation String-Searching KMP-Algorithmus Boyer-Moore-Algorithmus Algorithmische Anwendungen Wintersemester 2005/06 Projektdokumentation String-Searching KMP-Algorithmus Boyer-Moore-Algorithmus Stand: 25.01.2006 Gruppe: A-Lila Hicham Settah Dieter Galinowski Inhalt:

Mehr

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete.

12. Hashing. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Hashing einfache Methode um Wörtebücher zu implementieren, d.h. Hashing unterstützt die Operationen Search, Insert, Delete. Worst-case Zeit für Search: Θ(n). In der Praxis jedoch sehr gut. Unter gewissen

Mehr

Strings. Stringsuche, Boyer-Moore, Textkompression, Huffman Codes.

Strings. Stringsuche, Boyer-Moore, Textkompression, Huffman Codes. Strings Stringsuche, Boyer-Moore, Textkompression, Huffman Codes. Suche Substring Häufiges Problem Relevante Beispiele: Suche ein Schlagwort in einem Buch Alphabet: A-Za-z0-9 Suche Virussignatur auf der

Mehr

Klausur Informatik B April Teil I: Informatik 3

Klausur Informatik B April Teil I: Informatik 3 Informatik 3 Seite 1 von 8 Klausur Informatik B April 1998 Teil I: Informatik 3 Informatik 3 Seite 2 von 8 Aufgabe 1: Fragekatalog (gesamt 5 ) Beantworten Sie folgende Fragen kurz in ein oder zwei Sätzen.

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

Grundlagen der Algorithmen und Datenstrukturen Kapitel 4

Grundlagen der Algorithmen und Datenstrukturen Kapitel 4 Grundlagen der Algorithmen und Datenstrukturen Kapitel 4 Christian Scheideler + Helmut Seidl SS 2009 06.05.09 Kapitel 4 1 Wörterbuch-Datenstruktur S: Menge von Elementen Jedes Element e identifiziert über

Mehr

6. Sich selbst organisierende Datenstrukturen

6. Sich selbst organisierende Datenstrukturen 6. Sich selbst organisierende Datenstrukturen 6.1 Motivation einfach, wenig Verwaltungsoverhead effizient im amortisierten Sinn EADS 6.1 Motivation 201/598 6.2 Sich selbst organisierende lineare Listen

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

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

Mehr

Algorithmentheorie. 15 Suchen in Texten (1)

Algorithmentheorie. 15 Suchen in Texten (1) Algorithmentheorie 15 Suhen in Texten (1) Prof. Dr. S. Alers Suhe in Texten Vershiedene Szenrien: Sttishe Texte Literturdtennken Biliothekssysteme Gen-Dtennken WWW-Verzeihnisse Dynmishe Texte Texteditoren

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 12

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 12 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 8. März

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 Bruder-Bäume, B-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei Wörterbuchoperationen

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

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

Isomorphie von Bäumen

Isomorphie von Bäumen Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15

Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15 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 18. März

Mehr

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens

Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens Beweis: Die obere Schranke ist klar, da ein Binärbaum der Höhe h höchstens h 1 2 j = 2 h 1 j=0 interne Knoten enthalten kann. EADS 86/600 Beweis: Induktionsanfang: 1 ein AVL-Baum der Höhe h = 1 enthält

Mehr

Teil VII. Hashverfahren

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

Mehr

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) 5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS) Sommersemester 2009 Dr. Carsten Sinz, Universität Karlsruhe Datenstruktur BDD 2 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer:

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

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

Mehr

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente Lage zweier Segmente Prüfung auf Schnittfreiheit Formeln zum Geradenschnitt Feststellen des

Mehr

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente! Lage zweier Segmente! Prüfung auf Schnittfreiheit! Formeln zum Geradenschnitt! Feststellen

Mehr

Datenstrukturen und Algorithmen D-INFK

Datenstrukturen und Algorithmen D-INFK 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 Peter Widmayer

Mehr

Algorithmen und Datenstrukturen I Bruder-Bäume

Algorithmen und Datenstrukturen I Bruder-Bäume Algorithmen und Datenstrukturen I Bruder-Bäume Prof. Dr. Oliver Braun Letzte Änderung: 11.12.2017 10:50 Algorithmen und Datenstrukturen I, Bruder-Bäume 1/24 Definition ein binärer Baum heißt ein Bruder-Baum,

Mehr

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

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

Mehr

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

Mehr

Fibonacci-Suche. Informatik I. Fibonacci-Suche. Fibonacci-Suche. Einführung. Rainer Schrader. 24. Mai 2005

Fibonacci-Suche. Informatik I. Fibonacci-Suche. Fibonacci-Suche. Einführung. Rainer Schrader. 24. Mai 2005 Fibonacci-Suche Informatik I Einführung Rainer Schrader Zentrum für Angewandte Informatik Köln 4. Mai 005 Grundidee wie bei der Binärsuche, aber andere Aufteilung Fibonacci-Zahlen: F 0 = 0 F 1 = 1 F m

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdarstellungen Maike Buchin 0.6.017 Graphen Motivation: Graphen treten häufig als Abstraktion von Objekten (Knoten) und ihren Beziehungen (Kanten) auf. Beispiele: soziale

Mehr

4.4 Anwendungen von Suffixbäumen und Suffix-Arrays

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

Mehr

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

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. einfach verkettete Liste einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten

Mehr

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

4.4.2 Virtuelles Hashing Erweiterbares Hashing Das Gridfile Implementation von Hashverfahren in Java

4.4.2 Virtuelles Hashing Erweiterbares Hashing Das Gridfile Implementation von Hashverfahren in Java Inhaltsverzeichnis 1 Grundlagen 1 1.1 Algorithmen und ihre formalen Eigenschaften 1 1.2 Beispiele arithmetischer Algorithmen 5 1.2.1 Ein Multiplikationsverfahren 5 1.2.2 Polynomprodukt 8 1.2.3 Schnelle

Mehr

Algorithmen & Datenstrukturen. 3. Suchen

Algorithmen & Datenstrukturen. 3. Suchen Algorithmen & Datenstrukturen 3. Suchen 1 Exponentielle Suche Gesucht wird ein Element mit Schlüssel k. Die exponentielle Suche eignet sich zum Suchen in nach den Schlüsselwerten sortierten Feldern, deren

Mehr

5. Mustererkennung. Anwendungsbeispiele: suche Zeichenfolge in Text suche Bitmuster in Pixelbild. gegeben: endliches Alphabet Σ. Muster p Σ m, m IN

5. Mustererkennung. Anwendungsbeispiele: suche Zeichenfolge in Text suche Bitmuster in Pixelbild. gegeben: endliches Alphabet Σ. Muster p Σ m, m IN 5. Mustererkennung Anwendungsbeispiele: suche Zeichenfolge in Text suche Bitmuster in Pixelbild gegeben: endliches Alphabet Σ Text t Σ n, n IN Muster p Σ m, m IN gesucht: erste (bzw. jede) Position von

Mehr

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften:

Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: Binäre Suchbäume (a, b)-bäume (Folie 173, Seite 56 im Skript) Es sei a 2 und b 2a 1. Definition Ein (a, b)-baum ist ein Baum mit folgenden Eigenschaften: 1 Jeder Knoten hat höchstens b Kinder. 2 Jeder

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

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

Mehrwegbäume Motivation

Mehrwegbäume Motivation Mehrwegbäume Motivation Wir haben gute Strukturen (AVL-Bäume) kennen gelernt, die die Anzahl der Operationen begrenzen Was ist, wenn der Baum zu groß für den Hauptspeicher ist? Externe Datenspeicherung

Mehr

Algorithmische Geometrie: Schnittpunkte von Strecken

Algorithmische Geometrie: Schnittpunkte von Strecken Algorithmische Geometrie: Schnittpunkte von Strecken Nico Düvelmeyer WS 2009/2010, 3.11.2009 3 Phasen im Algorithmenentwurf 1. Konzentration auf das Hauptproblem 2. Verallgemeinerung auf entartete Eingaben

Mehr

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007

Algorithmen und Datenstrukturen VO 3.0 Vorlesungsprüfung 19. Oktober 2007 Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen 1 186.089 VO 3.0 Vorlesungsprüfung 19. Oktober

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

NAME, VORNAME: Studiennummer: Matrikel: TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.

Mehr

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort. Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe 1 (Güte von Hashfunktionen): Untersuchen Sie, inwiefern sich die folgenden Funktionen

Mehr

Relationen und DAGs, starker Zusammenhang

Relationen und DAGs, starker Zusammenhang Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind

Mehr

Informatik B Sommersemester Musterlösung zur Klausur vom

Informatik B Sommersemester Musterlösung zur Klausur vom Informatik B Sommersemester 007 Musterlösung zur Klausur vom 0.07.007 Aufgabe : Graphen und Graphalgorithmen + + + () Punkte Für eine beliebige positive, ganze Zahl n definieren wir einen Graphen G n =

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (25 Sortieren vorsortierter Daten)

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (25 Sortieren vorsortierter Daten) Vorlesung Informatik 2 Algorithmen und Datenstrukturen (25 Sortieren vorsortierter Daten) 1 Untere Schranke für allgemeine Sortierverfahren Satz Zum Sortieren einer Folge von n Schlüsseln mit einem allgemeinen

Mehr

Informatik II: Algorithmen und Datenstrukturen SS 2015

Informatik II: Algorithmen und Datenstrukturen SS 2015 Informatik II: Algorithmen und Datenstrukturen SS 2015 Vorlesung 8b, Mittwoch, 17. Juni 2015 (Balancierte Suchbäume) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik

Mehr

1 Kürzeste Pfade in Graphen

1 Kürzeste Pfade in Graphen Praktikum Algorithmen-Entwurf (Teil 3) 03.11.2011 1 1 Kürzeste Pfade in Graphen Es sei ein gerichteter Graph G = (V, E) mit V = n Knoten, E = m Kanten und Kantengewichten c : E R gegeben. Ein Pfad in G

Mehr

Diskrete Strukturen Wiederholungsklausur

Diskrete Strukturen Wiederholungsklausur Technische Universität München (I7) Winter 2013/14 Prof. J. Esparza / Dr. M. Luttenberger LÖSUNG Diskrete Strukturen Wiederholungsklausur Beachten Sie: Soweit nicht anders angegeben, ist stets eine Begründung

Mehr

Das Problem des Handlungsreisenden

Das Problem des Handlungsreisenden Seite 1 Das Problem des Handlungsreisenden Abbildung 1: Alle möglichen Rundreisen für 4 Städte Das TSP-Problem tritt in der Praxis in vielen Anwendungen als Teilproblem auf. Hierzu gehören z.b. Optimierungsprobleme

Mehr

Grundlagen der Informatik

Grundlagen 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

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

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.

Mehr