31
Algorithmische Geometrie: Konvexe H¨ ulle Algorithmische Geometrie: Konvexe H¨ ulle Nico D ¨ uvelmeyer WS 2009/2010, 27.10.2009 Nico D ¨ uvelmeyer WS 2009/2010, 27.10.2009

Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

Algorithmische Geometrie: Konvexe Hulle

Algorithmische Geometrie: Konvexe Hulle

Nico Duvelmeyer

WS 2009/2010, 27.10.2009

Nico Duvelmeyer WS 2009/2010, 27.10.2009

Page 2: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 3: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 4: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 5: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 6: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 7: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

Algorithmische Geometrie: Konvexe Hulle

Idee

Nico Duvelmeyer WS 2009/2010, 27.10.2009

Page 8: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 9: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 10: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 11: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 12: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 13: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 14: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 15: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 16: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 17: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 18: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

Algorithmische Geometrie: Konvexe Hulle

Inkrementeller Algorithmus – Idee

Nico Duvelmeyer WS 2009/2010, 27.10.2009

Page 19: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

Algorithmische Geometrie: Konvexe Hulle

Inkrementeller Algorithmus – Idee

Nico Duvelmeyer WS 2009/2010, 27.10.2009

Page 20: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

Algorithmische Geometrie: Konvexe Hulle

Inkrementeller Algorithmus – Idee

Nico Duvelmeyer WS 2009/2010, 27.10.2009

Page 21: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

Algorithmische Geometrie: Konvexe Hulle

Inkrementeller Algorithmus – Idee

Nico Duvelmeyer WS 2009/2010, 27.10.2009

Page 22: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 23: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 24: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 25: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 26: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 27: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 28: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 29: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 30: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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

Page 31: Algorithmische Geometrie: Konvexe H ulle¨ · Funktionen f:N ! R, g:N ! R f ist in O (g (n)), f 2 O (g), f(n) 2 O (g (n)), f(n) = O (g (n)), wenn jf(n)j6 jg (n)j fur hinreichend große¨

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