• Keine Ergebnisse gefunden

Query Laufzeit

N/A
N/A
Protected

Academic year: 2022

Aktie "Query Laufzeit"

Copied!
33
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Geometrische Datenstrukturen

Elmar Langetepe University of Bonn

(2)

Query Laufzeit

(3)

Query Laufzeit

Lemma 3.6: Sei T ein 2d-Baum der H¨ohe h mit n Punkten. Eine Bereichsanfrage mit achsenparallelen Rechteck Q l¨aßt sich in Zeit O

2h2 + a

beantworten, wobei a die Gr¨oße der Antwort ist.

(4)

Beweis: Laufzeit O

2

h2

+ a

(5)

Beweis: Laufzeit O

2

h2

+ a

5 10

5 10

Q

a b

e c

h d

f

i

g

j

k

x>5 x=5

x<5 y<4 y=4

y>4

y=5

y>5 y<5

a x=2

x<2 x>2 x>3

x=3

b d

x<3

j x<8

x=8

x>8 x>7

x=7 x<7

g y=3

y<3 y>3 c

e h

y<2 y>2 y=2

f

y>6 i k

y=6 y<6

(6)

Beweis: Laufzeit O

2

h2

+ a

5 10

5 10

Q

a b

e c

h d

f

i

g

j

k

x>5 x=5

x<5 y<4 y=4

y>4

y=5

y>5 y<5

a x=2

x<2 x>2 x>3

x=3

b d

x<3

j x<8

x=8

x>8 x>7

x=7 x<7

g y=3

y<3 y>3 c

e h

y<2 y>2 y=2

f

y>6 i k

y=6 y<6

1. Knoten v mit R(v) ⊆ q

2. Knoten v mit R(v) 6⊆ q (aber R(v) ∩ q 6= ∅), unterteilt sich in zwei Subtypen

(7)

Query Laufzeit

Lemma 3.6: Sei T ein 2d-Baum der H¨ohe h mit n Punkten. Eine Bereichsanfrage mit achsenparallelen Rechteck Q l¨aßt sich in Zeit O

2h2 + a

beantworten, wobei a die Gr¨oße der Antwort ist.

Beweis:

• Z¨ahle 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= ∅) a) q ⊆ R(v): H¨ohe h viele

b) Seite von q schneidet R(v): 2k2 viele f¨ur Tiefe k (Beweis)

• Aufsummieren ¨uber alle Tiefen k: O

2h2 + a

(8)

Ergebnis

(9)

Ergebnis

Theorem 3.7: Ein ausgeglichener 2d-Baum f¨ur n Punkte in der Ebene l¨aßt sich in Zeit O(n log n) konstruieren. Er ben¨otigt O(n) Speicherplatz . Eine Bereichsanfrage mit achsenparallelen Rechteck q kann in Zeit O (√

n + a) beantwortet werden, wobei a die Gr¨oße der Antwort ist.

(10)

Ergebnis

Theorem 3.7: Ein ausgeglichener 2d-Baum f¨ur n Punkte in der Ebene l¨aßt sich in Zeit O(n log n) konstruieren. Er ben¨otigt O(n) Speicherplatz . Eine Bereichsanfrage mit achsenparallelen Rechteck q kann in Zeit O (√

n + a) beantwortet werden, wobei a die Gr¨oße der Antwort ist.

Sortieren nach X und Y und rekursiv in gleichgroße Teilmengen aufteilen, lineares Aufteilen

(11)

Degenerierte F¨ alle

(12)

Degenerierte F¨ alle

5 5

Y

X

x<3

y<3 3<y y<4

3<x

y=3

(1,2)

y=4 x=3

(5,2) (2,5)

(1,3) (2,3) (4,4) (5,4) (6,4)

(3,4) (3,3) (3,2)

(3,1) (3,6)

(13)

Laufzeitabsch¨ atzung

x=5 x>5

x<5

y=4 y=5

y=4T_1

y=1 y=3

y=5 y=6 y=9 y=6

y=4 y=5 y=9 y=3

q mit Y=7 und Y=2

w

(14)

Laufzeitabsch¨ atzung

• Zus¨atzlicher Aufwand f¨ur dritte Struktur

x=5 x>5

x<5

y=4 y=5

y=4T_1

y=1 y=3

y=5 y=6 y=9 y=6

y=4 y=5 y=9 y=3

q mit Y=7 und Y=2

w

(15)

Laufzeitabsch¨ atzung

• Zus¨atzlicher Aufwand f¨ur dritte Struktur

