Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Kapitel 5: Mehrdimensionale Suchstrukturen. 2 Mehrdimensionale Suchstrukturen Alterzwischen 20 und 30 Einkommenzwischen 2000 und 3000 PLZzwischen 40000.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Kapitel 5: Mehrdimensionale Suchstrukturen. 2 Mehrdimensionale Suchstrukturen Alterzwischen 20 und 30 Einkommenzwischen 2000 und 3000 PLZzwischen 40000."—  Präsentation transkript:

1 1 Kapitel 5: Mehrdimensionale Suchstrukturen

2 2 Mehrdimensionale Suchstrukturen Alterzwischen 20 und 30 Einkommenzwischen 2000 und 3000 PLZzwischen 40000 und 50000

3 3 Query-Rechteck y2y2 y1y1 y x x1x1 x2x2 E D C B G F HI K A J

4 4 k-d-Baum zur Verwaltung von mehrdimensionalen Datenpunkten Verallgemeinerung des binären Suchbaums mit k-dimensionalem Sortierschlüssel Homogene Variante: Baumknoten enthält Datenrecord + Zeiger Inhomogene Variante: Baumknoten enthält Schlüssel + Zeiger Blätter enthalten Zeiger auf Datenrecord Ebene i modulo k diskriminiert bzgl. Dimension i x y z

5 5 2-d-Baum Im 2-dimensionalen Fall gilt für Knoten mit Schlüssel [x/y]: im linken Sohnim rechten Sohn Auf ungerader Ebenealle Schlüssel xalle Schlüssel > x Auf gerader Ebenealle Schlüssel yalle Schlüssel > y

6 6 2-d-Baum 1 2 3 4 5 6 7 8 910111213141516 1 2 3 4 5 6 7 8 9 10 A C B D E F G H

7 7 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/8 F 12/7 E 7/9 bzgl. y kleiner bzgl.x kleiner bzgl. y kleiner bzgl. y grösser bzgl. y grösser bzgl.x grösser bzgl.x grösser Insertz.B. füge Record [3/9] I 3/9

8 8 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/8 F 12/7 E 7/9 bzgl. y kleiner bzgl.x kleiner bzgl. y kleiner bzgl. y grösser bzgl. y grösser bzgl.x grösser bzgl.x grösser Exact Matchz.B. finde Record [15/5]

9 9 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/8 F 12/7 E 7/9 bzgl. y kleiner bzgl.x kleiner bzgl. y kleiner bzgl. y grösser bzgl. y grösser bzgl.x grösser bzgl.x grösser Partial Matchz.B. finde alle Records [x/y] mit x=7

10 10 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/8 F 12/7 E 7/9 bzgl. y kleiner bzgl.x kleiner bzgl. y kleiner bzgl. y grösser bzgl. y grösser bzgl.x grösser bzgl.x grösser Range-Queryz.B. finde alle Records [x/y] mit 8 x 13, 5 y 8

11 11 Beispiel für 2-d-Baum D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/8 F 12/7 E 7/9 bzgl. y kleiner bzgl.x kleiner bzgl. y kleiner bzgl. y grösser bzgl. y grösser bzgl.x grösser bzgl.x grösser Best Matchz.B. finde nächsten Nachbarn zu [7/3] => Traversierung mit schrumpfender Rangequery

12 12 2-d-Baum 1 2 3 4 5 6 7 8 910111213141516 1 2 3 4 5 6 7 8 9 10A C B D E F G H

13 13 Traversierung für Best Match zu [7/3] D 6/2H8/5 C 9/4 B14/3 B A 5/6 G1/8 F 12/7 E 7/9 bzgl. y kleiner bzgl.x kleiner bzgl. y kleiner bzgl. y grösser bzgl. y grösser bzgl.x grösser bzgl.x grösser

14 14 Inhomogene Variante

15 15 Partitionierungen

16 16 Gitterverfahren mit konstanter Gittergröße

17 17 Grid File Alternative zu fester Gittergröße 1981 vorgestellt von Hinrichs & Nievergelt 2-Platten-Zugriffsgarantie Bei k-dimensionalen Tupeln: k Skalen zum Einstieg ins Grid-Directory (im Hauptspeicher) Grid Directory zum Finden der Bucket-Nr. (Hintergrundspeicher) Bucket für Datensätze (Hintergrundspeicher)

18 18 Grid File im 2-dimensionalen Fall Alle Records der roten Gitterzelle sind im Bucket mit Adresse G[1,2] 0 y[i],i=0,.. max_y 3030 2500 2050 800 y 304085120 x x x[i],i=0,.. max_x 0304085120 y 0800205025003030 Region:benachbarte Gitterzellen Gitterzelle: rechteckiger Teilbereich Bucket:speichert Records einer Region

19 19 Bucket Directory 0 30 40 85 120 0 1 2 3 4 4321043210 3030 2500 2050 800 0 Suche Record [35 / 2400] Befrage Skalen asp07nk99jh056509 aasdf0cß03j400d0v 9v8asßfimo98csi98a dxcvß98dspa0s9fxc0 wi00808ß3jsßsa9ßß Lade Block mit G[1,2] vom Bucketdirectory Lade Datenblock

