Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
0 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Institut für Theoretische Informatik - Algorithmik II
Übung 5 – Algorithmen IIYaroslav Akhremtsev, Demian Hespe – [email protected], [email protected] Folien von Michael Axtmann (teilweise)
http://algo2.iti.kit.edu/AlgorithmenII_WS17.php
KIT – Universität des Landes Baden-Württemberg undnationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
Themenübersicht
1 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Lempel-Ziv 78 decompression
Geometrie(was und warum?)
Sweeplineallgemeines PrinzipBeispiel: Berechnung einer Skyline
Interval Search TreesRectangle Intersection Problem
Rechts oder Links?(Orientierung eines Punktes zu einer Linie)
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
StringParent
New node
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a
9b
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a10
aba
9b
10a
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a10
aba11
9b
10a
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a10
aba11
Node 11 is not in the tree yet
9b
10a
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a10
aba11
Node 11 is not in the tree yetThis is only possible if node 7 is the parent of node 11
11
9b
10a
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a10
aba11
Node 11 is not in the tree yetThis is only possible if node 7 is the parent of node 11
11
9b
10a
Thus, we descent along arcs 0− 1, 1− 4, 4− 7, 7− 11
abaa
a
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a10
aba11
Node 11 is not in the tree yetThis is only possible if node 7 is the parent of node 11
11
9b
10a
Thus, we descent along arcs 0− 1, 1− 4, 4− 7, 7− 11The symbol on the arc 7− 11 is a
abaa
a
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a10
aba11
11
9b
10a
abaa
a
12c b
12c
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a10
aba11
11
9b
10a
abaa
a
12c b
12c
13
13a
a
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a10
aba11
11
9b
10a
abaa
a
12c b
12c
13
13a
a14
14
c
c
Lempel-Ziv 78 decompression
2 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
1 2 1 4 6 3 5 7 11 9 1 3 15
0
1 2 3
a b c
aStringParent
New node 4
4b
b5
a
5a
6
a
ab
6
7aa
7a
8
8
c
c
9b a10
aba11
11
9b
10a
abaa
a
12c b
12c
13
13a
a14
14
c
c15
c c
15
c
Geometrische Algorithmen
3 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
geomtetrische Varianten bekannter ProblemeSpezialfälle oft einfacherallgemeines TSP: nicht approximierbar (wenn P 6= NP)metric TSP: 1.5-Approximationeuclidean TSP: ε-Approximation
Laufzeit in O(n(log n)O( 1ε
√d)d−1
)
geometrisch motivierte ProblemePunktlokalisierungBewegungsplanung (Robotik)Sichtbarkeitsgraphen/PrüfungStreckenschnitt. . .
Geometrische Methoden
4 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
DatenstrukturenBaumstrukturen
Interval Tree (1-dim)Quad Tree (2-dim)BinarySpacePartition Tree (3-dim)k-d-Tree (n-dim)Wavelet-Tree (2-dim)
FacettenDelaunay TriangulierungVoronoi Diagramm
Strukturierter ZugriffSweepline
sortierttopologisch sortiert
Geometrische Methoden
4 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
DatenstrukturenBaumstrukturen
Interval Tree (1-dim)Quad Tree (2-dim)BinarySpacePartition Tree (3-dim)k-d-Tree (n-dim)Wavelet-Tree (2-dim)
FacettenDelaunay TriangulierungVoronoi Diagramm
Strukturierter ZugriffSweepline
sortierttopologisch sortiert
Geometrische Methoden
4 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
DatenstrukturenBaumstrukturen
Interval Tree (1-dim)Quad Tree (2-dim)BinarySpacePartition Tree (3-dim)k-d-Tree (n-dim)Wavelet-Tree (2-dim)
FacettenDelaunay TriangulierungVoronoi Diagramm
Strukturierter ZugriffSweepline
sortierttopologisch sortiert
Geometrische Methoden
4 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
DatenstrukturenBaumstrukturen
Interval Tree (1-dim)Quad Tree (2-dim)BinarySpacePartition Tree (3-dim)k-d-Tree (n-dim)Wavelet-Tree (2-dim)
FacettenDelaunay TriangulierungVoronoi Diagramm
Strukturierter ZugriffSweepline
sortierttopologisch sortiert
Geometrische Methoden
4 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
DatenstrukturenBaumstrukturen
Interval Tree (1-dim)Quad Tree (2-dim)BinarySpacePartition Tree (3-dim)k-d-Tree (n-dim)Wavelet-Tree (2-dim)
FacettenDelaunay TriangulierungVoronoi Diagramm
Strukturierter ZugriffSweepline
sortierttopologisch sortiert
Sweep-LineAllgemein
5 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Ideestrukturierte Abarbeitung eines Problemsnutze Nähe aus
geometrisch nahe Objekte beeinflussen sichgeometrisch weit entfernte Objekte (nahezu) unabhängig
im Allgemeinenreduziere n-dim→ (n− 1)-dim
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
Sweep-LineBeispiel: Skyline
6 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Berechnung einer SkylineHöhenänderungen sind einzigrelevante Punktejede Änderung definierteindimensionales Problem(Maximumsbildung)
Problem: effiziente Lösung des 1-dimensionalen Problemsineffizient: O(n2) (vergleiche Linienschnitt)
Ziel hier: Algorithmus mit O(n log n) Zeit
One-Dimensional Problem
7 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Sortierte ListeArray→ O(n) für Einfügen/LöschenLinked List→ O(n) für Positionsbestimmung
Lösung: Priority Queuealle Operationen in maximal O(log n) möglich
One-Dimensional Problem
7 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Sortierte ListeArray→ O(n) für Einfügen/LöschenLinked List→ O(n) für Positionsbestimmung
Lösung: Priority Queuealle Operationen in maximal O(log n) möglich
Skyline
8 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Das eigentliche Skyline Problem:Berechnung nicht dominierter Punktmengen
multikriterielle Bewertung von Tupeln (t1, . . . , tn)Dominierungsbedingung:a dominiert b genau dann wenn
- ∀i : ai ≤ bi- ∃i : ai < bi
Interval Search Trees
9 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Consider query q = (l , r ).x = rootwhile x 6= root do
if x .interval intersects (l , r )return x .interval
else if x .left == null or x .left .max < lx = x .right
else x = x .left
[17, 19]
24
[5, 8]
22
[21, 24]
24
[4, 8]
8
[15, 18]
22
[7, 10]
10
[16, 22]
22
Interval Search Trees
9 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Consider query q = (l , r ).x = rootwhile x 6= root do
if x .interval intersects (l , r )return x .interval
else if x .left == null or x .left .max < lx = x .right
else x = x .left
[17, 19]
24
[5, 8]
22
[21, 24]
24
[4, 8]
8
[15, 18]
22
[7, 10]
10
[16, 22]
22
Interval Search Trees
9 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Consider query q = (l , r ).x = rootwhile x 6= root do
if x .interval intersects (l , r )return x .interval
else if x .left == null or x .left .max < lx = x .right
else x = x .left
[17, 19]
24
[5, 8]
22
[21, 24]
24
[4, 8]
8
[15, 18]
22
[7, 10]
10
[16, 22]
22
Interval Search Trees
9 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Consider query q = (l , r ).x = rootwhile x 6= root do
if x .interval intersects (l , r )return x .interval
else if x .left == null or x .left .max < lx = x .right
else x = x .left
[17, 19]
24
[5, 8]
22
[21, 24]
24
[4, 8]
8
[15, 18]
22
[7, 10]
10
[16, 22]
22
Interval Search TreesCorrectness for choise of a right child
10 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
max
(a, b)
(c, max)
left subtree of x right subtree of x
(l, r)
Interval Search TreesCorrectness for choise of a left child
11 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
max
(a, b)
(c, max)
left subtree of x right subtree of x
(l, r)
Interval Search TreesComplexity
12 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Find an interval that intersects a query interval: O(log n)Find all intervals that intersect a query interval: O(t log n),where t is the number of such intervals
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
5
3
7
1
8
2 2
5
4
3
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
(3, 5)Interval Search Tree:
5
3
7
1
8
2 2
5
4
3
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
Interval Search Tree:(3, 5)(1, 7)
5
3
7
1
8
2 2
5
4
3
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
Interval Search Tree:(3, 5)(1, 7)(2, 8)
5
3
7
1
8
2 2
5
4
3
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
Interval Search Tree:(1, 7)(2, 8)
5
3
7
1
8
2 2
5
4
3
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
Interval Search Tree:(1, 7)
5
3
7
1
8
2 2
5
4
3
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
Interval Search Tree:(1, 7)(2, 5)
5
3
7
1
8
2 2
5
4
3
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
Interval Search Tree:(2, 5)
5
3
7
1
8
2 2
5
4
3
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
Interval Search Tree:(2, 5)(3, 4)
5
3
7
1
8
2 2
5
4
3
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
Interval Search Tree:
5
3
7
1
8
2 2
5
4
3
(3, 4)
Rectangle Intersection Problem
13 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Complexity n log n + t log n, where t is the number of intersectingrectangles
Interval Search Tree:
5
3
7
1
8
2 2
5
4
3
Punktorientierung
14 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Vorzeichenbehaftete FlächeDreiecksfläche als Summe dreierTrapezflächenZ-koordinate von Kreuzproduktder Vektoren
−−→P1P2 und
−−→P1P3:
(x2 − x1)(y3 − y1)− (y2 − y1)(x3 − x1)
Verschiebung von P1 nach (0,0) ergibt:
A = 12
∣∣∣∣ x2 − x1 x3 − x1y2 − y1 y3 − y1
∣∣∣∣Vorzeichen positiv gdw. P1, P2, P3 CCW
Unterproblem von AlgorithmenGraham ScanTest auf Enthaltensein(Punkt in konvexem Polygon)
P1
P2
P3
A3
A1
A2
Punktorientierung
14 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Vorzeichenbehaftete FlächeDreiecksfläche als Summe dreierTrapezflächenZ-koordinate von Kreuzproduktder Vektoren
−−→P1P2 und
−−→P1P3:
(x2 − x1)(y3 − y1)− (y2 − y1)(x3 − x1)
Verschiebung von P1 nach (0,0) ergibt:
A = 12
∣∣∣∣ x2 − x1 x3 − x1y2 − y1 y3 − y1
∣∣∣∣Vorzeichen positiv gdw. P1, P2, P3 CCW
Unterproblem von AlgorithmenGraham ScanTest auf Enthaltensein(Punkt in konvexem Polygon)
P1
P2
P3
A3
A1
A2
Ende!
15 Akhremtsev, Hespe:Übung 5 – Algorithmen II
Institut für Theoretische InformatikAlgorithmik II
Feierabend!