• R(v) in T1 ist Intervall: I(v)

x=5 x>5

x<5

y=4 y=5

y=4T_1

y=1 y=3

y=5 y=6 y=9 y=6

y=4 y=5 y=9 y=3

q mit Y=7 und Y=2

w

(16)

Laufzeitabsch¨ atzung

• Zus¨atzlicher Aufwand f¨ur dritte Struktur

• R(v) in T1 ist Intervall: I(v)

• Bl¨atter von T1 f¨ur Knoten Tiefe k: ≤ n

2k−1

x=5 x>5

x<5

y=4 y=5

y=4T_1

y=1 y=3

y=5 y=6 y=9 y=6

y=4 y=5 y=9 y=3

q mit Y=7 und Y=2

w

(17)

Laufzeitabsch¨ atzung

• Zus¨atzlicher Aufwand f¨ur dritte Struktur

• R(v) in T1 ist Intervall: I(v)

• Bl¨atter von T1 f¨ur Knoten Tiefe k: ≤ n

2k−1

• Beweis

x=5 x>5

x<5

y=4 y=5

y=4T_1

y=1 y=3

y=5 y=6 y=9 y=6

y=4 y=5 y=9 y=3

q mit Y=7 und Y=2

w

(18)

Ergebnis entartete 2d-B¨ aume

(19)

Ergebnis entartete 2d-B¨ aume

Theorem 3.7 (entartet): Ein ausgeglichener 2d-Baum f¨ur n Punkte in der Ebene l¨aßt sich in Zeit O(n log n) konstruieren. Er ben¨otigt O(n) Speicherplatz. Eine Bereichsanfrage mit achsenparallelen

Rechteck q kann in Zeit O (√

n + a) beantwortet werden, wobei a die Gr¨oße der Antwort ist.

(20)

Anwendung 3D Sweep

(21)

Anwendung 3D Sweep

• Sweep im Raum, Closest-Pair: Laufzeit O(n(e(n) + b(n)))

• 2d-Baum: b(n) ∈ O(√

n + a), e(n) ∈ O(log n)

Z

Y

X M

2M

2M r

Q

(22)

Verallgemeinerung

(23)

Verallgemeinerung

Theorem 3.7 (entartet): Ein ausgeglichener kd-Baum f¨ur n Punkte im IRk l¨aßt sich in Zeit O(n log n) konstruieren. Er ben¨otigt O(n) Speicherplatz. Eine orthogonale Bereichsanfrage kann in Zeit

O

n1−k1 + a

beantwortet werden, wobei a die Gr¨oße der Antwort ist.

(24)

Verallgemeinerung

Theorem 3.7 (entartet): Ein ausgeglichener kd-Baum f¨ur n Punkte im IRk l¨aßt sich in Zeit O(n log n) konstruieren. Er ben¨otigt O(n) Speicherplatz. Eine orthogonale Bereichsanfrage kann in Zeit

O

n1−k1 + a

beantwortet werden, wobei a die Gr¨oße der Antwort ist.

k zyklische Splitebenen, tern¨are Struktur, Datenobjekte in Split(hyper)ebene in (k−1)d-Baum ablegen

(25)

Verallgemeinerung

Theorem 3.7 (entartet): Ein ausgeglichener kd-Baum f¨ur n Punkte im IRk l¨aßt sich in Zeit O(n log n) konstruieren. Er ben¨otigt O(n) Speicherplatz. Eine orthogonale Bereichsanfrage kann in Zeit

O

n1−k1 + a

beantwortet werden, wobei a die Gr¨oße der Antwort ist.

k zyklische Splitebenen, tern¨are Struktur, Datenobjekte in Split(hyper)ebene in (k−1)d-Baum ablegen

kd-Baum: Platzoptimal, Laufzeitverbesserungen Query:

O(a + log2 n)

(26)

Range Tree (Bereichsbaum)

I

v2

v1

v3

v4

x

Eindimensionaler Bereichsbaum: Intervalle die ein Anfrageintervall aussch¨opfen

Jeder Knoten beschreibt ein Intervall

Knoten min. H¨ohe, Intervall disjunkt ¨uberdecken: O(log n) viele

(27)

Rekursiv k-dimensionaler Range Tree T

k

• Rekursiv Bereichsbaum Tk mit Dim. k

• T1 f¨ur D1 = {x1|(x1, x2, . . . , xk) ∈ D}

