Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 9 29.06.00 Foliendesign: cand. geod. Jörg Steinrücken Zur Erinnerung: Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 2 Zerlegung der Maschen in Streifen R Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 3 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 II - SS 2000 - Vorlesung 9 - 29.06.00 4 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 II - SS 2000 - Vorlesung 9 - 29.06.00 5 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 II - SS 2000 - Vorlesung 9 - 29.06.00 6 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 II - SS 2000 - Vorlesung 9 - 29.06.00 7 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 kann 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 II - SS 2000 - Vorlesung 9 - 29.06.00 8 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 II - SS 2000 - Vorlesung 9 - 29.06.00 9 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 II - SS 2000 - Vorlesung 9 - 29.06.00 10 MBR – minimum bounding rectangle y Außen x Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 11 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 II - SS 2000 - Vorlesung 9 - 29.06.00 12 Neues laufendes Beispiel • Nur die Rechtecke interessieren uns hier, nicht die zugrundeliegenden Maschen Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 13 Rechtecke B I C D A J F G E H Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 14 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 II - SS 2000 - Vorlesung 9 - 29.06.00 15 Rechtecke mit R-Baum 3 I 3 A A I Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 16 Rechtecke mit R-Baum 3 I 3 4 A A I 4 E E H H Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 17 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 II - SS 2000 - Vorlesung 9 - 29.06.00 18 R-Baum 2 1 B I C 1 2 D A J F G E H Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 19 R-Baum 2 1 B 3 I 1 2 C D 3 A J F G E A I H Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 20 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 II - SS 2000 - Vorlesung 9 - 29.06.00 21 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 II - SS 2000 - Vorlesung 9 - 29.06.00 22 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 II - SS 2000 - Vorlesung 9 - 29.06.00 23 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 II - SS 2000 - Vorlesung 9 - 29.06.00 24 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 II - SS 2000 - Vorlesung 9 - 29.06.00 25 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 II - SS 2000 - Vorlesung 9 - 29.06.00 26 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 II - SS 2000 - Vorlesung 9 - 29.06.00 27 Strategien zum Spalten eines Knotens Minimierung der Gesamtfläche Minimierung des Durchschnitts Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 28 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 II - SS 2000 - Vorlesung 9 - 29.06.00 29 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 II - SS 2000 - Vorlesung 9 - 29.06.00 30 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 II - SS 2000 - Vorlesung 9 - 29.06.00 31 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 II - SS 2000 - Vorlesung 9 - 29.06.00 32 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 II - SS 2000 - Vorlesung 9 - 29.06.00 33 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 II - SS 2000 - Vorlesung 9 - 29.06.00 34 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 II - SS 2000 - Vorlesung 9 - 29.06.00 35 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 II - SS 2000 - Vorlesung 9 - 29.06.00 36 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 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 F J 37 R+-Baum 2 1 B C I D 1 2 A J F G E H Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 38 R+-Baum 2 1 B C I D A 3 1 2 3 J F G E H Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 39 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 II - SS 2000 - Vorlesung 9 - 29.06.00 40 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 II - SS 2000 - Vorlesung 9 - 29.06.00 41 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 II - SS 2000 - Vorlesung 9 - 29.06.00 42 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 II - SS 2000 - Vorlesung 9 - 29.06.00 43 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 II - SS 2000 - Vorlesung 9 - 29.06.00 44 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 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 F J 45 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 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 F J 46 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 Lutz Plümer - Geoinformation II - SS 2000 - Vorlesung 9 - 29.06.00 F J 47 Schönen Dank für Ihre Aufmerksamkeit und Auf Wiedersehen