Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 3 WS 01/02 Punkt-in-Polygon-Verfahren III (R/R+-Baum) Übersicht I • • • • • • • • • • • • Zur Erinnerung Zerlegung der Maschen in Streifen Suchstruktur Einfügen einer Kante II Zur Effizienz Effizienz II: Sonderfallbetrachtung Punkt-in-Polygon-Suche II MBR – minimum bounding rectangle Idee Neues laufendes Beispiel Rechtecke Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 2 Übersicht II • • • • • • • • • • • Rechtecke mit R-Baum R-Baum R-Baum als B-Baum Der R-Baum als solcher Einfügen in einen R-Baum Strategien zum Spalten eines Knotens Suchen eines Knotens Nachteil des R-Baums Alternative: Der R+-Baum R+-Baum Suche im R+-Baum Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 3 Zur Erinnerung: Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 4 Zerlegung der Maschen in Streifen R Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 5 Suchstruktur p1 B E s1 q1 G s1 D p1 p2 A q1 A C s2 F B q2 p2 q2 C s2 s2 D G E F Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 6 Suchstruktur p1 B E s1 q1 G s1 D p1 p2 A q1 A C s2 F B q2 p2 q2 C s2 s2 D G E F Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 7 Einfügen einer Kante II D(Si) T(Si) D(Si-1) D E si A pi B qi si C F si B si qi si D F E A C Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 8 Zur Effizienz Der oben beschriebene Algorithmus hat folgende Erwartungswerte (gemittelt über alle Permutationen der Segmentmenge S): Konstruktion von D(S): O(n log n) Speicherplatz von D(S): O(n) Punkt-in-Polygon-Suche mittels D(S): O(log n) Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 9 Effizienz II: • Der Erwartungswert bezieht sich auf die Menge aller Permutationen • Pech bei der Permutation kann zum Worst – Case O(n) für die Suche und entsprechender Tiefe der Suchstruktur führen • Abhilfe durch Stop-Loss-Punkt setzen: – Brich ab, falls D(S) zu tief wird, und fange neu an mit einer neuen Permutation • Differenz zum Worst-Case O(n) für die Suche und O(n2) für die Konstruktion kann beliebig klein gemacht werden, ohne daß man von der O(n log n) – Laufzeit für die Konstruktion von D(S) sehr stark abweicht Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 10 Sonderfallbetrachtung Was macht man, wenn 2 Knoten die gleichen x-Koordinaten haben? • Beobachtung: die vertikalen Extensionen müssen eigentlich nicht vertikal, sondern nur parallel sein • Wichtig sind nur die topologischen Invarianten links / rechts an den x-Knoten und oben / unten an den y-Knoten • Abhilfe durch Transformation (x,y) (x + * y, y) für „geeignet kleines“ Epsilon • Diese Transformation wird aber in Wirklichkeit gar nicht durchgeführt, sondern: – (x,y) liegt rechts von (x‘,y‘) falls x > x‘ oder x = x‘ und y > y‘ • Oben / Unten – Vergleich an y-Knoten für Segmente „in the same spirit“ (als Übung) Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 11 Punkt-in-Polygon-Suche II • Bisher: – Zerlegung der Maschen in Streifen – Konstruktion einer Suchstruktur • Alternatives Vorgehen: • Approximation der Maschen durch umschließende achsenparallele Rechtecke – Minimal Bounding Rectangle (MBR) – Verwaltung der Rechtecke • R-Baum • R+-Baum Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 12 B-Baum Ein kleiner Exkurs: Der B-Baum wurde nach seinem Entwickler R. Bayer benannt. Die Suche eines Elementes in einem B-Baum unterscheidet sich nur wenig von der Suche in anderen Such-Bäumen. Das Einfügen und Entfernen von Elementen ist jedoch an vielen Stellen anders als in Binär-Such-Bäumen. Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 13 B-Baum • Eigenschaften eines B-Baumes der Ordnung n: – Ein B-Baum ist nicht binär – Ein B-Baum ist ausgeglichen – Alle Blätter haben das gleiche Niveau – Jeder Knoten enthält höchstens 2n Elemente – Jeder innere Knoten außer der Wurzel enthält mindestens n Elemente – Jeder innere Knoten hat m+1 Nachfolgeknoten, wobei m die Anzahl der Schlüssel des inneren Knotens ist – Die m Schlüssel eines inneren Knotens werden in aufsteigender Reihenfolge gespeichert: x1 < x2 < ... < xn – Für jeden i-ten Teilbaum Si eines Knotens gilt: Die Schlüssel seiner Knoten sind grösser als xi und kleiner als xi+1 (ganz links und ganz rechts analog) – Bei einigen Varianten des B-Baums stehen alle Informationen in den Blättern Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 14 B-Baum der Ordnung 2 (n=2) 19 2 1 3 7 9 12 10 29 48 13 15 17 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 15 Einfügen • Einfügen eines Elements mit dem Wert 18 (Idealfall) 18 < 19 linker Ast 19 2 9 12 1 3 7 10 29 48 13 15 17 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 16 Einfügen • Einfügen eines Elements mit dem Wert 18 18 > 12 rechter Ast 19 2 9 12 1 3 7 10 29 48 13 15 17 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 17 Einfügen • Einfügen eines Elements mit dem Wert 18 18 > 12 rechter Ast 19 2 9 12 1 3 7 10 29 48 13 15 17 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 18 Einfügen • Einfügen eines Elements mit dem Wert 18 18 > 17 Einfügen 19 2 9 12 1 3 7 10 29 48 13 15 17 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 19 Einfügen • Einfügen eines Elements mit dem Wert 18 18 > 17 Einfügen 19 2 9 12 1 3 7 10 29 48 13 15 17 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 20 Einfügen • Einfügen eines Elements mit dem Wert 18 18 > 17 Einfügen 19 2 9 12 1 3 7 10 29 48 13 15 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 21 Einfügen • Einfügen eines Elements mit dem Wert 14 (Problemfall) 14 < 19 linker Ast 19 2 9 12 1 3 7 10 29 48 13 15 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 22 Einfügen • Einfügen eines Elements mit dem Wert 14 14 > 12 rechter Ast 19 2 9 12 1 3 7 10 29 48 13 15 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 23 Einfügen • Einfügen eines Elements mit dem Wert 14 14 > 12 rechter Ast 19 Problem: Speicher voll 2 9 12 1 3 7 10 Lösung: Knoten sprengen 29 48 13 15 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 24 Einfügen • Einfügen eines Elements mit dem Wert 14 19 2 9 12 1 3 7 10 Lösung: Knoten sprengen 29 48 13 15 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 25 Einfügen • Einfügen eines Elements mit dem Wert 14 Setze das mittlere Element um eine Position nach oben 19 2 9 12 1 3 7 10 29 48 13 14 15 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 26 Einfügen • Einfügen eines Elements mit dem Wert 14 Bilde zwei neue Zweige 19 2 9 12 15 1 3 7 10 13 14 29 48 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 27 Einfügen • Einfügen eines Elements mit dem Wert 14 Bilde zwei neue Zweige 19 2 9 12 15 1 3 7 10 13 14 29 48 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 28 Einfügen • Einfügen eines Elements mit dem Wert 14 Bilde zwei neue Zweige 19 2 9 12 15 1 3 7 10 13 14 29 48 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 29 Einfügen • Einfügen eines Elements mit dem Wert 14 Bilde zwei neue Zweige 19 2 9 12 15 1 3 7 10 13 14 29 48 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 30 Einfügen • Einfügen eines Elements mit dem Wert 14 Bilde zwei neue Zweige 19 2 9 12 15 1 3 7 10 13 14 29 48 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 31 Einfügen • Einfügen eines Elements mit dem Wert 14 Bilde zwei neue Zweige 19 2 9 12 15 1 3 7 10 13 14 29 48 17 18 23 37 56 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 32 Entfernen Das Löschen in einem B-Baum gestaltet sich sehr einfach. Wir unterscheiden hier folgende Fälle: 1. Löschen in einem Blatt: Einfaches Löschen 2. Löschen in einem inneren Knoten: Beachte: die Anzahl der Schlüssel der inneren Knoten muss mindestens n sein Wie bei AVL-Bäumen den Eintrag ersetzen durch den Rechtesten Eintrag im linken Unterbaum oder den Linkesten im Rechten. Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 33 Entfernen • Entfernen des Elements mit dem Wert 48 19 2 9 12 1 3 7 10 29 48 13 15 17 23 27 31 37 49 60 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 34 Entfernen • Entfernen des Elements mit dem Wert 48 Keine n Elemente im Knoten 19 2 9 12 1 3 7 10 29 13 15 17 23 27 31 37 49 60 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 35 Entfernen • Entfernen des Elements mit dem Wert 48 Keine n Elemente ersetzen durch den Rechtesten Eintrag im linken Unterbaum 19 2 9 12 1 3 7 10 29 13 15 17 23 27 31 37 49 60 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 36 Entfernen • Entfernen des Elements mit dem Wert 48 Keine n Elemente ersetzen durch den Rechtesten Eintrag im linken Unterbaum 19 2 9 12 1 3 7 10 29 37 13 15 17 23 27 31 49 60 Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 37 Punkt-in-Polygon-Suche II • Approximation der Maschen durch umschließende achsenparallele Rechtecke – Minimal Bounding Rectangle (MBR) – Verwaltung der Rechtecke • R-Baum • R+-Baum Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 38 MBR – minimum bounding rectangle y Außen x Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 39 Idee • In welcher Masche M liegt der Punkt P? • Nutze die Bounding Boxes als Filter • Verwende effizientes Verfahren, um alle Rechtecke R1, ... Rn zu finden, die P enthalten – Jedem Rechteck Ri entspricht eine Masche Mi • • • • Prüfe, ob P in einer der Maschen M1, ... Mn vorkommt Verwende dazu das Standardverfahren Problem: Zugriffsstruktur für Rechtecke Rechtecke sind einfacher zu handhaben als Maschen im allgemeinen Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 40 Neues laufendes Beispiel • Nur die Rechtecke interessieren uns hier, nicht die zugrundeliegenden Maschen Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 41 Rechtecke B I C D A J F G E H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 42 Rechtecke mit R-Baum 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E 5 6 6 A I E H B C D J F G H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 43 Rechtecke mit R-Baum 3 I 3 A A I Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 44 Rechtecke mit R-Baum 3 I 3 4 A A I 4 E E H H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 45 Rechtecke mit R-Baum 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E 5 6 6 A I E H B C D J F G H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 46 R-Baum 2 1 B I C 1 2 D A J F G E H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 47 R-Baum 2 1 B 3 I 1 2 C D 3 A J F G E A I H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 48 R-Baum 2 1 B 3 I 1 2 C D 3 4 A J F G 4 E A I E H H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 49 R-Baum 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E 5 A I E H B C D H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 50 R-Baum 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E 5 6 6 A I E H B C D J F G H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 51 R-Baum 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E 5 6 6 A I E H B C D J F G H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 52 R-Baum als B-Baum • Ein R-Baum ist ein B-Baum mit zusätzlichen Eigenschaften • B-Baum (zur Erinnerung) – Ein B-Baum ist (wie der AVL-Baum) ausgeglichen – Besonders gut für Hintergrundspeicher (Festplatte), innere Knoten entsprechen „Kacheln“ des Sekundärspeichers – Alle Informationen stehen in den Blättern – Alle Blätter haben das gleiche Niveau – Alle inneren Knoten außer der Wurzel sind mindestens zur Hälfte gefüllt – Teilung beim Überlauf eines inneren Knoten – Verteilung auf Nachbarn beim Unterlauf Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 53 Der R-Baum als solcher • Ein Blattknoten ist ein Paar (R,O), R ist das kleinste Rechteck, welches das Objekt O umschließt • Jeder innere Knoten hat n Paare (R,P) – P zeigt auf einen Teilbaum – R ist das kleinste umschließende Rechteck dieses Teilbaums Beachte • Rechtecke können sich überlappen • Struktur des R-Baums hängt von Reihenfolge des Einfügens ab • Jedes Paar (R,O) kommt genau einmal vor • R kann mehrere umschließenden Rechtecke schneiden Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 54 Einfügen in einen R-Baum • Ausgangspunkt: Einfügen eines neuen Knotens in einen B-Baum • Problem hier: an welche Stelle wird (R,O) eingefügt? – Durchlaufe den R-Baum mit der Wurzel als Ausgangspunkt – Wähle an jedem inneren Knoten den Teilbaum, der durch Einfügen von R minimal vergrößert würde – Füge (R,O) schließlich als Blatt ein – Beim Überlauf verfahre wie beim B-Baum • Besonderheit gegenüber B-Baum: – Es gibt keine lineare Ordnung zwischen den Einträgen der Knoten – Verschiedene Stragegien zum Spalten eines Knotens Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 55 Strategien zum Spalten eines Knotens Minimierung der Gesamtfläche Minimierung des Durchschnitts Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 56 Suchen eines Knotens 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E H 5 6 6 A I E H B C D J F G In welchem R liegt Q? Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 57 Suchen eines Knotens 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E 5 6 6 A I E H B C D J F G H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 58 Suchen eines Knotens 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E 5 6 6 A I E H B C D J F G H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 59 Suchen eines Knotens 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E 5 6 6 A I E H B C D J F G H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 60 Suchen eines Knotens 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E 5 6 6 A I E H B C D J F G H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 61 Suchen eines Knotens 2 1 5 B 3 I 1 2 C D 3 4 A J F G 4 E 5 6 6 A I E H B C D J F G H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 62 Nachteil des R-Baums • Um das richtige Blatt zu finden, sind meist mehrere Durchläufe erforderlich • Dies gilt insbesondere dann, wenn die Suche erfolglos ist • Abhilfe: R+-Baum Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 63 Alternative: Der R+-Baum • Alle inneren Rechtecke sind disjunkt • Ein Objekt / umschließendes Rechteck kann in mehreren Blättern vorkommen • Jedes Blatt repräsentiert den Teil von (R,O), der von dem Vaterknoten umschlossen wird Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 64 R+-Baum 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F 9 G E H 8 A E 4 5 D E H 6 7 B D I B C D 8 9 E G F J Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 65 R+-Baum 2 1 B C I D 1 2 A J F G E H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 66 R+-Baum 2 1 B C I D A 3 1 2 3 J F G E H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 67 R+-Baum 2 1 B 4 C I D A 3 1 2 3 J F G E 4 H A E Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 68 R+-Baum 2 1 B 4 C I 5 A D 3 1 2 3 J F G E 4 5 H A E D E H Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 69 R+-Baum 6 2 1 B 4 C I 5 A D 3 1 2 3 J F G E 4 5 H A E D E H 6 B D I Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 70 R+-Baum 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F G E 4 5 H A E D E H 6 7 B D I B C D Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 71 R+-Baum 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F G E H 8 A E 4 5 D E H 6 7 B D I B C D 8 E G Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 72 R+-Baum 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F 9 G E H 8 A E 4 5 D E H 6 7 B D I B C D 8 9 E G F J Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 73 R+-Baum 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F 9 G E H 8 A E 4 5 D E H 6 7 B D I B C D 8 9 E G F J Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 74 Suche im R+-Baum 6 2 1 B 4 I 5 A 7 C D 3 1 2 3 J F 9 G E H 8 A E 4 5 D E H 6 7 B D I B C D 8 9 E G F J Lutz Plümer - Geoinformation III - 5. Semester - WS 01/02 - Vorlesung 3 75