t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen.

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

Algorithmen und Datenstrukturen Balancierte Suchbäume

Übung zur Vorlesung Algorithmische Geometrie

Gliederung. 5. Compiler. 6. Sortieren und Suchen. 7. Graphen

Datenstrukturen und Algorithmen

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Informatik II, SS 2014

13 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

Suchbäume mit inneren Knoten verschiedener Knotengrade.

Grundlagen von Datenbanken. B-Bäume, B*-Bäume Normalisierung

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

Datenstrukturen & Algorithmen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1

12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

Balancierte Bäume. Martin Wirsing. in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer. SS 06

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14

Informatik II, SS 2014

Algorithmen und Datenstrukturen

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

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

13. Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Binärbäume: Beispiel

2 i. i=0. und beweisen Sie mittels eines geeigneten Verfahrens die Korrektheit der geschlossenen Form.

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Algorithmen und Datenstrukturen Suchbaum

INTERVALLBÄUME. Tanja Lehenauer, Besart Sylejmani

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2013/14. Prof. Dr. Sándor Fekete

Bäume Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

Dynamische Mengen. Realisierungen durch Bäume

Abschnitt 18: Effizientes Suchen in Mengen

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Informatik II, SS 2014

Nachtrag zu binären Suchbäumen (nicht (nur) AVL Bäumen: Löschen von Elementen in binären Suchbäumen. 1. Fall: zu löschendes Element ist Blatt: löschen

Nachtrag zu binären Suchbäumen

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Tutorium Algorithmen & Datenstrukturen

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 11, Donnerstag, 15.

Vorlesung Datenstrukturen

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 11, Donnerstag, 16.

Algorithmen und Datenstrukturen

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

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

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

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

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

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

Sortierverfahren für Felder (Listen)

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

9.4 Binäre Suchbäume. Xiaoyi Jiang Informatik II Datenstrukturen und Algorithmen

Programmiertechnik II

Ziel: Schaffung einer zusätzlichen, schnellen Zugriffsmöglichkeit unabhängig von Primärorganisation der Datei

Datenbanken: Indexe. Motivation und Konzepte

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

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

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

Übung Algorithmen I

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Ausarbeitung zum Proseminar. Algorithms and Data Structures for Database Systems. von. Ludwig Bachmaier. Thema: B - Bäume. Vortrag am

Datenstrukturen & Algorithmen

13. Bäume: effektives Suchen und Sortieren

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:

6 Baumstrukturen. Formale Grundlagen der Informatik I Herbstsemester Robert Marti

Graphen und Bäume. A.1 Graphen

Gliederung. Algorithmen und Datenstrukturen I. öschen in Rot-Schwarz-Bäumen. Löschen in Rot-Schwarz-Bäumen

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Datenstrukturen. einfach verkettete Liste

Programmiertechnik II

6-1 A. Schwill Grundlagen der Programmierung II SS 2005

Studientag zur Algorithmischen Mathematik

Dynamisches Huffman-Verfahren

Copyright, Page 1 of 8 AVL-Baum

Kapiteltests zum Leitprogramm Binäre Suchbäume

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

WS 2009/10. Diskrete Strukturen

Kapitel 9 Suchalgorithmen

Wintersemester 2007/2008 Helmut Seidl Institut für Informatik TU München

Dateisysteme mit Plugin-Funktion

Tutoraufgabe 1 (Vollständige Induktion): Tutoraufgabe 2 (Rotationen): Datenstrukturen und Algorithmen SS15 Übungsblatt 5 (Abgabe 3.6.

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

Amortisierte Analysen

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

11.1 Grundlagen - Denitionen

Mobile Objekte Indexstrukturen

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

BÄUME BALANCIERTE BÄUME. Algorithmen & Datenstrukturen Prof. Dr. Wolfgang Schramm. 10. Kapitel (Teil 2)

2.5.1 Binäre Suchbäume Optimale Suchbäume Balancierte Bäume Skip-Listen Union-Find-Strukturen

Tutoren Simon Andermatt Lukas Beck. Alexis Peter Thomas Ritter

Binäre Bäume Darstellung und Traversierung

Tutoren Jan Ebbe Pat Mächler Valentino Rugolo Sascha Scherrer. Grundlagen der Programmierung (CS101) - Blatt 8 Theorie [4 Punkte] - Praxis [12 Punkte]

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:

Transkript:

.3 B-Bäume t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen. Wird der t-äre Baum zur Verwaltung von Daten auf dem Hintergrundspeicher (Platte) verwendet, so ist die Anzahl der Plattenzugriffe proportional zur Pfadlänge. Da ein Plattenspeicherzugriff einige Größenordnungen langsamer ist als ein Hauptspeicherzugriff, können sich lange Pfade verheerend auf die Leistung auswirken. Es stellt sich daher auch hier die Frage nach einer dynamischen Optimierung mit dem Ziel, möglichst ausgewogene Bäume geringer Höhe zu erhalten. Zu diesem Zweck wurden die sogenannten B-Bäume entwickelt (R. Bayer, 72) ( B für balanced oder auch Bayer ) -29

Definition Ein B-Baum der Ordnung t ist ein t-ärer Intervallbaum (Suchbaum) mit den folgenden Eigenschaften (1) Alle Blätter liegen in derselben Schicht (haben dieselbe Pfadlänge zur Wurzel) (2) Alle Knoten mit Ausnahme der Wurzel besitzen mindestens m = t/2-1 Werte. (d.h. mindestens zur Hälfte gefüllt). (3) Alle Knoten, die nicht Blätter sind und m Werte enthalten, besitzen m+1 Nachfolger (alle Nachfolgerpositionen sind besetzt) Zusätzlich gilt natürlich (t-ärer Intervallbaum) (4) Die maximale Zahl der Werte m in einem Knoten ist t-1 (max. Knotengrad t) (5) Bezüglich jedes Wertes gilt: Alle Werte im linken Teilbaum sind kleiner, alle Werte im rechten Teilbaum größer (Suchbaum-Eigenschaft) -30

Beispiel: B-Baum der Ordnung 5 Wurzel 50 Minimalfüllung! 20 30 12 22 26 34 38 Blätter Maximalfüllung! 60 70 80 90 52 54 56 30 62 64 66 68 72 74 86 88 92 94 96 99-31

Einfügen Die definierenden Eigenschaften des B-Baums müssen beim Einfügen und Löschen beachtet werden. Beim Einfügen muß zunächst wieder die Einfügestelle gesucht werden. Diese ist auf Grund der B-Baum-Eigenschaft (3) immer in einem Blatt. Das Einfügen kann folgendermaßen zusammengefaßt werden: 1. Ist der Baum leer, so ist ein Blatt (gleichzeitig Wurzel) anzulegen und zu initialisieren 2. Das Element in das Blatt einfügen, falls m < t-1. Der Vorgang ist dann beendet. Andernfalls tritt ein Überlauf ein (m wird größer als t-1) 3. Falls m = t wird (Überlauf), muß a) ein Ausgleich mit einem nichtvollen Nachbarn erfolgen (Verschiebung) oder b) wenn beide Nachbarn voll besetzt sind, das Blatt geteilt werden, d.h. ein neues Blatt wird angelegt und die t Werte werden auf beide Blätter verteilt. -32

Verschiebung: Fallunterscheidung Fall Nur linker Nachbar vorhanden mit m links < t-1 Linker und rechter Nachbar vorhanden mit m links < t-1 und m rechts < t-1 und m links < m rechts Linker und rechter Nachbar vorhanden mit m links < t-1 und m rechts < t-1 und m links > m rechts Nur rechter Nachbar vorhanden mit m rechts < t-1 Art der Verschiebung Linksverschiebung Linksverschiebung Rechtsverschiebung Rechtsverschiebung -33

Beispiel Linksverschiebung (t=7) Einfügen des Wertes b7 Vorher: v1 v2 v3 v4 v5 v6 a1 a2 a3 b1 b2 b3 b4 b5 b6 b7 Nachher: v1 b2 v3 v4 v5 v6 a1 a2 a3 v2 b1 b3 b4 b5 b6 b7-34

Anlegen eines neuen Knotens Einfügen von Wert b7 v1 v2 v3 v4 v5 a1 a2 a3 a4 a5 a6 b1 b2 b3 b4 b5 b6 b7 c1 c2 c3 c4 c5 c6 Situation nach Einfügen v1 v2 b4 v3 v4 v5 a1 a2 a3 a4 a5 a6 b1 b2 b3 b5 b6 b7 c1 c2 c3 c4 c5 c6-35

