Mini-Routenplaner ...
Mini-Routenplaner ...
... hat sich schon mal jemand mit dem Thema beschäftigt?
Muss ja das Rad nicht neu erfinden, falls jemand Ideen oder Anregungen hat.
Als Teil eines Gesamtprojektes möchte ich zwischen 50 und 100 Städte miteinander verbinden und eine Routenplanungslösung anbieten ...
Frdl. Gruss
Hiltwin
Muss ja das Rad nicht neu erfinden, falls jemand Ideen oder Anregungen hat.
Als Teil eines Gesamtprojektes möchte ich zwischen 50 und 100 Städte miteinander verbinden und eine Routenplanungslösung anbieten ...
Frdl. Gruss
Hiltwin


Ist dir der Umfang eigentlich bewusst, was solch ein Teil überhaupt
können muss? Wobei das schwerste (Zeitraubendste) wohl erst mal
ist, die ganzen Daten überhaupt zu bekommen

Oder willste das mit einer öhm Fantasielandschaft machen?
Oder was hast du da genau vor ... beschäftigt hab ich mich damit noch
nicht, werd ich aber wohl auch nicht, da es schon einige Routenplaner
gibt und manche Räder sind zu groß, um sie noch mal selber zu
erfinden

MFG PMV
Also ich finde deine Idee richtig gut.
ABER das ist nich so leicht wie man sich sowas denkt.
Du mußt beachten das du die ganzen GPS Daten aller Strassen und so weiter brauchst um auch genau arbeiten zu können.
Solche Daten bekommst du nicht geschenkt. Ich habe selber mal in einem Team mitgearbeitet wo wir für Flughäfen eine Software entwickelt habenund da haben allein die GPS daten für die Start- und Landebahnen 5000€ gekostet.
Und das wäre nur eins der Probleme die du da zu lösen hättest.
Gruß,
Nico
ABER das ist nich so leicht wie man sich sowas denkt.
Du mußt beachten das du die ganzen GPS Daten aller Strassen und so weiter brauchst um auch genau arbeiten zu können.
Solche Daten bekommst du nicht geschenkt. Ich habe selber mal in einem Team mitgearbeitet wo wir für Flughäfen eine Software entwickelt habenund da haben allein die GPS daten für die Start- und Landebahnen 5000€ gekostet.
Und das wäre nur eins der Probleme die du da zu lösen hättest.
Gruß,
Nico
Ohje ....
... ich habe wohl das falsche Wort gewählt ;o)
Routenplaner ist dann nicht richtig, sondern Reiseplaner ...
Mir schwebt im entferntesten vor, noch mit GPS-Daten zu arbeiten ....
Also, vielmehr folgendes
Tabelle ausm alten Westermann-Atlas
Entfernung Hamburg - Berlin 250 km
Entfernung Hamburg - Hannover 180 km
Entfernung Hamburg - Bremen 130 km
Entfernung Hamburg - Köln 450 km
Entfernung Bremen - Hannover 160 km
Entfernung Hamburg - Berlin 450 km
Entfernung Köln - Hannover 330 km
Entfernung Kassel - Hannover 160 km
Entfernung Würzburg - Kassel 190 km
Entfernung Würzburg - Köln 180 km
(hatte den Westermann-Atlas nicht vor mir, Entfernungen sind geschätzt ;o) )
Und nun errechne mir, in welcher Reihenfolge ich die beteiligten Städte am sinnvollsten abfahre, um so wenig wie möglich Kilometer zu fahren.
Evtl. noch ergänzt mit dem Vorschlag: Lass Hannover weg - ist sowieso zu provinziell
Das soll mehr so in die Richtung gehen ...
Routenplaner ist dann nicht richtig, sondern Reiseplaner ...
Mir schwebt im entferntesten vor, noch mit GPS-Daten zu arbeiten ....
Also, vielmehr folgendes
Tabelle ausm alten Westermann-Atlas
Entfernung Hamburg - Berlin 250 km
Entfernung Hamburg - Hannover 180 km
Entfernung Hamburg - Bremen 130 km
Entfernung Hamburg - Köln 450 km
Entfernung Bremen - Hannover 160 km
Entfernung Hamburg - Berlin 450 km
Entfernung Köln - Hannover 330 km
Entfernung Kassel - Hannover 160 km
Entfernung Würzburg - Kassel 190 km
Entfernung Würzburg - Köln 180 km
(hatte den Westermann-Atlas nicht vor mir, Entfernungen sind geschätzt ;o) )
Und nun errechne mir, in welcher Reihenfolge ich die beteiligten Städte am sinnvollsten abfahre, um so wenig wie möglich Kilometer zu fahren.
Evtl. noch ergänzt mit dem Vorschlag: Lass Hannover weg - ist sowieso zu provinziell

