r-tree, r*-tree und r + -tree seminar geoinformation ws 01/02 zugriffstruktur auf mehrdimensionale...

Post on 05-Apr-2015

108 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

R-tree, R*-tree und R+-tree

Seminar Geoinformation WS 01/02

Zugriffstruktur auf mehrdimensionale räumliche Objekte

Institut für Kartographie und Geoinformation

der Universität Bonn

Betreuer: Dipl.-Inform. Ingo Petzold

Verfasser: Andreas Joisten

Inhaltsverzeichnis

1. Einleitung

2. Der R-tree

2.1 Struktur und Eigenschaft des R-tree

2.2 Algorithmen des R-tree

2.2.1 Such

2.2.2 Einfüge

2.2.3 Spalt

2.2.4 Lösch

3. R*-tree und R+-tree

- Algorithmus

Einleitung• Anforderung an Zugriffstruktur: multidimensionaler Suchbereich

Versagen des B-Baumes, da eindim. Ordnung der Indexwerte

• Multidimensionale Indexmethode:– Approximation räumlicher Objekte durch kleinste umgebene

„bounding box“– bounding box:

• im 3-D = Quader ; im 2-D = Rechtecke• Lage und Flächeninhalt/Volumen bekannt

– Implementierung: • Zugriff auf Datenobjekte über Pointer • Speicherung der bounding boxen in Zugriffstruktur oder in

Datenobjekten

Struktur des r-tree

R1

R2 R4

R3

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

•Wurzel: bounding box, Pointer auf Söhne

Struktur des r-tree

R1

R2 R4

R3

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

•Wurzel: bounding box, Pointer auf Söhne

•Innere Knoten: bounding box, Pointer auf Söhne

Struktur des r-tree

R1

R2 R4

R3

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

•Wurzel: bounding box, Pointer auf Söhne

•Innere Knoten: bounding box, Pointer auf Söhne

•Blätter: bounding box, Pointer auf Datenobjekt

R1

R2

R3

R4

Festlegungen des r-tree

R1

R2 R4

R3

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

•Einträgen pro Knoten

-mindest Anzahl m = 2

-maximale Anzahl M = 4

Eigenschaften des r-tree

R1

R2 R4

R3

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

•Die Wurzel hat mind. 2 Söhne außer sie ist ein Blatt

•Jeder Knoten außer der Wurzel besitzt zw. m und M Einträge

•Alle Blätter befinden sich auf derselbe Höhe

Such-Algorithmus

R1

R2 R4

R3

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

• Frage: Liegt innerhalb des Suchgebiets eine Stadt?

• Definiere: bounding box des Suchgebiets

Such-Algorithmus

R1

R2 R4

R3

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

• Suchgebiet innerhalb aktuellem Knoten ?

Suchgebiet innerhalb Wurzel

Such-Algorithmus

R3

R4 R6

R5

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

• Suchgebiet innerhalb aktuellem Knoten ?

Suchgebiet innerhalb R1

Suchgebiet außerhalb R2

Suche im linken Teilbaum

Such-Algorithmus

R3

R4 R6

R5

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

• Suchgebiet innerhalb aktuellem Knoten ?

Suchgebiet innerhalb R3

R3

Suchgebiet innerhalb R4

R4

Such-Algorithmus

R3

R4 R6

R5

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

• Suchgebiet innerhalb aktuellem Knoten ?

A

B

Suchgebiet innerhalb C

C

D Suchgebiet innerhalb E

EF

G

Such-Algorithmus

Wurzel

R5 R6R3 R4

A B C D E F G H I J K L M N O

R7

R1 R2

E

C

Keine Information in C

Stadt in E

Welches Datenobjekt liegt innerhalb des Suchgebiets?

Einfüge-Algorithmus

R3

R4 R6

R5

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

• Zuordnung nach geringstem Flächenzuwachs bzw geringster Fläche der bounding boxen

Z

Zuordnung R1

Einfüge-Algorithmus

R3

R4 R6

R5

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R3 R4

Wurzel

A B C D E F G H I J K L M N O

N

O

R7

R7

R1 R2

• Zuordnung nach geringstem Flächenzuwachs bzw geringster Fläche

Z

Zuordnung R3

überlauf des Blattes

Spalt-Algorithmus

• Aufgabe: Verteilung der M + 1 Einträge auf zwei neue Knoten

• Wichtig: Struktur des r-tree von der Gestaltung der neuen Knoten abhängig

