Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur...

62
Algorithmen II – Wintersemester 2013/2014 Institut f ¨ ur Theoretische Informatik Prof. Dr. Dorothea Wagner Algorithmen II Vorlesung am 10.12.2013 www.kit.edu KIT – Universit¨ at des Landes Baden-W ¨ urttemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft I NSTITUT F ¨ UR T HEORETISCHE I NFORMATIK · PROF .DR.DOROTHEA WAGNER Algorithmische Geometrie: Konvexe H¨ ulle

Transcript of Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur...

Page 1: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Algorithmen IIVorlesung am 10.12.2013

www.kit.eduKIT – Universitat des Landes Baden-Wurttemberg undnationales Forschungszentrum in der Helmholtz-Gemeinschaft

INSTITUT FUR THEORETISCHE INFORMATIK · PROF. DR. DOROTHEA WAGNER

Algorithmische Geometrie: Konvexe Hulle

Page 2: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Organisatorisches

Page 3: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Klausur

Anmeldung fur die Hauptklausur am 24.02.2014 (14:00 Uhr) ist ab jetzt moglich.

An- und Abmeldung ist bis zum 17.02.2014 online moglich.

Danach ist keine Anmeldung mehr moglich.

Nachklausur findet erst im Sommer statt.

Page 4: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Die konvexe Hulle einer Punktmenge

Page 5: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Polygone

Definition: Polygon (Definition 6.7)

Ein Polygon ist durch eine Folge von Punkten 〈p1, . . . , pn〉 ge-geben; die pi sind in der Reihenfolge ihres Auftretens auf demRand induziert. pipi+1 heißt (i modulo n)-te Polygonkante. p1 p2

p3p4

p5p6

Definition: Einfache Polygone (Definition 6.8)

Ein Polygon heißt einfach, wenn sich keine zwei Polygon-kanten schneiden (außer an gemeinsamen Endpunkten). einfach nicht einfach

Definition: Konvexe Polygone (Definition 6.9)

Ein Polygon P heißt konvex genau dann wenn fur jezwei Punkte q1, q2 im Inneren von P gilt, dass dieStrecke q1q2 vollstandig im Inneren von P liegt. konvex nicht konvex

q1q2

Bemerkung:Wir zahlen die Polygonkanten (also den Rand) zum Inneren eines Polygons.

Page 6: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Konvexe Hulle

Problem: Konvexe HulleGegeben sind n ≥ 3 Punkte Q = {p0, . . . , pn−1}. Berechne die konvexe HulleH(Q), d.h. das minimale konvexe Polygon, das alle Punkte in Q im Inneren enthalt.

Intuition: Fasse jeden Punkte als Nagel auf, ziehe ein Gummiband uber alle Nagelund lasse es los.

Wir werden zwei Algorithmen behandeln, die die konvexe Hulle von n Punkten inO(n log n) bzw. O(hn) bestimmen, wobei h die Anzahl der Eckpunkte der konvexenHulle ist.

Page 7: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

Page 8: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

Page 9: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p2

p3

p4p5

p6

p7

p8

Page 10: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p2

p3

p4p5

p6

p7

p8

p1

Page 11: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p2

p3

p4p5

p6

p7

p8

p1

p2

Page 12: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p2

p3

p4p5

p6

p7

p8

p1

p2

p3kein Linksknick!

Page 13: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p2

p3

p4p5

p6

p7

p8

p1

p3

Page 14: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p3

p4p5

p6

p7

p8

p1

p3

p4p2

Page 15: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p3

p4p5

p6

p7

p8

p1

p3

p4p2

p5

Page 16: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p3

p4p5

p6

p7

p8

p1

p3

p4p2

p5

p6

Page 17: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p3

p4p5

p6

p7

p8

p1

p3

p4p2

p5

p6

p7

kein Linksknick!

Page 18: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p3

p4p5

p6

p7

p8

p1

p3

p4p2

p5

p7kein Linksknick!

Page 19: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p3

p4

p5

p6

p7

p8

p1

p3

p4p2

p7

Page 20: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p3

p4

p5

p6

p7

p8

p1

p3

p4p2

p7

p8

