Geoinformatik 2 (GI-2) Kapitel 7 Ausgewählte Geo-Algorithmen - „Wege“ Univ.-Prof. Dr.-Ing. Wolfgang Reinhardt AGIS / Inst. Für Angewandte Informatik (INF4) Universität der Bundeswehr München [email protected] www.agis.unibw.de Inhalte • Routing • Traveling Salesman Problem • Map Matching 2 / 58 Kürzester, Schnellster, Wirtschaftlichster … Weg ROUTING 3 / 58 Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über vermaschte Nachrichtennetze. Insbesondere in paketvermittelten Datennetzen ist hierbei strenggenommen zwischen den beiden verschiedenen Prozessen Routing und Forwarding zu unterscheiden. Das Routing bestimmt den gesamten Weg eines Nachrichtenstroms durch das Netzwerk; das Forwarding beschreibt hingegen den Entscheidungsprozess eines einzelnen Netzknotens, über welchen seiner Nachbarn er eine vorliegende Nachricht weiterleiten soll. Häufig werden jedoch Routing und Forwarding unter dem Begriff „Routing“ miteinander vermengt; in diesem Fall bezeichnet Routing ganz allgemein die Übermittlung von Nachrichten über vermaschte Nachrichtennetze. Routing Algorithmen 4 / 58 Beispiel • Kürzester, schnellster, … Weg , hier zwischen München und Stuttgart • Vorhandenes Netz in Knoten/Kantenstruktur • Gewichtete Kanten 5 / 58 Begriffe, Definitionen Graph Ein Graph ist in der Graphentheorie ein Gebilde aus Knoten (auch Ecken oder Punkte), die durch Kanten verbunden sein können. Ein Graph G ist ein geordnetes Paar zweier Mengen: G = (V,E) Dabei bezeichnet V die Menge der im Graph enthaltenen Knoten und E die Menge der Kanten des Graphen. Die Bezeichnungen der Mengen entstammen dem Englischen: V für vertex (engl. für „Knoten“) und E für edge (engl. für „Kante“). E V Gerichteter Graph Ein Graph G = (V,E) heißt gerichtet, wenn zu jedem e є E das durch eine definierte Abbildung Ψ zugeordnete Paar (v,v') geordnet ist (v,v' є V). Anschaulich bedeutet ein gerichteter Graph, dass sich die Kante von einem Knoten zu einem Knoten durch einen Pfeil darstellen lässt. (Quelle: www.wikipedia.de) Routing Algorithmen 6 / 58 Prinzip von Routing Algorithmen im GIS Bereich Suche nach einer optimalen Verbindung von einem Start- zu einem Zielpunkt unter einer bestimmten Kostenfunktion /-modell Kürzester Weg Schnellste Verbindung Behindertengerechte Route Andere Ziel- / Kostenfunktionen in einem Graphen bestehend aus Knoten und Kanten, wobei die Kanten mit einem Gewicht (z.B. Strecke, Zeit …) versehen sind Routing Algorithmen 7 / 58 Routing Verfahren (Auswahl) Dijkstra Algorithmus Benannt nach seinem Erfinder Edsger W. Dijkstra Standardalgorithmus für Routing A* Algorithmus Informative Suche, der Algorithmus greift auf eine Heuristik zurück Zielgerichtete Suche, mit Punkten, die am wahrscheinlichsten zum Ziel führen Findet einen kürzesten Weg, nicht den kürzesten Weg Floyd- Warshall Algorithmus Weitere Routing Algorithmen 8 / 58 Dijkstra Edsger Wybe Dijkstra (* 11. Mai 1930 in Rotterdam; † 6. August 2002 in Nuenen, Niederlande) war ein niederländischer Informatiker (Mathematiker). Professor in Eindhoven, Tätigkeit in Leiden, Amsterdam. Er war der Wegbereiter der strukturierten Programmierung. (Quelle: www.wikipedia.de) 1972 erhielt er den Turing Award. 9 / 58 Dijkstra Algorithmus Kürzester Weg von A nach B in einem Graphen Routing Algorithmen 10 / 58 Dijkstra Algorithmus Geg.: Gerichteter Graph G, dessen Kanten mit Kosten attributiert sind (z.B. Strecke oder Zeit) Aufgabe: Berechnung des kürzesten Weges von einem Startknoten s zu einem Zielknoten z Einfachste Idee: alle Wege berechnen und den Kürzesten auswählen Feststellung: wenn der kürzeste Weg von s nach z über y geht, sind die Teilstücke auch immer der kürzeste Weg zwischen den beiden Punkten Dijkstra: Berechnung der kürzesten Wege von einem beliebigen Startpunkt zu allen anderen Punkten des Graphen Routing Algorithmen 11 / 58 Dijkstra Algorithmus Beispiel: Kürzester Weg von Do nach Du Startpunkt: Do Do 20 X Ha 80 Du 15 W 30 Du Neue kürzeste Verbindung nach Du über W und Ha „längerer“ Weg Routing Algorithmen 12 / 58 Dijkstra Algorithmus – ein Beispiel S Grüne Knoten: in Arbeit /bearbeitet Rote Knoten: Rand des jeweiligen TG 2 1 1 2 Grüne Kanten: Kürzeste Wege 7 3 6 8 9 4 5 Routing Algorithmen 13 / 58 Dijkstra Algorithmus Beschreibung des Algorithmus Bildung eines Teilgraphen TG in G, ausgehend von s - TG beschreibt den erkundeten Teil von G, bestehend aus: Allen Knoten die mit s verbunden sind, dabei bedeuten: Grüne Knoten: In Arbeit / bearbeitet Rote Knoten: Rand vom TG - Markierung der Kanten innerhalb des TG Grüne Kanten: Bilden kürzeste Wege Rote Kanten: „längere (eliminierte)“ Wege - In jedem Knoten wird der Abstand zu s verwaltet - TG wächst, indem in jedem Schritt der Randknoten mit minimalen Abstand von s ins Innere von TG übernommen wird - „Nachfolger“ übernommener Knoten werden Randknoten - Kürzeste Pfade zu grünen Knoten, die erneut erreicht werden, sind ggf. zu korrigieren Routing Algorithmen 14 / 58 Dijkstra Algorithmus Knoten: Blau -> Rot (Beispiel) Routing Algorithmen 15 / 58 Dijkstra Algorithmus Eigenschaften / Offene Fragen Algorithmus ist korrekt (Beweis-> Literatur) Zeitkomplexität: mit m - Anzahl der Kanten und n Anzahl der Knoten: O (m + n * log n ) bei Verwendung Heap Wie finden wir schnell - Alle Nachfolger eines Knoten? - Aktive Knoten? Wir benötigen : - Datenstrukturen für den Graphen - Datenstruktur für die aktiven Knoten und verbindungen Routing Algorithmen 16 / 58 Dijkstra Algorithmus Datenstrukturen Datenstruktur für den Graphen (mit Kosten) - Variante 1: Adjazenzmatrix - Variante 2: Adjazenzliste Datenstruktur für die Menge der aktiven Knoten: Heap auf Heap wird in dieser Vorlesung als Datenstruktur nicht weiter eingegangen (bekannt) Routing Algorithmen 17 / 58 Dijkstra Algorithmus Adjazenzmatrix Definition: Knoten, die durch eine Kante verbunden sind, heißen benachbart oder adjazent Definition: Die n x n Matrix A = {aij} heißt Adjazenzmatrix mit false. aij = true , falls vi und vj adjazent, sonst Routing Algorithmen 18 / 58 Dijkstra Algorithmus Adjazenzmatrix mit Kosten Bei gewichteten Graphen lassen sich die Kosten k direkt in die Adjazenzmatrix eintragen: aij = k , falls vi und vj adjazent, sonst ∞. Beachte: alle Diagonalelemente sind Null. Vorteil: Möglichkeit, in der Laufzeit O(1) festzustellen, ob eine Kante von vi nach vj existiert. Nachteil: hoher Platzbedarf O(n²) Routing Algorithmen 19 / 58 Dijkstra Algorithmus Beispiel zur Adjazenzmatrix Do Du Ha W D K Do 0 80 20 ∞ ∞ ∞ Du ∞ 0 ∞ ∞ 20 ∞ Ha ∞ ∞ 0 15 ∞ ∞ W ∞ 30 ∞ 0 150 80 D ∞ ∞ ∞ ∞ 0 15 K ∞ ∞ ∞ ∞ ∞ 0 Routing Algorithmen 20 / 58 Dijkstra Algorithmus Adjazenzliste Für jeden Knoten wird eine Liste seiner (Nachfolger-) Nachbarknoten abgespeichert. Der Zugriff auf die Listen erfolgt über ein Array der Länge n (n = Anzahl der Knoten) Vorteil: geringer Platzbedarf: O(n+m) (m Anzahl der Kanten) alle k Nachfolger eines Knotens sind in der Zeit O(k) erreichbar Nachteil: Um zu prüfen, ob vi und vj benachbart sind, muss die Adjazenzliste von vi durchlaufen und nach vj gesucht werden Aber: Für Dijkstra ist eine Adjazenzliste ideal Routing Algorithmen 21 / 58 Dijkstra Algorithmus Beispiel zur Adjazenzliste Do Du Ha W D K Do 0 80 20 ∞ ∞ ∞ Du ∞ 0 ∞ ∞ 20 ∞ Ha ∞ ∞ 0 15 ∞ ∞ W ∞ 30 ∞ 0 150 80 D ∞ ∞ ∞ ∞ 0 15 K ∞ ∞ ∞ ∞ ∞ 0 Do Du 80 Du Ha W D K Routing Algorithmen 22 / 58 Ha 20 Dijkstra Algorithmus Erweiterung Dijkstra zur Behandlung von realen Straßennetzen Reale Netze stellen besondere Anforderungen - Größe des Netzwerkes (Effizienz) Dijkstra mit Geometrie - Straßenverkehrsordnung (Abbiege- und Wendeverbote) Abbildung realer Straßennetze auf Graphen Ansätze: Modifikation des Graphen Modifikation von Dijkstra Routing Algorithmen 23 / 58 Dijkstra Algorithmus Dijkstra Erweiterung Dijkstra nutzt die Geometrie der Knoten/Kannten nicht aus Richtungslos: Dijkstra berücksichtigt nicht die Richtung von Startknoten zum Zielknoten Erweiterung (Heuristik): Dijkstra mit Geometrie verwendet geometrische Informationen, das bedeutet, dass der Weg „in die andere Richtung“ nur noch halb so weit mitbestimmt wird. Worst case: keine Einsparung Führt zum A* Algorithmus, dieser verwendet der eine Schätzfunktion (Heuristik), um zielgerichtet zu suchen Routing Algorithmen 24 / 58 Dijkstra Algorithmus Anwendung in realen Netzen Abbiegeverbot - Änderung des Algorithmus - Änderung des Graphen Transformation des Graphen mit Abbiegeverbot in einen Graphen ohne Abbiegeverbot (s. Literatur) Anschließend Anwendung von Standard Dijkstra Einbahnstraßen - Gleiches Prinzip wie oben Standardalgorithmus für Routing Routing Algorithmen 25 / 58 Optimale Route: Problem des Handlungsreisenden TRAVELLING SALESMAN PROBLEM (TSP) 26 / 58 Das Problem • Gegeben: n Orte mit geogr. Position • Gesucht: die optimale Route (für den Nikolaus) • Optimal: möglichst kurze/kostengünstige Reisestrecke Historie: • Erste Erwähnung um 1830 • explizite Erwähnung als math. Optimierungsproblem durch Karl Menger (1930) • Ab 1950 große wiss. Popularität 27 / 58 Lösungsansätze • Modellierung als Graph • Beispiel: mögliche Rundreisen für 4 Städte 28 / 58 Lösungsansätze • Die “Holzhammer-Methode” (auch brute-force oder naiveMethode) • Bei n Orten: (n−1)! = 2 · 3 · 4 · . . . · (n−1) verschiedene Möglichkeiten! • Mit Paaren von ident. Routen (s.o), d.h: (n-1)! / 2 Beispiele: Nur für kleine n anwendbar! 29 / 58 Lösungsansätze • • • • Ansätze über Dynamisches Programmieren (s. Lit.) Strenge Lösung Steigt exponentiell mit Anzahl von Zwischenstationen n Für größere Anzahl von Zwischenstationen (ab. ca. 15-20) unbrauchbar 30 / 58 Lösungsansätze über MST • Einsatz von Verfahren, die nicht unbedingt die optimale Rundreise finden, aber eine relativ gute Lösung berechnen: Heuristiken • Beispiel: Minimum Spanning Tree (MST) • Gegeben sei ein Graph G = (V,E) • MST ist dann ein (bzw. jeder) Subgraph von G, der alle Knoten über eine Folge von Kanten verbindet. Beispiel eines Graphen und eines MST • Standard Algorithmen: Prim's algorithm and Kruskal's algorithm (Greedy Algorithmen) 31 / 58 Beispiel: Algorithmus von Kruskal Ausgangsgraph Auswahl der kürzesten Kante (Hier A-D), (zufällig, bei mehreren gleichen) Auswahl der nächsten kürzesten Kante (hier C-E), die mit den vorher ausgewählten keinen Kreis bilden http://de.wikipedia.org/wiki/Algorithmus_von_Kruskal 32 / 58 Beispiel: Algorithmus von Kruskal Auswahl der nächsten kürzesten Kante (hier D-F), die mit den vorher ausgewählten keinen Kreis bilden Auswahl der nächsten kürzesten Kante (hier A-B), die mit den vorher ausgewählten keinen Kreis bilden Auswahl der nächsten kürzesten Kante (hier B-E), die mit den vorher ausgewählten keinen Kreis bilden 33 / 58 Beispiel: Algorithmus von Kruskal Auswahl der nächsten kürzesten Kante (hier E-G), die mit den vorher ausgewählten keinen Kreis bilden Ergebnis (MST) Beweis und weitere Eigenschaften s. Lit. 2 Wesentliche Schritte: Sortierung und „Kreisprüfung“ Ablauf: 34 / 58 Travelling Salesman Problem (TSP) Minimum Spanning Tree (MST) Nun löst das aber noch nicht das TSP-Problem! Aber es hilft uns weiter 35 / 58 Lösungsansatz TSP • Geg.: vollständigen Graph G = (V,E) wobei V die Menge der Städte ist und G =V ×V alle direkten Reisewege darstellt • Nächster Schritt: Berechnung eines MST http://www.informatikjahr.de/algorithmus/ (40. Algorithmus) MST 36 / 58 Lösungsansatz TSP (Zwischenbemerkungen) • Eine Rundreise wird durch einen Kreis in G dargestellt, der jeden Knoten genau einmal • • • • enthält. Ein solcher Kreis wird auch als Hamilton-Kreis bezeichnet. Es gibt einen einfachen Zusammenhang zwischen möglichen Rundreisen (d.h. Hamilton-Kreisen) und speziellen Teilgraphen von G, den sogenannten aufspannenden Bäumen (MST). Wie oben dargestellt ist ein minimal aufspannender Baum (MST) ein kreisfreier Teilgraph, der alle Knoten von G miteinander verbindet und bei dem die Summe aller Kantenkosten minimal sind. Wenn man aus einer Rundreise (z.B. für TSP) eine beliebige Kante entfernt, so erhält man einen sogenannten Hamilton-Pfad. Da ein Hamilton-Pfad die Bedingungen eines aufspannenden Baumes (MST) erfüllt, sind dessen Gesamtkosten mindestens so groß wie die eines minimal aufspannenden Baumes. Mit anderen Worten, die Gesamtkosten eines minimal aufpannenden Baumes sind kleiner oder gleich den Gesamtkosten eines bestmöglichen Hamilton-Pfades und damit auch einer optimalen Rundreise. D.h. wir können die TSP-tour über den MST konstruieren! 37 / 58 Algorithmus TSP • Im nächsten Schritt konstruiert man aus dem Baum T (MST) eine erste Tour, indem man T einfach entlang seiner Kanten einmal umrundet (siehe Abbildung). Die Gesamtlänge dieser Reise ist offensichtlich genau doppelt so groß ist wie die Kosten von T, da man jede Kante zweimal verwendet. Aus den Zwischenbemerkungen schließen wir, dass die Gesamtlänge dieser Reise höchstens doppelt so groß wie die Länge einer optimalen TSP-Rundreise ist. 38 / 58 Algorithmus TSP • Die im letzten Schritt konstruierte Tour ist offensichtlich nicht optimal und eigentlich sogar keine korrekte Rundreise, da sie jeden Knoten zweimal besucht. Man kann sie aber leicht in eine korrekte und im allgemeinen auch kürzere Rundreise umwandeln, indem man jeweils drei aufeinanderfolgende Knoten a,b,c untersucht und testet, ob man die beiden Kanten a−!b−!c durch die Abkürzung a −!c ersetzen kann, ohne dass der Knoten b isoliert wird. Das Resultat dieses Schrittes löst unser Problem des TSP! 39 / 58 Lösungsansatz TSP • Der Algorithmus (Heuristik) findet eine Rundreise, die nicht mehr als doppelt so lang wie die kürzeste Reise ist! • Beweise und weitere Eigenschaften s. Lit. (http://www.informatikjahr.de/algorithmus/ (40. Algorithmus) Ein Demo-Programm, mit dem die Abbildungen dieses Artikels erzeugt wurden http://www-i1.informatik.rwth-aachen.de/~algorithmus/Algorithmen/algo40/tsp.exe Weitere Links: • Wikipedia: Problem des Handlungsreisenden http://de.wikipedia.org/wiki/Problem_des_Handlungsreisenden • Eine Einführung von Grötschel und Padberg (Spektrum der Wissenschaft) http://elib.zib.de/pub/UserHome/Groetschel/Spektrum/index2 40 / 58 Zuordnung von Positionen, Trajektorien zu GIS-Daten / digitalen Karten MAP MATCHING 41 / 58 Ziel Mit Hilfe von Map Matching Verfahren werden die mittels Sensoren aufgenommenen Wegestücke / Punkte auf die Geometrien der Vektordaten im Navigationssystem bezogen Map Matching Verfahren spielen eine wichtige Rolle, z.B bei der Fahrzeugnavigation Visualisierung der „gematchten“ Position 42 / 58 Beispiel Gegeben: • Punkte • Trajektorien • Bzw. deren Ableitungen Gesucht: • Zuordnung zum Netz der Vektordaten • Punkte • Pfad (Folge von Kanten) Zu beachten: • Art der Sensoren (z.B. GPS / INS) • Genauigkeit der Daten und Sensoren 43 / 58 Aufgabe Auf welchem Wegestück ( Kante) befinde ich mich zur Zeit? Wo befinde ich mich auf dem Wegestück (z.B. Straßenabschnitt)? Wird z.B. für die Navigationsanweisungen benötigt 44 / 58 Begriffsdefinitionen Map Matching Mit Kartenabgleich, Karteneinpassung oder auch Map Matching wird ein Verfahren bezeichnet, welches die durch eine Ortung gemessene Position eines Objektes mit den Ortsinformationen einer digitalen Karte abgleicht. (Quelle: http://de.wikipedia.org/wiki/Map_Matching) Ortung Unter Ortung versteht man die Bestimmung der Position eines Objekts, was beispielsweise Personen, Fahrzeuge (Schiff, Flugzeug, Rakete, Auto), Gegenstände, Signale oder Krankheitsherde sein können. Besonders bedeutsam ist dies für die Navigation. (Quelle: http://de.wikipedia.org/wiki/Ortung) 45 / 58 Ortung in Fahrzeugnavigationssystemen Schematische Darstellung GIS heutige „low cost“ Navigationssysteme 46 / 58 Ortung in Fahrzeugnavigationssystemen Quelle: Meyer zu Hörste, Michael and Gerlach, DLR, Katrin, NavAge 2008) 47 / 58 Sensorik (1) Radsensoren Bestimmung der Geschwindigkeit des KFZ und der zurückgelegten Strecke Nutzung der ABS, ESP Signale; elektronisches Tacho-Signal Relativ ungenau Moderne Odometer (Correvit) Bildverarbeitungsbasiert Wesentlich höhere Genauigkeit Elektronischer Kompass Orientierung des KFZ bezüglich magnetisch Nord 48 / 58 Sensorik (2) Kreisel Bestimmung von Richtungsänderungen Verschiedene Arten von Kreiseln (Gyro): GPS - Mechanische Kreisel - Piezoelektronische Vibrationskreisel - Faseroptische Kreisel Eignet sich im urbanen Gebieten nur bedingt zur Fahrzeugnavigation, durch Abschattungen, Mehrwegeeffekte und Änderungen der Satellitenkonstellation treten immer Sprünge in den Koordinaten auf DGPS (differentielles GPS) TrägheitsNavigationsSystem (INS) / MEMS (Micro-Electronic-Mechanical Systems) Kombination mehrerer Sensoren: z. B. durch Kalman Filter 49 / 58 Zuordnung von Punkten • Bestimmung der nächstliegenden Kante • Projektion auf die nächstliegende Kante Kante A Position auf Kante Geg. Position Kante B 50 / 58 Darstellungen der zurückgelegten Strecke (1) • Kartesische Koordinaten (Abbildung der zurückgelegten Strecke) X Y Winkelbild • Krümmungsbild Bogenlänge 51 / 58 Darstellungen der zurückgelegten Strecke (2) Welche Art der Darstellung am besten geeignet ist, hängt von den verwendeten Sensoren und der geforderten Genauigkeit ab GPS auf der Koordinatenebene (zurückgelegte Strecke) Kreisel + Rad Winkelbild, Krümmungsbild 52 / 58 Zusätzliche Informationen Es gibt zusätzliche Informationen, die das Map Matching verkürzen können Erlaubte Fahrtrichtungen (Einbahnstrassen, Abbiegeverbote, getrennte Fahrspuren) Bsp.: 2 Einbahnstrassen, Fahrzeugposition in der Mitte, durch Fahrtrichtung Entscheidung auf welcher Straße bewegt sich da KFZ Geschwindigkeit des KFZ - z.B. Parallelstrasse zur Autobahn Zusatzinformationen sehr wichtig und hilfreich! 53 / 58 Map Matching - Prinzipielle Möglichkeiten Ermittlung des zum gemessenen Punkt nächstgelegen in der karte („next neigbour“) falls beide Informationen sehr genau Vergleich der zurückgelegten Strecke (Messung – Karte/digitale Daten) Mit verschiedenen Transformationsalgorithmen Karteneinpassung mit weiteren Profilen Vergleich der Winkelbilder Vergleich der Krümmungsbilder Die Wahl des Verfahren hängt im Wesentlichen von der verwendeten Sensorik und deren Charakteristik (Auflösung, Genauigkeit, …) ab 54 / 58 Vergleich der zurückgelegten Strecke Unterteilung der Strecke in Linienelemente mit konstanter Länge für Soll- und Ist-Strecke Bestimmung der Transformationsparameter mittels Ausgleichung Vergleich der Soll- und Ist-Strecke mit verschiedenen Transformationen und dadurch unterschiedlichen Freiheitsgraden (Translation, ebene Ähnlichkeitstransformation, affine Transformation) Verfahren Translation Ebene Ähnlichkeitstransformation Affine Transformation Weiteres: http://elib.uni-stuttgart.de/opus/volltexte/2001/818/pdf/Czommer_Diss.pdf 55 / 58 Ablauf beim Map Matching Messung Digitale Karte Datenaufbereitung Auswahl möglicher Trassen Datenaufbereitung Zuordnung der Messung zu jeder möglichen Trasse Festlegen der wahrscheinlichsten Trasse •Zuordnungsgenauigkeit, Plausibilität der geschätzten Parameter 56 / 58 Eignung der Map Matching Verfahren Heutige Situation: Bei GPS mit neuen Empfängertechniken (z.B. SiRF III) reicht für das Map Matching im allgemeinen der vergleich der Koordinaten, oder von Strecken aus Für „Sonderanwendungen“ ist Vergleich der Winkel- bzw. Krümmungsbilder (abh. von Sensorik) erforderlich Aber: Problemfälle, z.B.: Kandidat 1 P Kandidat 2 Lösungswege, s. oben 57 / 58 Literatur s. Folien Alle externen links zuletzt besucht im Nov. 2011 58 / 58 Vielen Dank für die Aufmerksamkeit! Weitere Fragen? 59 / 58