Routen- und Tourenplanung

Werbung
GIS-Seminar WS00/01
Routen- 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
• ...
Spezifische Anforderungen
für die Routenplanung sind Straßennetze, die enthalten könnten:
- Straßennamen
- Entfernungen
- Höhenunterschiede
- Fahrradwege
- Fußgängerzonen
- Tempolimits
- Baustellen
- Höhen von Tunneln und Unterführungen
- ...
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:
Adjazenzliste
Adjazenzmatrix
Algorithmus von Dijkstra
B
C
D
E
F
G
A(A)
∞
12
13
∞
∞
11
B
--10
8
∞
∞
∞
_________________________________________
A(A,B)
--21
12
13
∞
∞
12
D
--∞
--∞
6
∞
__________________________________________
A(A,B,D) --21
--13
18
∞
13
E
--∞
----7
∞
__________________________________________
A(A,B,D,E) --21
----18
∞
18
F
--∞
------9
____________________________________________
A(A,B,D,E,F) --------27
21
C
----------12
____________________________________________
A(A,B,C,..,F) ----------27
E1 = 11
P1 = B
E2 = 12
P2 = D
E3 = 13
P3 = E
E4 = 18
P4 = F
E5 = 21
P5 = C
E6 = 27
P6 = G
Algorithmus von 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
Komplexität
Nimmt ab
K
o
m
p
l
e
x
i
t
ä
t
Nimmt zu
O (log n)
O (n)
}
}
logarithmisch
linear
O (n log n)
O (n²)
quadratisch
O (nª)
polynomiell
O (an)
exponentiell
O (nn)
machbar
Dijkstra
kritisch
TSP
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.
Anzahl der
Sehenswürdigkeiten
5
6
7
8
9
10
11
12
13
14
15
20
50
Anzahl der
möglichen Routen
24
120
720
5.040
40.320
362.880
3.628.800
39.916.800
479.001.600
6.227.020.800
87.178.291.200
121.645.100.408.832.000
608.281.864.034.268.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000
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)
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:
Startlösung
Abbruchkriterium
Initialize (u);
while not terminate (u) do
u´ := generate (u);
if accept (u´) then
u := u´
Auswahlverfahren
der Lösungen
Traveling Salesman Problem
Lokal Search:
Es gibt einzelne Untertypen von Lokal Search, welche sich
vor allem durch das Auswahlverfahren der Lösungen unterscheiden. 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
Elastic Net
http://nuweb.jinr.dubna.su/~filipova/tsp.html
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
- Route durch mehrere Punkte bedingt 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:
γ >> β >= α
Route zur GIS-Tour
Hinfahrt 14 km:
Loser-Route 11 km:
Winner-Route 16 km:
Kaffee-Route 21 km:
Heavy-Route 29 km:
The End ?
Herunterladen