Fortgesetzter Überlauf Das Anlegen eines neuen Knotens führt zum Einfügen eines Wertes beim Vorgänger. Dadurch kann dort ebenfalls ein Überlauf auftreten, der in gleicher Weise zu behandeln ist. Überläufe können sich also bis zur Wurzel fortsetzen. Läuft der Wurzelknoten über, so wird die Wurzel geteilt und eine neue Wurzel angelegt. Dies ist die einzige Situation, bei der ein B-Baum in der Höhe wächst. -36

Löschen Beim Löschen von Werten endet die Suche an einem beliebigen Knoten. Ist der Knoten ein innerer Knoten, so besitzt der zu löschende Wert zwei Nachfolgerknoten. Wie üblich wird der Wert dann durch den nächstgrößeren oder nächstkleineren ersetzt, also durch das Minimum des rechten oder das Maximum des linken Teilbaums. Dieser Ersatzwert liegt immer in einem Blatt. Dadurch ist das Löschen in einem inneren Knoten auf das Löschen in einem Blattknoten zurückgeführt. Beim Löschen in einem Blatt ist nun wiederum die B-Baum-Eigenschaft zu beachten, d.h. es kann zu einer Unterschreitung der Minimalfüllung kommen. -37

Löschen 1. Das Element aus dem Blatt entfernen. Ist das Blatt die Wurzel und ist diese leer gewordenen, so kann die Wurzel gelöscht werden. Der Baum ist dann leer. 2. Ist das Blatt nicht die Wurzel und gilt für die Anzahl der Werte m t 2 1 (Minimalfüllung bleibt erhalten), so ist das Löschen beendet. 3. Gilt jedoch m = t 2 2, so muß die B-Baum-Eigenschaft wiederhergestellt werden: Gibt es einen Nachbarn mit m > t 2 1, so können Elemente zwischen den beiden Knoten verschoben werden. Gilt für beide Nachbarn jedoch m = t 2 1, so müssen zwei Knoten vereinigt werden -38

Verschiebung von Werten beim Löschen Fall Art der Verschiebung Nur rechter Nachbar vorhanden mit m rechts > t 2 1 Linker und rechter Nachbar vorhanden mit m links > t 2 1 und m rechts > t 2 1 und m links m rechts Linker und rechter Nachbar vorhanden mit m links > t 2 1 und m rechts > t 2 1 und m links m rechts Nur linker Nachbar vorhanden mit m links > t 2 1 Linksverschiebung Linksverschiebung Rechtsverschiebung Rechtsverschiebung -39

Vereinigung von Knoten beim Löschen Vereinigung mit rechtem Nachbarn nach Löschen von a3 v1 v2 v3 v4 v5 v6 a1 a2 b1 b2 b3 Zusammenfassen! v1 v3 v4 v5 v6 a1 a2 v2 b1 b2 b3-40

Fortgesetztes Vereinigen Durch das Vereinigen von Knoten wird die Zahl der Werte m im Vorgängerknoten um eins kleiner. Daher kann dort wiederum ein Unterschreiten der Untergrenze stattfinden. Vereinigungsvorgänge können sich daher bis zur Wurzel fortsetzen. Die Wurzel selbst darf jedoch weniger als t 2 1 Werte besitzen, so daß hier der Vorgang endet. -41

Komplexität der B-Baum-Operationen Der Aufwand der Vorgänge in den Knoten hängt nur von t ab, nicht aber von der Größe des Baumes. Knotenoperationen können daher als Konstante gewertet werden. Der Aufwand für die Operationen Suchen, Einfügen und Löschen ist offensichtlich proportional zur Höhe des Baumes Es stellt sich also die Frage: Wie hoch werden B-Bäume? -42

Abschätzung der Höhe von B-Bäumen Die Höhe ist am geringsten, wenn der Baum vollbesetzt ist, d.h. jeder Knoten t Nachfolger besitzt. Die Zahl der Knoten eines Baums der Höhe h ist dann n h = 1+ t + t 2 +L+t h = bzw. durch Logarithmieren h log t n h 1 h t i i=0 = th+1 1 t 1 th+1 Andererseits ist die Höhe am größten, wenn die Wurzel 2 und alle anderen inneren Knoten jeweils t 2 Nachfolger besitzen. In diesem Fall ist die Zahl der Knoten eines Baums der Höhe h ( h 1 ) = 1+ 2 t 2 n h = 1+ 21+ t 2 + t 2 2 +L+ t 2-43 h 1 t 2 1 1+ 2 t 2 h 1