Page 21: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)

Idee:

1. Bestimme untersten Punkte p0 (falls nicht eindeutig, dann den Linkesten).

2. Ordne die restlichen Punkte pi nach dem Winkel zwischen der Horizontalendurch p0 und p0pi .

3. Durchlaufe die Punkte p0, p1, . . . , pn−1 in dieser Reihenfolge und konstruieresukzessive die konvexe Hulle H(Q) nach folgender Regel:Wird beim Durchlaufen der Strecken pipj und pjpk nicht links abgebogen, so istpj nicht aus dem Rand von H(Q).

Zwischenergebnis fur die konvexe Hulle:

Beispiel:

p0 p0

p1

p3

p4

p5

p6

p7

p8

p1

p3

p4p2

p7

p8

Page 22: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)GRAHAM SCAN(Q)

S← leerer Stack

p0 ← Punkt in Q mit kleinster y -Koord. (falls uneindeutig, den mit kleinster x-Koord.)

〈p1, . . . , pm〉 ← Die restlichen Punkte sortiert gemaß dem Winkel zwischen derHorizontalen durch p0 und p0pi(bei mehreren mit gleichem Winkel entferne alle bis auf den Entferntesten).

PUSH(p0 , S), PUSH(p1 , S), PUSH(p2 , S)

for i = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pi bilden keinen Linksknick do

POP(S)

PUSH(pi ,S)gib S aus

Initialisierung O(n log n)

eigentlicher Algorithmus

Page 23: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)GRAHAM SCAN(Q)

S← leerer Stack

p0 ← Punkt in Q mit kleinster y -Koord. (falls uneindeutig, den mit kleinster x-Koord.)

〈p1, . . . , pm〉 ← Die restlichen Punkte sortiert gemaß dem Winkel zwischen derHorizontalen durch p0 und p0pi(bei mehreren mit gleichem Winkel entferne alle bis auf den Entferntesten).

PUSH(p0 , S), PUSH(p1 , S), PUSH(p2 , S)

for i = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pi bilden keinen Linksknick do

POP(S)

PUSH(pi ,S)gib S aus

Initialisierung O(n log n)

eigentlicher Algorithmus

amortisiert O(1)

Page 24: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)GRAHAM SCAN(Q)

S← leerer Stack

p0 ← Punkt in Q mit kleinster y -Koord. (falls uneindeutig, den mit kleinster x-Koord.)

〈p1, . . . , pm〉 ← Die restlichen Punkte sortiert gemaß dem Winkel zwischen derHorizontalen durch p0 und p0pi(bei mehreren mit gleichem Winkel entferne alle bis auf den Entferntesten).

PUSH(p0 , S), PUSH(p1 , S), PUSH(p2 , S)

for i = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pi bilden keinen Linksknick do

POP(S)

PUSH(pi ,S)gib S aus

Initialisierung O(n log n)

eigentlicher Algorithmus O(n)

amortisiert O(1)

O(n log n)

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Page 25: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Der Graham Scan (1972)GRAHAM SCAN(Q)

S← leerer Stack

p0 ← Punkt in Q mit kleinster y -Koord. (falls uneindeutig, den mit kleinster x-Koord.)

〈p1, . . . , pm〉 ← Die restlichen Punkte sortiert gemaß dem Winkel zwischen derHorizontalen durch p0 und p0pi(bei mehreren mit gleichem Winkel entferne alle bis auf den Entferntesten).

PUSH(p0 , S), PUSH(p1 , S), PUSH(p2 , S)

for i = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pi bilden keinen Linksknick do

POP(S)

PUSH(pi ,S)gib S aus

Initialisierung O(n log n)

eigentlicher Algorithmus O(n)

amortisiert O(1)

O(n log n)

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

Page 26: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

Page 27: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

1. Invariante: pj wird entfernt; zeige: pj ist kein Eckpunkt von H(Q)

p0

pipjpk

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

Page 28: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

1. Invariante: pj wird entfernt; zeige: pj ist kein Eckpunkt von H(Q)

p0

pipjpk In der Sortierung um p0 liegt pj zwischen pi und pk .

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

Page 29: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