• worse case: zufällige Zuordnung der Einträge Überlagerung der bounding boxen schlechte Suche

• Systematische Zuordnung: entfernungsabhängiges Einfügen der Einträge

Aufspalten eines Knotens/Blattes

R3

B

D

C

A

Wurzel

R5 R6R3 R4

A B D E F G H I J K L M N O

R7

R1 R2

Z

Z

•Suche: 2 Einträge, die die neuen Blätter festlegen

•Forderung: 2 Einträge mit max. Abstand

C

CB

B

C

A

A

Z

Z

R‘3 := A und R‘‘3 := Z

C

Aufspalten eines Knotens/Blattes

R3

D

C

A

Wurzel

R5 R6R3 R4

A B D E F G H I J K L M N O

R7

R1 R2

Z

Z

A

A

Z

Z

F_AB und F_ZB

•Ziel: Flächenzuwachs der verbleibenden Einträgen zu A , Z B

B

B

C

Aufspalten eines Knotens/Blattes

R3

C

A

Wurzel

R5 R6R3 R4

A B D E F G H I J K L M N O

R7

R1 R2

Z

Z

A

A

Z

Z

•Ziel: Flächenzuwachs der verbleibenden Einträgen zu A , Z B

C

C

D

C

Aufspalten eines Knotens/Blattes

R3

C

A

Wurzel

R5 R6R3 R4

A B D E F G H I J K L M N O

R7

R1 R2

Z

Z

A

A

Z

Z

•Ziel: Flächenzuwachs der verbleibenden Einträgen zu A , Z B

DD

D

C

Aufspalten eines Knotens/Blattes

R3

C

A

Wurzel

R5 R6R3 R4

A B D E F G H I J K L M N O

R7

R1 R2

Z

Z

A

A

Z

Z

B

D

•Ziel: je geringer der Abstand eines Daten- objekts zu den Ursprungselementen, desto eher das Einfügen

•Ansatz: Flächendifferenzen F_AB – F_ZB = DB

Reihenfolge des Einfügens nach größter Flächendifferenz

Neue Struktur des R-tree

R4 R6

R5

B

D

EF

G

C

A

L

MH

I

KJWurzel

R5 R6R‘‘3 R4

Wurzel

A B C Z E F G H I J K L M N O

N

O

R7

R7

R1 R2

Z

D

R‘3

R‘3

R‘‘3

R4 R6

R5

B

D

EF

G

C

A

MH

I

KJWurzel

R5 R6R‘‘3 R4

Wurzel

A B C Z E F G H I J K M N O

N

O

R7

R7

R1 R2

Z

D

R‘3

R‘3

R‘‘3

Lösch-Algorithmus

• Lösche: L L

L M

R6

R6 kann nicht existieren

• bounding box verkleinern

• Such-Algorithmus

L

• Datenobjekt löschen

L

R4

R5

B

D

EF

G

C

A

MH

I

KJWurzel

R5 R7R‘‘3 R4

Wurzel

A B C Z E F G H I J K M N O

N

O

R7

R1 R2

Z

D

R‘3

R‘3

R‘‘3

Lösch-Algorithmus

•Löschen u. wiedereinfügen von M

kleinerer Flächenzuwachs zu R7

R4

R5

B

D

EF

G

C

A

MH

I

KJWurzel

R5 R7R‘‘3 R4

Wurzel

A B C Z E F G H I J K M N O

N

O

R7

R1 R2

Z

D

R‘3

R‘3

R‘‘3

Neue Struktur des R-tree

Optimierungen bei dem R-tree

•Reduktion der Überlappungen weniger Suchpfade

Überlappung

•Freifläche der bounding box minimieren bessere Approximation durch bounding box

Feifläche

•Maximierung der Anzahl der Einträge Reduzierung der Höhe

R*-tree

• R*-tree als Fortführung des R-tree

– Kriterium des R-tree: geringster Flächenzuwachs– Kriterien des R*-tree:

• Innere Knoten nach geringsten Flächenzuwachs• Blätter nach geringster Überlappung der bounding boxen

• Verbesserung der Suchperformance:

– Änderung der Einfüge- u. Teilungsstrategien– Einführung des erzwungenen Wiedereinfügens

R+-tree

DF

K

J

DF

H

K

JH

BA

FD G JH K

CA

FD G HG

B

JK

•Keine Überlappung der Inneren Knoten

R-tree R+-tree

G G GG G GA A

B B

C

top related