oder n h 1 2 t 2 h 1 Logarithmieren ergibt h log t 2 n h 1 2 +1 Damit haben wir die Höhe eines B-Baums nach oben und unten abgeschätzt und erhalten: Für die Höhe eines B-Baums der Ordnung t mit n Knoten gilt: log t n 1 h log t 2 n 1 2 +1 Da die Baumhöhe den Aufwand der Operationen bestimmt, ergibt sich für die drei Operationen eine logarithmische Komplexität in der Anzahl der Knoten und damit auch der Werte -44

Beispiel U.-P. Schroeder, Uni Paderborn Wachsen eines B-Baums der Ordnung t = 5 (Geordnetes Einfügen der Elemente 1,2,..,33) 10 12 10 11 10 11 13 15 16 10 11 12 13 10 11 12 13 10 11 12 15 16 17 12 10 11 13 10 11 12 13 15 16 17 18 12 17 10 11 13 15 10 11 12 13 15 16 18-45

17 22 10 11 12 13 15 16 18 20 10 11 12 13 15 16 17 18 20 21 23 17 22 10 11 12 13 15 16 18 20 21 10 11 12 13 15 16 17 18 20 21 23 18 22 10 11 12 13 15 16 17 20 21 22 10 11 12 13 15 16 17 18 20 21 23 26 23 10 11 12 13 15 16 17 18 20 21 22 23 10 11 12 13 15 16 17 18 20 21 22 26 27-46

10 11 12 13 15 16 17 18 20 21 22 23 26 27 28 27 10 11 12 13 15 16 17 18 20 21 22 23 26 28 29 27 10 11 12 13 15 16 17 18 20 21 22 23 26 28 29 30-47

27 10 11 12 13 15 16 17 18 20 21 22 23 26 28 29 30 31 28 10 11 12 13 15 16 17 18 20 21 22 23 26 27 29 30 31 32 29 10 11 12 13 15 16 17 18 20 21 22 23 26 27 28 30 31 32 33-48

Beispiel Schrumpfen eines B-Baums der Ordnung t = 5 ((Zufälliges Löschen der Elemente 1,2,..,33) U.-P. Schroeder, Uni Paderborn 29 10 11 12 13 15 16 17 18 20 21 22 23 26 27 28 30 31 32 33 29 11 12 13 15 16 17 18 20 21 22 23 26 27 28 30 31 32 33 28 11 12 13 15 16 17 18 20 21 22 23 26 27 30 31 32 33 28 11 12 13 15 16 17 20 21 22 23 26 27 30 31 32 33-49

28 11 12 13 15 16 17 20 21 22 23 27 30 31 32 33 17 28 11 12 13 15 16 20 21 22 23 27 30 31 32 33 17 28 11 12 13 15 16 20 21 22 23 27 30 31 32 17 28 11 12 13 15 16 20 21 23 27 30 31 32 13 16 28 11 12 15 20 21 23 27 30 31 32-50

13 20 28 11 12 16 21 23 27 30 31 32 13 28 11 12 16 20 23 27 30 31 32 13 30 11 12 16 20 23 27 31 32 30 12 13 16 20 23 27 31 32-51

16 30 12 20 23 27 31 32 30 12 27 30 32 12 20 23 27 31 32 30 12 27 32 12 20 27 31 32 27 32 27 32 12 20 27 30 32 32 12 27 30 32 32-52

Einsatz von B-Bäumen B-Bäume mit kleinem t können als Hauptspeicherdatenstrukturen verwendet werden, bringen gegenüber ausgewogen Binärbäumen jedoch kaum Vorteile. Haupteinsatzgebiet der B-Bäume ist daher die Verwaltung großer Datenmengen auf Hintergrundspeicher (Dateisysteme und Datenbanksysteme) Die Daten verfügen dabei über einen eindeutigen Schlüssel, der als Suchkriterium dient Die Knotengröße wird so gewählt, daß sie einem Block (als Transporteinheit zwischen Platte und Hauptspeicher) entspricht. -53

Beispiel Sozialversicherung in China mit ca. 10 9 Einträgen Bei 40 Byte / Eintrag und einer Blockgröße von 4096 Byte ergibt sich ein Auffächerungsgrad von t = 4096 40 10 2 10 2 10 4 10 6 10 8 10 10 Ein B-Baum der Höhe 4 reicht aus -54