1. Invariante: pj wird entfernt; zeige: pj ist kein Eckpunkt von H(Q)

p0

pipjpk In der Sortierung um p0 liegt pj zwischen pi und pk .

pj liegt innerhalb des Dreiecks p0pipk (oder auf dem Rand)

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

Page 30: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

1. Invariante: pj wird entfernt; zeige: pj ist kein Eckpunkt von H(Q)

p0

pipjpk In der Sortierung um p0 liegt pj zwischen pi und pk .

pj liegt innerhalb des Dreiecks p0pipk (oder auf dem Rand)

⇒ pj ist kein Eckpunkt von H(Q)

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

Page 31: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

2. Invariante: Dreieck p0p1p2 ist konvex; zeige: POP und PUSH erhalten Konvexitat

Page 32: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

pj

Loschen eines Punkts erhalt offensichtlich die Konvexitat.

2. Invariante: Dreieck p0p1p2 ist konvex; zeige: POP und PUSH erhalten Konvexitat

Page 33: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

pipj

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

p0

pk

2. Invariante: Dreieck p0p1p2 ist konvex; zeige: POP und PUSH erhalten Konvexitat

Page 34: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

pipj

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

p0

pk

Polygon war vorher konvex⇒ konvexe Winkel bei p1 . . . pi

2. Invariante: Dreieck p0p1p2 ist konvex; zeige: POP und PUSH erhalten Konvexitat

Page 35: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

pipj

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

p0

pk

Polygon war vorher konvex⇒ konvexe Winkel bei p1 . . . pi

Konvexer Winkel bei pj (sonst ware POP aufgerufen worden)

2. Invariante: Dreieck p0p1p2 ist konvex; zeige: POP und PUSH erhalten Konvexitat

Page 36: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

pipj

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

p0

pk

Polygon war vorher konvex⇒ konvexe Winkel bei p1 . . . pi

Konvexer Winkel bei pj (sonst ware POP aufgerufen worden)

Konvexer Winkel bei p0 (da p0 tiefster Punkt)

2. Invariante: Dreieck p0p1p2 ist konvex; zeige: POP und PUSH erhalten Konvexitat

Page 37: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

pipj

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

pi pj

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

p0

pk

Polygon war vorher konvex⇒ konvexe Winkel bei p1 . . . pi

Konvexer Winkel bei pj (sonst ware POP aufgerufen worden)

Konvexer Winkel bei p0 (da p0 tiefster Punkt)

Konvexer Winkel bei pk (pk kommt nach pj in Sortierung um p0)

2. Invariante: Dreieck p0p1p2 ist konvex; zeige: POP und PUSH erhalten Konvexitat

Page 38: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Graham Scan – Korrektheit

Satz: Graham ScanDer Graham Scan berechnet die konvexe Hulle H(Q) von Q in O(n log n) Zeit.

Beweis: Zeige die folgenden beiden Invarianten:1. Wird ein Punkt von S entfernt (POP(S)), so ist er nicht Eckpunkt von H(Q).2. Der aktuelle Inhalt von S bestimmt stets ein konvexes Polygon.

. . .

for k = 3 to m dowhile Strecken NEXTTOTOP(S)TOP(S) und TOP(S)pk bilden keinen Linksknick do

POP(S)

PUSH(pk ,S)gib S aus

Beachte: Jeder Punkt wird einmal auf den Stack gelegt.1. Invariante⇒ Das resultierend Polygon enthalt alle Eckpunkte von H(Q).2. Invariante⇒ Das resultierend Polygon ist konvex.⇒ Das resultierende Polygon ist H(Q).

Page 39: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Eine untere Schranke

Satz: Untere SchrankeDie Laufzeit zur Berechnung der konvexen Hulle einer Menge von n Punkten istin Θ(n log n). (d.h. es gibt keinen Algorithmus mit Laufzeit o(n log n))

Page 40: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Eine untere Schranke

Satz: Untere SchrankeDie Laufzeit zur Berechnung der konvexen Hulle einer Menge von n Punkten istin Θ(n log n). (d.h. es gibt keinen Algorithmus mit Laufzeit o(n log n))

