Routing

Aus GCRouter
Version vom 24. Januar 2019, 08:42 Uhr von Admin (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<div id="content_view" class="wiki" style="display: block"> Der ursprüngliche Zweck für GCRouter war das optimale Routing über mehrere Caches hinweg. Der Na…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Der ursprüngliche Zweck für GCRouter war das optimale Routing über mehrere Caches hinweg. Der Name des Programmes zeugt noch von dieser Grundidee.
Der Begriff "Route" wird inzwischen jedoch nur noch für eine Strecke zwischen zwei Wegpunkten verwendet. Für eine komplette "Reise" zu allen Caches verwendet das Program nun den Begriff "[/Tour Tour]".

GCRouter kann die optimale, d.h. kürzeste Tour berechnen welche alle Geocaches miteinander verbindet. In der Fachwelt ist dies unter dem Namen "Travelling Salesman Problem" bekannt.
Um die Distanz zwischen zwei Caches zu ermitteln kann entweder die Luftlinie oder aber eine effektive Wegstrecke heran gezogen werden. Wegstrecken werden Online berechnet. Das Programm verwendet dazu die Dienste von Google, Open Street Map, Bing und/oder von CloudMade. Die Wegstrecken können mit der Option "Personenwagen", "Fahrrad" oder "Fusswgänger" ermittelt werden. Auch können Höhenunterschiede zwischen den Caches und sogar auf der Strecke von einem zum nächsten Cache berücksichtigt werden.
Eine einmal ermittelte Wegstrecke wird in einer lokalen Datenbank gespeichert und bei späteren Touren Optimierungen von dort genommen. Diese Massnahme ist nötig weil manche Online Routen Dienste nur eine begrenzte Anzahl von Anfragen (in der Gegend von wenigen Tausend) pro Tag erlauben.

Optionen / EInstellungen

RoutingOptionen.png

Auto Routing Algorithmus

Siehe http://www.lalena.com/AI/Tsp/

% Nahe WPs: Es macht keinen Sinn gleich zu Anfang genaue Routen von allen zu allen anderen Caches/Wegpunkten zu ermitteln. Einerseits würde dies viel zu lange dauern. Andererseits ist die Anzahl an Anfragen welche man an die Online Routen Provider pro Tag stellen darf, begrenzt.
Bei 50 Caches ergeben sich rund 50 * 49 * 2 (Hin und zurück) gleich 4900 Routen.
Bei 100 Caches sind es bereits 100 * 99 * 2 gleich 19'800 Routen. Google aber beschränkt seinen Dienst auf maximal zirka 5000 Routen Berechnungen pro Tag!
GCRouter verwendet einen Mischberieb zwischen echten Routen und Luftlinien. Die Luftlinien werden dabei künstlich verlängert damit sie gegenüber den echten Routen nicht zu gut da stehen. Am Anfang werden nur die echten Routen zu nahe liegenden Wegpunkten ermittelt. Das kann mitunter bereits recht lange dauern. Für alle anderen Verbindungen wird die Luftlinie genommen.
Sobald erste Resultate für eine optimale Tour vorliegen, werden die Verbindungen für welche noch keine echte Route vorliegen durch ebensolche ersetzt. Man kann dies daran erkennen, dass in der Karte die geraden Striche durch Strassenstriche (Nicht was du jetzt denkst!) ersetzt werden werden.
Welcher Pronzentsatz an Verbindungen gleich am Anfang als echte Routen ermittelt werden, steuert der "% Nahe WPs" Parameter.

Einzel Routen Berechnung

Optimierung: Welcher Dienst soll angefragt werden um eine Route zwischen zwei Caches zu ermitteln. Bei den "Optimal" Varianten werden mehrere Anbieter parallel angefragt und dann die kürzeste genommen.

Autobahnen meiden: Sollte klar sein!

Automatisch berechnen: Wenn dieser Parameter gesetzt ist, dann werden die Luftlinien nach und nach durch echte Route ersetzt. Sonst passiert dies nicht automatisch sondern erst wenn man auf den Button "Generate Routes" klickt.

Steigung / Gefälle: Steuert wie stark Steigungen und Gefälle zwischen den Caches und auf den Routen selber mit einbezogen werden. Die Zahl gibt an, um welchen Faktor Höhenunterschiede eine Verlängerung (bei Steigungen) oder eine Verkürzung (bei Gefällen) zur Folge haben.
Beispiel:
Der Wert bei Steigungen steht auf 10, der Wert bei Gefälle steht auf 5.
Eine Route zwischen zwei Caches ist effektiv 1200m lang. Um von einem zum anderen Cache zu gelangen muss man aber zunächst 15m runter und dann wieder 60m hoch. Die intern verwendete Länge der Route ergibt sich somit zu 1200m + 10 * 60m - 5 * 15m = 1200m + 600m - 75m = 1725m.