Algorithmen und Datenstrukturen 2
|
|
|
- Ulrich Theodor Beltz
- vor 8 Jahren
- Abrufe
Transkript
1 Algorithmen und Datenstrukturen 2 Kap. 19: Suffixbäume Faculty of Technology [email protected] Vorlesung, U. Bielefeld, Sommer 2011
2 Bekannte Verfahren zur exakten Suche in Zeichenreihen Exakte Suche: Finde Auftreten von Muster P in Text T. P = m, T = n. a, b, c A. w, u, v A. m << n. Was wir schon kennen: Naive Suche: Laufzeit O(mn) im worst case Boyer-Moore, Boyer-Moore-Horspool: O(m) + O(n) (Vorverarbeitung von P + Suche in T im average case) Knuth-Morris-Pratt: O(m) + O(n) (Vorverarbeitung von P + Suche in T im worst case) In den Messungen haben wir gesehen, dass praktisch der KMP nur für kleine Alphabete und Strings mit vielen Wiederholungen schneller ist als der (einfachere) BMH.
3 Neue Idee: Indexstrukturen Welche Variante fehlt noch: Vorverarbeitung von T zu Indexstruktur, die schnelle Suche erlaubt. Schwierigkeiten: Erstellen des Index möglichst in O(n). Platzbedarf nicht zu gross, also O(ηn) mit η O(1). Konkurrierende Ideen: alphabetischer Index (ggf. nur für Stichworte) k-wort-index (Positionen aller Teilworte der Länge k) Suffix-Baum: O(n) + O(km) (Vorverarbeitung von T und Suche bei k Auftreten von P) Suffix-Array: O(n) + O(log 2 n)
4 Ja ist das denn die Möglichkeit? Was bedeutet Suche in O(m)?
5 Ja ist das denn die Möglichkeit? Was bedeutet Suche in O(m)? Nachdem der Suffixbaum einmal konstruiert ist: Die Suchzeit ist unabhängig von der Größe des Textes!!! Die Suche nach einem Auftreten ist mit O(m) optimal. Die Suche nach allen Auftreten hängt von der Größe der Ausgabe ab. Wichtige Algorithmen: [Weiner 1973, McCreight 1976, Ukkonen 1994] [Giegerich, Kurtz, Stoye 2003]
6 A + -Baum A ist Alphabet. Sei w, u, v A. Ist w = uv, so heißt u Präfix und v Suffix von w. Definition (1) Ein A + -Baum ist ein gerichteter Baum mit Wurzel, dessen Kanten mit Zeichenreihen aus A + markiert sind. Es gilt die Bedingung: Ist y z, x a... y und x b... z, so gilt a b.
7 Namen für die Knoten Beobachtungen: Der Pfad von der Wurzel zu einem Blatt ist mit einem String w markiert, der aus der Konkatenation der Kantenmarkierungen im Pfad besteht. Wir nennen diesen Knoten w. Das ergibt eine eindeutige Bezeichnung für jeden Knoten warum?
8 Namen für die Knoten Beobachtungen: Der Pfad von der Wurzel zu einem Blatt ist mit einem String w markiert, der aus der Konkatenation der Kantenmarkierungen im Pfad besteht. Wir nennen diesen Knoten w. Das ergibt eine eindeutige Bezeichnung für jeden Knoten warum? Weil es keine zwei gleich markierten Wurzelpfade geben kann.
9 Namen für die Knoten Beobachtungen: Der Pfad von der Wurzel zu einem Blatt ist mit einem String w markiert, der aus der Konkatenation der Kantenmarkierungen im Pfad besteht. Wir nennen diesen Knoten w. Das ergibt eine eindeutige Bezeichnung für jeden Knoten warum? Weil es keine zwei gleich markierten Wurzelpfade geben kann. Und wie heißt die Wurzel?
10 Namen für die Knoten Beobachtungen: Der Pfad von der Wurzel zu einem Blatt ist mit einem String w markiert, der aus der Konkatenation der Kantenmarkierungen im Pfad besteht. Wir nennen diesen Knoten w. Das ergibt eine eindeutige Bezeichnung für jeden Knoten warum? Weil es keine zwei gleich markierten Wurzelpfade geben kann. Und wie heißt die Wurzel? Natürlich ε. Man sagt, der Baum t enthält die Wörter {w w ist Knoten in t}.
11 Baum zu {wal, walter, wald, teer} teer wal d ter Der Baum enthält als Blattknoten walter, wald, teer als inneren Knoten wal als implizite Knoten z.b. tee, w, wa, walt
12 Konstruktionsaufgabe Gegeben eine Menge von Wörtern W, konstruiere den A + -Baum t, der W enthält, und sonst (nur) die Präfixe der w W. Dieser Baum ist EINDEUTIG bestimmt, abgesehen von der Anordnung der Unterbäume eines Knotens, Benutzung von nicht-verzweigenden Knoten Man sortiert z.b. die Wörter in W alphabetisch und fasst von der Wurzel her zusammen.
13 Atomarer Suffixbaum (AST) Gegeben Text T. Definition (2) Der atomare Suffixbaum ast(t ) ist der A + -Baum, dessen Kanten mit einzelnen Zeichen aus A markiert sind, und der alle Suffixe von T enthält. Als innere Knoten enthält er zwangsläufig auch alle Präfixe der Suffixe. Also gilt. w ist Knoten in T gdw. w ist Teilwort in T
14 Beispiel zu ast(t ) T = alterwalwalter a t e r w a l w a e r w r e t l a l t w a l e r l t e r w a l w a l t e r w a l t e r w l w a l t e r a 5 a w w l a l t e r 3 t r e t e r l e r t l a w w a l w a l t e r 6 9 r
15 Eigenschaften des atomaren Suffixbaums Was leistet ein atomarer Suffixbaum? w Blatt in ast(t ) w ist Suffix von T. Umkehrung gilt nicht! Sei $ ein Zeichen, das nicht in T vorkommt. In ast(t $) entspricht jeder Suffix einem Blatt. Man kann die Startposition jeden Suffixes s am Blatt s anhängen. Suche nach Auftreten von P in T in O(m) möglich verfolge P als Pfad in ast(t ). Alle Auftreten von P sind in einem Unterbaum zusammengefasst. Problem: Die Größe von ast(t ) ist O(n 2 )!!
16 (Kompakter) Suffixbaum Nicht verzweigende Pfade im Baum liefern keine Information und werden zu einer Kante zusammengezogen: Definition (3) Der (kompakte) Suffixbaum st(t ) ist ein A + -Baum, der die Suffixe von T enthält und in dem alle inneren Knoten verzweigen.
17 (Kompakter) Suffixbaum Nicht verzweigende Pfade im Baum liefern keine Information und werden zu einer Kante zusammengezogen: Definition (3) Der (kompakte) Suffixbaum st(t ) ist ein A + -Baum, der die Suffixe von T enthält und in dem alle inneren Knoten verzweigen. Jetzt gibt es statt O(n 2 ) Knoten immer noch O(n 2 ) Zeichen an den Kanten wo ist der Platzgewinn? Wieviele Knoten hat er kompakte Suffixbaum? Weniger auf jeden Fall aber sind es O(n)? Wieviele Platz brauchen die Kantenmarkierungen? Immer noch O(n 2 )?
18 Beispiel zu st(t ) T = alterwalwalter al wal terwalwalter erwal walter l ter walter walter terwal walter walter rwalwalter 9 terwalwalter
19 Linearer Platzbedarf des Suffixbaums Wie groß ist der Platzbedarf für den Index, zusätzlich zum Text? Zahl der Knoten: O(n). Beweis: Maximal n Blätter; jeder innere Knoten verzweigt; Binärbaum mit n Blättern hat maximal 2n Knoten; der Suffixbaum also maximal 2n O(n) Knoten. Jede Kantenmarkierung ist ein Teilwort T(i,j) und kann durch (i, j) dargestellt werden. Platzbedarf pro Wort O(1), eine Kante pro Knoten (ausgenommen die Wurzel), also O(n) Kanten und damit auch O(n) Platzbedarf für die Markierungen. Der Suffixbaum erhöht den Platzbedarf für den Text um einen konstanten Faktor. Sorgfältige Implementierungen erreichen einen Faktor 5-9, was in der Praxis immer noch ein Problem sein kann.
20 Weitere Eigenschaften des Suffixbaums Suffixbaum ist vielseitig einsetzbar P in T? ist in O(m) Schritten entscheidbar. Repeat-Analyse: Alle wiederholten Auftreten des gleichen Musters sind in einem Unterbaum zusammengefasst und lassen sich effizient ablesen. Palindrome: Palindrome findet man leicht in st(t $T 1 ) Statistik: Statistik über Auftreten aller k-worte läßt sich im oberen Teil des Baumes ablesen. Man propagiert die Anzahl der Blätter aller Unterbäume in Richtung Wurzel. In diversen Anwendungen werden zusätzliche Informationen mit den Knoten von st(t ) assoziiert.
21 Suffix Links Definition (4) Falls in T die Wörter wa und wb enthält, mit a b, so heißt w (rechts-)verzweigend in T. Beobachtungen über Teilwort w aus T : w ist verzweigend gdw. w Knoten im Suffixbaum ist Wenn w kein Blatt ist und nicht verzweigt, heißt w impliziter Knoten Ist aw verzweigend in T, dann auch w Definition (5) Zusätzliche Kanten aw w nennt man Suffix-Links. Sie helfen bei der Suffixbaum-Konstruktion.
22 Die WOTD Konstruktion (1) Write only, top down Suffixbaumkonstruktion
23 Die WOTD Konstruktion (2) Repräsentation der Suffixe durch Startpositionen in T in O(n). Rekursive top-down-konstruktion, beginnend an der Wurzel mit allen Suffixen Gruppierung der Suffixe für den Unterbaum nach Anfangsbuchstabe a A Bestimmung des längsten gemeinsamen Präfix für jede Gruppe: lcp({aw 1,...aw k }) = ap so dass w i = pv i und p maximal ap markiert die Kante zum Unterbaum für {v 1,..., v k } Konstruktion terminiert, wenn k = 1
24 Eigenschaften von WOTD top-down: WOTD eignet sich für lazy Suffixbäume top-down: Jeder Unterbaum kann getrennt von den anderen konstruiert werden write-only: Knoten im Baum werden nur konstruiert, danach nicht mehr gelesen write-only: Gute Lokalität in Bezug auf Prozessor-Cache
25 Komplexität von WOTD Aufwand der Schritte: Sortiere k Suffixe nach erstem Zeichen: O(k); k n Wie geht das? Vgl. A&D 1. Bestimme gemeinsamen Präfix: O( p k) mit k O(n) Aufbau der Baumstruktur: O(1) pro Knoten Insgesamt Worst case: k O(n), Laufzeit O(n 2 )! Average case: p = log n, Laufzeit O(n log n) Kein Faktor A. Welcher String produziert den worst case?
26 Weiner s online-konstruktion Algorithm of the year in 1973 Liest den Text von rechts nach links Konstruiert zuerst die Blätter für die kürzesten Suffixe Zu jedem Zeitpunkt T = uv existiert st(v) Braucht umfangreiche Hilfsstrukturen für Navigation im Baum, um Aufwand O(n) zu erreichen Sehr kompliziert, selten implementiert
27 McCreight s Vorwärts-Konstruktion Einfacherer Algorithmus von 1976 Kein online-verfahrem Trägt die Suffixe vom längsten zum kürzesten hin ein Zum Zeitkpunkt k ist der Baum ein kompakter A + -Baum für s 1,..., s k, aber kein Suffixbaum Verwendet Suffix-Links zur Navigation im Baum, um Aufwand O(n) zu erreichen. Wie ähnlich McCeight s Verfahren einer online-konstruktion ist, wurde viele Jahre nicht erkannt
28 McCreight s Konstruktion: Beispiel für adadc
29 Suffixbäume als Geheimwaffe der Algorithmen-Theoretiker gabe es kaum Implementierungen von Suffix-Bäumen Kompliziert und mit hohem konstanten Faktor beim Speicherbedarf. Viel benutzt in der Algorithmen-Theorie, um das Teilproblem des exakten String Matching effizient zu lösen. Die grossen Sequenzdatenmengen der Genomforschung und die Textmengen des WWW führten zu einer Renaissance der Suffixbäume, beginnend etwa 1994.
30 Ukkonen s online-konstruktion (1) Grundidee für die Konstruktion in O(n): Der Baum st(t ) wird online konstruiert, d.h. T wird zeichenweise gelesen und es existiert zu jedem Zeitpunkt T = uv der Baum st(u). Das Verlängern der Blattkanten wird durch geschickte Repräsentation, sog. open edges vermieden. Der jeweils aktive Suffix zeigt an, an welchem Punkt im Baum geändert werden muss. insgesamt wird n mal geändert das bedeutet, pro Änderung dürfen (amortisiert) nur O(1) Rechenschritte anfallen!!
31 Ukkonen s online Konstruktion (2): Beispiel für adadc
32 Ukkonen s online Konstruktion (3): Algorithmus Darstellung der internen Kanten als T (i, j) wie oben, der Blattkanten als open edges T (i, J), worin die Variable J das Ende der jeweils gelesenen Eingabe enthält. Beginne mit aktivem Knoten ε, J = 0, und Suffix Link ε ε Für T (0, J) is der aktive Suffix der längste embedded suffix, s akt = T (i, J), s T (1, J 1), i minimal. (s akt ist der längste Suffix von T (1, J), der nicht durch ein Blatt repräsentiert ist.) s akt ist repräsentiert durch den aktiven Knoten von st(t (1, J). Er kann explizit oder implizit sein. Beim Schritt J J + 1 wird der Baum am aktiven Knoten geändert.
33 Ukkonen s online Konstruktion (4): Algorithmus Erweiterungs-Schritt J := J + 1: Sei s akt repräsentiert durch (x, u) mit x uav y. Sei T (J) = b. Falls a = b, setze s akt = s akt a, den aktiven Knoten auf (x, ua). Keine neuen Knoten werden erzeugt. Falls a b, erzeuge xu falls u ε (neuer expliziter Knoten), erzeuge xu av y,(spalten der Kante), erzeuge xu b z (neues open edge). Folge dem Suffix Link von x = x 1...x k zu x 2...x k und wiederhole den Erweiterungsschritt, bis Fall a = b eintritt. Bei jeder Wiederholung muss der Suffix Link von xu zum nächsten neuen Knoten eingetragen werden.
34 Ukkonen s online Konstruktion (5): Komplexität Es gibt genau n Erweiterungsschritte, mit jedem Schritt wächst J um 1 In jeden Schritt werden 0 bis O(n) neue Knoten eingefügt und Kanten gespalten. Pro Knoten/Kante in O(1) Operationen. Sei T (i, J) jeweils der aktive Suffix. Wird kein Knoten eingefügt, bleibt i stehen. Mit jedem Verfolgen eines Suffix Link rückt i um 1 vor. Das ist nur n mal möglich. Insgesamt werden n mal Knoten in O(1) eingebaut: Gesamtaufwand ist O(n).
35 From Ukkonen to McCreight and Weiner Zusammenhang der Suffixbaum-Konstruktionen: Ukk und McC führen gleiche Serie von Knoten-Einfügungen und Kanten-Splits aus, nur ihre Interpretation ist anders Ukk und McC haben praktisch gleiche Effizienz Die Suffix Links in ast(t ) sind der reverse Präfixbaum In st(t ) sind sie ein Teil reversen Präfixbaums Macht man die expliziten Knoten des reversen Präfixbaums im Suffixbaum explizit und trägt man alle Suffix Links ein, entsteht der Affixbaum, in dem man in O(n) bidirektional suchen kann Weiner s Algorithmus ist Ukk rückwärts [Giegerich, Kurtz: From Ukkonen to McCreight and Weiner: A unifying view of linear time suffix tree construction. Algorithmica (1997) 19: ]
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
7. Sortieren Lernziele. 7. Sortieren
7. Sortieren Lernziele 7. Sortieren Lernziele: Die wichtigsten Sortierverfahren kennen und einsetzen können, Aufwand und weitere Eigenschaften der Sortierverfahren kennen, das Problemlösungsparadigma Teile-und-herrsche
8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.
8. A & D - Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.
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
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
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 8. Vorlesung Peter Stadler Universität Leipzig Institut für Informatik [email protected] Suche in Texten Einführung Suche in dynamischen
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
B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme
B / B* - Bäume Guido Hildebrandt Seminar Datenbanksysteme 25.11.2010 Gliederung Einleitung Binärbaum B - Baum B* - Baum Varianten Zusammenfassung Quellen Gliederung Einleitung Binärbaum B - Baum B* - Baum
Programmiertechnik II
Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...
15 Optimales Kodieren
15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen
Tableaukalkül für Aussagenlogik
Tableaukalkül für Aussagenlogik Tableau: Test einer Formel auf Widersprüchlichkeit Fallunterscheidung baumförmig organisiert Keine Normalisierung, d.h. alle Formeln sind erlaubt Struktur der Formel wird
Fortgeschrittene Netzwerk- und Graph-Algorithmen
Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester
Grundlagen: Algorithmen und Datenstrukturen
Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 00
Quicksort ist ein Divide-and-Conquer-Verfahren.
. Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.
Übung zur Vorlesung Algorithmische Geometrie
Übung zur Vorlesung Algorithmische Geometrie Dipl.-Math. Bastian Rieck Arbeitsgruppe Computergraphik und Visualisierung Interdisziplinäres Zentrum für Wissenschaftliches Rechnen 8. Mai 2012 B. Rieck (CoVis)
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
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive
Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G
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
Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.
6. Bäume Lernziele 6. Bäume Lernziele: Definition und Eigenschaften binärer Bäume kennen, Traversierungsalgorithmen für binäre Bäume implementieren können, die Bedeutung von Suchbäumen für die effiziente
Referat zum Thema Huffman-Codes
Referat zum Thema Huffman-Codes Darko Ostricki Yüksel Kahraman 05.02.2004 1 Huffman-Codes Huffman-Codes ( David A. Huffman, 1951) sind Präfix-Codes und das beste - optimale - Verfahren für die Codierung
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1 Datenstruktur Baum Definition eines Baumes
Praktikum Algorithmische Anwendungen WS 2006/07 Ausarbeitung: Schnelle Stringsuchalgorithmen Boyer-Moore und Knuth-Morris-Pratt
Praktikum Algorithmische Anwendungen WS 2006/07 Ausarbeitung: Schnelle Stringsuchalgorithmen Boyer-Moore und Knuth-Morris-Pratt Team A Rot Daniel Baldes (Nr. 11041002, [email protected]) Holger Pontius
Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem
Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Andreas Moser Dietmar Ebner Christian Schauer Markus Bauer 9. Dezember 2003 1 Einführung Der in der Vorlesung gezeigte Algorithmus für das Steiner
Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer
Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
Codierung, Codes (variabler Länge)
Codierung, Codes (variabler Länge) A = {a, b, c,...} eine endliche Menge von Nachrichten (Quellalphabet) B = {0, 1} das Kanalalphabet Eine (binäre) Codierung ist eine injektive Abbildung Φ : A B +, falls
Grundlagen Algorithmen und Datenstrukturen Kapitel 13
Grundlagen Algorithmen und Datenstrukturen Kapitel 13 Christian Scheideler + Helmut Seidl SS 2009 18.07.09 Kapitel 6 1 Speicherverwaltung Drei Ansätze: Allokiere neue Objekte auf einem Keller. Gib nie
Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen
Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes
Übung: Algorithmen und Datenstrukturen SS 2007
Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 5 Votierung in der Woche vom 04.06.0708.06.07 Aufgabe 12 Manuelle Sortierung
12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang
12 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne
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
Der Alpha-Beta-Algorithmus
Der Alpha-Beta-Algorithmus Maria Hartmann 19. Mai 2017 1 Einführung Wir wollen für bestimmte Spiele algorithmisch die optimale Spielstrategie finden, also die Strategie, die für den betrachteten Spieler
Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -
Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Thies Pfeiffer Technische Fakultät [email protected] Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 1 Exkurs: Formale
Punkt-in-Polygon-Suche Übersicht
Folie 1 von 43 Punkt-in-Polygon-Suche Übersicht! Praxisbeispiel/Problemstellung! Zählen von Schnittpunkten " Schnitt einer Halbgerade mit der Masche " Aufwandsbetrachtung! Streifenkarte " Vorgehen und
3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr
3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:
Klausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013
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..............................
Algorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik [email protected] Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg
8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
abgeschlossen unter,,,, R,
Was bisher geschah Turing-Maschinen können Sprachen L X akzeptieren entscheiden Funktionen berechnen f : X X (partiell) Menge aller Turing-akzeptierbaren Sprachen genau die Menge aller Chomsky-Typ-0-Sprachen
Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung
Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Pfade. Traveling Salesman Problem. Flüsse in Netzwerken
Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Das Rucksack-Problem Ein Dieb, der einen Safe
Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone
Was bisher geschah Motivation, Beispiele geometrische Objekte im R 2 : Punkt, Gerade, Halbebene, Strecke, Polygon, ebene Zerlegung in Regionen (planare Graphen) maschinelle Repräsentation geometrischer
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr
Algorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen 11. Übung Verkettete Listen, Sortieren Insertionsort, Mergesort, Radixsort, Quicksort Clemens Lang Übungen zu AuD 19. Januar 2010 Clemens Lang (Übungen zu AuD) Algorithmen
Praktikum 3 Algorithmik SS Aufgabe 10: Aufgabe 9 ( Skyline-Problem ) weitere Aufgaben folgen. Name:... Matr-Nr:...
Praktikum 3 Algorithmik SS 2007 14052007 Aufgabe 9: Aufgabe 10: Das Skyline-Problem Union-Find-Strukturen weitere Aufgaben folgen Name: Matr-Nr: Datum: Unterschrift des Dozenten (wenn bestanden): Aufgabe
Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis
Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest
Klausur Theoretische Informatik I WS 2004/2005
Technische Universität Chemnitz Chemnitz, den 22.02.2005 Fakultät für Informatik Prof. Dr. Andreas Goerdt Klausur Theoretische Informatik I WS 2004/2005 Studiengang Mechatronik Aufgabe 1 (2+2+2 Punkte)
Algorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind
3. Musterlösung. Problem 1: Heapsort
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner 3. Musterlösung Problem : Heapsort ** 2 3 4 5 Algorithmus : Heapsort (A) Eingabe : Array A der Länge n Ausgabe : Aufsteigend
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,
Algorithmische Bioinformatik
Algorithmische Bioinformatik Suffixbäume Ulf Leser Wissensmanagement in der Bioinformatik Failure Links P={banane, nabe, abnahme, na, abgabe} banane banan 1 bana ban b ba ab abn abna abnah a n na abg 4
Einführung in die Informatik 2
Einführung in die Informatik 2 Suchen in Texten Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.
Theoretische Informatik. Alphabete, Worte, Sprachen
Theoretische Informatik Alphabete, Worte, Sprachen Alphabete, Worte, Sprachen 1. Alphabete und Worte Definitionen, Beispiele Operationen mit Worten Induktionsbeweise 2. Sprachen Definition und Beispiele
Tutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
Minimal spannende Bäume
http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen
κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).
5. Graphenprobleme Im folgenden bezeichnen G = (E, K) einen endlichen Graphen mit der Eckenmenge E und der Kantenmenge K. G kann ungerichtet, gerichtet, schlicht oder nicht schlicht sein. 5.1 Spannende
14. Rot-Schwarz-Bäume
Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+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 Paarweises
Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen
reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung
B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write
B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write Thomas Maier Proseminar: Ein- / Ausgabe Stand der Wissenschaft Seite 1 von 13 Gliederung 1. Hashtabelle 3 2.B-Baum 3 2.1 Begriffserklärung 3 2.2
Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch
Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch verschiedene Datenstrukturen: lineare Datenstrukturen: Array,
Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
Geometrische Algorithmen Punkt-in-Polygon-Suche. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Punkt-in-Polygon-Suche
Folie 1 von 51 Geometrische Algorithmen Punkt-in-Polygon-Suche Folie 2 von 51 Punkt-in-Polygon-Suche Übersicht Praxisbeispiel/Problemstellung Zählen von Schnittpunkten Schnitt einer Halbgerade mit der
Übung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum
4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.
KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN
KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN RALF HINZE Institut für Informatik III Universität Bonn Email: [email protected] Homepage: http://www.informatik.uni-bonn.de/~ralf Februar, 2001 Binäre Suchbäume
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Rot-schwarz Bäume Eigenschaften Rotationen Einfügen (Löschen) 2 Einführung Binäre Suchbäume Höhe h O(h) für Operationen
Programmiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
Algorithmen für schwierige Probleme
Algorithmen für schwierige Probleme Britta Dorn Wintersemester 2011/12 30. November 2011 Wiederholung Baumzerlegung G = (V, E) Eine Baumzerlegung von G ist ein Paar {X i i V T }, T, wobei T Baum mit Knotenmenge
Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1
Bäume 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer
1. Übung Algorithmentechnik
1. Übung Algorithmentechnik Institut für Theoretische Informatik 04.11.2008 1/ 42 Aufgabe 1 Aufgabe (Amortisierte Analyse) Modellieren Sie eine Queue mit zwei Stacks so, dass die amortisierten Kosten von
Übungsblatt 2 - Lösung
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 2 - Lösung Vorlesung Algorithmentechnik im WS 08/09 Ausgabe 04. November 2008 Abgabe 8. November, 5:0 Uhr (im Kasten vor Zimmer
WS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:
AVL-Bäume Analyse (Folie 85, Seite 39 im Skript) Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl: 0 falls n = 0 F n = 1 falls
Gierige Algorithmen Interval Scheduling
Gierige Algorithmen Interval Scheduling IntervalScheduling(s,f). n length[s] 2. A {} 3. j 4. for i 2 to n do 5. if s[i] f[j] then 6. A A {i} 7. j i 8. return A Gierige Algorithmen Interval Scheduling Beweisidee:
Algorithmen II Vorlesung am
Algorithmen II Vorlesung am 31.01.2013 Algorithmen für externen Speicher INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei
...imbeispiel: Die Konkatenation der Blätter des Ableitungsbaums t bezeichnen wir auch mit yield(t). liefert die Konkatenation: name int + int.
Die Konkatenation der Blätter des Ableitungsbaums t bezeichnen wir auch mit yield(t)....imbeispiel: E 0 E 1 + T 1 T 0 F 2 T 1 F 2 int F 1 int name liefert die Konkatenation: name int + int. 273 Die Grammatik
Reguläre Sprachen und endliche Automaten
Reguläre Sprachen und endliche Automaten 1 Motivation: Syntaxüberprüfung Definition: Fließkommazahlen in Java A floating-point literal has the following parts: a whole-number part, a decimal point (represented
B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP
B-Bäume I Annahme: Sei die Anzahl der Objekte und damit der Datensätze. Das Datenvolumen ist zu groß, um im Hauptspeicher gehalten zu werden, z.b. 10. Datensätze auf externen Speicher auslagern, z.b. Festplatte
DATENSTRUKTUREN UND ALGORITHMEN
DATENSTRUKTUREN UND ALGORITHMEN 2 Ist die Datenstruktur so wichtig??? Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen Dünn besetzte Graphen und Matrizen bilden
Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume
Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen
2. Lernen von Entscheidungsbäumen
2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse
Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5
Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen
Konstruktion sehr großer Suffixbäume
Konstruktion sehr großer Suffixbäume Steffen Andre, Michael Höhndorf Institut für Informatik, Humboldt Universität Berlin Gliederung 1 Einleitung 1.1 Suffixbäume 1.2 Probleme mit Suffixbäumen 1.3 Lösungsansätze
Grundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: [email protected] 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen
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.
Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.
Chomsky-0-Grammatik Rek. Aufz. Satz T5.2.2: Wenn L durch eine Chomsky-0- Grammatik G beschrieben wird, gibt es eine NTM M, die L akzeptiert. Beweis: Algo von M: Schreibe S auf freie Spur. Iteriere: Führe
