2.1. Konvexe Hülle in 2D

Ähnliche Dokumente
Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

2.2. Schnitte von Liniensegmenten

Einführung & Konvexe Hülle

Algorithmische Geometrie 3. Schnitte von Liniensegmenten

Durchschnitte und Sichtbarkeit

M. Pester 29. Ein konvexes d-polytop ist eine begrenzte d-dimensionale polyedrale Menge. (d = 3 Polyeder, d = 2 Polygon)

Hallo Welt! für Fortgeschrittene. Geometrie I. Philipp Erhardt. 19. Juli Philipp Erhardt Geometrie I 19. Juli / 27

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Einführung & Konvexe Hülle

Seminar. Algorithmische Geometrie

Algorithmische Techniken für Geometrische Probleme

Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3

Es sei P ein einfaches Polygon in der Ebene; P habe n Ecken. Hilfssatz: Zu jedem einfachen Polygon mit mehr als 3 Ecken existiert eine Diagonale.

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Füllen von Primitiven

Einführung & Konvexe Hülle

Begriffsklärung: Dominanz

2.1. Konvexe Hülle in 2D

2.1. Konvexe Hülle in 2D

Beweis: Annahme: T (n) c n, wobei c = c(m) konstant ist. Die Annahme ist ok, falls T (n)

Geradenarrangements und Dualität von Punkten und Geraden

Algorithmische Geometrie 4. Schnitte planarer Unterteilungen

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden

Vorlesung Algorithmische Geometrie Konvexe Hülle in R 3

Einführung & Konvexe Hülle

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Hallo Welt für Fortgeschrittene

Die Geometrie der Tischlerei

Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005

? P = NP Die 1 Million $ Frage. Prof. Dr. Hans Jürgen Ohlbach P =? NP

2.4. Triangulierung von Polygonen

2.1. Konvexe Hülle in 2D

Geometrie I. Sebastian Redinger Informatik 2 Programmiersysteme Martensstraße Erlangen

Algorithmische Geometrie Mitschrift /

Geometrische Algorithmen Einige einfache Definitionen: Ist ein Punkt in einem Polygon? Punkt-in-Polygon-Problem. Das Punkt-in-Polygon-Problem

Geometrische Algorithmen Segmentschnitt. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Segmentschnitt

Grundlagen zur Delaunay-Triangulierung und zur konvexen Hülle. zum Begriff des Voronoi-Diagramms (vgl. auch Vorlesung "Algorithmische Geometrie"):

Algorithmische Geometrie: Delaunay Triangulierung (Teil 2)

Geometrische Algorithmen

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt

Geometrie. Hallo Welt! für Fortgeschrittene Simon Kuhnle. 11. Juli

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin

Parallele Algorithmen in der Bildverarbeitung

3.2 Generischer minimaler Spannbaum-Algorithmus

Algorithmische Geometrie: Voronoi Diagramme (Teil 2)

5. Bäume und Minimalgerüste

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =.

Geometrische Algorithmen Voronoi-Diagramme. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Voronoi-Diagramme

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Geometrie 1. Roman Sommer. Informatik 2 Programmiersysteme Martensstraße Erlangen

13 Berechenbarkeit und Aufwandsabschätzung

Algorithmische Geometrie. Prof. Dr. Thomas Ottmann. Mitarbeit: PD Dr. Sven Schuierer Dr. Stefan Edelkamp

Geometrie 1. Christian Bay Christian Bay Geometrie / 46

Algorithmische Geometrie Thema: Konvexe Hüllen

Einführung & Konvexe Hülle

1 Rotating Calipers. 2 Antipodal und Copodal. 3 Distanzen Rechtecke Eigenschaften

Algorithmische Geometrie 5. Triangulierung von Polygonen

Algorithmische Geometrie 7. Punktsuche (Teil 2)

Algorithmische Geometrie: Lineare Optimierung (I)

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Algorithmische Geometrie

Pfadgenerierung/Polygone/Polygonoffsetting

Komplexität von Algorithmen:

n t(2k + 1) in den P k s r = n t(2k + 1) Rest

Datenstrukturen und Algorithmen

Kapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Kapitel III Selektieren und Sortieren

Das Voronoi Diagramm. 1. Definition. 2. Eigenschaften. 3. Größe und Speicherung. 4. Konstruktion. 5. Verwendung

Numerisches Programmieren, Übungen

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1

Programmieren und Problemlösen