• F¨ur jeden Knoten v in T1: Konstr. (k−1)-dim Bereichsbaum Tvk−1 der Menge Dvk−1 = {(x2, x3, . . . , xk)|x1 ∈ I(v)}

• Zeiger bei v zeigt auf Tvk−1

• Letzter Baum enth¨alt im Blatt alle Knoten aus D

(28)

Beispiel 2-dimensionaler Range Tree

w I(w)

I(v) X2

X1 TV1

T1 v

(29)

Query: k-dimensionaler Range Tree

• Hyperrechteck q ∈ IRk: q = (I1, I2, . . . , Ik)

• k = 1: Beantworte die Frage im eindim. Suchbaum

• Sonst: Bestimme Knoten v1, . . . , vl in T1: Intervalle I(vi) sch¨opfen zusammen I1 aus

v1, . . . , vl haben minimale H¨ohe mit dieser Eigenschaft

• F¨ur 1 ≤ i ≤ l beantworte die Anfrage q = (I2, . . . , Ik) f¨ur Tvk−1

i

• Korrekt: Zuerst unter X1-Koordinaten suchen Von diesen unter X2-Koordinaten suchen

Uswusf.

(30)

Beispiel 2-dimensionaler Range Tree

w I(w)

I(v) X2

X1 TV1

T1 v

(31)

k-dimensionaler Range Tree

Theorem 3.11: Ein k-dimensionaler Bereichsbaum f¨ur n Punkte im IRk kann in Zeit O(n(log n)k−1) mit Platz O(n(log n)k−1)

aufgebaut werden. Eine Bereichsanfrage mit Hyperrechteck q ⊂ IRk kann in Zeit O(a + (log n)k) beantwortet werden. Dabei ist a die Gr¨oße der Antwort.

Beweis: Speicherplatz Punkt p = (x1, x2, . . . , xk)

• Baum T1:

1) Im Baum T1 einmal

2) In max. log n vielen Intervallen I(vi) von T1

• B¨aume Tvk−1

i , i = 1, . . . , l 1) In Baum Tvk−1

i einmal

2) In max. log n vielen Intervallen I(w ) von Tk−1

(32)

• Insgesamt: Pk−1

i=0 (log n)i ∈ O((log n)k−1)

• Alle Punkte O(n(log n)k−1)

(33)

k-dimensionaler Range Tree

Theorem 3.11: Ein k-dimensionaler Bereichsbaum f¨ur n Punkte im IRk kann in Zeit O(n(log n)k−1) mit Platz O(n(log n)k−1)

aufgebaut werden. Eine Bereichsanfrage mit Hyperrechteck q ⊂ IRk kann in Zeit O(a + (log n)k) beantwortet werden. Dabei ist a die Gr¨oße der Antwort.

Beweis: Query! q = (I1, I2, . . . , Ik)

• T1: Intervalle I(vi) die I1 aussch¨opfen max. 2 log n viele

• Induktiv: O((log ni)k−1 + ai) f¨ur Tvk−1

i , Ind. Anfang: k = 2 klar, Ind. Schluss:

Bereichsanfrage f¨ur alle Tvk−1

i : C · log n + P2 log n

i=1 (log ni)k−1 + ai ∈ O((log n)k + a)

Referenzen

ÄHNLICHE DOKUMENTE

Zwischenergebnisse bereits durch ein Commit anderen Transaktionen verfügbar, aber trotzdem bei einem späteren Abbruch wieder rückgängig gemacht. ; Formalisierung von

Fachbereich Mathematik und Statistik Repetitorium 2018, Analysis 2.

Bohnenberger aufgeführten Formeln für geographische Ortsbestimmung hat derselbe auch folgende vier Formeln in der monatlichen Correspondenz zur Beförderung der Erd- und

Theorem 3.14 Ein Priorit¨ atssuchbaum f¨ ur n Punkte in der Ebene kann in Zeit O(n log n) aufgebaut werden.. Dabei ist a die Gr¨ oße

Die Summe der letzten beiden Summanden betr¨ agt jedoch 2... Der zweite Summand ist ebenfalls durch

Man zeige weiters die Umkehrung: Sind in einem Viereck beide Paare gegen¨ uberliegender Seiten gleich lang, dann sind gegen¨ uberliegende Seiten auch zueinander parallel.. Sei ABC

Ungleichungen Blatt 2 Raach 2011 Birgit Vera Schmidt 13... Ungleichungen Blatt 3 Raach 2011 Birgit Vera

Ungleichungen Ausarbeitungsbeispiele Raach 2010 Birgit Vera