algorithmische geometrie thema: konvexe hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die hul¨...

57
Algorithmische Geometrie Thema: Konvexe H¨ ullen Christoph Hermes [email protected] 17. Juni 2003

Upload: others

Post on 31-Aug-2019

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

Algorithmische GeometrieThema: Konvexe Hullen

Christoph Hermes

[email protected]

17. Juni 2003

Page 2: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

1Ausblick auf den Vortrag 1/32

• Was sind konvexe Hullen?

Wozu braucht man sie?

• Wie kann man sie berechnen → gibt es Algorithmen?

? naiver Algorithmus: Einwickeln

? Graham Scan

? Quickhull

• Wie kann man die Laufzeit verbessern?

→ innere Elimination

• Fazit/ Demonstration

1

Page 3: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

2Was sind konvexe Hullen? 2/32

• mathematisch: definiert als

das kleinste Polygon, dass alle

Punkte enthalt

Page 4: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

2Was sind konvexe Hullen? 2/32

• mathematisch: definiert als

das kleinste Polygon, dass alle

Punkte enthalt

• analog: kurzester Pfad, der

alle Punkte umschließt

Page 5: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

2Was sind konvexe Hullen? 2/32

• mathematisch: definiert als

das kleinste Polygon, dass alle

Punkte enthalt

• analog: kurzester Pfad, der

alle Punkte umschließt

• oder auch: Jede Linie, die zwei Punkte dieser Punkt-

menge verbindet, muss innerhalb des Polygons liegen

2

Page 6: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

3Wozu braucht man sie? 3/32

• Datamining

Page 7: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

3Wozu braucht man sie? 3/32

• Datamining

• Computergraphik - Naherung fur Objektgeometrie

Page 8: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

3Wozu braucht man sie? 3/32

• Datamining

• Computergraphik - Naherung fur Objektgeometrie

• Pathfinding

3

Page 9: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

4Einwickeln - graphisch 4/32

• gegeben: Punktmenge P

4

Page 10: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

5Einwickeln - graphisch 5/32

• gegeben: Punktmenge P

• Suche den Punkt mit y = min

Page 11: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

5Einwickeln - graphisch 5/32

• gegeben: Punktmenge P

• Suche den Punkt mit y = min

• Finde den kleinsten Winkel von der

Horizontalen ausgehend

5

Page 12: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

6Einwickeln - graphisch 6/32

• gegeben: Punktmenge P

• Suche den Punkt mit y = min

• Finde den kleinsten Winkel von der

Horizontalen ausgehend

• Suche den kleinsten Winkel zum nachsten Punkt

6

Page 13: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

7Einwickeln - graphisch 7/32

• gegeben: Punktmenge P

• Suche den Punkt mit y = min

• Finde den kleinsten Winkel von der

Horizontalen ausgehend

• Suche den kleinsten Winkel zum nachsten Punkt

• Fahre so lange fort, bis der Anfangspunkt wieder erreicht ist

7

Page 14: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

8Einwickeln - Bewertung 8/32

• Vorteil:

Algorithmus lasst sich auch auf hohere Dimensionen

erweitern

Page 15: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

8Einwickeln - Bewertung 8/32

• Vorteil:

Algorithmus lasst sich auch auf hohere Dimensionen

erweitern

• Nachteil: Effizienz leidet erheblich

Laufzeit:N−1∑i=1

(N − i) = N2−N2 ⇒ Θ(N2)

Das ist auch gleichzeitig Worst Case: O(N 2)

Page 16: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

8Einwickeln - Bewertung 8/32

• Vorteil:

Algorithmus lasst sich auch auf hohere Dimensionen

erweitern

• Nachteil: Effizienz leidet erheblich

Laufzeit:N−1∑i=1

(N − i) = N2−N2 ⇒ Θ(N2)

Das ist auch gleichzeitig Worst Case: O(N 2)

• Es geht auch besser: Graham Scan (von R.L. Graham,

1972)

8

Page 17: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

9GrahamScan - graphisch 9/32

• wieder gegeben: Punktmenge P mit

A als Minimum und Pivot

(A.y = min ∨A.x = max)

9

Page 18: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

10GrahamScan - graphisch 10/32

• wieder gegeben: Punktmenge P mit