Das Divide - and - Conquer Prinzip. Quicksort Formulierung und Analyse des Prinzips Geometrisches Divide and Conquer - Closest-Pair - Segmentschnitt

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

t(2k + 1) in den P k s r = n t(2k + 1) Rest

Liniensegmentschnitt. Doppelt verkettete Kantenliste. Überlagerung von 2 ebenen Graphen. Boolsche Operatoren für einfache Polygone (LEDA)

Geometrie I. Tobias Langer Tobias Langer Geometrie I / 59

Kombinatorische Optimierung

Algorithmische Anwendungen. Algorithmen zur Berechnung konvexer Hüllen von Punkten

Geometrie I. Polygone. Dominik Huber Hallo Welt! für Fortgeschrittene. Informatik 2 Programmiersysteme Martensstraße Erlangen

Automatische Bestimmung der konvexen Hülle einer endlichen Punktmenge in der Ebene

Komplexität von Algorithmen

Von Labyrinthen zu. Algorithmen

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Kapitel 6: Algorithmen der Computer-Geometrie

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Suchen und Sortieren

Geometrie 2. Julian Fischer Julian Fischer Geometrie / 30

Polygontriangulierung

Algorithmische Kryptographie

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Übungen zur Vorlesung Algorithmische Geometrie

Schematisierung von Karten

Polygontriangulierung

Transkript:

Wir wollen die konvexe Hülle einer Menge von Punkten P = {p 1,..., p n } in der Ebene R 2 bestimmen. y y x x Def. 21: Eine Teilmenge S der Ebene ist konvex gdw für jedes Paar das Liniensegment pq in S liegt. p, q, S Def. 22: Die konvexe Hülle CH(S) einer Teilmenge S ist die kleinste konvexe Menge, die S enthält, d. h. CH(S) ist der Schritt aller S enthaltenden konvexen Mengen. F1

Als konvexe Hülle ergibt sich ein konvexes Polygon! Dieses wollen wir als Liste von Punkten aus P angeben, die die Eckpunkte von CH(P) im Uhrzeigersinn enthält. Leider ist unsere obige Definition der konvexen Hülle nicht wirklich hilfreich. Daher nutzen wir folgende Aussage über die Eckpunkte der konvexen Hülle. Satz 2.3: Die Kanten pq von CH(P) besitzen zwei Eckpunkte p, q, P und alle Punkte von P liegen rechts von pq. F2

F3

Dies liefert einen ersten Algorithmus F4

Bemerkungen: In Zeile 5 berechnen wir, ob ein Punkt rechts oder links einer Geraden liegt. Eine Implementierung könnte etwa über das Vektorprodukt erfolgen. Abstandsberechnung zu einer Geraden ist eine weiter Variante. Die Operation gelingt in jedem Fall in konstanter Zeit. Wichtig ist, dass man bei einer Implementierung hier vorsichtig ist, da Zeit und Effizienz verloren gehen können Bibliotheken benutzen! In Zeile 8 müssen die Segmente sortiert werden, so dass mit einem beliebigen Segment begonnen wird und dann das daran anschließende (gerichtete) Segment gefunden wird. O n 2 bzw O nlog n ergeben sich als Aufwand. Insgesamt ergeben sich n(n-1) Paare, die gegen n-2 Punkte getestet werden O n 3. Ferner liefert der letzte Schritt O n log n, also insgesamt O n 3. F5

Das ist sicher nicht akzeptabel für mehr als 1000 Punkte! Ferner gibt es weitere versteckte Probleme: (1) Wie behandeln wir Punkte, die auf einer Linie liegen? (2) Wie berücksichtigen wir, dass bei fast kollinearen Punkten Rundungsfehler Punkte auf die falsche Seite liegen oder gar keiner von drei Punkten p, q, r rechts von den anderen beiden liegt? F6

Zu (1): Wir müssen in Zeile 5 testen, ob r links von pq oder außerhalb der offenen Strecke pq liegt. (Mehrfache Punkte schließen wir hier aus.) Zu (2): Dieses Problem ist wirklich ernst, denn wenn keine Verbindung von p nach q existiert, wird unser Algorithmus in Zeile 8 nicht enden oder das Programm aussteigen. Unserem Algorithumus fehlt Robustheit. F7

Um zu einem verbesserten Algorithmus zu gelangen, nutzen wir einen inkrementellen Ansatz, indem wir einen Punkt nach dem anderen zu P hinzufügen und unsere konvexe Hülle jeweils anpassen, sofern nötig. Wir sortieren die Punkte nach aufsteigender x-koordinate und berechnen nur die obere Hälfte der konvexen Hülle. (Die untere Hälfte erhalten wir durch Sortieren nach absteigender x-koordinate). F8

