Algorithmische Geometrie 1. Einführung JProf. Dr. Heike Leitte Computergraphik und Visualisierung
Algorithmische Geometrie Veranstaltung: 2 SWS Vorlesung: Mi, 9:15 10:45 1 SWS Übung: Do 14:00 16:00 Übungen: 14 tägig (Beginn: 24.04.2014) Credit Points: 4 ECTS Prüfung: am Ende des Semesters (schriftlich) Literatur: Die Vorlesung basiert auf folgendem Buch Mark de Berg u. a: Computational Geometry: Algorithms and Applications. Springer 2000, ISBN 3-540-65620-0 2
Inhaltsverzeichnis 1. Einführung 2. Konvexe Hülle 3. Schnitte von Liniensegmenten 4. Triangulierung von Polygonen 5. Punktsuche 6. Voronoidiagramme und Delaunay-Triangulierung 7. Allgemeine Suchstrukturen 3
Was ist algorithmische Geometrie? Algorithmische Geometrie entstand als eigenständige Disziplin in den 1970er Jahren. Algorithmische Geometrie (Computational Geometry) beschäftigt sich mit dem Entwurf und der Analyse von (effizienten) Algorithmen und Datenstrukturen für geometrische Probleme. Viele Probleme stammen aus den Bereichen: Computergrafik, Visualisierung, geographischen Informationssystemen (GIS), Data Mining, Computer Vision und Robotik. 4
Während eines Einkaufs in der Innenstadt müssen Sie einen eiligen Anruf machen. Der Handyakku ist leer. Sie kennen mehrere Telefonzellen und suchen die Nächstgelegene. Um dieses Problem für jede Stelle in der Innenstadt zu lösen, müssen Sie das Voronoidiagramm aufstellen. 5
Als Programmierer eines Geographischen Informationssystems (GIS) werden Sie typischerweise die Informationen in Schichten (Lagen) einzelner Karten ablegen (Straßennetz, Flusssysteme, Ortschaften, Bodennutzung,...). Wenn Sie nun alle Brücken markieren wollen, müssen Sie alle Schnitte des Straßennetzes mit den Flüssen finden. Haben Sie die Straßen und Flüsse (mit etwas Großzügigkeit) als Liniensegmente abgelegt, so suchen Sie alle Schritte von Liniensegmenten der einen Menge (Straßen) mit denen der anderen Menge (Flüsse). Es dürfte klar sein, dass ein Schnitt jeder Straße mit jedem Fluss in Deutschland Ihr System schnell überfordert. 6
Als Sicherheitsfachmann eines Museums sollen Sie möglichst wenige Überwachungskameras so positionieren, dass der gesamte Ausstellungsraum eingesehen werden kann. 7
Dies führt auf die Triangulierung beliebiger Polygone. Weitere Anwendungen: In der Computergraphik werden Objekte häufig als Dreiecksnetze dargestellt und viele Algorithmen zu ihrer Darstellung, wie etwa das Raytracing, gehen von dieser Repräsentation aus. In CAD-Systemen (Computer Aided Design) ist die Triangulierung beliebiger Polygone ebenfalls ein Standardalgorithmus. 8
In einer Datenbank sind Name, Geburtstag und Monatseinkommen der Mitarbeiter eines Unternehmens eingetragen. Sie sollen alle Mitarbeiter mit Geburtsjahr zwischen 1950 und 1955 und einem Einkommen zwischen 3000 $ und 4000 $ herausfinden. Dazu können Sie das Gebutsdatum mit der Formel Jahr 10.000+ Monat 100+ Tag in eine Zahl umwandeln und dann eine Bereichsabfrage (Range Query) tätigen. 9
10
Sie sollen aus einer geographischen Positionsangabe das zugehörige Land ermitteln. Point location in a map Diese für Menschen in der Ebene sehr einfache Aufgabe erfordert im Rechner einiges Geschick beim Design von Algorithmus und Datenstruktur. Auch in der Visualisierung ist die schnelle Beantwortung der Punktsuchanfrage ein zentraler Aspekt für die Leistungsfähigkeit eines Algorithmus bzw. eines ganzen Systems. Dies gilt besonders bei der Verarbeitung großer Datensätze. 11
Sie haben die Höhe über dem Meeresspiegel an verschiedenen Stellen einer Insel gemessen und sollen nun ein Höhenrelief erstelle. Dazu müssen Sie die verstreut liegenden Messwerte interpolieren. Als Lösung bietet sich eine "gutmütige" Triangulierung und lineare Interpolation an. 12