A als Minimum und Pivot

(A.y = min ∨A.x = max)

• erzeuge ein einfaches Polygon

Page 19: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

10GrahamScan - graphisch 10/32

• wieder gegeben: Punktmenge P mit

A als Minimum und Pivot

(A.y = min ∨A.x = max)

• erzeuge ein einfaches Polygon

• A und B stehen schon als Teil der

konvexen Hulle fest

Beginne daher, ein Polygon ABC zu

konstruieren

10

Page 20: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

11GrahamScan - graphisch 11/32

• erzeuge eine neues Teilpolygon mit

dem nachsten Punkt

→ hier D

11

Page 21: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

12GrahamScan - graphisch 12/32

• erzeuge eine neues Teilpolygon mit

dem nachsten Punkt

→ hier D

• backtracking: Eliminiere Punkte, bei

denen die Hulle einen Knick nach

rechts macht

Page 22: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

12GrahamScan - graphisch 12/32

• erzeuge eine neues Teilpolygon mit

dem nachsten Punkt

→ hier D

• backtracking: Eliminiere Punkte, bei

denen die Hulle einen Knick nach

rechts macht

• wiederhole nun die letzten beiden

Schritte so lange, bis das einfache

Polygon abgearbeitet ist. Hier im

Schnelldurchlauf.

12

Page 23: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

13GrahamScan - graphisch 13/32

• erzeuge eine neues Teilpolygon mit

dem nachsten Punkt

→ hier D

• backtracking: Eliminiere Punkte, bei

denen die Hulle einen Knick nach

rechts macht

• wiederhole nun die letzten beiden

Schritte so lange, bis das einfache

Polygon abgearbeitet ist. Hier im

Schnelldurchlauf.

13

Page 24: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

14GrahamScan - graphisch 14/32

• erzeuge eine neues Teilpolygon mit

dem nachsten Punkt

→ hier D

• backtracking: Eliminiere Punkte, bei

denen die Hulle einen Knick nach

rechts macht

• wiederhole nun die letzten beiden

Schritte so lange, bis das einfache

Polygon abgearbeitet ist. Hier im

Schnelldurchlauf.

14

Page 25: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

15GrahamScan - graphisch 15/32

• erzeuge eine neues Teilpolygon mit

dem nachsten Punkt

→ hier D

• backtracking: Eliminiere Punkte, bei

denen die Hulle einen Knick nach

rechts macht

• wiederhole nun die letzten beiden

Schritte so lange, bis das einfache

Polygon abgearbeitet ist. Hier im

Schnelldurchlauf.

15

Page 26: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

16GrahamScan - graphisch 16/32

• erzeuge eine neues Teilpolygon mit

dem nachsten Punkt

→ hier D

• backtracking: Eliminiere Punkte, bei

denen die Hulle einen Knick nach

rechts macht

• wiederhole nun die letzten beiden

Schritte so lange, bis das einfache

Polygon abgearbeitet ist. Hier im

Schnelldurchlauf.

16

Page 27: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

17GrahamScan - graphisch 17/32

• erzeuge eine neues Teilpolygon mit

dem nachsten Punkt

→ hier D

• backtracking: Eliminiere Punkte, bei

denen die Hulle einen Knick nach

rechts macht

• wiederhole nun die letzten beiden

Schritte so lange, bis das einfache

Polygon abgearbeitet ist. Hier im

Schnelldurchlauf.

17

Page 28: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

18GrahamScan - Pseudocode 18/32

