Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer AVL-Bäume Geoinformation II Vorlesung 2 SS 2001.

Ähnliche Präsentationen


Präsentation zum Thema: "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer AVL-Bäume Geoinformation II Vorlesung 2 SS 2001."—  Präsentation transkript:

1 Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer AVL-Bäume Geoinformation II Vorlesung 2 SS 2001

2 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 22 Übersicht I Einfacher Segmentschnitt I Verwaltung der aktiven Elemente letzte Stunde zur Erinnerung: Algorithmus Scan-Line Datenstrukturen für T und S Binärer Suchbaum Exkurs: AVL-Bäume AVL-Baum (Definition) AVL-Baum: Beispiel Balancefaktor

3 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 23 Übersicht II AVL-Baum: Beispiel Einfügen von Knoten Löschen von Knoten L-Rotation LR-Rotation Exkurs: AVL-Bäume in Kürze Vollständige Bäume Minimale Knotenanzahl von AVL-Bäumen Fibonacci-Zahlen

4 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 24 Übersicht III Minimale Knotenanzahl von AVL-Bäumen Maximale Höhe von AVL-Bäumen Das Wichtigste zu AVL in Kürze 4 Fälle im Überblick Zurück zur GIS Vorlesung Eine Variante des AVL-Baums für die Haltepunkte...

5 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 25 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

6 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 26 Verwaltung der aktiven Elemente A B F C D E S1S1 S3S3 S2S2 S4S4 B E C D

7 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 27 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

8 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 28 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)

9 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 29 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

10 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 210 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

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

12 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 212 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.

13 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 213 AVL-Baum: Beispiel

14 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 214 Balancefaktor Balancefaktor bal(k) bal(k) = h(rechter Teilbaum von k) - h(linker Teilbaum von k) Für AVL-Bäume gilt: bal(k)

15 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 215 AVL-Baum: Beispiel 00 0 +1 +1

16 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 216 AVL-Baum: Beispiel 00 0 +1 +1

17 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 217 0 0 +1 0 +2 AVL-Baum: Beispiel

18 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 218 Einfügen von Knoten 2639 17113 208 33 14 00 0000 0+1 Einfügen von k = 30

19 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 219 14 113 8 00 0 2639 17 20 33 00 00 +1 Einfügen von Knoten Einfügen von k = 30 +1

20 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 220 14 113 8 00 0 2639 17 20 33 00 00 +1 Einfügen von Knoten Einfügen von k = 30 +1

21 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 221 17 20 14 0 2639 33 00 0 113 8 00 0 +1 Einfügen von Knoten Einfügen von k = 30 +1

22 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 222 17 20 14 0 2639 33 00 0 113 8 00 0 +1 Einfügen von Knoten Einfügen von k = 30 +1

23 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 223 14 30 2639 33 00 0 113 8 00 0 17 20 0 +1 0 Einfügen von Knoten Einfügen von k = 30 +1

24 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 224 14 +1 113 8 00 0 17 20 0 +1 30 2639 33 0 0 0 Einfügen von Knoten Einfügen von k = 30 +1

25 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 225 17 20 14 0 113 8 00 0 +1 2639 33 30 0+1 0 Einfügen von Knoten Einfügen von k = 30 +1

26 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 226 17 20 14 0 113 8 00 0 +2 2639 33 30 0+1 0 Ausgeglichenheit ist verletzt Einfügen von Knoten Einfügen von k = 30 +1

27 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 227 17 20 14 0 113 8 00 0+2 2639 33 30 0+1 0 Ausbalancieren durch Rotation Einfügen von Knoten Einfügen von k = 30 +1

28 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 228 2639 17113 208 33 14 30 0+1 000 0+2 0 Einfügen von Knoten R- Rotation Einfügen von k = 30 +1

29 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 229 17 20 14 0 113 8 00 0 +2 2639 33 30 0+1 0 Einfügen von Knoten Einfügen von k = 30 +1

30 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 230 2639 17113 208 33 14 30 0+1 000 0+2 0 Einfügen von Knoten Einfügen von k = 30 +1

31 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 231 17 20 14 0 113 8 00 0 +2 26 3039 33 L- Rotation Einfügen von Knoten Einfügen von k = 30 +1

32 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 232 17 20 26 14 0 113 8 00 0+2 3039 33 Einfügen von Knoten Einfügen von k = 30 +1

33 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 233 17113 208 26 14 000 0+2 3039 33 Einfügen von Knoten Einfügen von k = 30 +1

34 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 234 26 14 113 8 00 00 Einfügen von Knoten Einfügen von k = 30 39 2033 00 00 0 1730 +1

35 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 235 113 268 14 0 00 00 17 Einfügen von Knoten Einfügen von k = 30 39 2033 0 00 0 30 +1

36 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 236 39 20113 268 33 14 00 0000 00 0 1730 Einfügen von Knoten +1

37 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 237 Löschen von Knoten 2639 17113 208 33 14 00 0000 0+1 Löschen von k = 8

38 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 238 Löschen von Knoten 2639 17113 208 33 14 00 0000 0+1 Löschen von k = 8

39 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 239 Löschen von Knoten 113 8 14 00 0 2639 17 20 33 00 00 +1 Löschen von k = 8

