Zusammenfassung: Geom. Datenstrukturen kd-Baum Elmar Langetepe University of Bonn Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 1 Geometrische Datenstruktur Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 2 Geometrische Datenstruktur • • • • • • • • Datenobjekte Punkte im IRd, andere Objekte übertragen Bislang: Eindimensionaler balancierter Suchbaum Bereichsanfrage: Inklusionsanfrage, Schnittanfrage, Anfrageobj. q Interne, externe Datenstrukturen Statische, dynamische Datenstrukturen Rechteckige Bereichsanfrage im IRd k-dimensionaler Suchbaum Achsenparalleles Rechteck q, Punkte im IR2 Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 2 kd-Baum Aufbau Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen 10 5 5 Algorithmische Geometrie 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g b k 5 f c a j e h 5 Algorithmische Geometrie 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g x<5 b x=5 x>5 k 5 f c a j e h 5 Algorithmische Geometrie 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g x<5 b k 5 y<4 y=4 x=5 x>5 y>4 f c a j e h 5 Algorithmische Geometrie 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g x<5 b k 5 y<4 y=4 x=5 x>5 y=5 y>4 y<5 y>5 f c a j e h 5 Algorithmische Geometrie 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g x<5 b y<4 k 5 f j y=5 y>4 y<5 y>5 x<2 x>2 a e h 5 Algorithmische Geometrie x>5 x=2 c a y=4 x=5 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g x<5 b y<4 k 5 f a j e y>4 y<5 y>5 x=3 x<2 x>2 x<3 a b x>3 d h 5 Algorithmische Geometrie x>5 y=5 y=4 x=2 c x=5 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g x<5 b y<4 k 5 f a j e y>4 y<5 x=3 x<2 x>2 x<3 a b y>5 x=8 x>3 x<8 d x>8 j h 5 Algorithmische Geometrie x>5 y=5 y=4 x=2 c x=5 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g x<5 b y<4 k 5 f a j e y>4 y<5 x=3 x<2 x>2 x<3 a b y>5 x=8 x=7 x>3 x<8 d x>8 j x<7 x>7 g h 5 Algorithmische Geometrie x>5 y=5 y=4 x=2 c x=5 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g x<5 b y<4 k 5 f j y=3 a e y<3 h e 5 Algorithmische Geometrie y>4 y<5 b y>3 y>5 x=8 x>2 x<3 x<2 x>5 y=5 x=3 x=2 c a y=4 x=5 x=7 x>3 x<8 d x>8 j x<7 x>7 g c 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g x<5 b y<4 k 5 f j y=3 a e y<3 h e 5 Algorithmische Geometrie y>4 y<5 b y>3 c y>5 x=8 x>2 x<3 x<2 x>5 y=5 x=3 x=2 c a y=4 x=5 x>3 x<8 y=2 d y<2 h x=7 x>8 j y>2 x<7 x>7 g f 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 kd-Baum Aufbau • Splitgeraden X = s, Y = s im Wechsel! • Binärer Baum mit entsprechenden Teilmengen i 10 d g x<5 b y<4 k 5 f j y=3 a e y<3 h e 5 Algorithmische Geometrie y>4 y<5 b y>3 c y>5 x=8 x>2 x<3 x<2 x>5 y=5 x=3 x=2 c a y=4 x=5 x>3 x<8 y=2 d y<2 h x=7 x>8 j y>2 f x<7 x>7 g y=6 y<6 k y>6 i 10 c Elmar Langetepe kd-Baum 27.04.11 SS ’11 3 Knoten entspricht Rechteck R(v) i 10 d x<5 R(v) g y<4 y=4 x=5 x>5 y=5 y>4 y<5 y>5 v b k 5 a y=3 a j y<3 e e x=8 x>2 x<3 x<2 f c x=3 x=2 b y>3 c x>3 x<8 y=2 d y<2 h x=7 x>8 j y>2 f x<7 x>7 g y=6 y<6 y>6 k i h 5 10 Jeder Knoten v entspricht einem Rechteck R(v) als Schnitt von Halbebenen (X = s und Y = s). Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 4 Anfrage-Query mit Rechteck q i 10 d x<5 g y<4 b c j Q a y=3 a y<3 e e y<5 b y>3 c y>5 x=8 x>2 x<3 x<2 f x>5 y=5 y>4 x=3 x=2 k 5 y=4 x=5 x>3 x<8 y=2 d y<2 h x=7 x>8 j y>2 f x<7 x>7 g y=6 y<6 k y>6 i h 5 10 • Bestimme alle Knoten v mit R(v) ∩ q 6= ∅ • Falls v Blatt, teste v ∈ q Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 5 Query Laufzeit Lemma 3.6: Sei T ein 2d-Baum der Höhe h mit n Punkten. Eine Bereichsanfrage mit achsenparallelen Rechteck Q läßt sich in Zeit h O 2 2 + a beantworten, wobei a die Größe der Antwort ist. Beweis: • Zähle alle Knoten mit R(v) ∩ q 6= ∅ • 1) Knoten v mit R(v) ⊆ q: Teilbaum ausgeben a(v) • 2) Knoten v mit R(v) 6⊆ q (aber R(v) ∩ q 6= ∅) q ⊆ R(v): Höhe h viele k Seite von q schneidet R(v): 2 2 viele k (Beweis) für Tiefe h 2 • Aufsummieren über alle Tiefen k: O 2 + a Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 6 h Visuell: Laufzeit O 2 2 + a i 10 d x<5 g y<4 b c j Q a y=3 a y<3 e e y>4 y<5 b y>3 c y>5 x=8 x>2 x<3 x<2 f x>5 y=5 x=3 x=2 k 5 y=4 x=5 x>3 x<8 y=2 d y<2 h x=7 x>8 x<7 j y>2 f x>7 g y=6 y<6 k y>6 i h 5 10 1. Knoten v mit R(v) ⊆ q, Teilbaum ausgeben 2. Knoten v mit R(v) 6⊆ q (aber R(v) ∩ q 6= ∅), zwei Typen Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 7 Ergebnis Theorem 3.7: Ein ausgeglichener 2d-Baum für n Punkte in der Ebene läßt sich in Zeit O(n log n) konstruieren. Er benötigt O(n) Speicherplatz . Eine Bereichsanfrage mit achsenparallelen Rechteck √ q kann in Zeit O ( n + a) beantwortet werden, wobei a die Größe der Antwort ist. Sortieren nach X und Y . Rekursiv in gleichgroße Teilmengen aufteilen, lineares Aufteilen. Höhe ist O(log n). Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 8 Degenerierte Fälle, gleiche X-,Y -Koordinaten Y 5 X 5 x=3 x<3 3<x y=3 y=4 y<3 3<y (1,2) (2,5) (1,3) (5,2) (2,3) (4,4) (3,1) Algorithmische Geometrie y<4 (3,2) c Elmar Langetepe kd-Baum 27.04.11 (3,3) (3,4) (5,4) (6,4) (3,6) SS ’11 9 Query Laufzeitabschätzung • Zusätzlicher Aufwand für dritte Struktur: R(w) ∩ q 6= ∅ • R(v) in Sohn T1 ist Intervall: I(v) • 1) I(v) ⊆ q: Teilbaum ausgeben a(v) 2) q schneidet I(v): Höhe von T1 viele n • Anzahl Blätter T1 (für Knoten w Tiefe k): ≤ 2k−1 Ph k h h h−k+1 2 • n = 2 : k=1 2 log 2 ∈ O(2 2 ) x<5 x=5 y=4 w x>5 T_1 y=4 y=6 y=3 y=1 y=5 y=3 y=5 y=4 y=9 y=5 y=6 y=9 q mit Y=7 und Y=2 Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 10 Ergebnis entartete 2d-Bäume Theorem 3.7 (entartet): Ein ausgeglichener 2d-Baum für n Punkte in der Ebene läßt sich in Zeit O(n log n) konstruieren. Er benötigt O(n) Speicherplatz. Eine Bereichsanfrage mit achsenparallelen √ Rechteck q kann in Zeit O ( n + a) beantwortet werden, wobei a die Größe der Antwort ist. Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 11 Buch Kapitel Kapitel 3.3.1 Seite 126 oben – S. 133 mitte Algorithmische Geometrie c Elmar Langetepe kd-Baum 27.04.11 SS ’11 12