PointList GrahamScan(PointList ptLst) {ptLst = createSimplePolygon(ptLst); // Erstelle ein einfaches Polygon

Page 29: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

18GrahamScan - Pseudocode 18/32

PointList GrahamScan(PointList ptLst) {ptLst = createSimplePolygon(ptLst); // Erstelle ein einfaches Polygon

Point cur;for (int i=2; i<ptLst.len; i++) { // Durchlaufe Polygon mit Backtracking

cur = ptLst[i-1];while(turnRight(cur.Prev,cur,cur.Next)) {

cur = cur.Prev;cur.Next.delete();

}}

}

18

Page 30: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

19GrahamScan - Bewertung 19/32

• eigentlicher Algorithmus lauft in linearer Zeit ab

⇒ Θ(N)

Page 31: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

19GrahamScan - Bewertung 19/32

• eigentlicher Algorithmus lauft in linearer Zeit ab

⇒ Θ(N)

• aber: das Sortieren erfordert Θ(N log N)darum gesamt Θ(N log N)

Page 32: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

19GrahamScan - Bewertung 19/32

• eigentlicher Algorithmus lauft in linearer Zeit ab

⇒ Θ(N)

• aber: das Sortieren erfordert Θ(N log N)darum gesamt Θ(N log N)

• ein anderes Verfahren in der gleichen Effizienzklasse:

Quickhull (analog zu Quicksort)

19

Page 33: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

20Quickhull - graphisch 20/32

• Gegeben: Punktmenge P

20

Page 34: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

21Quickhull - graphisch 21/32

• Gegeben: Punktmenge P

• Suche zwei Punkte, die garantiert

auf der konvexen Hulle liegen und

teile die Punkte dementsprechend in

zwei Halften

21

Page 35: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

22Quickhull - graphisch 22/32

• Gegeben: Punktmenge P

• Suche zwei Punkte, die garantiert

auf der konvexen Hulle liegen und

teile die Punkte dementsprechend in

zwei Halften

• Finde den Punkt mit dem großten

Abstand von der Teilungslinie und

elimiere Punkte innerhalb des neuen

Polygons

22

Page 36: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

23Quickhull - graphisch 23/32

• Gegeben: Punktmenge P

• Suche zwei Punkte, die garantiert

auf der konvexen Hulle liegen und

teile die Punkte dementsprechend in

zwei Halften

• Finde den Punkt mit dem großten

Abstand von der Teilungslinie und

elimiere Punkte innerhalb des neuen

Polygons

• Verfahre genauso mit den neuen Grenzen bis keine neuen Punkte

mehr zu finden sind

23

Page 37: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

24Quickhull - graphisch 24/32

• Gegeben: Punktmenge P

• Suche zwei Punkte, die garantiert

auf der konvexen Hulle liegen und

teile die Punkte dementsprechend in

zwei Halften

• Finde den Punkt mit dem großten

Abstand von der Teilungslinie und

elimiere Punkte innerhalb des neuen

Polygons

• Verfahre genauso mit den neuen Grenzen bis keine neuen Punkte

mehr zu finden sind

24

Page 38: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

25Quickhull - graphisch 25/32

• Gegeben: Punktmenge P

• Suche zwei Punkte, die garantiert

auf der konvexen Hulle liegen und

teile die Punkte dementsprechend in

zwei Halften

• Finde den Punkt mit dem großten

Abstand von der Teilungslinie und

elimiere Punkte innerhalb des neuen

Polygons

• Verfahre genauso mit den neuen Grenzen bis keine neuen Punkte

mehr zu finden sind

25

Page 39: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

26Quickhull - graphisch 26/32

• Gegeben: Punktmenge P

• Suche zwei Punkte, die garantiert

auf der konvexen Hulle liegen und

teile die Punkte dementsprechend in

zwei Halften

• Finde den Punkt mit dem großten

Abstand von der Teilungslinie und

elimiere Punkte innerhalb des neuen

Polygons

• Verfahre genauso mit den neuen Grenzen bis keine neuen Punkte

mehr zu finden sind

26

Page 40: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

27Quickhull - graphisch 27/32

• Gegeben: Punktmenge P

• Suche zwei Punkte, die garantiert

auf der konvexen Hulle liegen und

teile die Punkte dementsprechend in

zwei Halften

• Finde den Punkt mit dem großten

Abstand von der Teilungslinie und

elimiere Punkte innerhalb des neuen

Polygons

• Verfahre genauso mit den neuen Grenzen bis keine neuen Punkte

mehr zu finden sind und verbinde den Rest zu einem Polygon

27

Page 41: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

28Quickhull - Bewertung 28/32

• Effizienz wie bei Quicksort: Θ(N log N)

Page 42: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

28Quickhull - Bewertung 28/32

• Effizienz wie bei Quicksort: Θ(N log N) aber mit Worst

Case: O(N 2) (wenn alle Punkte auf der konvexen Hulle

liegen)

Page 43: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

28Quickhull - Bewertung 28/32

• Effizienz wie bei Quicksort: Θ(N log N) aber mit Worst

Case: O(N 2) (wenn alle Punkte auf der konvexen Hulle

liegen)

• Im direkten Vergleich zum GrahamScan und Wrap-

Algorithmus das schnellste Verfahren in der praktischen

Anwendung

Page 44: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

28Quickhull - Bewertung 28/32

• Effizienz wie bei Quicksort: Θ(N log N) aber mit Worst

Case: O(N 2) (wenn alle Punkte auf der konvexen Hulle

liegen)

• Im direkten Vergleich zum GrahamScan und Wrap-

Algorithmus das schnellste Verfahren in der praktischen

Anwendung

• lasst sich auch auf die dritte Dimension anwenden

28

Page 45: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

29innere Elimination 29/32

• Verbesserung des GrahamScan´s und der naiven Hulle?

Sicherlich kann man an den Konstanten ein wenig

”rutteln”, aber was ist mit der Anzahl der Punkte

an sich?

Page 46: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

29innere Elimination 29/32

• Verbesserung des GrahamScan´s und der naiven Hulle?

Sicherlich kann man an den Konstanten ein wenig

”rutteln”, aber was ist mit der Anzahl der Punkte

an sich?

• Losung: Vorberechung mit der ”inneren Elimination”

29

Page 47: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

30innere Elimination - Verfahren 30/32

gegeben:

Punktmenge P

Page 48: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

30innere Elimination - Verfahren 30/32

gegeben:

Punktmenge P

→Suche vier Extrem-

punkte und bilde

daraus ein rechteck-

ahnliches Polygon

Page 49: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

30innere Elimination - Verfahren 30/32

gegeben:

Punktmenge P

→Suche vier Extrem-

punkte und bilde

daraus ein rechteck-

ahnliches Polygon

→Bilde in dem Polygon

ein Rechteck und

eliminiere die darin

enthaltene Punkte

30

Page 50: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

31innere Elimination - Bewertung 31/32

• Effizienz: Θ(N)

Page 51: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

31innere Elimination - Bewertung 31/32

• Effizienz: Θ(N)

• Es bleiben√

N Punkte im Schnitt ubrig

(lt. stochastischer Geometrie)

Page 52: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

31innere Elimination - Bewertung 31/32

• Effizienz: Θ(N)

• Es bleiben√

N Punkte im Schnitt ubrig

(lt. stochastischer Geometrie)

• Eliminationsverfahren schon in Quickhull enthalten

31

Page 53: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

32Fazit 32/32

• Welchen der bisher dargestellten Algorithmen sollte man

nun bevorzugen?

Page 54: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

32Fazit 32/32

• Welchen der bisher dargestellten Algorithmen sollte man

nun bevorzugen?

• Ist die Wahrscheinlichkeit groß, dass Punkte schon auf

einer konvexen Hulle liegen:

innere Elimination + GrahamScan

Page 55: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

32Fazit 32/32

• Welchen der bisher dargestellten Algorithmen sollte man

nun bevorzugen?

• Ist die Wahrscheinlichkeit groß, dass Punkte schon auf

einer konvexen Hulle liegen:

innere Elimination + GrahamScan

• sonst: Quickhull

Page 56: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

32Fazit 32/32

• Welchen der bisher dargestellten Algorithmen sollte man

nun bevorzugen?

• Ist die Wahrscheinlichkeit groß, dass Punkte schon auf

einer konvexen Hulle liegen:

innere Elimination + GrahamScan

• sonst: Quickhull

⇒ Und das Beste zum Schluss: Die Demonstration

32

Page 57: Algorithmische Geometrie Thema: Konvexe Hull¨ enmhanheid/lehre/alggeo/convhull.pdfdenen die Hul¨ le einen Knick nach rechts macht • wiederhole nun die letzten beiden Schritte so

Literatur zum Nachschlagen• R. Sedgewick: Algorithmen in C, Kap. 24/25

• Java-Applets:

I http://www.cs.princeton.edu/ ah/

alg anim/version1/GrahamScan.html

I http://www.pms.informatik.uni-muenchen.de/

lehre/compgeometry/Gosper/convex hull/

applet/convex hull applet.html

• Ansonsten hilft meistens googlen :)