Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B7.1 Einführung. B Bäume. B7.3 Rot-Schwarz Bäume

Ähnliche Dokumente
Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B7.1 Einführung. B Bäume. B7.3 Rot-Schwarz Bäume.

B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Einführung. B6.2 Symboltabellen. B6.3 Einfache Implementationen

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B4.1 Definitionen und Eigenschaften. B4.2 Traversierung. B4.

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B3.1 Einführung. B3.2 Verkettete Liste. B3.3 Bäume

Algorithmen und Datenstrukturen

Informatik II, SS 2014

Algorithmen und Datenstrukturen

Informatik II, SS 2014

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

Informatik II Bäume zum effizienten Information Retrieval

Algorithmen und Datenstrukturen II

VL-11: Rot-Schwarz Bäume. (Datenstrukturen und Algorithmen, SS 2017) Janosch Fuchs

Informatik II, SS 2016

Definition 14 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:

Algorithmen und Datenstrukturen

Programmiertechnik II

Trees. November 14, Algorithms & Datastructures 2 Exercises WT 2017

Datenstrukturen & Algorithmen

Trees. November 13, Algorithms & Datastructures 2 Exercises WT 2017

Balancierte Bäume. Minimale Knotenanzahl von AVL-Bäumen. AVL-Bäume. Definition für "balanciert":

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

Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT

Programmiertechnik II

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:

Anwendungsbeispiel MinHeap

Vorlesung Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Übung Algorithmen und Datenstrukturen

Mengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Informatik II, SS 2016

Informatik II, SS 2018

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

Informatik II Vorlesung am D-BAUG der ETH Zürich

9. Natürliche Suchbäume

Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

14. Rot-Schwarz-Bäume

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Übung Algorithmen I

Informatik II, SS 2014

Informatik II: Algorithmen und Datenstrukturen SS 2015

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Dynamische Mengen. Realisierungen durch Bäume

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

C G C C G C. Löschen von Knoten. Beispiel: Löschen von k =

Invarianzeigenschaft (für binären Suchbaum)

elementare Datenstrukturen

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen

Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n)

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

Splay-Bäume. Joseph Schröer. Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt

Informatik II, SS 2016

Teil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

Vorlesung Datenstrukturen

Algorithmen und Datenstrukturen, FS17 Prof Dr Christian Tschudin

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

18. Natürliche Suchbäume

Informatik II, SS 2018

Binäre Suchbäume. Organisatorisches. VL-10: Binäre Suchbäume. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger.

Vorlesung Datenstrukturen

18. Natürliche Suchbäume

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

4.3 Bäume. Definition des Baumes. Bäume sind eine sehr wichtige Datenstruktur der Informatik.

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

Abschnitt 18: Effizientes Suchen in Mengen

Algorithmen und Datenstrukturen. Kapitel 4: Suchverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y

Algorithmen I. Sebastian Schlag Institut für Theoretische Informatik Web:

Kap. 4.2 Binäre Suchbäume ff Kap. 4.3: AVL-Bäume

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.

Informatik II Prüfungsvorbereitungskurs

Algorithmen und Datenstrukturen I Bruder-Bäume

Informatik II, SS 2018

Übung Algorithmen und Datenstrukturen

Teil 1: Suchen. Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume Ausgeglichene Bäume. B-Bäume Digitale Suchbäume Heaps

Übersicht. Einfache Suche. Hashing Skip-Lists Mengen Sortieren Order-Statistics. 2 Suchen und Sortieren

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 143

Algorithmen und Datenstrukturen

Mehrwegbäume Motivation

3.8 Bäume. Definition des Baumes

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume

Transkript:

B7. Balancierte Bäume a B7. Balancierte Bäume 1 Marcel Lüthi and Gabriele Röger Universität Basel a Folien basieren auf Vorlesungsfolien von Sedgewick & Wayne https://algs4.cs.princeton.edu/lectures/33balancedsearchtrees-2x2.pdf B7.1 Einführung B7.2 2-3 Bäume B7.3 Rot-Schwarz Bäume 1 Folien basieren auf Vorlesungsfolien von Sedgewick & Wayne https://algs4.cs.princeton.edu/lectures/33balancedsearchtrees-2x2.pdf M. Lüthi, G. Röger (Universität Basel) 1 / 26 M. Lüthi, G. Röger (Universität Basel) 2 / 26 B7. Balancierte Bäume 2 Einführung B7. Balancierte Bäume 3 Einführung Informatiker des Tages : Donald Knuth B7.1 Einführung Donald E. Knuth Autor: The art of computer programming Autor des Textsatzsystems TEX Gewinner Turing Award (1974) und vieler anderer Preise Arbeit an Analyse von Algorithmen Entwickelte erste Sprache für Literate programming Knuth D. The art of computer programming 1: Fundamental algorithms 2: Seminumerical algorithms 3: Sorting and searching. MA: Addison-Wesley. 1968. M. Lüthi, G. Röger (Universität Basel) 3 / 26 M. Lüthi, G. Röger (Universität Basel) 4 / 26

