Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung 2 20. April 2000 AVL-Bäume.

Slides:



Advertisements
Ähnliche Präsentationen
8. Termin Teil B: Wiederholung Begriffe Baum
Advertisements

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Mindesthöhe: |_log2 n_|, maximale Höhe: n-1
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (22 – B-Bäume)
7. Natürliche Binärbäume
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
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.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
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 (21 – Kürzeste Wege) T. Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung Foliendesign: cand. geod. Jörg Steinrücken.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Übung Diskrete Mathematik SS 2003 Segmentschnitt I.
IKG - Übung Diskrete Mathe I – Jörg Schmittwilken
Diskrete Mathematik I Vorlesung 9b AVL-Baum, Algorithmen.
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Bäume-
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Diskrete Mathe 9 Vorlesung 9 SS 2001
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Animationen zu Kap. 4.3: AVL-Bäume
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 8 SS 2000 Punkt-in-Polygon-Verfahren II (Trapezkarte)
Geoinformation II Vorlesung 2 SS 2001 AVL-Bäume.
Konstruktion der Voronoi-Diagramme II
Geoinformation II (6. Semester)
Geoinformation II Vorlesung 3 SS 2001 Polygon Overlay.
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 5 SS 2001 Segmentschnitt II (n Segmente)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Effiziente Algorithmen
Vorlesung Binärer Suchbaum II-
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Graphen und Bäume.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 6 SS 2001 Segmentschnitt III.
Diskrete Mathematik II
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd Foliendesign:
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Diskrete Mathe II Übung IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Übung5 Prüft, ob sich folgende Segmente schneiden: –P1(1/7) P2(3/1)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 4 WS 01/02 Quadtrees.
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-
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Foliendesign: Jörg Steinrücken & Tobias Kahn Vorlesung
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Voronoi-Diagramme.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung der Algorithmus von Floyd.
Binärer Baum, Binärer Suchbaum I
Geoinformation II 6. Sem. Vorlesung April 2000 Geometrische Algorithmen - ein einführendes, größeres Beispiel für ein Semester-begleitendes Programmier.
Institut für Kartographie und Geoinformation Diskrete Mathematik I Vorlesung Binärer Suchbaum I-
Diskrete Mathematik I Vorlesung 7 Binärer Suchbaum III.
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 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
AVL-Bäume.
Vorlesung April 2000 Polygon Overlay
Diskrete Mathematik II
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Punkt-in-Landkarte II
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II 6. Sem. Vorlesung April 2000 AVL-Bäume

Einfacher Segmentschnitt I S 1 = det ( P 1,P 3,P 4 )Def.:Vor.: Alle Determinanten sind  0: S 2 = det ( P 3,P 1,P 2 )g und g` schneiden sich genau dann, wenn S 1, S 2 S 3 = det ( P 2,P 3,P 4 )sowie S 3, S 4 jeweils verschiedene Vorzeichen S 4 = det ( P 4,P 1,P 2 )haben. P2P2 P1P1 P3P3 P4P4 P2P2 P3P3 P4P4 P1P1 g g` P2P2 P1P1 P3P3 P4P4

Verwaltung der aktiven Elemente A B F C D E S1S1 S3S3 S2S2 S4S4 B E C D

letzte Stunde Scan-Line Hauptideen –Projektion auf x-Achse –Beschränkung auf aktive Elemente –Ordnung der aktiven Elemente durch Scan-Line –Beschränkung auf Nachbarn zum Schluß: 2-Segment-Schnitt (müßte Ihnen bekannt sein) heute: –Datenstrukturen für Scan-Line –Polygon-Overlay

zur Erinnerung: Algorithmus Scan-Line Input: S: eine Menge von Segmenten Output: die Schnittpunkte der Elemente von S Sei T = Endpunkte der Segmente von S nach x-Koordinaten sortiert (Haltepunkte) L =  // aktive Segmente von S while T   do bestimme und entferne den nächsten Punkt p  T x ist x-Koordinate von p case: p ist linker Endpunkt von s fuege_ein(s,x,L) sl = vorgaenger(s,x,L) sr = nachfolger(s,x,L) schnitt(sl,s,T); schnitt(s,sr,T); p ist rechter Endpunkt von s sl = vorgaenger(s,x,L) sr = nachfolger(s,x,L) entferne(s,x,L) schnitt(sl,sr,T) p ist Schnittpunkt von s und t vertausche(s,t,L,x) // t < s sl = vorgaenger(t,x,L) sr = nachfolger(s,x,L) schnitt(sl,t,T) schnitt(s,sr,T)