Die Idee liegt darin, dass wir entlang der oberen Hülle in einem konvexen Polygon stets nach rechts abbiegen und somit eine Linksbiegung auf einen Fehler im letzten Teilstück der konvexen Hülle hinweist. Beachtet man, dass in diesem Fall auch vorherige Stücke zu testen sind, ist der Algorithmus fertig. F9

F10

Bemerkungen: Wenn zwei Punkte die gleiche x-koordinate haben, müssen wir sie anhand der y-koordinate sortieren. Wenn drei Punkte auf einer Geraden liegen, sollte der mittlere entfernt werden. Unser Test sollte also ermittlen, ob eine echte Rechtsdrehung erfolgt. Im Falle von Rundungsfehlern entfernen wir Punkte, die wir nicht entfernen sollten oder wir behalten Punkte, die entfernt werden sollten. Beides führt zu kleinen, vermutlich nicht sichtbaren Fehlern, aber unser Algorithmus arbeitet ordentlich! Das einzige ernste Problem bzgl. Robustheit sind sehr nahe Punkte, was wir durch Zusammenlegen dieser Punkte beseitigen können. F11

Theorem 24: Die konvexe Hülle einer Menge von n Punkten in der Ebene kann in Schritten berechnet werden. Beweis: (nur obere Hälfte) Bei zwei verschiedenen Punkten besteht die Hülle aus eben dieser. Sei also nun L die obere Hülle der Punkte { p 1,, p i 1 }. Wenn nun nach der while- Schleife die obere Hülle nur rechte Drehungen macht und die alte obere Hülle unterhalb der neuen liegt, kann ein Punkt nur in dem Bereich rechts von p i-1 oberhalb der neuen Hülle liegen. Da dort aber nur p i liegt und p i stets zur neuen Hülle gehört, gibt es solche Punkte nicht. O n log n Zur Komplexität: Sortieren erfordert O(n log n) Schritte. Die For-Schleife erfordert n Schritte. Die while-schleife löscht stets einen Punkt, wird also insgesamt maximal n-fach ausgeführt. Also erfordert die Hüllenberechnung O(n) Schritte für die obere Hälfte und analog für die untere Hälfte! QED F12

Als Regel zur Entwicklung geometrischer Algorithmen seien drei Phasen festgehalten. (1) Ignoriere zunächst alle degenerierten Fälle wie kollineare Punkte oder vertikale Segmente! (2) Betrachte die degenerierten Fälle und versuche sie in den Algorithmus zu integrieren! Zunächst wird man Fallunterscheidungen bevorzugen, aber oft lässt sich eine geschicktere Lösung finden, die viele Fälle vermeidet. (3) Implementiere den Algorithmus durch sorgfältiges Umsetzen der Basisoperationen! Rundungsfehlern gebührt hier große Aufmerksamkeit, da sie oft zu Frustrationen führen. Es ist nicht einfach sie zu vermeiden. Neben exakter Arithmetik hilft nur die genaue Untersuchung möglicher Fälle und eine genaue Spezifikation der Ergebnisse des Algorithmus, sowie der Anforderungen der Anwendungen. (Reicht es letztlich, die richtigen Pixel der konvexen Hüllen zu zeichnen?). F13

Literatur: Der Algorithmus stammt aus [A. M. Andrew. Another efficient algorithm for convex hulls in two dimensions. Inform. Process. Letters 9:216-219,1979] und basiert auf [R.L. Graham. An efficient algorithm for determining the convex hull of a finite set. Inform. Process. Letters 1:132-133,1972]. Es ist bekannt, dass n log n eine untere Schranke des Problems ist [A. C. Yao. A lower bound to finding convex hulls. J. ACM 28:780-787, 1981]. Danach kann man dies verbessern, wenn man annimmt, dass in der Regel die Anzahl der Punkte h in der konvexen Hülle klein ist. [D.G. Kirkpatrick, R. Seidel. The ultimate planar convex hull algorithm? SIAM J. Computing 15:287-299, 1986.] und die einfachere Variante [T.M.Y. Chan. Output-sensitive results on convex hulls, extreme points, and related problems. In Proc. 11 th Annual ACM Symp. Comput. Geom., 1995, 10-19.] erreichen O(n log h)! F14