Beweis:Annahme: Die konvexe Hulle von n Punkten kann in T (n) Zeit berechnet werden.Zeige: n Zahlen a1, . . . , an konnen in T (n) + O(n) Zeit sortiert werden.

Page 41: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Eine untere Schranke

Satz: Untere SchrankeDie Laufzeit zur Berechnung der konvexen Hulle einer Menge von n Punkten istin Θ(n log n). (d.h. es gibt keinen Algorithmus mit Laufzeit o(n log n))

Beweis:Annahme: Die konvexe Hulle von n Punkten kann in T (n) Zeit berechnet werden.Zeige: n Zahlen a1, . . . , an konnen in T (n) + O(n) Zeit sortiert werden.

Betrachte Punktmenge P = {p1, . . . , pn} mit pi = (ai , a2i ) Beispiel: a1 = 2, a2 = 1,

a3 = 3, a4 = 0

1 2 3

1

4

9

p4

p1

p2

p3

Page 42: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Eine untere Schranke

Satz: Untere SchrankeDie Laufzeit zur Berechnung der konvexen Hulle einer Menge von n Punkten istin Θ(n log n). (d.h. es gibt keinen Algorithmus mit Laufzeit o(n log n))

Beweis:Annahme: Die konvexe Hulle von n Punkten kann in T (n) Zeit berechnet werden.Zeige: n Zahlen a1, . . . , an konnen in T (n) + O(n) Zeit sortiert werden.

Betrachte Punktmenge P = {p1, . . . , pn} mit pi = (ai , a2i ) Beispiel: a1 = 2, a2 = 1,

a3 = 3, a4 = 0

1 2 3

1

4

9

p4

p1

p2

p3

Berechne konvexe Hulle H(P) in T (n) Zeit.

Page 43: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Eine untere Schranke

Satz: Untere SchrankeDie Laufzeit zur Berechnung der konvexen Hulle einer Menge von n Punkten istin Θ(n log n). (d.h. es gibt keinen Algorithmus mit Laufzeit o(n log n))

Beweis:Annahme: Die konvexe Hulle von n Punkten kann in T (n) Zeit berechnet werden.Zeige: n Zahlen a1, . . . , an konnen in T (n) + O(n) Zeit sortiert werden.

Betrachte Punktmenge P = {p1, . . . , pn} mit pi = (ai , a2i ) Beispiel: a1 = 2, a2 = 1,

a3 = 3, a4 = 0

1 2 3

1

4

9

p4

p1

p2

p3

Berechne konvexe Hulle H(P) in T (n) Zeit.

H(P) enthalt die Punkte pi sortiert nach ai .⇒ Sortierung der ai kann in O(n) Zeit abgelesen werden.

Page 44: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

Idee:1. Berechne zwei Teile der konvexen Hulle getrennt: Pfad vom untersten Punkt p0

der Konvexen Hulle zum Obersten (”Rechtskette“) und dann Pfad vom Oberstenzum Untersten (”Linkskette“).

2. Berechnung der ”Rechtskette“: Wahle pi+1 sodass der Winkel zwischen der Ho-rizontalen (nach rechts) durch pi und der Strecke pipi+1 minimal ist.

3. Berechnung der ”Linkskette“: Analog von oben nach unten.Beispiel:

Page 45: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

Idee:1. Berechne zwei Teile der konvexen Hulle getrennt: Pfad vom untersten Punkt p0

der Konvexen Hulle zum Obersten (”Rechtskette“) und dann Pfad vom Oberstenzum Untersten (”Linkskette“).

2. Berechnung der ”Rechtskette“: Wahle pi+1 sodass der Winkel zwischen der Ho-rizontalen (nach rechts) durch pi und der Strecke pipi+1 minimal ist.

3. Berechnung der ”Linkskette“: Analog von oben nach unten.

p0

Beispiel:

p1

Page 46: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

Idee:1. Berechne zwei Teile der konvexen Hulle getrennt: Pfad vom untersten Punkt p0

der Konvexen Hulle zum Obersten (”Rechtskette“) und dann Pfad vom Oberstenzum Untersten (”Linkskette“).

