Übung 5 – algorithmen iialgo2.iti.kit.edu/documents/algorithmenii_ws17/uebung_05.pdf ·...

69
0 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für Theoretische Informatik Algorithmik II Institut für Theoretische Informatik - Algorithmik II Übung 5 – Algorithmen II Yaroslav Akhremtsev, Demian Hespe – [email protected], [email protected] Mit Folien von Michael Axtmann (teilweise) http://algo2.iti.kit.edu/AlgorithmenII_WS17.php KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Upload: others

Post on 23-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 2: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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)

Page 3: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 4: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 5: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 6: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 7: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 8: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 9: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 10: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 11: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 12: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 13: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 14: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 15: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 16: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 17: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 18: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 19: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 20: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 21: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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. . .

Page 22: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 23: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 24: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 25: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 26: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 27: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 28: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 29: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 30: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 31: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 32: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 33: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 34: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 35: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 36: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 37: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 38: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 39: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 40: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 41: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 42: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 43: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 44: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 45: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 46: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 47: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 48: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 49: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 50: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 51: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 52: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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)

Page 53: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut fü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)

Page 54: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut fü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

Page 55: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 56: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 57: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 58: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 59: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 60: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 61: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 62: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 63: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 64: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 65: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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)

Page 66: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 67: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 68: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

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

Page 69: Übung 5 – Algorithmen IIalgo2.iti.kit.edu/documents/AlgorithmenII_WS17/uebung_05.pdf · Lempel-Ziv 78 decompression 2 Akhremtsev, Hespe: Übung 5 – Algorithmen II Institut für

Ende!

15 Akhremtsev, Hespe:Übung 5 – Algorithmen II

Institut für Theoretische InformatikAlgorithmik II

Feierabend!