20 20 Bucket-Überlauf Eine Zelle in Region Mehrere Zellen in Region

21 21 Aufspalten der Regionen 8 6 4 2 2468101214 Insert A = [5 / 6]

22 22 Aufspalten der Regionen 8 6 4 2 2468101214 A A Insert B = [14 / 3]

23 23 Aufspalten der Regionen 8 6 4 2 2468101214 A B A B Insert C = [9 / 4]

24 24 Aufspalten der Regionen 8 6 4 2 2468101214 A C B B C A Insert D = [6 / 2]

25 25 Aufspalten der Regionen 8 6 4 2 2468101214 A C B B C A D D Insert E = [7 / 9]

26 26 Aufspalten der Regionen Insert F = [12 / 7]

27 27 Aufspalten der Regionen Insert G = [1 / 8]

28 28 Aufspalten der Regionen B C 8 6 4 2 2468101214 E A C B F F D G A E D G

29 29 Gridfile Beispiel 12 18 34 2000 1600 1100 12 2000 34 1800 1700 1600 1500 1400 1300 15 16 17 18 26 30 32

30 30 Gridfile Zahlen Größe eines Datenrecords:100 Byte mittlere Zahl der Datenrecords pro Block:7.5 maximale Zahl der Datenrecords pro Block10 Zahl der Datenrecords:300.000 Zahl der Datenblöcke:40.000 Zahl der Directoryblöcke:225 mittlere Zahl von Adressen pro Directoryblock175 maximale Zahl von Adressen pro Directoryblock:256 Größe des Root-Directory:15 x 15

31 31 Dynamik des Grid Directory 300 200 10 50 Insert A=[12 / 280] 3 Datenrecords pro Bucket

32 32 Dynamik des Grid Directory 10 50 300 200 A 10 50 300 200 300 200 10 50 Insert B=[25 / 220]

33 33 Dynamik des Grid Directory 10 50 300 200 A B 10 50 300 200 300 200 10 50 Insert C=[45 / 270]

34 34 Dynamik des Grid Directory 10 50 300 200 A B C 10 50 300 200 300 200 10 50 Insert D=[22 / 275]

35 35 Dynamik des Grid Directory 300 200 10 30 50 300 200 A B C 10 50 300 200 D 10 30 50 Insert E=[24 / 260]

36 36 Dynamik des Grid Directory 250 200 C 300 10 30 50 A B 10 50 300 200 D 10 30 50 300 200 E 250 Insert F=[26 / 280]

37 37 Dynamik des Grid Directory 10 30 50 300 200 30 50 10 20 30 250 200 A B C D 10 30 50 300 200 E 250 300 F 250 200 300 Directory Block vergröbern

38 38 Dynamik des Grid Directory 10 20 30 250 200 A B C 10 30 50 300 200 D 10 30 50 300 200 E 250 300 F 30 50 300 200

39 39 Vereinigung von Regionen bei zu geringer Bucketauslastung: Benachbarte Regionen vereinigen Vereinigung muß Rechteck ergeben Vereinigung wird ausgelöst wenn Bucket < 30 % Auslastung wenn vereinigtes Bucket < 70 % Auslastung

40 40 Nearest Neighbor Q P R

41 41 Verwaltung von geometrischen Objekten Grid File unterstützt Range-Query bisher:k Attribute Jetzt:k-dimensionale Punkte

42 42 Verwaltung von Intervallen 1 2 3 4 5 6 7 8 9 1011121314 15 1 2 3 4 5 E A B C D F A [Anfang / Ende] E A B C D F Besser: [Mittelpunkt / halbe Länge]

43 43 Query-Punkt gegen Intervall Punkt p liegt im Intervall mit Mitte m und halber Länge d m-d p m+d m-d m+d m

44 44 Query-Punkt gegen Intervall 1 2 3 4 5 6 7 8 9 1011121314 15 1 2 3 4 5 E A B C D F E A B C D F Punkt p liegt im Intervall mit Mitte m und halber Länge d m-d p m+d p=5 m-d 5 m+d

45 45 Query-Intervall gegen Intervall Intervall mit Mitte s und halber Länge t schneidet Intervall mit Mitte m und halber Länge d m-d s+t und s-t m+d m-dm+d s+ts-t

46 46 Query-Intervall gegen Intervall 1 2 3 4 5 6 7 8 9 1011121314 15 1 2 3 4 5 E A B C D F E A B C D F Intervall mit Mitte s und halber Länge t schneidet Intervall mit Mitte m und halber Länge d m-d s+t und s-t m+d s=10, t=1 m-d 11 und 9 m+d

47 47 Query-Rechteck gegen Rechteck Stelle Rechteck durch vierdimensionalen Punkt dar


Herunterladen ppt "1 Kapitel 5: Mehrdimensionale Suchstrukturen. 2 Mehrdimensionale Suchstrukturen Alterzwischen 20 und 30 Einkommenzwischen 2000 und 3000 PLZzwischen 40000."

Ähnliche Präsentationen


Google-Anzeigen