2. Berechnung der ”Rechtskette“: Wahle pi+1 sodass der Winkel zwischen der Ho-rizontalen (nach rechts) durch pi und der Strecke pipi+1 minimal ist.

3. Berechnung der ”Linkskette“: Analog von oben nach unten.Beispiel:

p0

p1

p2

Page 47: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

Idee:1. Berechne zwei Teile der konvexen Hulle getrennt: Pfad vom untersten Punkt p0

der Konvexen Hulle zum Obersten (”Rechtskette“) und dann Pfad vom Oberstenzum Untersten (”Linkskette“).

2. Berechnung der ”Rechtskette“: Wahle pi+1 sodass der Winkel zwischen der Ho-rizontalen (nach rechts) durch pi und der Strecke pipi+1 minimal ist.

3. Berechnung der ”Linkskette“: Analog von oben nach unten.Beispiel:

p0

p1

p2

p3

Page 48: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

Idee:1. Berechne zwei Teile der konvexen Hulle getrennt: Pfad vom untersten Punkt p0

der Konvexen Hulle zum Obersten (”Rechtskette“) und dann Pfad vom Oberstenzum Untersten (”Linkskette“).

2. Berechnung der ”Rechtskette“: Wahle pi+1 sodass der Winkel zwischen der Ho-rizontalen (nach rechts) durch pi und der Strecke pipi+1 minimal ist.

3. Berechnung der ”Linkskette“: Analog von oben nach unten.Beispiel:

p0

p1

p2

p3

Page 49: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

Idee:1. Berechne zwei Teile der konvexen Hulle getrennt: Pfad vom untersten Punkt p0

der Konvexen Hulle zum Obersten (”Rechtskette“) und dann Pfad vom Oberstenzum Untersten (”Linkskette“).

2. Berechnung der ”Rechtskette“: Wahle pi+1 sodass der Winkel zwischen der Ho-rizontalen (nach rechts) durch pi und der Strecke pipi+1 minimal ist.

3. Berechnung der ”Linkskette“: Analog von oben nach unten.Beispiel:

p0

p1

p2

p3p4

Page 50: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

Idee:1. Berechne zwei Teile der konvexen Hulle getrennt: Pfad vom untersten Punkt p0

der Konvexen Hulle zum Obersten (”Rechtskette“) und dann Pfad vom Oberstenzum Untersten (”Linkskette“).

2. Berechnung der ”Rechtskette“: Wahle pi+1 sodass der Winkel zwischen der Ho-rizontalen (nach rechts) durch pi und der Strecke pipi+1 minimal ist.

3. Berechnung der ”Linkskette“: Analog von oben nach unten.Beispiel:

p0

p1

p2

p3p4

p5

Page 51: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

Idee:1. Berechne zwei Teile der konvexen Hulle getrennt: Pfad vom untersten Punkt p0

der Konvexen Hulle zum Obersten (”Rechtskette“) und dann Pfad vom Oberstenzum Untersten (”Linkskette“).

2. Berechnung der ”Rechtskette“: Wahle pi+1 sodass der Winkel zwischen der Ho-rizontalen (nach rechts) durch pi und der Strecke pipi+1 minimal ist.

3. Berechnung der ”Linkskette“: Analog von oben nach unten.Beispiel:

p0

p1

p2

p3p4

p5

Page 52: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

Idee:1. Berechne zwei Teile der konvexen Hulle getrennt: Pfad vom untersten Punkt p0

der Konvexen Hulle zum Obersten (”Rechtskette“) und dann Pfad vom Oberstenzum Untersten (”Linkskette“).

2. Berechnung der ”Rechtskette“: Wahle pi+1 sodass der Winkel zwischen der Ho-rizontalen (nach rechts) durch pi und der Strecke pipi+1 minimal ist.

3. Berechnung der ”Linkskette“: Analog von oben nach unten.Beispiel:

p0

p1

p2

p3p4

p5

Page 53: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

JARVIS’ MARCH(Q)

p0 ← Punkt in Q mit kleinster y -Koordinate

i ← 0

while Es gibt einen Punkt oberhalb von pi dopi+1 ← Punkt oberhalb von pi , sodass der Winkel zwischen der Strecke pi pi+1 undder Horizontalen durch pi nach rechts minimal ist.

