Vorlesung Algorithmische Kartografie Einführung

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
niedermann@kit.edu
Raum 309
Sprechzeiten: individuell per Mail vereinbaren
Martin N¨ollenburg
noellenburg@kit.edu
Raum 319
Sprechzeiten: individuell per Mail vereinbaren
2
Dr. Martin N¨
ollenburg · Vorlesung Algorithmische Kartografie
Einf¨
uhrung & Linienvereinfachung
AlgoKarto-Team
Dozenten
Benjamin Niedermann
niedermann@kit.edu
Raum 309
Sprechzeiten: individuell per Mail vereinbaren
Martin N¨ollenburg
noellenburg@kit.edu
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