B7. Balancierte Bäume 4 Einführung Balancierte Bäume B7. Balancierte Bäume 5 2-3 Bäume Worst-case Average-case Implementation suchen einfügen löschen suchen (hit) einfügen löschen Verkettete Liste N N N N/2 N N/2 Binäre suche log 2 (N) N N log 2 (N) N/2 N BST N N N log 2 (N) log 2 (N) N Ziel log 2 (N) log 2 (N) log 2 (N) log 2 (N) log 2 (N) log 2 (N) B7.2 2-3 Bäume Frage Können wir eine Implementation finden, bei der alle Operationen logarithmische Komplexität haben? M. Lüthi, G. Röger (Universität Basel) 5 / 26 M. Lüthi, G. Röger (Universität Basel) 6 / 26 B7. Balancierte Bäume 6 2-3 Bäume 2-3 Bäume Wir unterscheiden zwei Knotentypen 2-Knoten 1 Schlüssel, zwei Kinder 3-Knoten 2 Schlüssel, drei Kinder Wir verlangen symmetrische Ordnung Zusätzlich muss Baum perfekt balanciert sein. Jeder Pfad von Wurzel zu Blatt hat dieselbe Länge. B7. Balancierte Bäume 7 2-3 Bäume Einfügen in 2-3 Baum Einfügen in 2-Knoten auf letzter Ebene Neuer Schlüssel zu 2-Knoten hinzufügen. Knoten wird zu 3-Knoten. M. Lüthi, G. Röger (Universität Basel) 7 / 26 M. Lüthi, G. Röger (Universität Basel) 8 / 26

B7. Balancierte Bäume 8 2-3 Bäume Einfügen in 2-3 Baum Einfügen in 3-Knoten auf letzter Ebene Neuer Schlüssel zu 3-Knoten hinzufügen. Knoten wird temporär zu 4-Knoten. Mittlerer Knoten in Parent einfügen. Falls nötig, rekursiv fortsetzen. Falls Wurzel erreicht wird, und diese zu 4-Knoten wird, wird diese zu zwei 2-Knoten. B7. Balancierte Bäume 9 2-3 Bäume Lokale Transformationen Teilen eines 4 Knotens ist lokale Operation Unterbäume nicht davon betroffen Konstante Anzahl Operationen Quelle: Abb. 3.30, Algorithmen, Wayne & Sedgewick M. Lüthi, G. Röger (Universität Basel) 9 / 26 M. Lüthi, G. Röger (Universität Basel) 10 / 26 B7. Balancierte Bäume 10 2-3 Bäume Globale Eigenschaften B7. Balancierte Bäume 11 2-3 Bäume 2-3 Baum: Quiz: Performance Invariante: Jede Operation belässt Baum perfekt balanciert. Ordnung der Teilbäume bleibt erhalten. Bäume sind perfekt balanciert! Baumhöhe: Worst Case Best Case Quelle: Abb. 3.31, Algorithmen, Wayne & Sedgewick M. Lüthi, G. Röger (Universität Basel) 11 / 26 M. Lüthi, G. Röger (Universität Basel) 12 / 26

B7. Balancierte Bäume 12 2-3 Bäume Übersicht B7. Balancierte Bäume 13 2-3 Bäume Problem Worst-case Average-case Implementation suchen einfügen löschen suchen (hit) einfügen löschen Verkettete Liste N N N N/2 N N/2 Binäre suche log 2 (N) N N log 2 (N) N/2 N Binärer Suchbaum N N N log 2 (N) log 2 (N) N 2-3 Baum log 2 (N) log 2 (N) log 2 (N) log 2 (N) log 2 (N) log 2 (N) 2-3 Bäume sind mühsam zu implementieren. Wir müssen viele Spezialfälle unterscheiden. Code wird unelegant und fehleranfällig. Elegante Lösung: Rot-Schwarz Bäume M. Lüthi, G. Röger (Universität Basel) 13 / 26 M. Lüthi, G. Röger (Universität Basel) 14 / 26 B7. Balancierte Bäume 14 Rot-Schwarz Bäume B7. Balancierte Bäume 15 Rot-Schwarz Bäume Informatiker des Tages : Robert Sedgewick B7.3 Rot-Schwarz Bäume Professor in Princeton Doktorand von Donald Knuth. Erfinder der Rot-Schwarz Bäume Autor von unserem Lehrbuch. Robert Sedgewick Guibas, Leo J., and Robert Sedgewick. A dichromatic framework for balanced trees, IEEE Foundations of Computer Science, 1978. M. Lüthi, G. Röger (Universität Basel) 15 / 26 M. Lüthi, G. Röger (Universität Basel) 16 / 26

