240 likes | 365 Views
GIS-Seminar WS00/01 Routen- und Tourenplanung. - Motivation - Bedürfnisse - Spezifische Anforderungen - Algorithmen - Systemfunktionen mit ArcInfo - Bewertung. von Thorsten Berka. Motivation.
E N D
GIS-Seminar WS00/01Routen- und Tourenplanung - Motivation - Bedürfnisse - Spezifische Anforderungen - Algorithmen - Systemfunktionen mit ArcInfo - Bewertung von Thorsten Berka
Motivation Motivation ist der Wunsch, optimal im Sinne seiner persönlichen Bedürfnisse und der gewählten Fortbewegungsart von seinem Standort zu einem bestimmten Zielort zu gelangen. Oder wie Konfuzius sagen würde: „Der Weg ist das Ziel.“
Bedürfnisse Sind hier beispielsweise, möglichst • anzukommen • schnell am Ziel zu sein • wenig Energie (z.B.: Körperkraft, Benzin...) zu verbrauchen • wenig Gefahrenstellen zu passieren • über bestimmte andere Zielpunkte zu kommen • ...
Fortbewegungsarten Gemeint sind • Fahrrad • Auto • zu Fuß • Schiff • Eisenbahn • Flugzeug • ...
- Höhen von Tunneln und Unterführungen - ... Spezifische Anforderungen für die Routenplanung sind Straßennetze, die enthalten könnten: - Straßennamen - Entfernungen - Höhenunterschiede - Fahrradwege - Fußgängerzonen - Tempolimits - Baustellen
Adjazenzmatrix Adjazenzliste Algorithmus von Dijkstra Der Algorithmus von Dijkstra dient dazu, die kürzesten Entfernungen von einem Punkt aus zu allen anderen Punkten einer vorgegebenen Menge zu finden. Realisierung:
Algorithmus von Dijkstra B C D E F G A(A) 11 ∞ 12 13 ∞ ∞ 11 E1 = 11 P1 = B B --- 10 8 ∞ ∞ ∞ _________________________________________ A(A,B) --- 21 12 13 ∞ ∞ 12 E2 = 12 P2 = D D --- ∞ --- ∞ 6 ∞ __________________________________________ A(A,B,D) --- 21 --- 13 18 ∞ 13 E3 = 13 P3 = E E --- ∞ --- --- 7 ∞ __________________________________________ A(A,B,D,E) --- 21 --- --- 18 ∞ 18 E4 = 18 P4 = F F --- ∞ --- --- --- 9 ____________________________________________ A(A,B,D,E,F) --- 21 --- --- --- 27 21 E5 = 21 P5 = C C --- --- --- --- --- 12 ____________________________________________ A(A,B,C,..,F) --- --- --- --- --- 27 27 E6 = 27 P6 = G
Algorithmusvon Dijkstra 1.) Ausgangspunkt A 2.) Auflistung der direkten Verbindungen 3.) Vergleich der Abstände und Ermittlung des nächstgelegenen Punktes 4.) Aufnahme des neuen Punktes in die Menge und erneute Auflistung der Strecken unter Berücksichtigung dieses Punktes 5.) Eventuell Eliminierung „doppelter“ Strecken und so weiter...
Algorithmus von Dijkstra Vorteile des Algorithmus von Dijkstra: - Leicht zu implementieren - sehr effizienter Algorithmus - zwei verschiedene Kanten zwischen zwei Punkten möglich Problem dieses Algorithmus: - Nur ein Kriterium (meistens die Euklidsche Entfernung) wird berücksichtigt
} Nimmt ab O (log n) logarithmisch O (n) linear O (n log n) O (n²) quadratisch K o m p l e x i t ä t machbar Dijkstra } O (nª) polynomiell O (an) exponentiell O (nn) kritisch TSP Nimmt zu Komplexität
Traveling Salesman Problem Beim TSP geht es darum, durch eine Anzahl von vorgegebenen Städten eine Route zu legen, so daß ein möglichst kurzer Zyklus entsteht. Oder: Ein Kraftfahrer muß zu verschiedenen Städten je ein Produkt liefern. Zum Schluß muß er wieder zum Lager zurückkehren. Wie schafft er das am schnellsten?
Traveling Salesman Problem Voraussetzungen: - Lagekoordinaten der Sehenswürdigkeiten - alle Sehenswürdigkeiten sind miteinander verbunden Damit gibt es (n-1)! mögliche Routen.
Traveling Salesman Problem Zwei Arten von Algorithmen: - Systematische Algorithmen - Heuristische Algorithmen Heuristische Algorithmen: - Lokal Search - The Elastic Net
Traveling Salesman Problem Lokal Search: Erst einmal müssen für Lokal Search einige Voraussetzungen erfüllt sein, damit sie arbeitet werden können. 1.) Methode zur Generierung einer Anfangslösung u 2.) Kostenfunktion f(u) 3.) Operationsziel 4.) Nachbarschaftsfunktion N(u)
Startlösung Abbruchkriterium Auswahlverfahren der Lösungen Traveling Salesman Problem Lokal Search: - iterativer Algorithmus - generiert Lösungen aus der Nachbarschaft von u - Vergleich dieser mit der aktuellen Lösung u´ Programmschema von LS: Initialize (u); while not terminate (u) do u´ := generate (u); if accept (u´) then u := u´
Traveling Salesman Problem Lokal Search: Es gibt einzelne Untertypen von Lokal Search, welche sich vor allem durch das Auswahlverfahren der Lösungen unter- scheiden. Das sind: - Ramdom Walk - Simple Descent (Hill Climbing) - Steepest Descent - Simulated Annealing - Tabu Search
Traveling Salesman Problem Lokal Search: - Simple Descent (Hill Climbing): - klassisches Verfahren - Vergleichslösung zufällig aus Nachbarschaft - Lösung wird übernommen, wenn f(u´) < f(u) - dann u´ := u
Traveling Salesman Problem Lokal Search: - Simulated Annealing: - Erweiterung von Simple Descent - Akzeptanzniveau gesenkt - auch u´ mit f(u´) > f(u) können bei hinreichend kleinem | f(u´) - f(u) | zu u gesetzt werden - jetzt Ermittlung und Vergleich mehrerer Minima möglich
Traveling Salesman Problem Lokal Search: - Steepest Descent: - wie Simple Descent, folgt aber der optimalen Lösung aus der Nachbarschaft - Tabu Search: - wie Simulated Annealing, folgt aber der optimalen Lösung aus der Nachbarschaft O Simple Descent: http://www.sys.uea.ac.uk/~mdr/local.html
Traveling Salesman Problem The Elastic Net: - interativer Algorithmus - Funktionsweise: - Ein Kreis bestehend aus vielen Punkten wird über die Karte mit den Städten gelegt. - Jeder Punkt wird der Reihe nach durch zwei Kräfte beeinflußt - Die erste bewegt ihn zur nächstgelegenen Stadt - Die zweite zieht ihn zu seinen jeweiligen Nachbarn. O http://nuweb.jinr.dubna.su/~filipova/tsp.html Elastic Net
- Route durch mehrere Punkte bedingt möglich Routenplanung mit ArcInfo Ist Routenplanung mit ArcInfo möglich? Voraussetzungen sind gegeben: - Features entsprechen Kantenkosten - Knoten, Kanten und Features ergeben Netzwerke (=>Adjazenzliste) Für uns wichtige Prozeduren: - Bestimmung des kürzesten Weges zwischen zwei Punkten - Ausschließen bestimmter Kanten möglich
Bewertung Wie könnte Routenplanung in Zukunft aussehen? - Globale Route mittels TSP-Algorithmen - Lokal zwischen zwei benachbarten Punkten mit Algorithmus von Dijkstra - Ermittlung der Kantenkosten im Vorfeld mit einer anwenderspezifischen Formel Kantenkosten = α * Distanz + β * Steigung + γ * Panorama +... Für Fahrradbote: α >> β >> γ Für Oma (zum Einkauf): β > α >> γ Für Tourist: γ >> β >= α
Hinfahrt 14 km: Loser-Route 11 km: Winner-Route 16 km: Kaffee-Route 21 km: Heavy-Route 29 km: Route zur GIS-Tour
The End ?