Datenstrukturen für T und S Datenstrukur für T –AVL-Baum –siehe diskrete Mathematik zur Erinnerung: was ist ein AVL-Baum –erstens ein Suchbaum –und zwar ein ausgeglichener Suchbaum Datenstruktur für L –AVL-Baum? –Vorgänger und Nachfolger –Variante des AVL-Baums alle Informationen sind in Blättern (nicht in inneren Knoten) die Blätter bilden eine doppelt verkettete Liste

Binärer Suchbaum Ein binärer Baum B ist ein binärer Suchbaum, falls er leer ist oder die folgenden Eigenschaften erfüllt sind: –die beiden Unterbäume sind binäre Suchbäume –die Beschriftungen der Knoten des linken Suchbaums sind kleiner als die Beschriftung der Wurzel –die Beschriftungen des rechten Suchbaums sind größer als die Beschriftung der Wurzel n <n<n>n>n

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Exkurs: AVL-Bäume siehe Vorlesung Nr. 9 Diskrete Mathe I

AVL-Baum (Definition) Ein binärer Baum heißt ausgeglichener Baum oder AVL-Baum (nach Adelson-Velskij und Landis), falls sich für jeden Knoten k die Höhen h der beiden Teilbäume um höchstens 1 unterscheiden.

AVL-Baum: Beispiel

Balancefaktor Balancefaktor bal(k) bal(k) = h(rechter Teilbaum von k) - h(linker Teilbaum von k) Für AVL-Bäume gilt: bal(k)

AVL-Baum: Beispiel

AVL-Baum: Beispiel

AVL-Baum: Beispiel

Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

Ausgeglichenheit ist verletzt Einfügen von Knoten Einfügen von k = 30

Ausbalancieren durch Rotation Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten R- Rotation Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

L- Rotation Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k = 30

Einfügen von Knoten Einfügen von k =

Einfügen von Knoten Einfügen von k =

Einfügen von Knoten

Löschen von Knoten Löschen von k = 8

Löschen von Knoten Löschen von k = 8

Löschen von Knoten Löschen von k = 8

Löschen von Knoten Löschen von k = 8

Löschen von Knoten Löschen von k = 8

Löschen von Knoten Löschen von k = 8

Löschen von Knoten Löschen von k = 11

Löschen von Knoten Löschen von k = 11

Löschen von Knoten Löschen von k = 11

Löschen von Knoten Löschen von k = 11

Löschen von Knoten Löschen von k = 11 L- Rotation

Löschen von Knoten Löschen von k = 11

Löschen von Knoten Löschen von k = 11

Löschen von Knoten

Löschen von Knoten

L-Rotation Knoten x wird eingefügt und verletzt dadurch die Ausgeglichenheit an einem höher gelegenen Knoten k 1 Notwendige Korrektur durch L-Rotation (symmetrisch: R-Rotation): Umhängen von zwei Kanten

L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 0 +1

L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 x +1 +2

L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 x +1 +2

L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 x +1 +2

L-Rotation T1T1 k1k1 k2k2 x 0 T2T2 T3T3 0

LR-Rotation x wird eingefügt und verletzt dadurch die Ausgeglichen- heit an einem höher gelegenen Knoten k 1. Notwendige Korrektur durch LR- Rotation (symmetrisch: RL-, RR- und LL- Rotation): Umhängen von vier Kanten

LR-Rotation T1T1 k2k2 k1k1 0 T3T3 T4T4 k3k3 T2T2 0

LR-Rotation T1T1 k2k2 k1k1 x T3T3 T4T4 k3k3 T2T2 +1

LR-Rotation k1k1 -2 T4T4 T1T1 k2k2 x +1 T3T3 k3k3 T2T2

LR-Rotation k1k1 -2 T1T1 k2k2 x +1 T3T3 T4T4 k3k3 T2T2

LR-Rotation T1T1 k2k2 k1k1 x T3T3 T4T4 k3k3 T2T2 +1

LR-Rotation k1k1 -2 T4T4 T1T1 k2k2 x T3T3 k3k3 T2T2

LR-Rotation k1k1 -2 T1T1 k2k2 x T3T3 T4T4 k3k3 T2T2

LR-Rotation T1T1 k2k2 k1k1 x -2 T3T3 T4T4 k3k3 T2T2

LR-Rotation T1T1 k2k2 k1k1 x 0 0 T3T3 T4T4 k3k3 T2T2

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Exkurs: AVL-Bäume in Kürze siehe Vorlesung Nr. 10 Diskrete Mathe I

