2.1 Definitionen
Konvexe Menge
Eine Menge heißt konvex, genau dann wenn für alle Punkte die Verbindungsstrecke
in enthalten ist, also .
In Worten: Man kann zwischen zwei beliebigen Punkten der Menge geradeaus laufen, ohne die Menge zu verlassen. Es gibt keine Dellen, Einbuchtungen oder Löcher.
Bei einer U-förmigen Menge dagegen kann man je einen Punkt und in die beiden „Arme“ legen. Die Strecke führt dann durch die Lücke dazwischen, also außerhalb der Menge. Die U-Form ist nicht konvex.
Zum Ausprobieren: Zieh und in die beiden Arme der U-Form, dann verlässt die Strecke die Menge. Bei der konvexen Form gelingt das nie.
Beispiele: Kreisscheibe, Dreieck, Halbebene, Gerade und Strecke sind konvex. Ein Ring, ein „L“ oder ein Stern sind es nicht.
Wichtige Eigenschaft: Der Schnitt konvexer Mengen ist konvex. Liegen in allen Mengen, dann liegt auch in allen. Das braucht man für die nächste Definition.
Konvexe Hülle
Die konvexe Hülle einer Menge ist die kleinste konvexe Menge, die enthält, also der Schnitt aller konvexen Mengen, die enthalten.
Warum ist „Schnitt aller“ dasselbe wie „kleinste“? Der Schnitt ist nach der Eigenschaft oben konvex und enthält . Und er ist in jeder konvexen Obermenge enthalten, also die kleinste.
Gummiband-Metapher
Man stellt sich die Punkte als Nägel in einem Brett vor, spannt ein Gummiband weit darum und lässt es los. Das Band zieht sich zusammen und legt sich an die äußersten Nägel. Seine Form ist die konvexe Hülle.
Das zeigt anschaulich:
- Die Hülle ist ein Polygon.
- Ihre Ecken sind Eingabepunkte, nämlich die Nägel, an denen das Band einen Knick macht.
- Innere Punkte und Punkte, die auf einer geraden Strecke des Bandes liegen, sind keine Ecken.
Das Gummiband zum Anfassen: Setze, verschiebe oder lösche Nägel. Die Hülle passt sich sofort an. Punkte innen oder mitten auf einer Kante (Preset „Kollinear“) sind keine Ecken.
Alternative Definition für
Die konvexe Hülle einer endlichen Menge von Punkten ist das eindeutige konvexe Polygon mit Ecken aus , das alle Punkte von enthält.
Diese (informelle) Definition ist die Grundlage für die Algorithmen: Wir suchen eine Teilmenge der Eingabepunkte und ihre Reihenfolge auf dem Rand.
Problemstellung
- Eingabe: Eine Menge von paarweise verschiedenen Punkten in der Ebene.
- Ausgabe: Eine sortierte Liste von Punkten aus (laut Folie im Uhrzeigersinn), die die Ecken von darstellt.
Nur die Menge der Ecken auszugeben, wäre zu wenig: Um das Polygon zu zeichnen oder damit weiterzurechnen, braucht man die Reihenfolge entlang des Randes. Genau diese Ordnung macht das Problem mindestens so schwer wie Sortieren, siehe 2.3.
Beispiel der Folie: Eingabe . Ausgegeben werden nur die 5 äußeren Punkte in Randreihenfolge. liegen innen.
Ein Kriterium für Hüllkanten
Die zentrale Beobachtung (Folie 7), auf der alle Algorithmen aufbauen:
Eine gerichtete Kante (mit ) ist genau dann eine Kante der im Uhrzeigersinn orientierten Hülle, wenn kein anderer Punkt von links von ihr liegt.
Begründung: Läuft man im Uhrzeigersinn um ein konvexes Polygon, liegt das Innere immer rechts. Liegt also alles rechts von (oder darauf), ist die Gerade durch eine Stützgerade: Sie berührt die Punktmenge und hat sie ganz auf einer Seite. Mit dem Orientierungstest lässt sich „links von“ in prüfen.
Algorithmenübersicht (Folie 6)
| Prinzip | Algorithmen | Laufzeit |
|---|---|---|
| Inkrementell | naiv · Kallay | · |
| Rekursiv | Divide-and-Conquer · QuickHull | |
| Sweeping | Graham, Andrew, TORCH | |
| Output-sensitiv | Jarvis · Chan | · , wenn ein -Eck ist |
Anmerkung: QuickHull ist im Durchschnitt , im Worst Case aber .
Output-sensitiv heißt: Die Laufzeit hängt nicht nur von der Eingabegröße , sondern auch von der Ausgabegröße ab. Bei wenigen Hüllecken kann das deutlich schneller sein.