i ← i + 1

while pi 6= p0 dopi+1 ← Punkt unterhalb von pi , sodass der Winkel zwischen der Strecke pi pi+1 undder Horizontalen durch pi nach links minimal ist.

i ← i + 1

Page 54: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

JARVIS’ MARCH(Q)

p0 ← Punkt in Q mit kleinster y -Koordinate

i ← 0

while Es gibt einen Punkt oberhalb von pi dopi+1 ← Punkt oberhalb von pi , sodass der Winkel zwischen der Strecke pi pi+1 undder Horizontalen durch pi nach rechts minimal ist.

i ← i + 1

while pi 6= p0 dopi+1 ← Punkt unterhalb von pi , sodass der Winkel zwischen der Strecke pi pi+1 undder Horizontalen durch pi nach links minimal ist.

i ← i + 1O(n)

O(n)

O(1)

Page 55: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Gift Wrapping Algorithmus (Jarvis’ March)

JARVIS’ MARCH(Q)

p0 ← Punkt in Q mit kleinster y -Koordinate

i ← 0

while Es gibt einen Punkt oberhalb von pi dopi+1 ← Punkt oberhalb von pi , sodass der Winkel zwischen der Strecke pi pi+1 undder Horizontalen durch pi nach rechts minimal ist.

i ← i + 1

while pi 6= p0 dopi+1 ← Punkt unterhalb von pi , sodass der Winkel zwischen der Strecke pi pi+1 undder Horizontalen durch pi nach links minimal ist.

i ← i + 1

O(hn)

O(n)

O(hn)

O(hn)

O(n)

O(1)

Satz: Jarvis’ MarchDer Gift Wrapping Algorithmus (Jarvis’ March) berechnet die konvexe Hulle H(Q)von Q in O(hn) Zeit, wobei h die Anzahl der Eckpunkte von H(Q) ist.

Ein solcher Algorithmus wird ausgabesensitiv genannt.

Page 56: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Algorithmische Geometrie – Anwendungen

Page 57: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Routenskizzen

Google Maps Manuell gezeichnete Routenskizze

von Karlsruhe nach Konstanz

Automatisch erzeugte Routenskizze

Page 58: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Routenskizzen

Eingabe Schematisierung (II)Vereinfachung Schematisierung (I)

Page 59: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Kartenbeschriftung (Labeling)

c©David Imus

”Poor, sloppy, amateurisch type placement isirresponsible; it spoils even the best image andimpedes reading.“ (E. Imhof ’75)

Die Kartografie hat umfangreiche Erfahrung immanuellen Beschriften von Karten.

Einige Platzierungsrichtlinien:

neben, uber oder unter dem Objekt

wenn moglich oben rechts

vermeide Uberdeckungen

eindeutige grafische Zuordnung

...→ automatische Kartenbeschriftung wurde vor > 20 Jahren als Problem der

algorithmischen Geometrie formuliert

Page 60: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Kartenbeschriftung (Labeling)

Eingabe: n Punkte in der Ebene und fur jeden Punkt ein Label reprasentiertdurch dessen Bounding Box

Ziel: finde eine zulassige? Platzierung fur eine maximale Teilmenge derLabel, ohne dass sich Labels uberschneiden (MAXNUMBER)

village

townsettlement

hillcity

MAXNUMBER? Was ist eine zulassige Platzierung?

diskrete Modelle Slider-Modelle

1P 2P 4P 1S 2S 4S

Page 61: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Dynamische Kartenbeschriftung

Die meisten Karten sind heute nicht mehr statisch und allgemein, sondern dyna-misch und individuell.

Kartenansicht bewegt sich kontinuierlich wenn der Nutzer die Karte

zoomt verschiebt rotiert neigt

Layout und Beschriftung mussen sich an die Kartenbewegung anpassen

Page 62: Vorlesung Algorithmen II · 2013-12-05 · Algorithmen II – Wintersemester 2013/2014 Institut fur Theoretische Informatik¨ Prof. Dr. Dorothea Wagner Der Graham Scan (1972) Idee:

Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner

Panorama Labeling