Vorlesung 6

Werbung
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
Herunterladen