40 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 240 Löschen von Knoten 3 14 0 11 2639 17 20 33 00 00 +1 Löschen von k = 8

41 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 241 Löschen von Knoten 3 14 0 11 2639 17 20 33 00 00 +1 Löschen von k = 8

42 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 242 Löschen von Knoten 3 14 0 11 2639 17 20 33 00 00 +1 Löschen von k = 8

43 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 243 Löschen von Knoten 3 14 0 11 2639 17 20 33 00 00 +1 Löschen von k = 11

44 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 244 Löschen von Knoten 3 14 0 11 2639 17 20 33 00 00 +1 Löschen von k = 11

45 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 245 Löschen von Knoten 3 14 0 11 2639 17 20 33 00 00 +1 Löschen von k = 11

46 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 246 Löschen von Knoten 14 3 0 2639 17 20 33 00 00 +1 Löschen von k = 11

47 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 247 Löschen von Knoten 14 3 0 2639 17 20 33 00 00 +1 +2 Löschen von k = 11 L- Rotation

48 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 248 Löschen von Knoten 14 3 0 2639 17 20 33 00 00 +1 +2 Löschen von k = 11

49 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 249 Löschen von Knoten 14 3 0 2639 17 20 33 00 00 +1 +2 Löschen von k = 11

50 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 250 20 173 14 00 0 26 33 39 00 0 0 Löschen von Knoten

51 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 251 26173 3314 39 20 0000 00 0 Löschen von Knoten

52 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 252 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

53 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 253 L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 0 +1

54 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 254 L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 x +1 +2

55 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 255 L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 x +1 +2

56 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 256 L-Rotation T1T1 T2T2 T3T3 k1k1 k2k2 x +1 +2

57 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 257 L-Rotation T1T1 k1k1 k2k2 x 0 T2T2 T3T3 0

58 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 258 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

59 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 259 LR-Rotation T1T1 k2k2 k1k1 0 T3T3 T4T4 k3k3 T2T2 0

60 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 260 LR-Rotation T1T1 k2k2 k1k1 x +1 -2 T3T3 T4T4 k3k3 T2T2 +1

61 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 261 LR-Rotation k1k1 -2 T4T4 T1T1 k2k2 x +1 T3T3 k3k3 T2T2

62 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 262 LR-Rotation k1k1 -2 T1T1 k2k2 x +1 T3T3 T4T4 k3k3 T2T2

63 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 263 LR-Rotation T1T1 k2k2 k1k1 x +1 -2 T3T3 T4T4 k3k3 T2T2 +1

64 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 264 LR-Rotation k1k1 -2 T4T4 T1T1 k2k2 x T3T3 k3k3 T2T2

65 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 265 LR-Rotation k1k1 -2 T1T1 k2k2 x T3T3 T4T4 k3k3 T2T2

66 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 266 LR-Rotation T1T1 k2k2 k1k1 x -2 T3T3 T4T4 k3k3 T2T2

67 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 267 LR-Rotation T1T1 k2k2 k1k1 x 0 0 T3T3 T4T4 k3k3 T2T2

68 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

69 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 269 Ü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

70 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 270 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?

71 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 271 Vollständige Bäume BaumHöhe Anzahl innere Knoten Blätter 1 3 0 1 3 1 2 4 h2 h-1 -12 h-1 = 2 h -1... 2

72 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 272 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* (innere Knoten + Blätter!). Beweis: 1) Induktionsanfang: h= 1 Der Baum besteht nur aus der Wurzel, die auch das einzige Blatt ist: 2 1-1 = 2 0 = 1 Blatt 2 1 -1 = 2 - 1 = 1 Knoten 2) Induktionsschritt: h h + 1 Höhe hHöhe h + 1 2 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

73 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 273 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

74 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 274 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

75 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 275 Fibonacci-Zahlen fib(0) = 0 fib(1) = 1 fib(2) = 1... fib(n) = fib(n-1) + fib(n-2) Abschätzung von fib: Sei

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

77 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 277 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

78 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 278 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.

79 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 279 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, 3 2 13 Eingabefolge: 2, 3, 1 2 13

80 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 280 Das Wichtigste zu AVL in Kürze Eingabefolge: 1, 2, 3 1 2 3 2 13 0 1 2 L-Rotation

81 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 281 Das Wichtigste zu AVL in Kürze Eingabefolge: 3, 2, 1 2 13 1 2 3 R-Rotation -2

82 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 282 Das Wichtigste zu AVL in Kürze Eingabefolge: 3, 1, 2 2 13 1 2 3 1 2 3 L-R-Rotation 2 2 L R

83 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 283 Das Wichtigste zu AVL in Kürze Eingabefolge: 1, 3, 2 2 13 3 2 1 3 2 1 R-L-Rotation 2 2 R L

84 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 284 4 Fälle im Überblick Woher rührt die Verletzung der Balance am Knoten ? RLRRLL

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

86 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 286 Eine Variante des AVL-Baums mit einer doppelt verketteten Liste der Blätter für die Menge der aktiven Elemente

87 Lutz Plümer - Geoinformation - 6. Semester - SS 2001 - Vorlesung 287 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


Herunterladen ppt "Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer AVL-Bäume Geoinformation II Vorlesung 2 SS 2001."

Ähnliche Präsentationen


Google-Anzeigen