B7. Balancierte Ba ume16 : Idee B7. Balancierte Ba ume17 - Definition Ein Rot-Schwarz Baum ist ein bina rer Suchbaum, mit der Eigenschaft: I Rote Referenzen zeigen nach links I Von keinem Knoten gehen zwei rote Referenzen aus I 2-3 Baum wird als bina rer Suchbaum repra sentiert I 3-Knoten werden mit speziellen roten links markiert. I (Keine 4-Knoten im 2-3 Baum) I Jeder Pfad von der Wurzel zu einem Blatt hat die gleiche Anzahl von schwarzen Referenzen. I (Gleiche Tiefe im 2-3 Baum) Quelle: Abb. 3.34, Algorithmen, Wayne & Sedgewick 17 / 26 18 / 26 Quelle: Abb. 3.36, Algorithmen, Wayne & Sedgewick B7. Balancierte Ba ume18 Repra sentation in Code B7. Balancierte Ba ume19 Suchen und ordnungsbasierte Operationen I Jeder Knoten hat genau eine Referenz von Parent I RB-Tree ist ein bina rer Suchbaum - einfach mit Farbe I Implementation von Suche und ordnungsbasierten Operationen bleibt gleich. I 1 Feld in Knoten genu gt um Farbe speichern Quelle: Abb. 3.36, Algorithmen, Wayne & Sedgewick I Farbe wird ignoriert. class Node [ Key, Value ]: Node ( key : Key, value : Value ) key : Key value : Value left : Node [ Key, Value ] right : Node [ Key, Value ] color : Color # Red or Black Quelle: Abb. 3.36, Algorithmen, Wayne & Sedgewick 19 / 26 20 / 26

B7. Balancierte Bäume 20 Rot-Schwarz Bäume Einfügen: Idee B7. Balancierte Bäume 21 Rot-Schwarz Bäume Einfügen: Details Grundidee Alle Operationen werden auf Operationen in entsprechendem 2-3 Baum zurückgeführt Neuer Link wird immer Rot Führt zu potentiellem 4 Knoten in 2-3 Baum Lokale Operationen um 2-3 Baum wiederherzustellen Farb wechseln Rotation links Rotation rechts Unterscheidung aller möglichen Fälle Pro Fall: Eigene Strategie um 2-3 Baum wiederherzustellen Am besten in Ruhe selber lesen / anschauen Relevante Teile aus dem Buch auf Adam Gute, schrittweise Erklärung mit Ablaufprotokoll Details nicht prüfungsrelevant Animation: https://algs4.cs.princeton.edu/lectures/ 33DemoRedBlackBST.mov M. Lüthi, G. Röger (Universität Basel) 21 / 26 M. Lüthi, G. Röger (Universität Basel) 22 / 26 B7. Balancierte Bäume 22 Rot-Schwarz Bäume Einfügen: Implementation B7. Balancierte Bäume 23 Rot-Schwarz Bäume Implementation Trügerisch einfache Implementation def _put (self, key, value, node ): if ( node == None ): return RedBlackBST. Node (key, value, Color.RED, 1) elif key < node. key : node. left = self. _put (key, value, node. left ) elif key > node. key : node. right = self. _put (key, value, node. right ) elif key == node. key : node. value = value if self. _isred ( node. right ) and not self. _isred ( node. left ): node = self. _rotateleft ( node ) if self. _isred ( node. left ) and self. _isred ( node. left. left ): node = self. _rotateright ( node ) if self. _isred ( node. left ) and self. _isred ( node. right ): self. _flipcolors ( node ) node. count = 1 + self. _size ( node. left ) + self. _size ( node. right ) Jupyter-Notebook: RedBlackBST.ipynb return node M. Lüthi, G. Röger (Universität Basel) 23 / 26 M. Lüthi, G. Röger (Universität Basel) 24 / 26

B7. Balancierte Bäume 24 Rot-Schwarz Bäume Analyse B7. Balancierte Bäume 25 Rot-Schwarz Bäume Übersicht Theorem Die Höhe eines Rot-Schwarz-Baums mit N Knoten ist nicht höher als 2 log 2 (N). Intuition: Jeder Pfad von Wurzel zu Blatt hat gleiche Anzahl von Schwarzen Referenzen Korrespondenz mit 2-3 Baum Es gibt nie zwei rote Referenzen hintereinander. Worst-case Average-case Implementation suchen einfügen löschen suchen (hit) einfügen löschen Verkettete Liste N N N N/2 N N/2 Binäre suche log 2 (N) N N log 2 (N) N/2 N Binärer Suchbaum N N N log 2 (N) log 2 (N) N Rot-Schwarz Baum log 2 (N) log 2 (N) log 2 (N) log 2 (N) log 2 (N) log 2 (N) Wir haben logarithmische Komplexität aller Operationen mit einer kleinen Konstante. M. Lüthi, G. Röger (Universität Basel) 25 / 26 M. Lüthi, G. Röger (Universität Basel) 26 / 26