Vorlesung Algorithmische Kartografie Einfu ¨hrung & Linienvereinfachung ¨ THEORETISCHE INFORMATIK · FAKULTAT ¨ FUR ¨ INFORMATIK INSTITUT FUR Benjamin Niedermann · Martin N¨ ollenburg 14.04.2015 1 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung AlgoKarto-Team Dozenten Benjamin Niedermann [email protected] Raum 309 Sprechzeiten: individuell per Mail vereinbaren Martin N¨ollenburg [email protected] Raum 319 Sprechzeiten: individuell per Mail vereinbaren 2 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung AlgoKarto-Team Dozenten Benjamin Niedermann [email protected] Raum 309 Sprechzeiten: individuell per Mail vereinbaren Martin N¨ollenburg [email protected] Raum 319 Sprechzeiten: individuell per Mail vereinbaren Termine Di 9:45 – 11:15 Uhr, Raum 301 Do 9:45 – 11:15 Uhr, Raum 301 (ab 23.04.) Ende der Vorlesung Ende Juni/Anfang Juli 2 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Organisatorisches Webseite i11www.iti.kit.edu/teaching/sommer2015/algokarto/index aktuelle Informationen Vorlesungsfolien Literatur Zusatzmaterial 3 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Organisatorisches Webseite i11www.iti.kit.edu/teaching/sommer2015/algokarto/index aktuelle Informationen Vorlesungsfolien Literatur Zusatzmaterial Algorithmische Kartografie im Master-Studium Bachelor Informatik Algorithmen 1+2 Theoretische Grundlagen Algorithmen fu ¨r planare Graphen Algorithm. Methoden fu ¨r schwere Optimierungsprobleme 3 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Master Informatik Algorithmische Kartografie Algorithmische Geometrie Graphenvisualisierung .. . VF Algorithmentechnik, Theoretische Grundlagen, Computergrafik Einf¨ uhrung & Linienvereinfachung Algorithmische Kartografie Anspruch Lernziele: 4 Am Ende der Vorlesung ko¨nnen Sie Begriffe, Strukturen und Problemdefinitionen erkl¨aren behandelte Algorithmen ausfu ¨hren, erkl¨aren und analysieren geeignete Algorithmen und Datenstrukturen ausw¨ahlen und anpassen neue kartografische/geometrische Probleme analysieren und eigene effiziente Lo¨sungen entwerfen Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Algorithmische Kartografie Anspruch Lernziele: Am Ende der Vorlesung ko¨nnen Sie Begriffe, Strukturen und Problemdefinitionen erkl¨aren behandelte Algorithmen ausfu ¨hren, erkl¨aren und analysieren geeignete Algorithmen und Datenstrukturen ausw¨ahlen und anpassen neue kartografische/geometrische Probleme analysieren und eigene effiziente Lo¨sungen entwerfen Vorkenntnisse: Algorithmik und elementare Geometrie hilfreich: Algorithmische Geometrie bzw. Algorithmen zur Visualisierung von Graphen 4 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Algorithmische Kartografie Anspruch Lernziele: Am Ende der Vorlesung ko¨nnen Sie Begriffe, Strukturen und Problemdefinitionen erkl¨aren behandelte Algorithmen ausfu ¨hren, erkl¨aren und analysieren geeignete Algorithmen und Datenstrukturen ausw¨ahlen und anpassen neue kartografische/geometrische Probleme analysieren und eigene effiziente Lo¨sungen entwerfen Vorkenntnisse: Algorithmik und elementare Geometrie hilfreich: Algorithmische Geometrie bzw. Algorithmen zur Visualisierung von Graphen Anforderungen/Zeiteinteilung: ¨ aktive Teilnahme an Vorlesung und Ubung Projektarbeit Pru ¨fungsvorbereitung 4 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie 5LP = 150h ca. 70h ca. 30h ca. 50h Einf¨ uhrung & Linienvereinfachung Pru¨fbarkeit Master Informatik Algorithm Engineering und Anwendungen (IN4INAEA, 5LP) Design und Analyse von Algorithmen (IN4INDAA, 5LP) Algorithmen der Computergrafik (IN4INACG, nur 3LP) Algorithmische Kartografie (IN4INAK, 5LP) Master Informationswirtschaft Advanced Algorithms: Engineering and Applications (IW4INAALGOB) Advanced Algorithms: Design and Analysis (IW4INAADA) Algorithmen der Computergrafik (IW4INACG) 5 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Pru¨fbarkeit Master Informatik Algorithm Engineering und Anwendungen (IN4INAEA, 5LP) Design und Analyse von Algorithmen (IN4INDAA, 5LP) Algorithmen der Computergrafik (IN4INACG, nur 3LP) Algorithmische Kartografie (IN4INAK, 5LP) Master Informationswirtschaft Advanced Algorithms: Engineering and Applications (IW4INAALGOB) Advanced Algorithms: Design and Analysis (IW4INAADA) Algorithmen der Computergrafik (IW4INACG) Pru ¨fungsnote 20-minu ¨tige mu ¨ndliche Pru ¨fung (80%) Projektarbeit (20%) 5 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Vorlesungsbetrieb Ablauf ¨ die Bearbeitung von Ubungsaufgaben ist in die regul¨aren Vorlesungstermine integriert ¨ ca. 20–30 Min Ubung pro Vorlesung aktive Teilnahme und Diskussionen sind erwu ¨nscht Programmierprojekt/Referat in kleinen Teams als Teil der Pru ¨fungsleistung (Details und Themen n¨achste Woche) 6 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Vorlesungsbetrieb Ablauf ¨ die Bearbeitung von Ubungsaufgaben ist in die regul¨aren Vorlesungstermine integriert ¨ ca. 20–30 Min Ubung pro Vorlesung aktive Teilnahme und Diskussionen sind erwu ¨nscht Programmierprojekt/Referat in kleinen Teams als Teil der Pru ¨fungsleistung (Details und Themen n¨achste Woche) Medien Nutzung von Folien und Tafel (meist fu ¨r Beweise) eigene Notizen der Tafelanschriebe sinnvoll alternativ: Nachlesen in Originalquellen 6 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Vorlesungsbetrieb Ablauf ¨ die Bearbeitung von Ubungsaufgaben ist in die regul¨aren Vorlesungstermine integriert ¨ ca. 20–30 Min Ubung pro Vorlesung aktive Teilnahme und Diskussionen sind erwu ¨nscht Programmierprojekt/Referat in kleinen Teams als Teil der Pru ¨fungsleistung (Details und Themen n¨achste Woche) Medien Nutzung von Folien und Tafel (meist fu ¨r Beweise) eigene Notizen der Tafelanschriebe sinnvoll alternativ: Nachlesen in Originalquellen Organisatorische Fragen? 6 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Was ist algorithmische Kartografie? 7 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Kartografie 7 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Algorithmische Kartografie Was ist algorithmische Kartografie? Algorithmische Geometrie Einf¨ uhrung & Linienvereinfachung Kartografie Algorithmische Kartografie Was ist algorithmische Kartografie? Algorithmische Geometrie GIS Fernerkundung Gel¨andemodelle Kartenprojektionen ... → Studiengang Geod¨asie und Geoinformatik 7 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Kartografie GIS Fernerkundung Gel¨andemodelle Kartenprojektionen ... → Studiengang Geod¨asie und Geoinformatik 7 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Algorithmische Kartografie Was ist algorithmische Kartografie? Algorithmische Geometrie Algorithmen Datenstrukturen Triangulationen Bereichsabfragen Schnitte, Hu ¨llen . . . → Vorlesung Algorithmische Geometrie Einf¨ uhrung & Linienvereinfachung Kartografie GIS Fernerkundung Gel¨andemodelle Kartenprojektionen ... → Studiengang Geod¨asie und Geoinformatik 7 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Algorithmische Kartografie Was ist algorithmische Kartografie? Algorithmische Geometrie geometrische Algorithmen fu ¨r kartografische Probleme Algorithmen Datenstrukturen Triangulationen Bereichsabfragen Schnitte, Hu ¨llen . . . → Vorlesung Algorithmische Geometrie Einf¨ uhrung & Linienvereinfachung Beispiel 1: Vereinfachung von Kantenzu¨gen viele Objekte in Landkarten werden durch Polygone oder Kantenzu ¨ge repr¨asentiert Detailgrad abh¨angig vom Maßstab (Generalisierung) Maßstab 1 : X 8 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Beispiel 1: Vereinfachung von Kantenzu¨gen viele Objekte in Landkarten werden durch Polygone oder Kantenzu ¨ge repr¨asentiert Detailgrad abh¨angig vom Maßstab (Generalisierung) Maßstab 1 : X 8 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Maßstab 1 : (4X) Einf¨ uhrung & Linienvereinfachung Beispiel 1: Vereinfachung von Kantenzu¨gen viele Objekte in Landkarten werden durch Polygone oder Kantenzu ¨ge repr¨asentiert Detailgrad abh¨angig vom Maßstab (Generalisierung) Maßstab 1 : X 8 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Maßstab 1 : (4X) Einf¨ uhrung & Linienvereinfachung Beispiel 1: Vereinfachung von Kantenzu¨gen viele Objekte in Landkarten werden durch Polygone oder Kantenzu ¨ge repr¨asentiert Detailgrad abh¨angig vom Maßstab (Generalisierung) Maßstab 1 : X 8 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Maßstab 1 : (4X) Einf¨ uhrung & Linienvereinfachung Beispiel 1: Vereinfachung von Kantenzu¨gen viele Objekte in Landkarten werden durch Polygone oder Kantenzu ¨ge repr¨asentiert Detailgrad abh¨angig vom Maßstab (Generalisierung) Maßstab 1 : X 8 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Maßstab 1 : (4X) Einf¨ uhrung & Linienvereinfachung Beispiel 1: Vereinfachung von Kantenzu¨gen viele Objekte in Landkarten werden durch Polygone oder Kantenzu ¨ge repr¨asentiert Detailgrad abh¨angig vom Maßstab (Generalisierung) Maßstab 1 : X 8 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Maßstab 1 : (4X) Einf¨ uhrung & Linienvereinfachung Beispiel 1: Vereinfachung von Kantenzu¨gen viele Objekte in Landkarten werden durch Polygone oder Kantenzu ¨ge repr¨asentiert Detailgrad abh¨angig vom Maßstab (Generalisierung) Maßstab 1 : X Maßstab 1 : (4X) geg: Kantenzug P ges: Kantenzug Q mit weniger Knoten und kleinem Fehler |P − Q| 8 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Beispiel 2: Schematisierung von Polygonen schematische Karten nutzen oft eingeschr¨ankte Kantenrichtungen Polygonfl¨achen mu ¨ssen geeignet schematisiert werden geg: Polygon P mit Fl¨ache A, Richtungsmenge C ges: C-orientiertes Polygon Q mit gleicher Fl¨ache A und kleinem Fehler |P − Q| 9 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Beispiel 3: Fl¨achenkartogramme abstrakte statistische thematische Karten nutzen u.a. verzerrte proportionale Fl¨achen proportionale Kontaktrepr¨asentation des Dualgraphs geg: gewichtete politische Karte (Unterteilung der Ebene) ges: entsprechende verzerrte Karte, deren Fl¨achen proportional zu den Gewichten sind 10 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Beispiel 4: Beschriftung von Landkarten Objekte in Karten beno¨tigen meist einen eindeutig zugeordneten Namen (Label) verschiedene interne und externe Labelpositionen m¨oglich settlement citytown hill village MaxNumber settlement town city hill village Ibis Hotel Main Station Kulturspeicher Hauptbahnhof Ibis Hotel Kulturspeicher Main Station Hauptbahnhof Hauptbahnhof West Hauptbahnhof West Hotel Poppular Juliuspromenade Escalera Ulmer Hof Hotel Urlaub Barbarossaplatz interne Label Hotel Poppular Juliuspromenade Barbarossaplatz Escalera Ulmer Hof Hotel Urlaub externe Label MaxSize geg: Punktmenge P mit Labelmenge L ges: gu ¨ltige, optimale Beschriftung von P mit L, je nach Beschriftungsmodell 11 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Beispiel 5: Dynamische Karten moderne elektronische Karten sind interaktiv & dynamisch Formen und Beschriftungen mu ¨ssen sich kontinuierlich an die Kartenansicht anpassen z.B. Beschriftung: geg: Punktmenge P mit Labelmenge L ges: gu ¨ltige, optimale und konsistente Beschriftung von P mit L unter Zoom, Drehen etc. 12 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Vorlesungsthemen ¨ Ziel: Uberblick u ¨ber grundlegende und aktuelle algorithmische Forschungsthemen in der Kartografie Ebene Block Linienzu¨ge Karteninhalt Fl¨achen Statisch Beschriftung Dynamisch Geovisualisierung Annotation Diagramme 13 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Termine Themen Einfu¨hrung 3 Linienvereinfachung Konsistente Vereinfachung von Kantenzu¨gen Fl¨achenaggregation 5-6 Vereinfachung von Geb¨audeumrissen Fl¨achenkartogramme Punktbeschriftung 2 Straßenbeschriftung Zoomen 6 Rotieren Trajektorienbasierte Beschriftung Beschriftung von bewegten Punkten 3 Randbeschriftung 1 Proportional Symbol Maps Einf¨ uhrung & Linienvereinfachung Algorithmen zur Linienvereinfachung 14 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Generalisierung Generalisierung in der Kartografie bezeichnet Verfahren zur Vereinfachung des Karteninhalts fu ¨r die Verbesserung der Lesbarkeit in kleineren Maßst¨aben. Beispiele: Auswahl/Filtern von Objekten Vereinfachung Symbolisierung Aggregation Gl¨attung Vergr¨ oßerung Verdr¨angung ... 15 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Quelle: Wikipedia Einf¨ uhrung & Linienvereinfachung Linienvereinfachung Karten bestehen zum Großteil aus Linien-/ Polygonzu ¨gen Linienvereinfachung reduziert Komplexit¨at: visuell und Speicherplatz geg: Polygonzug P = (v1 , v2 , . . . , vn ) ges: Polygonzug Q = (v1 = vi1 , vi2 , vi3 , . . . , vik = vn ) mit i1 < i2 < · · · < ik , so dass Q eine gute Approximation von P und k mo¨glichst klein ist v3 v2 v4 v5 v1 16 v8 v7 v6 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v3 v2 v5 v1 v8 v4 v7 v6 Einf¨ uhrung & Linienvereinfachung Qualit¨atskriterien ¨ Uberlegen Sie sich m¨ogliche Kriterien fu ¨r die Approximationsqualit¨at! v3 v2 v4 v5 v1 17 v8 v7 v6 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v3 v2 v5 v1 v8 v4 v7 v6 Einf¨ uhrung & Linienvereinfachung Qualit¨atskriterien ¨ Uberlegen Sie sich m¨ogliche Kriterien fu ¨r die Approximationsqualit¨at! ¨ahnliche L¨ange ¨ahnliche Winkel geringer Abstand ε-Korridor kleine Fl¨achen¨anderung wenige Segmente v3 v2 v8 v4 v7 v5 v1 17 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v6 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 s=5 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 s=5 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 s=5 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 s=5 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 s=5 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 s=5 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 s=5 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 s=5 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 s=5 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 s=5 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v5 v6 v1 v15 v14 v12 v7 v13 v11 v8 v 9 v10 s=5 unbeschr¨ankte greedy Suche mit ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v5 v6 v1 v15 v14 v12 v7 v13 v11 v8 v 9 v10 s=5 unbeschr¨ankte greedy Suche mit ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v5 v6 v1 v15 v14 v12 v7 v13 v11 v8 v 9 v10 s=5 unbeschr¨ankte greedy Suche mit ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v5 v6 v1 v15 v14 v12 v7 v13 v11 v8 v 9 v10 s=5 unbeschr¨ankte greedy Suche mit ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v5 v6 v1 v15 v14 v12 v7 v13 v11 v8 v 9 v10 s=5 unbeschr¨ankte greedy Suche mit ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v5 v6 v1 v15 v14 v12 v7 v13 v11 v8 v 9 v10 s=5 unbeschr¨ankte greedy Suche mit ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v5 v6 v1 v15 v14 v12 v7 v13 v11 v8 v 9 v10 s=5 unbeschr¨ankte greedy Suche mit ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v5 v6 v1 v15 v14 v12 v7 v13 v11 v8 v 9 v10 s=5 unbeschr¨ankte greedy Suche mit ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v5 v6 v1 v15 v14 v12 v7 v13 v11 v8 v 9 v10 s=5 unbeschr¨ankte greedy Suche mit ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 hier identisch, allg. jedoch weniger Segmente Einf¨ uhrung & Linienvereinfachung Erste Algorithmen lokale Suche mit look-ahead s und ε-Korridor v4 v3 v2 v5 v6 v1 Liefert das immer v15 v14 optimale L¨osung? v12 v7 v13 v11 v8 v 9 v10 s=5 unbeschr¨ankte greedy Suche mit ε-Korridor v4 v3 v2 v1 v5 v6 v12 v7 v8 v 9 v10 18 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie v15 v14 v13 v11 hier identisch, allg. jedoch weniger Segmente Einf¨ uhrung & Linienvereinfachung Greedy ist nicht optimal! 19 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Greedy ist nicht optimal! 19 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Douglas-Peucker Algorithmus [1973] DouglasPeucker(P, i, j) pf ← weitester Knoten von pi pj if dist(pi pj , pf ) < ε then return pi pj else DouglasPeucker(P, i, f ) DouglasPeucker(P, f, j) 20 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Douglas-Peucker Algorithmus [1973] DouglasPeucker(P, i, j) pf ← weitester Knoten von pi pj if dist(pi pj , pf ) < ε then return pi pj else DouglasPeucker(P, i, f ) DouglasPeucker(P, f, j) 20 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Douglas-Peucker Algorithmus [1973] DouglasPeucker(P, i, j) pf ← weitester Knoten von pi pj if dist(pi pj , pf ) < ε then return pi pj else DouglasPeucker(P, i, f ) DouglasPeucker(P, f, j) 20 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Douglas-Peucker Algorithmus [1973] DouglasPeucker(P, i, j) pf ← weitester Knoten von pi pj if dist(pi pj , pf ) < ε then return pi pj else DouglasPeucker(P, i, f ) DouglasPeucker(P, f, j) 20 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Douglas-Peucker Algorithmus [1973] DouglasPeucker(P, i, j) pf ← weitester Knoten von pi pj if dist(pi pj , pf ) < ε then return pi pj else DouglasPeucker(P, i, f ) DouglasPeucker(P, f, j) 20 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Douglas-Peucker Algorithmus [1973] DouglasPeucker(P, i, j) pf ← weitester Knoten von pi pj if dist(pi pj , pf ) < ε then return pi pj else DouglasPeucker(P, i, f ) DouglasPeucker(P, f, j) 20 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Douglas-Peucker Algorithmus [1973] DouglasPeucker(P, i, j) pf ← weitester Knoten von pi pj if dist(pi pj , pf ) < ε then return pi pj else DouglasPeucker(P, i, f ) DouglasPeucker(P, f, j) 20 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Douglas-Peucker Algorithmus [1973] DouglasPeucker(P, i, j) pf ← weitester Knoten von pi pj if dist(pi pj , pf ) < ε then return pi pj else DouglasPeucker(P, i, f ) DouglasPeucker(P, f, j) Laufzeit? 20 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Douglas-Peucker Algorithmus [1973] DouglasPeucker(P, i, j) pf ← weitester Knoten von pi pj if dist(pi pj , pf ) < ε then return pi pj else DouglasPeucker(P, i, f ) DouglasPeucker(P, f, j) Laufzeit? balancierter Fall: O(n log n) worst case: O(n2 ) 20 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Douglas-Peucker Algorithmus [1973] DouglasPeucker(P, i, j) pf ← weitester Knoten von pi pj if dist(pi pj , pf ) < ε then return pi pj else DouglasPeucker(P, i, f ) DouglasPeucker(P, f, j) Laufzeit? balancierter Fall: O(n log n) worst case: O(n2 ) Kann es passieren, dass Selbstschnitte entstehen? 20 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Beschleunigung des DP-Algorithmus [Hershberger, Snoeyink ’92] Beobachtung: fu ¨r Gerade ` und Punktmenge P liegt der von ` weitest entfernte Punkt auf einer zu ` parallelen Tangente an die konvexe Hu ¨lle CH(P ) max ` 21 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Beschleunigung des DP-Algorithmus [Hershberger, Snoeyink ’92] Beobachtung: fu ¨r Gerade ` und Punktmenge P liegt der von ` weitest entfernte Punkt auf einer zu ` parallelen Tangente an die konvexe Hu ¨lle CH(P ) max → mu ¨ssen nur solche Punkte als Splitknoten betrachten ` 21 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Beschleunigung des DP-Algorithmus [Hershberger, Snoeyink ’92] Beobachtung: fu ¨r Gerade ` und Punktmenge P liegt der von ` weitest entfernte Punkt auf einer zu ` parallelen Tangente an die konvexe Hu ¨lle CH(P ) max → mu ¨ssen nur solche Punkte als Splitknoten betrachten ` Def: Pfadhu ¨lle P H fu ¨r (pi , . . . , pj ) besteht aus einem Zwischenknoten pm und den konvexen Hu ¨llen CH(pi , . . . , pm ) und CH(pm , . . . , pj ) pj pi 21 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie pm Einf¨ uhrung & Linienvereinfachung Algorithmus von Hershberger und Snoeyink drei Operationen: farthest(P H, `): finde weitesten von ` entfernten Knoten in P H build(i, j, P H): erstelle Pfadhu ¨lle von (pi , . . . , pj ) mit Zwischenknoten pm = pb(i+j)/2c split(P H, k): trenne Pfad (pi , . . . , pj ) an Stelle k und gib Pfadhu ¨lle fu ¨r Teilpfad, der pm enth¨alt zuru ¨ck 22 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung Algorithmus von Hershberger und Snoeyink drei Operationen: farthest(P H, `): finde weitesten von ` entfernten Knoten in P H build(i, j, P H): erstelle Pfadhu ¨lle von (pi , . . . , pj ) mit Zwischenknoten pm = pb(i+j)/2c split(P H, k): trenne Pfad (pi , . . . , pj ) an Stelle k und gib Pfadhu ¨lle fu ¨r Teilpfad, der pm enth¨alt zuru ¨ck 22 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie DPHull(i, j, P H) pf ← farthest(P H, pi pj ) if dist(pi pj , pf ) ≤ ε then return pi pj else if f < m then split(P H, f ) DPHull(f, j, P H) build(i, f, P H) DPHull(i, f, P H) else split(P H, f ) DPHull(i, f, P H) build(f, j, P H) DPHull(f, j, P H) Einf¨ uhrung & Linienvereinfachung farthest Operation farthest(P H, `): finde entferntesten Punkt von P H zu ` finde entferntesten Punkt eines konvexen, im UZS gespeicherten Polygons (fu ¨r jeden Teil von P H) ` 23 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung farthest Operation farthest(P H, `): finde entferntesten Punkt von P H zu ` finde entferntesten Punkt eines konvexen, im UZS gespeicherten Polygons (fu ¨r jeden Teil von P H) − + ` Kanten e mit ∠`, e ∈ [0, π) sind positiv Kanten e mit ∠`, e ∈ [π, 2π) sind negativ 23 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung farthest Operation farthest(P H, `): finde entferntesten Punkt von P H zu ` finde entferntesten Punkt eines konvexen, im UZS gespeicherten Polygons (fu ¨r jeden Teil von P H) u − + ` v Kanten e mit ∠`, e ∈ [0, π) sind positiv Kanten e mit ∠`, e ∈ [π, 2π) sind negativ 1. finde positive Kante e und negative Kante e0 2. finde Knoten u und v, die positiv und negativ trennen 3. bestimme arg max{d(u, `), d(v, `)} 23 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 Q: p2 p1 p2 p4 p1 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 Q: p2 p1 p2 p4 p1 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 Q: p2 p1 p2 p2 p1 p4 p1 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 Q: p2 p1 p2 p3 p2 p1 p3 p4 p1 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 Q: p2 p1 p2 p3 p2 p1 p3 p4 p1 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 Q: p2 p1 p2 p3 p2 p1 p3 p4 p1 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 p4 p1 Q: p2 p1 p2 p3 p2 p1 p3 p3 p2 p1 p3 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 p4 p1 Q: p2 p1 p2 p3 p2 p1 p3 p3 p2 p1 p3 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 p4 p1 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Q: p2 p1 p2 p3 p2 p1 p3 p3 p2 p1 p3 p3 p2 p1 Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 p4 p1 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Q: p2 p1 p2 p3 p2 p1 p3 p3 p2 p1 p3 p3 p2 p1 Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 p4 p1 p2 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Q: p2 p1 p2 p3 p2 p1 p3 p3 p2 p1 p3 p5 p3 p2 p1 p5 Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) p5 p3 p4 p1 p2 P m uss einf p2 p1 p2 Q: ach sein p3 p2 p1 p3 ! p3 p2 p1 p3 Warum? p5 p3 p2 p1 p5 → Melkman’s Algorithmus fu ¨r konvexe Hu ¨llen 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) durch H sind alle Hu ¨llen CH(pm , . . . , pk ) rekonstruierbar linke Hu ¨lle analog fu ¨r k = m − 2, . . . , i 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung build und split Operationen build(i, j, P H): berechne iterativ rechte (linke) konvexe Hu ¨lle Q ← deque (pm+1 , pm , pm+1 ) /* CH(pm , . . . , pk ) im UZS */ H ← history stack /* merkt sich Operationen von Q */ for k = m + 2, . . . , j do while pk nicht rechts von top(Q) do pop-top(Q) while pk nicht rechts von bottom(Q) do pop-bottom(Q) if popped then push-top(Q, pk ); push-bottom(Q, pk ) durch H sind alle Hu ¨llen CH(pm , . . . , pk ) rekonstruierbar linke Hu ¨lle analog fu ¨r k = m − 2, . . . , i split(P H, k): nutze history stack der Teilhu ¨lle von P H, die pk enth¨alt um CH(pk , . . . , pm ) bzw. CH(pm , . . . , pk ) zu rekonstruieren pk pj pi 24 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie pm Einf¨ uhrung & Linienvereinfachung Laufzeit drei Operationen: DPHull(i, j, P H) pf ← farthest(P H, pi pj ) farthest(P H, `): finde weitesten if dist(pi pj , pf ) ≤ ε then von ` entfernten Knoten in P H return pi pj build(i, j, P H): erstelle Pfadhu ¨lle else von (pi , . . . , pj ) mit if f < m then Zwischenknoten pm = pb(i+j)/2c split(P H, f ) split(P H, k): trenne Pfad DPHull(f, j, P H) (pi , . . . , pj ) an Stelle k und gib build(i, f, P H) Pfadhu ¨lle fu ¨r Teilpfad, der pm DPHull(i, f, P H) enth¨alt zuru ¨ck else Satz 1: split(P H, f ) DPHull(1, n, P H) kann mit Laufzeit DPHull(i, f, P H) build(f, j, P H) O(n log n) implementiert werden. DPHull(f, j, P H) (Ann: (p , . . . p ) schnittfrei) 1 n → Beweis s. Tafel 25 Dr. Martin N¨ ollenburg · Vorlesung Algorithmische Kartografie Einf¨ uhrung & Linienvereinfachung
© Copyright 2024