Algorithmische Geometrie: Konvexe Hulle
Algorithmische Geometrie: Konvexe Hulle
Nico Duvelmeyer
WS 2009/2010, 27.10.2009
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Uberblick
1 Einfuhrung
2 Erster Versuch
3 Entartete Falle
4 Inkrementeller Ansatz
5 3 Phasen im Algorithmenentwurf
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Uberblick
1 Einfuhrung
2 Erster Versuch
3 Entartete Falle
4 Inkrementeller Ansatz
5 3 Phasen im Algorithmenentwurf
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Beispiel
p1
p2
p3
p4
p5
p6
Eingabe: p1(1, 4), p2(9, 5), p3(3, 9), p4(5, 4), p5(4, 0), p6(8, 8)
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Beispiel
p1
p2
p3
p4
p5
p6
Ausgabe: p2, p6, p3, p1, p5
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Uberblick
1 Einfuhrung
2 Erster Versuch
3 Entartete Falle
4 Inkrementeller Ansatz
5 3 Phasen im Algorithmenentwurf
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Idee
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Algorithmus 2.2 (Konvexe Hulle Langsam)
Eingabe: Endliche Menge P von Punkten der EbeneAusgabe: Liste L der Ecken von conv P in positiver Orientierung
1: E ← ∅2: Fur alle Paare (p, q) ∈ P × P mit p 6= q mache3: gultig← wahr4: Fur alle Punkte r ∈ P \ p, q mache5: Wenn r liegt rechts der gerichteten Strecke −→pq dann6: gultig← falsch7: Wenn gultig dann fuge (p, q) zu E hinzu
8: Berechne L von E durch Verfolgung.
Laufzeit von Algorithmus 2.2 ist in O(n3).
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Algorithmus 2.2 (Konvexe Hulle Langsam)
Eingabe: Endliche Menge P von Punkten der EbeneAusgabe: Liste L der Ecken von conv P in positiver Orientierung
1: E ← ∅2: Fur alle Paare (p, q) ∈ P × P mit p 6= q mache3: gultig← wahr4: Fur alle Punkte r ∈ P \ p, q mache5: Wenn r liegt rechts der gerichteten Strecke −→pq dann6: gultig← falsch7: Wenn gultig dann fuge (p, q) zu E hinzu
8: Berechne L von E durch Verfolgung.
Laufzeit von Algorithmus 2.2 ist in O(n3).
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Einschub Komplexitatsanalysen
Funktionen f : N→ R, g : N→ Rf ist in O(g(n)), f ∈ O(g), f (n) ∈ O(g(n)), f (n) = O(g(n)) , wenn
|f (n)| 6 α |g(n)|
fur hinreichend große n.
g ∈ Ω(f )
f ∈ Θ(g)
λ |g(n)| 6 |f (n)| 6 µ |g(n)|
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Uberblick
1 Einfuhrung
2 Erster Versuch
3 Entartete Falle
4 Inkrementeller Ansatz
5 3 Phasen im Algorithmenentwurf
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Entartete Falle
p1
p2
p3
p4
p5
p6
5’: Wenn r liegt streng rechts der gerichteten Strecke −→pq oder auf derGerade pq aber nicht innerhalb von pq dann
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Entartete Falle
p1
p2
p3
p4
p5
p6
5’: Wenn r liegt streng rechts der gerichteten Strecke −→pq oder auf derGerade pq aber nicht innerhalb von pq dann
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Entartete Falle
p1
p2
p3
p4
p5
p6
5’: Wenn r liegt streng rechts der gerichteten Strecke −→pq oder auf derGerade pq aber nicht innerhalb von pq dann
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Algorithmus 2.2’ (Konvexe Hulle Langsam korrigiert)
Eingabe: Endliche Menge P von Punkten der EbeneAusgabe: Liste L der Ecken von conv P in positiver Orientierung
1: E ← ∅2: Fur alle Paare (p, q) ∈ P × P mit p 6= q mache3: gultig← wahr4: Fur alle Punkte r ∈ P \ p, q mache5: Wenn r liegt streng rechts der gerichteten Strecke −→pq oder auf
der Gerade pq aber nicht innerhalb von pq dann6: gultig← falsch7: Wenn gultig dann fuge (p, q) zu E hinzu
8: Berechne L von E durch Verfolgung.
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Satz 2.3
Der Algorithmus 2.2’
ist korrekt, selbst fur entartete Eingaben.
ist nicht robust.
hat Laufzeit O(n3).
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Uberblick
1 Einfuhrung
2 Erster Versuch
3 Entartete Falle
4 Inkrementeller Ansatz
5 3 Phasen im Algorithmenentwurf
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Inkrementeller Algorithmus – Idee
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Inkrementeller Algorithmus – Idee
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Inkrementeller Algorithmus – Idee
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Inkrementeller Algorithmus – Idee
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Algorithmus 2.4
Eingabe: Endliche Menge P von Punkten der EbeneAusgabe: Liste L der Ecken von conv P in positiver Orientierung
1: Sortiere die Punkte in P nach x-Koordinate, was eine Liste p1, . . . , pn
liefert.2: Packe p1, p2 in die Liste Lunten (p2 nach p1)3: Fur alle i ← 3 bis n mache4: Fuge pi an Lunten an5: Solange Lunten mehr als 2 Punkte enthalt und die letzten 3 Punkte
von Lunten keine Linksdrehung ausfuhren, mache6: Losche den vorletzen Punkt aus Lunten.
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Algorithmus 2.4 (Fortsetzung)
7: Packe pn, pn−1 in die Liste Loben
8: Fur alle i ← n − 2 absteigend bis 1 mache9: Fuge pi an Loben an
10: Solange Loben mehr als 2 Punkte enthalt und die letzten 3 Punktevon Loben keine Linksdrehung ausfuhren, mache
11: Losche den vorletzen Punkt aus Loben.12: Losche den ersten und letzten Punkt von Loben.13: Fuge ganz Loben an Lunten, das Ergebnis ist L.
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Entartung: 2 Punkte mit selber x-Koordinate
1’: Sortiere die Punkte in P lexikographisch (nach x-Koordinate, beiGleichheit nach y -Koordinate), was eine Liste p1, . . . , pn liefert.
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Modell zur Analyse der Komplexitat und Korrektheit
beliebig viele Variable von reellen Zahlen
benannt und ggf. einfach indiziert
algebraische Operation, Vergleiche, Kontrollfluß: konstante Zeit O(1).
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Satz 2.6Die konvexe Hulle von n Punkten der Ebene kann in Zeit O(n log n)
berechnet werden.
Beweis.
Algorithmus 2.4’.
Vollstandige Induktion:vor Ausfuhrung von Zeile 4 enthalt jeweils Lunten die untere konvexeHulle vom lexikographisch kleinsten zum lexikographisch großtenPunkt von p1, . . . , pi−1
Obere Hulle analog.
Sortierung Zeile 1’: O(n log n)
Zahlschleifen (Zeilen 3–6, 8–11): jeweils n − 2 Durchlaufe
“Solange-Schleifen“ (Z. 5/6, 10/11): O(n) mal begonnen, O(n) malwiederholt.
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
Uberblick
1 Einfuhrung
2 Erster Versuch
3 Entartete Falle
4 Inkrementeller Ansatz
5 3 Phasen im Algorithmenentwurf
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
3 Phasen im Algorithmenentwurf
1. Konzentration auf das Hauptproblem
2. Verallgemeinerung auf entartete Eingaben
3. Implementation
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
1. Phase: Konzentration auf das Hauptproblem
ignorieren Entartungen
exakte Berechnungen wird angenommen
Untersuchung/Ausnutzung geometrischer Eigenschaften
Anwenden algorithmischer Techniken
i.a. keine Details
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
2. Phase: Verallgemeinerung auf entartete Eingaben
Dafur gibt es meist besseren Weg als viele Fallunterscheidungen
in Literatur oft ausgelassen, in Praxis aber wichtig
erhoht meist Umfang der Implementation, aber nicht denasymptotischen Aufwand
es gibt Standardtechniken: symbolische Storung
Nico Duvelmeyer WS 2009/2010, 27.10.2009
Algorithmische Geometrie: Konvexe Hulle
3. Phase: Implementation
Basisoperationen
Wahl zwischen exakter Arithmetik und Gleitkommaarithmetik
Nutzung verfugbarer Bibliotheken
bei Naherungsrechnungen: Konsequenzen von Fehlentscheidungenuntersuchen, innere Widerspruche ausschliessen (Redundanz).
Genaue Formulierung der Eigenschaften, die unsereNaherungslosung noch hat.
Nico Duvelmeyer WS 2009/2010, 27.10.2009