Zusammenfassung: Konturen, Datenstrukturen
Elmar Langetepe University of Bonn
Kontur von Funktionen, Komplexit¨ at!
D
C
B A
I Ku
• Divide and Conquer mit Sweep im Merge-Schritt
• Sweep-Laufzeit entspricht Komplexit¨at der Konturen Ku1,Ku2 und (K1 ∪ K2)u
Berechnung Kontur!
Theorem 2.13 Die untere Kontur von n verschiedenen X monotonen Wegen ¨uber einem gemeinsamen Intervall, von denen sich je zwei
h¨ochstens s-mal schneiden, kann in Zeit O(λs(n) log n) berechnet werden.
• Definition λs(n): Maximale Komplexit¨at der Kontur
• Lemma 2.12: F¨ur s, n ≥ 1 gilt 2λs(n) ≤ λs(2n)
• Absch¨atzen Alg.: T(n) ∈ O(λs(n) log n)
λ
s(n), kombinatorische Definition
Alphabet Σ = {A, B, C, . . .} ¨uber n Buchstaben.
Davenport–Schinzel–Sequenz der Ordnung s
• Wort w ¨uber Σ
• in w keine benachbarten Buchstaben gleich
• keine zwei verschiedenen Buchstaben wechseln mehr als s mal Bsp.: ABRAKADABRA; max. 4 Wechsel (A und B)
Zu zeigen: λs(n) ist maximale L¨ange eines solchen Wortes
Davenport-Schinzel-Sequenzen: Komplexit¨ at
Fast linear!! (Ohne Beweis!) λ1(n) = n
λ2(n) = 2n − 1
λ3(n) ∈ Θ(n α(n)) λ4(n) ∈ Θ(n · 2α(n))
λs(n) ∈ O(n log∗(n)) ∈ O(n2)
α(n) Inverse Ackermann Fkt.
log∗(n)
Beweis: Untere Kontur/DSS
Theorem 2.14 Die maximale L¨ange einer DSS der Ordnung s ¨uber n ist λs(n).
I) ¨Ubersetzen in Buchst.-folge oder II) Buchst.-folge ¨ubersetzen
I)
A
C
B I
B
B C
C
B
B
A
A C
C
B
II)
B C A B C B C
B A
Ergebnisse
Korollar 2.15 Die untere Kontur von n Liniensegmenten ¨uber einem gemeinsamen Intervall kann in O(n log n) mit Platz O(n) berechnet werden.
λ1(n) = n
Funktionen ¨ uber Teilintervalle
Aussage: Komplexit¨at der Kontur von Funktionen die ¨uber
gesamtem Intervall definiert sind 1) oder nur ¨uber ein Teilintervall 2).
1. λs(n) 2. λs+2(n)
2. Verl¨angern auf gesamtes Intervall, dann 1. verwenden, max. zwei zus¨atzliche Schnitte
(2)
Ergebnisse
Korollar 2.16 Die untere Kontur von n Liniensegmenten beliebiger L¨ange enth¨alt λ3(n) viele Segmente und kann in Zeit O(λ3(n) log n) berechnet werden.
Weitere Sweepvarianten
• Sweep mit Halbgerader, Sweep mit Circle
• Sweep-Ebene, Sweep im Raum
• Closest-Pair: Laufzeit O(n(e(n) + b(n))), Datenstrukturen
Z
Y
X M
2M
2M r
Q
Geometrische Datenstruktur
• Datenobjekte Punkte im IRd, andere Objekte ¨ubertragen
• 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
kd-Baum Aufbau
• Splitgeraden X = s, Y = s im Wechsel!
• Bin¨arer Baum mit entsprechenden Teilmengen
5 10
5
10 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
x=2 x>2 x<2
a
x=3 x<3 x>3
b d
x=8 x<8 x>8
j
x=7 x<7 x>7
g y=3
y<3 y>3 c e
y=2 y<2 y>2
f h
y=6 y<6 y>6
i k
Knoten entspricht Rechteck R(v)
10 5
10
5 b
d
f
i
a
g
c
h
j
k
e
x=5
x<5 x>5
y=4 y>4 y<4
R(v)
y<5
y=5
y>5
v
x<2 a
x>2 x=2
d x=3
x<3 x>3
b j
x<8 x>8
x=8
x<7 g
x>7 x=7
y=3 y>3 c y<3
e h f
y>2 y<2
y=2
k y=6
y<6 y>6
i
Jeder Knoten v entspricht einem Rechteck R(v) als Schnitt von Halbebenen (X = s und Y = s).
Anfrage-Query mit Rechteck q
10 5
10
5 c
b
a
Q
k
j g
i
f d
h e
x=5
x<5 x>5
y=4 y>4 y<4
y=5
y<5 y>5
x=2
a
x<2 x>2
b x=3
x<3 x>3
d j
x<8 x>8
x=8
x<7 g
x>7 x=7
y=3
c
y<3 y>3
e h f
y>2 y<2
y=2
k y=6
y<6 y>6
i
• Bestimme alle Knoten v mit R(v) ∩ q 6= ∅
• Falls v Blatt, teste v ∈ q
Buch Kapitel
Kapitel 2.3.3 Seite 82 oben – S. 88 unten Kapitel 2.4 Seite 93 mitte – S. 95 mitte