Der R-Baum Richard Göbel.

Slides:



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

Punkt-in-Polygon-Verfahren III (R/R+-Baum)
Minimum Spanning Tree: MST
Der k-d-Baum Richard Göbel.
Constraint Satisfaction Problems
Mindesthöhe: |_log2 n_|, maximale Höhe: n-1
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.
Der B-Baum Richard Göbel.
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Prioritätswarteschlangen
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.
Bäume • Kernidee: Speicherung von Daten in einer Baumstruktur
Anwendung und Visual Basic
Spielbäume Richard Göbel.
Sortieren mit Binären Bäumen
Suchbäume Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Künstliche Intelligenz - Suchbäume Richard Göbel.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Listen Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
FH-Hof Grundlagen mehrdimensionaler Suchstrukturen Richard Göbel.
Motivation Richard Göbel.
Der R-Baum Richard Göbel.
GridBagLayout Richard Göbel.
Bildverarbeitung Richard Göbel.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Effizienz: Indexstrukturen
Bilder und Rasterdaten
FH-Hof Analyse des R-Baums Richard Göbel. FH-Hof Ansatz Annahme: Die Bearbeitungszeit für eine Anfrage wird dominiert von der Ladezeit der Knoten von.
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 (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.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmen und Datenstrukturen
R-tree, R*-tree und R+-tree
Externe Datenstruktur lineare Liste
Was sind Histogramme? (1)
Vortrag: Ingo Gensch, Mathias Reich am:
Prof. K. Gremminger Folie 1 Vorlesung Datenbanksysteme SS 2002 Seitenorganisation Verwandte Themen: - Reorganisation - Fragmentierung Datensatzadresse.
FH-Hof Analyse des R-Baums - Teil 1 Richard Göbel.
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Sortieralgorithmen Sortieren von Arrays.
Einführung in die Programmierung
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Übung Datenbanksysteme II Index- strukturen
Graphen und Bäume.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Peer-to-Peer- Netzwerke Christian Schindelhauer Sommersemester.
Das Traveling Salesman Problem (TSP)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Binärbäume.
CL Tree MW 31.1 Business Intelligence Wintersemester 2015 / 2016 Stanislav Prokupetz.
Non-Standard-Datenbanken Multidimensionale Indizierung Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
Kap. 12 R-Bäume GB B31 B245 Box 1: Box 2: Box 3: Box 4: Box 5:
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Der R-Baum Richard Göbel

Viele Verbesserungen und Erweiterungen, z.B.: R-Baum - Literatur A. Guttman 1984: "R-Trees: A Dynamic Index Structure for Spatial Searching”, Proc. ACM SIGMOD Conference, Boston, pages 47 - 57, 1984 Viele Verbesserungen und Erweiterungen, z.B.: 1987: Sellis, Roussopoulos, Faloutsos: R+-Tree 1990: Beckmann, Kriegel, Schneider, Seeger: R*-tree 1996: Berchtold, Keim, Kriegel: X-Tree: 1997: Leutenegger, Edgington, Lopez: STR Tree Packing Verschiedene Implementierungen in kommerziellen Datenbanksystemen in den letzten 10 Jahren

R-Baum - Konzept Ein Knotens des B-Baums repräsentiert ein Segment einer sortierten Liste von Werten. Ein Knoten des R-Baums repräsentiert Segmente in sortierten Listen jeder Spalte Column A Column B

Eigenschaften des R-Baums Baum mit Verzweigungsgrad größer als 2 Knoten des Baumes werden Blöcken der Festplatte zugeordnet Der R-Baum ist vollständig balanciert Algorithmen für das Einfügen und Löschen sind ähnlich wie beim B-Baum Suchverfahren entspricht dem allgemeinen Suchansatz

Beispiel für einen zweidimensionale R-Baum Y X

Einfügen eines Punktes Bestimme mit Hilfe des Suchverfahrens ein Blattknoten für den neuen Punkt. Falls verschiedene Pfade existieren (aufgrund von Überlappungen) dann wähle einen Pfad aus. Falls kein passender Nachfolger bei der Suche gefunden wird: Vergrößere den Hyperquader für den Nachfolger für den die Vergrößerung minimal ist. Falls ein Blattknoten nicht mehr ausreichend Kapazität enthält: Spalte den Knoten und ggf. Elternknoten auf.

Lösche den Punkt aus einem Blattknoten. Löschen eines Punktes Bestimme mit Hilfe des Suchverfahrens alle Blattknoten für den zu löschenden Punkt Lösche den Punkt aus einem Blattknoten. Verkleinere bei Bedarf alle Hyperquader auf dem Pfad zu dem betroffenen Blattknoten. Unterschreitet der Blattknoten die minimale Anzahl von Elementen, dann lösche diesen Blattknoten: verteile die Einträge auf Geschwisterknoten oder füge die betroffenen Punkte neu ein

Optionen für die Implementierung Auswahl eines Pfades für das Einfügen Aufteilen eines Knotens Verteilen der Einträge für das Löschen eines Knotens Reorganisation eines Baums?

Kriterien für die Optimierung eines R-Baums Überlappungen: Anzahl der Überlappungen minimieren Volumen der Überlappungen minimieren Volumen der Knoten minimieren Abweichungen der Hyperquader von Hyperwürfeln minimieren (gleiche Ausdehnung aller Dimensionen)

Ursprünglicher R-Baum führt drei Verfahren ein: Aufteilen des Knotens Ursprünglicher R-Baum führt drei Verfahren ein: linearer Aufwand quadratischer Aufwand exponentieller Aufwand Verfahren mit quadratischem Aufwand scheint guter Kompromiss zu sein

Aufteilung eines Knotens - quadratisches Verfahren Bestimme zwei Elemente als Startpunkte (Saat) Idee: Wähle Elemente die auf keinen Fall in einem Knoten enthalten sein sollten Vergleiche dazu die minimalen Hyperquader für je zwei Elemente Wähle zwei Elemente mit dem größten Hyperquader Ordne die weiteren Elemente schrittweise zu Ordne die offensichtlichen Elemente zuerst zu Wähle die Zuordnung mit dem geringsten zusätzlichen Raum

Wann ist eine Zuordnung offensichtlich? Berechne für jedes Element: den zusätzlichen leeren Raum bei Vergrößerung des Hyperquaders der beiden neuen Knoten die Differenz des leeren Raumes für die beiden neuen Knoten Element mit maximaler Differenz wird zugeordnet

Beispiel: Aufspalten eines inneren Knotens

Finden der Startelemente

Bewertung eines Elements 32-6-9=17 91-17=74 104-9-4 = 91

Bewertung der anderen Elemente

Schrittweise Zuordnung der Elemente

Aufspalten eines Blatts - Spezialfall des bisherigen Verfahrens

Minimalkapazität berücksichtigen Verfahren garantiert keine gleichmäßige Verteilung Sonderbehandlung bei Unterschreitung der minimalen Kapazität Das Verfahren wird rechtzeitig abgebrochen Die verbleibenden Elemente werden dem Knoten mit der kleineren Anzahl von Elementen zugeordnet Ergebnis ist bei Abbruch nicht optimal!

Aufspalten eines Knoten: andere Verfahren Verfahren mit linearen Aufwand Wähle zwei Knoten bezüglich eines vorgegebenen Kriteriums aus (mit einem „Scan“) Ordne die verbleibenden Knoten in beliebiger Reihenfolge zu Verfahren mit exponentiellem Aufwand Überprüfe alle Verteilungen auf zwei Knoten Aufwand im schlechtesten Fall: 2n-2

Erweiterung der R-Baums für Regionen In den Baum werden statt Punkte vollständige Hyperquader eingefügt Anpassung der Verfahren offensichtlich Interessant für räumlich ausgedehnte Daten Statt 2d Dimensionen werden nur d Dimensionen benötigt

Algorithmen für den R-Baum: Grundlagen Darstellung von Hyperquadern für die Suchregion und die Knoten der Indexstruktur Volumen eines Hyperquaders Überlappung von Hyperquadern  Umschreibender Hyperquader Überlappungsbereich

Darstellung eines Hyperquaders Ober- und Untergrenze Volumen

Überlappung

Umschreibender Hyperquader

Überlappungsbereich mit:

Verbesserung des R-Baums: Ideen Vermeiden von Überlappungen durch Aufteilung von Knoten (R+-Baum) Optimierung der Form der Hyperquader mit möglichst gleicher Ausdehnung in jeder Dimension (R*-Baum) Verfahren zur Auswahl eines Pfades Verfahren zum Aufspalten eines Knotens Effiziente Verfahren zum Aufspalten eines Knotens (z.B. Verfahren von Ang und Tan) Erzeugung eines optimalen R-Baums für eine vorgegebene Menge von Einträgen

Vermeidung von Überlappungen durch Aufteilung von Knoten (R+-Baum)

Lineares Verfahren zum Aufspalten eines Knotens nach Ang und Tan Aufspaltung erfolgt bezüglich einer Dimension Zunächst wird die Aufteilung für jede Dimension getestet Wähle die günstigste Dimension: Differenz der Anzahl von Elementen in den beiden neuen Knoten ist klein (Priorität 1) Überlappung zwischen den beiden neuen Knoten ist gering (Priorität 2) Volumen der neuen Knoten ist gering (Priorität 3)

Zuordnung eines Elements nach Ang und Tan Überprüfe für jedes Element: den Abstand des Untergrenze des Elements zu der Untergrenze des übergeordneten Knotens den Abstand der Obergrenze des Elements zu der Obergrenze des übergeordneten Knotens Ordne das Element entsprechend des minimalen Abstands einer von zwei Mengen zu

Beispiel für das Verfahren nach Ang und Tan - Teil 1

Beispiel für das Verfahren nach Ang und Tan - Teil 2

Beispiel für das Verfahren nach Ang und Tan - Teil 3

Beispiel für das Verfahren nach Ang und Tan - Teil 4

Erzeugung eines „optimalen“ R-Baums Analyse einer festen Datenmenge Erzeugung eines R-Baums für diese Datenmenge Optimierung bezüglich eines vorher festgelegtem Kriteriums Typen von Verfahren: Bottom-Up: verschiedene Top-Down: FH Hof

Ordne die einzelnen Punkte den Blättern eines R-Baums zu Bottom-Up-Verfahren Ordne die einzelnen Punkte den Blättern eines R-Baums zu Erzeuge aus den Blättern schrittweise die weiteren Knoten der Indexstruktur Zuordnung von Punkten zu Blättern: über Sortierfunktion (Interleaving, Hilbertkurve, etc.) Sort Tile Recursive

Beispiel: Zuordnung über 2D-Hilbertkurve

Sort Tile Recursive - Ansatz Idee: Teile jede Dimension in etwa gleich viele Teile auf (Gitterstruktur) Beispiel: Teile eine zweidimensionale Struktur zunächst in (n/v) Segmente auf (v: Kapazität) Sortiere die Einträge bezüglich der ersten Dimension und verteile die Einträge auf die Segmente Teile entsprechend jedes Segment in (n/v) Blattknoten auf (Sortierung bezüglich der zweiten Dimension)

Sort Tile Recursive - Beispiel