![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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/1.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/2.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/3.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/4.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/5.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/6.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/7.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/8.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/9.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/10.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/11.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/12.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/13.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/14.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/15.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/16.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/17.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/18.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/19.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/20.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/21.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/22.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/23.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/24.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/25.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/26.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/27.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/28.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/29.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/30.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/31.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/32.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/33.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/34.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/35.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/36.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/37.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/38.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/39.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/40.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/41.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/42.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/43.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/44.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/45.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/46.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/47.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/48.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/49.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/50.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/51.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/52.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/53.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/54.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/55.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/56.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/57.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/58.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/59.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/60.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/61.jpg)
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:](https://reader030.vdocuments.site/reader030/viewer/2022040618/5f299944bbbd1c4ae574b973/html5/thumbnails/62.jpg)
Algorithmen II – Wintersemester 2013/2014Institut fur Theoretische InformatikProf. Dr. Dorothea Wagner
Panorama Labeling