Dijkstra Programmierung für S-Bahn-Netz

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Pythela
User
Beiträge: 5
Registriert: Donnerstag 7. Januar 2021, 18:51

Hallo :)

Ich bin neu hier und auch noch recht unerfahren im Programmieren.
Nun soll ich aber für ein Projekt kürzeste Strecken in einem S-Bahn-Netz ermitteln und hierfür habe ich den Dijkstra Algorithmus gefunden. Kann mir jemand sagen, ob ich dafür Networkx brauche oder es auch einfach so in Python programmieren kann? :)

Viele Grüße und danke schon mal!
Benutzeravatar
ThomasL
User
Beiträge: 1367
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Wenn du das "einfach so" programmieren kannst, dann mach das. ;-)
Warum aber das Rad neu erfinden wollen?
In NetworkX ist alles drin was du brauchst.
Und imho würde ich sagen, benötigst du weniger Zeit um dich in NetworkX einzuarbeiten als es nach zu programmieren.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
DeaD_EyE
User
Beiträge: 1022
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Ich habe das einmal ausprobiert.

Erst musst du den Graphen aufbauen, dann kannst du die Funktion networkx.algorithms.shortest_paths.generic.shortest_path nutzen um die kürzeste Strecke auszugeben.

Beispiel:

Code: Alles auswählen

import networkx


G = networkx.Graph({"A": ["B", "D"], "B": ["C", "E"]})
path = networkx.shortest_path(G, source="A", target="E")
print(path)
['A', 'B', 'E']
Erklärung: A zeigt auf B und D, B zeigt auf C und E. Um von A nach E zu kommen: A -> B -> E
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten