Mindesthöhe: |_log2 n_|, maximale Höhe: n-1

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

8. Termin Teil B: Wiederholung Begriffe Baum
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Suchbäume unterstützen alle unten angegebenen Operationen für dynamische Mengen K effizient: Search(K ,k) ---- Suche ein Element x von K mit Schlüssel.
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
7.2 B-Bäume / B*-Bäume als Hilfsmittel zur Indexorganisation
Claudio Moraga; Gisbert Dittrich
GIN2 – 2. Vorlesung, SS04 Prof. Dr. Wolfram Conen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Gewichtsbalancierte Suchbäume
Durchlaufen eines Binärbaumes
Kapitel 6. Suchverfahren
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Balancierte Bäume Effizienz der Wörterbuchoperationen auf Bäumen hängt direkt von der Baumhöhe ab. Baum mit n Knoten: Mindesthöhe: |_log2 n_|, maximale.
5. Sortier-Algorithmen Vorbemerkungen:
Synonyme: Stapel, Keller, LIFO-Liste usw.
Bäume • Kernidee: Speicherung von Daten in einer Baumstruktur
Sortieren mit Binären Bäumen
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Der R-Baum Richard Göbel.
Effizienz: Indexstrukturen
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 19 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - Balancierte Bäume, AVL-Bäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Fibonacci-Heaps – Analyse) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
WS Algorithmentheorie 15 – Fibonacci-Heaps Tobias Lauer.
Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – Bruder-Bäume, B-Bäume) Prof. Th. Ottmann.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
Minimum Spanning Tree: MST
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Animationen zu Kap. 4.3: AVL-Bäume
Splay Trees Von Projdakov Benjamin.
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Graphen und Bäume.
Kapitel 5: Von Datenstrukturen zu Abstrakten Datentypen
Kapitel 6: Suchbäume und weitere Sortierverfahren
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
Algorithmen und Datenstrukturen 1 SS 2002
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume.
Binärer Suchbaum IV AVL-Baum I
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Binärer Suchbaum III- -AVL-Baum-
Binärer Baum, Binärer Suchbaum I
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 2 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
AVL-Bäume.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Mindesthöhe: |_log2 n_|, maximale Höhe: n-1 Balancierte Bäume Effizienz der Wörterbuchoperationen auf Bäumen hängt direkt von der Baumhöhe ab. Baum mit n Knoten: Mindesthöhe: |_log2 n_|, maximale Höhe: n-1 Zugriff im Mittel O(log2 n), aber worst case linear. Ziel: schneller direkter Zugriff mit z max  O ( log2 n), Einfüge- und Löschoperationen mit logarithmischen Aufwand Heuristik: für jeden Knoten im Baum soll die Anzahl der Knoten in jedem seiner beiden Unterbäume möglichst gleich gehalten werden R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Balancierte Binärbäume 2 unterschiedliche Vorgehensweisen: (1) die zulässige Höhendifferenz der beiden Unterbäume ist beschränkt ==> höhenbalancierte Bäume (2) das Verhältnis der Knotengewichte der beiden Unterbäume erfüllt gewisse Bedingungen. ==> gewichtsbalancierte Bäume Zu (1) Definition: Seien Bl(x) und Br(x) die linken und rechten Unterbäume eines Knotens x. Weiterhin sei h (B) die Höhe eines Baumes B. Ein k-balancierter Binärbaum ist entweder leer oder es ist ein Baum, bei dem für jeden Knoten x gilt: | h (B l ( x ) - h (B r ( x )) |  k k läßt sich als Maß für die zulässige Entartung im Vergleich zur ausgeglichenen Baumstruktur auffassen. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

AVL - Bäume Definition: Ein 1- balancierter Binärbaum heißt AVL-Baum (nach Adelson, Velski und Landis) wenn das Balancierungskriterium | h (B l ( x ) - h (B r ( x )) |  1 erfüllt ist. Konstruktionsprinzip: B l und B r seien AVL - Bäume der Höhe m und m + 1. Dann sind die nachfolgend dargestellten Bäume auch AVL - Bäume. m + 1 m + 2 m + 2 Bl Br Bl Br Bl Br m m m m + 1 m + 1 m R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Suchoperationen wie für allgemeine binäre Suchbäume Wartungsalgorithmen: Wann und wo ist das AVL - Kriterium beim Einfügen verletzt? ==> Es kann sich nur die Höhe von solchen Unterbäumen verändert haben, deren Wurzeln auf dem Suchpfad von der Wurzel des Baumes zum neu eingefügten Blatt liegen ==> Reorganisations-Operationen lassen sich lokal begrenzen; es sind höchstens h Knoten betroffen. Definition: Der Balancierungsfaktor BF (x) eines Knotens x ergibt sich zu BF ( x ) = h ( Bl ( x ) ) - h ( Br ( x ) ) . R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Implementierung des AVL-Baumes: TYPE tree = node; node = RECORD key : elem; height : integer; left, right : node END; FUNCTION balance (t: tree): integer; {liefert für einen gegebenen AVL-Baum seinen Balancierungsfaktor zurück} PROCEDURE insert (t: tree, e: elem); {fügt e in den AVL-Baum t ein und liefert eine balancierte Version von t zurück - rekursive Prozedur!} R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Einfügen in AVL - Bäumen Sobald ein BF ( x ) durch eine Einfügung verletzt wird, muss eine Rebalancierung des Baumes durch sogenannte Rotationen durchgeführt werden. Ausgangspunkt der Rotation ist der nächste Vater des neu eingefügten Knotens mit BF =  2 . Dieser Knoten dient zur Bestimmung des Rotationstyps. Er wird durch die von diesem Knoten ausgehende Kantenfolge auf dem Pfad zum neu eingefügten Knoten festgelegt. Rotationstypen Es treten vier verschiedene Rotationstypen auf . Der neu einzufügende Knoten sei X. Y sei der bezüglich der Rotation kritische Knoten - der nächste Vater von X mit BF =  2. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

RR : X wird im rechten Unterbaum des rechten Dann bedeutet: RR : X wird im rechten Unterbaum des rechten Unterbaums von Y eingefügt ( Linksrotation ). LL : X wird im linken Unterbaum des linken Unterbaums von Y eingefügt ( Rechtsrotation ). RL : X wird im linken Unterbaum des rechten Unterbaums von Y eingefügt ( Doppelrotation ). LR : X wird im rechten Unterbaum des linken Unterbaums ==> Die Typen LL und RR sowie LR und RL sind symmetrisch zueinander. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

16 19 8 12 15 12 16 8 9 15 19 Rotationsbeispiele: Beispiel 1: Einfügen: 9 wird balanciert durch: 12 16 8 9 15 19 R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Beispiel 2: 16 19 8 12 15 Einfügen: 13 wird balanciert durch: 16 15 19 8 12 13 R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

- Löschen eines Blattes bzw. eines Randknotens ( Knoten mit 1 Sohn ) Löschen in AVL - Bäumen - Löschen eines Blattes bzw. eines Randknotens ( Knoten mit 1 Sohn ) Höhenreduzierung ändert Balancierungsfaktoren der Vaterknoten ggf. fortgesetzte Rebalancierung erforderlich (nur möglich für Knoten mit BF =  2 auf dem Weg vom zu löschenden Element zur Wurzel). - Löschen eines Knotens (Schlüssel x) mit 2 Söhnen kann auf diese Fälle zurückgeführt werden. x wird ersetzt durch kleinsten Schlüssel y im rechten Unterbaum von x (oder größten Schlüssel im linken Unterbaum) führt zur Änderung des Balancierungsfaktors für v R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Bis auf Symmetrie treten nur 3 Fälle auf: Fall 1: Die Höhenerniedrigung setzt sich nicht fort, da in der Wurzel das AVL - Kriterium erfüllt bleibt. Es ist deshalb keine Rebalancierung erforderlich. Fall 2: Die Höhenerniedrigung eines Teilbaumes pflanzt sich zur Wurzel hin fort. Sie kann auf diesem Pfad eine Rebalancierung auslösen. Fall 3: Die Höhenerniedrigung eines Teilbaumes bewirkt direkt eine Rebalancierung. Für die Behandlung dieser Situation sind der linke (oder rechte) Unterbaum in größerem Detail zu betrachten. Dabei ergeben sich die folgenden 3 Teilfälle: R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

R/L-Rotation führt zur Erfüllung des AVL - Kriteriums Fall 3a) R/L-Rotation führt zur Erfüllung des AVL - Kriteriums Unterbaum behält ursprüngliche Höhe keine weiteren Rebalancierungen erforderlich Fall 3b) Rechtsrotation reduziert die Höhe des gesamten UB von h+1 nach h. Höhenreduzierung pflanzt sich auf dem Pfad zur Wurzel hin fort und kann zu weiteren Rebalancierungen führen. Fall 3c) Doppelrotation ( ==> Höhenerniedrigung ) ggf. fortgesetzte Rebalancierungen R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Der Rebalancierungsalgorithmus beim Löschen hat folgende wesentlichen Schritte: 1.) Suche im Löschpfad nächsten Vater mit BF =  2. 2.) Führe Rotation im gegenüberliegenden Unterbaum dieses Vaters aus. Im Gegensatz zum Einfügevorgang kann hier eine Rotation wiederum eine Rebalancierung auf dem Pfad zur Wurzel auslösen, da sie in gewissen Fällen auf eine Höhenerniedrigung des transformierten Unterbaums führt. Die Anzahl der Rebalancierungsschritte ist jedoch durch die Höhe h des Baums begrenzt. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Aufwandsabschätzungen Balancierte Bäume wurden als Kompromiss zwischen ausgeglichenen und natürlichen Suchbäumen eingeführt, wobei logarithmischer Suchaufwand im schlechtesten Fall gefordert wurde. Für die Höhe hb eines AVL-Baumes mit n Knoten gilt: [log2 ( n )] + 1  hb  1.44 * log2 ( n + 1 ) Die obere Schranke lässt sich durch sog. Fibonacci-Bäume, eine Unterklasse der AVL-Bäume, herleiten. Definition: Fibonacci-Bäume 1. Der leere Baum ist ein Fibonacci-Baum der Höhe 0: B0 2. Ein einzelner Knoten ist ein Fibonacci-Baum der Höhe 1: B1 3. Sind Bh-1 und Bh-2 Fibonacci-Bäume der Höhe h-1 und h-2, so ist Bh = (Bh-1, x, Bh-2 ) mit x ~ Vater von Bh-1, Bh-2 ein Fibonacci-Baum der Höhe h . Zusammenhang zwischen minimaler Knotenzahl eines AVL-Baumes und Fibonacci-Bäumen: Zu gegebener Baumhöhe sind entsprechende Fibonacci-Bäume die AVL-Bäume mit jeweils minimaler Knotenzahl. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Gewichtsbalancierte Suchbäume (oder BB-Bäume - bounded balance) Zulässige Abweichung der Struktur vom ausgeglichenen Binärbaum wird als Differenz zwischen der Anzahl der Knoten im rechten und linken Unterbaum festgelegt. Definition: Sei B ein binärer Suchbaum mit linkem Unterbaum Bl und l die Anzahl der Knoten in Bl (n sei entsprechend die Anzahl der Knoten in B) (1)  ( B ) = ( l + 1 ) / ( n + 1) heißt die Wurzelbalance von B. (2) Ein Baum B heißt gewichtsbalanciert mit Balance  (kurz ein BB ( )-Baum), wenn für jeden Unterbaum B‘ von B gilt:    ( B‘ )  1 -  R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Parameter  als Freiheitsgrad im Baum  = 1/2 : Balancierungskriterium akzeptiert nur vollständige Binärbäume  < 1/2 : Strukturbeschränkung wird zunehmend gelockert ==> Welche Auswirkungen hat die Lockerung des Balancierungskriteriums auf die Kosten? Rebalancierung wird gewährleistet durch die Wahl von 1/4    1 - Einsatz derselben Rotationstypen wie beim AVL - Baum Kosten für Suche: Höhe h eines Baumes aus ist logarithmisch in der Anzahl der Knoten beschränkt ==> Suche stets in O ( log 2 n ) Schritten ausführbar R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Positionssuche mit balancierten Bäumen Balancierte Suchbäume sind linearen Listen in fast allen Grundoperationen überlegen Positionssuche (Suche nach k-tem Element der Sortierreihenfolge) kann jedoch noch verbessert werden. Definition: Der Rang eines Knotens ist die um 1 erhöhte Anzahl der Knoten seines linken Unterbaums Verbesserung bei Positionssuche mit AVL - Bäumen Jeder Knoten erhält Rang als Hilfsgröße R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.

Wenn Rang r eines Knotens größer ist als die Position p Rangzahlen erlauben Bestimmung eines direkten Suchpfads im Baum für Positionssuche nach dem k-ten Element. Wenn Rang r eines Knotens größer ist als die Position p (Initialwert: k), suche im linken UB des Knotens weiter p > r ==> p:= p - r und Fortsetzung der Suche im rechten UB p = r : Element gefunden Wartungsoperationen etwas komplexer Änderung im linken Unterbaum erfordert Ranganpassung aller betroffenen Väter bis zur Wurzel. R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister) - Kapitel 9: Balancierte Binärbäum.