Übersicht Vollständige Bäume Minimale Knotenanzahl von AVL-Bäumen –Fibonacci-Zahlen Maximale Höhe von AVL-Bäumen Das Wichtigste zu AVL in Kürze 4 Fälle im Überblick „Überleitung“ Güte von Algorithmen Groß-Oh-Notation Inklusion Komplexität - Beispiele

Vollständige Bäume Ein binärer Baum heißt vollständig, wenn alle Blätter die gleiche Höhe haben. Ein vollständiger binärer Baum gegebener Höhe enthält die maximale Anzahl von Knoten. Wie groß ist die maximale Anzahl der Knoten eines vollständigen Baumes gegebener Höhe?

Vollständige Bäume BaumHöhe Anzahl innere Knoten Blätter h2 h h-1  = 2 h

Vollständige Bäume Satz: Ein vollständiger binärer Baum der Höhe h enthält 2 h-1 Blätter und 2 h -1 Knoten. Beweis: 1) Induktionsanfang: h= 1 Der Baum besteht nur aus der Wurzel, die auch das einzige Blatt ist: = 2 0 = 1 Blatt = = 1 Knoten 2) Induktionsschritt: h  h + 1 Höhe hHöhe h h-1 Blätter 2 h Blätter 2 h -1 Knoten 2 h -1 innere Knoten  2 h + 2 h - 1 = 2 h+1 -1

Minimale Knotenanzahl von AVL-Bäumen N(h) sei die minimale Anzahl von Knoten eines AVL- Baumes der Höhe h. h = 1N(1) = 1 h = 2N(2) = 2 h = 3N(3) = 4

Minimale Knotenanzahl von AVL-Bäumen Allgemeiner Fall: N(h-2) N(h-1) 1 worst case der Höhe h: N(h) = N(h-1) + N(h-2) + 1

Fibonacci-Zahlen fib(0) = 0 fib(1) = 1 fib(2) = 1... fib(n) = fib(n-1) + fib(n-2) Abschätzung von fib: Sei

Satz: N(h) = fib(h+2) - 1 Beweis: 1) Induktionsanfang: h = 1 fib(1+2) - 1 = fib(3) - 1 = = 1 N(h)N(h-1) 1 N(h+1) = 1 + N(h) + N(h-1) = 1+ fib(h+2) fib(h+1) - 1 = fib(h+3) - 1 = fib([h+1]+2) - 1 2) Induktionsschritt: h  h + 1 Minimale Knotenanzahl von AVL-Bäumen

Daraus folgt nach Umformung der Abschätzung: Ein AVL-Baum mit n Knoten hat höchstens die Höhe 1,44... log(n) + const Maximale Höhe von AVL-Bäumen

Das Wichtigste zu AVL in Kürze 1. Die { L, R, RL, LR } - Rotationen finden Anwendung, wenn bei der Rückkehr von den eingefügten/gelöschten Knoten zur Wurzel des Baumes ein Balance-Faktor {-2, +2 } gefunden wird. 2. Die Wiederherstellung der AVL-Eigenschaft involviert höchstens 3 Knoten + Verweise auf die Nachfolger.  Prinzip der Lokalität (Das Problem kann auch nur auf dem Weg von einem Blatt zur Wurzel des Baumes auftreten.) 3. Es finden nur vertikale Verschiebungen der involvierten Knoten statt.

Das Wichtigste zu AVL in Kürze Die Form eines Baumes hängt von der Eingabefolge ab: Eingabe von {1, 2, 3} Eingabefolge: 2, 1, Eingabefolge: 2, 3,

Das Wichtigste zu AVL in Kürze Eingabefolge: 1, 2, L-Rotation

Das Wichtigste zu AVL in Kürze Eingabefolge: 3, 2, R-Rotation -2

Das Wichtigste zu AVL in Kürze Eingabefolge: 3, 1, L-R-Rotation 2 2 L R

Das Wichtigste zu AVL in Kürze Eingabefolge: 1, 3, R-L-Rotation 2 2 R L

4 Fälle im Überblick Woher rührt die Verletzung der Balance am Knoten ? RLRRLL

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Zurück zur GIS Vorlesung

Eine Variante des AVL-Baums mit einer doppelt verketteten Liste der Blätter für die Menge der aktiven Elemente

für die Haltepunkte......mit den Operationen –Einfügen eines gefundenen Schnittpunktes –Finden und Entfernen des nächsten (also minimalen) Elements genügt ein „normaler“ AVL-Baum obwohl man mit Kanonen auf Spatzen schießt besser: ein Heap bei Interesse: Vorlesung 2 (heute), Diskrete Mathematik