Das soll mehr so in die Richtung gehen ...
Ich denke mit der Tabelle aus dem Atlas wird das nix den das sind angaben für "Luftlinie".
Also die nehmen da die netfernung von Stadtmitte zu Stadtmitte auf dem direkten geraden weg. Wenn du aber nun mit dem Auto von München nach Hamburg fährst kannst du ja nich qeur feld ein fahren sondern mußt normale Strassen fahren die ja Kurven und so haben und somit stimmt die angabe der km nicht aus dem atlas.
Gruß Nico
Also die nehmen da die netfernung von Stadtmitte zu Stadtmitte auf dem direkten geraden weg. Wenn du aber nun mit dem Auto von München nach Hamburg fährst kannst du ja nich qeur feld ein fahren sondern mußt normale Strassen fahren die ja Kurven und so haben und somit stimmt die angabe der km nicht aus dem atlas.
Gruß Nico
das ist mir auch schon klar ;o) werd dann natürlich als richtige Entfernung nen richtigen Routenplaner von Stadtmitte zu Stadtmitte zu Rate ziehen. Es geht halt nicht darum, die Route auf die jeweils nächste kommende Kreuzung zu beschreiben, sondern nur als Teilangebot die Routenplanung als sinnvolle Abfolge der gewählten Ziele auf Reihe zu bringen ...
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Angenommen man hat 29 Städte. Dann gibt es 29! mögliche Wege, von
denen du die Entfernungen ausmessen müsstest. Und immer dran
denken: 29! = 8.841.761.993.739.701.954.543.616.000.000. In Worten
über 8 Quintillionen Möglichkeiten. Da brauchst du also ein paar Jahre um
die günstigste Fluglinie auszurechnen. Ab da gehts also ran ans
optimieren.
denen du die Entfernungen ausmessen müsstest. Und immer dran
denken: 29! = 8.841.761.993.739.701.954.543.616.000.000. In Worten
über 8 Quintillionen Möglichkeiten. Da brauchst du also ein paar Jahre um
die günstigste Fluglinie auszurechnen. Ab da gehts also ran ans
optimieren.
- Sylvia
- verheiratet<br>1. PureGolf-Gewinner
- Beiträge: 487
- Registriert: 29.08.2004 09:42
- Wohnort: Old Europe
Das Thema "Pathfinding" ist hochinteressant und nicht so trivial, wie
allgemein angenommen. Dennoch kann es in seiner einfachsten Methode
(BruteForce) auf minimalen Aufwand reduziert werden. Soll heissen:
Kleiner Code, aber hoher Rechenaufwand.
Z.B. 4 Punkte stehen in Verbindung zueinander: A B C D
Alle Informationen (Entfernung) sind bekannt:
A/B=100 Km
A/C=80
A/D=50
B/C=60
B/D=80
C/D=90
Aufgabenstellung: Alle Punkte auf dem kürzesten Wege miteinander
verbinden.
Die BruteForce-Methode bildet in diesem Fall alle Variationen (nicht Kombinationen!!
Irgendwie verfolgt mich dieses Thema, guckst du hier):
4! (bedeutet Fakultät von 4) = 1*2*3*4 = 24
und berechnet die jeweilige Gesamtentfernung für jede dieser
Variationen. Die Variation mit der kleinsten Gesamtentfernung ist das
gesuchte Ergebnis.
Leichter gesagt als getan (für den Computer). 4 oder 8 oder 10 Ziele so
zu routen ist ja noch ein Kinderspiel (8!=40320 Variationen, 10!=3628800).
Sobald es aber mehr Varianten sind (wie hier: 50! = 3*10 hoch 63) gehen
jedem GHz Bolzen die Lötstellen auf.
Auf dem Gebiet der Schachprogrammierung (aber nicht nur hier) gibt es
div.Methoden, um die Folgen des BruteForce-Prozess einzudämmen.
Stichwort: Alpha/Beta. Alpha/Beta ist, wenn man es einmal begriffen hat,
recht einfach anzuwenden (wer mehr wissen möchte ->Google).
Um die Funktion von Alpha/Beta in einem Satz zu beschreiben: Wenn ich
an einem bestimmten Punkt feststelle, dass das Teilergebnis bereits
schlechter als das bisherige beste (Gesamt-)Ergebnis ist, dann kann ich
die Berechnung bereits an dieser Stelle abbrechen und wieder hierarchisch
eine Iterationsebene (bei der Bildung der Variationen) zurückgehen.
allgemein angenommen. Dennoch kann es in seiner einfachsten Methode
(BruteForce) auf minimalen Aufwand reduziert werden. Soll heissen:
Kleiner Code, aber hoher Rechenaufwand.
Z.B. 4 Punkte stehen in Verbindung zueinander: A B C D
Alle Informationen (Entfernung) sind bekannt:
A/B=100 Km
A/C=80
A/D=50
B/C=60
B/D=80
C/D=90
Aufgabenstellung: Alle Punkte auf dem kürzesten Wege miteinander
verbinden.
Die BruteForce-Methode bildet in diesem Fall alle Variationen (nicht Kombinationen!!
Irgendwie verfolgt mich dieses Thema, guckst du hier):
4! (bedeutet Fakultät von 4) = 1*2*3*4 = 24
und berechnet die jeweilige Gesamtentfernung für jede dieser
Variationen. Die Variation mit der kleinsten Gesamtentfernung ist das
gesuchte Ergebnis.
Leichter gesagt als getan (für den Computer). 4 oder 8 oder 10 Ziele so
zu routen ist ja noch ein Kinderspiel (8!=40320 Variationen, 10!=3628800).
Sobald es aber mehr Varianten sind (wie hier: 50! = 3*10 hoch 63) gehen
jedem GHz Bolzen die Lötstellen auf.
Code: Alles auswählen
OpenConsole()
Dim POI(4,4) ; Points of Interest's
a=1 ; Ort A
b=2 ; Ort B
c=3 ; Ort C
d=4 ; Ort D
; die Entfernungen der Orte zueinander
; in eine Tabelle eintragen
POI(a,b)=100: POI(b,a)=100
POI(a,c)=80 : POI(c,a)=80
POI(a,d)=50 : POI(d,a)=50
POI(b,c)=60 : POI(c,b)=60
POI(b,d)=80 : POI(d,b)=80
POI(c,d)=90 : POI(d,c)=90
MinKm =100+60+90 ; vorbelegen mit Entfernung Route "ABCD"
Route$="ABCD" ; beste bisherige Route
; Routing, Bildung aller Variationen
For V1=a To d
For V2=a To d
For V3=a To d
For V4=a To d
; um zu verhindern, dass 2x der gleiche Ort angefahren wird...
If V1=V2 Or V1=V3 Or V1=V4 Or V2=V3 Or V2=V4 Or V3=V4
Else
AktEntfernung=POI(V1,V2)+POI(V2,V3)+POI(V3,V4)
If AktEntfernung<MinKm
; neue, kürzere Route gefunden
MinKm=AktEntfernung
Route$=Chr(64+V1)+Chr(64+V2)+Chr(64+V3)+Chr(64+V4)
EndIf
EndIf
Next V4
Next V3
Next V2
Next V1
PrintN("kuerzeste Route: "+Route$+" mit "+Str(MinKm)+" Km")
Input()
CloseConsole()
Auf dem Gebiet der Schachprogrammierung (aber nicht nur hier) gibt es
div.Methoden, um die Folgen des BruteForce-Prozess einzudämmen.
Stichwort: Alpha/Beta. Alpha/Beta ist, wenn man es einmal begriffen hat,
recht einfach anzuwenden (wer mehr wissen möchte ->Google).
Um die Funktion von Alpha/Beta in einem Satz zu beschreiben: Wenn ich
an einem bestimmten Punkt feststelle, dass das Teilergebnis bereits
schlechter als das bisherige beste (Gesamt-)Ergebnis ist, dann kann ich
die Berechnung bereits an dieser Stelle abbrechen und wieder hierarchisch
eine Iterationsebene (bei der Bildung der Variationen) zurückgehen.
Zuletzt geändert von Sylvia am 12.12.2005 10:05, insgesamt 1-mal geändert.
Basic Pur = PureBasic
Wie kommst Du auf die Fantastillionen Möglichkeiten???NicTheQuick hat geschrieben:Angenommen man hat 29 Städte. Dann gibt es 29! mögliche Wege, von
denen du die Entfernungen ausmessen müsstest. Und immer dran
denken: 29! = 8.841.761.993.739.701.954.543.616.000.000. In Worten
über 8 Quintillionen Möglichkeiten. Da brauchst du also ein paar Jahre um
die günstigste Fluglinie auszurechnen. Ab da gehts also ran ans
optimieren.
Ich würd die Entfernungen wie folgt bei 29 Städten ermitteln:
Stadt 29: 28 mal Entfernungen
Stadt 28: 27 mal Entfernungen
Stadt 27: 26 mal Entfernungen
Stadt 2: 1 mal Entfernung
ermitteln. Das gibt nach Excel 406 zu ermittelnde Wegstrecken ...
Danke Sylvia, hab noch keine Zeit gefunden, genau nachzulesen. Mach ich noch ...
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Sylvia hats ja genauer erklärt. Einfach durchlesen.
Wenn du 29 Städte hast, dann hast du 29 Möglichkeiten anzufangen. Bist
du bei dieser Stadt, hast du noch 28 Möglichkeiten für die nächste Stadt,
bist du auch dort gewesen sind es noch 27 Möglickeiten, ..., und wenn du
die zweitletzte Stadt angereist hast, dann gibt es nur noch eine
Möglichkeit. Das sind dann 29*28*27*...*3*2*1 Möglichkeiten, also 29!,
also 8.841.761.993.739.701.954.543.616.000.000.
Ich mache im Mathe-LK gerade Wahrscheinlichkeitsrechnung und
Kombinatorik und bin mir somit sehr sicher, dass ich da richtig liege.
Probier das ganze doch mal mit 4 Möglichkeiten aus, dann kommst du auf
24 Möglichkeiten, wie du deine Reise durchführen könntest.
Wenn du 29 Städte hast, dann hast du 29 Möglichkeiten anzufangen. Bist
du bei dieser Stadt, hast du noch 28 Möglichkeiten für die nächste Stadt,
bist du auch dort gewesen sind es noch 27 Möglickeiten, ..., und wenn du
die zweitletzte Stadt angereist hast, dann gibt es nur noch eine
Möglichkeit. Das sind dann 29*28*27*...*3*2*1 Möglichkeiten, also 29!,
also 8.841.761.993.739.701.954.543.616.000.000.
Ich mache im Mathe-LK gerade Wahrscheinlichkeitsrechnung und
Kombinatorik und bin mir somit sehr sicher, dass ich da richtig liege.
Probier das ganze doch mal mit 4 Möglichkeiten aus, dann kommst du auf
24 Möglichkeiten, wie du deine Reise durchführen könntest.