Küzester Weg bei Graphen mit gleichen Kantengewichtungen

Satheno

Cadet 3rd Year
Registriert
Okt. 2016
Beiträge
47
Hallo zusammen,

ich habe folgendes Problem: Ich habe einen Graphen gegeben mit beliebig vielen, aber endlich vielen, Knoten und Kanten, welche diese verbinden, gegeben. Die Kanten haben alle, egal welche Knoten sie verbinden, als Kosten 1. Hat jemand einen Ansatz wie ein Algorithmus aussehen kann der mir da den kürzesten Weg zwischen 2 Punkten zurückgibt?
Ich muss das ganze in Python programmieren und hab mir bereits eine Adjazenzmatrix erstellt, also ich weiß welcher Knoten mit welchem verbunden ist, aber ich komme partout nicht auf einen möglichst einfachen Algorithmus.

Ich danke allen schonmal für die Antworten :)
 
Prim
 
Wie NeoExacun bereits geschrieben hat ist die Implementierung des Algorithmus von Dijkstra eine mögliche Lösung.
Wenn man in Google nach "dijkstra filetype:pdf" sucht bekommt man sehr gute Ergebnisse, z.B.:

Oder bei rosettacode.

@ZuseZ3: Mittels Algorithmus von Prim (den, den ich kenne) wird nur der minimale Spannbaum ermittelt.
 
Dijkstra ist aber bei identischen Kantengewichten (entspricht einem ungewichteten Graphen) aufwendiger und langsamer als eine Breitensuche.
 
Das ist korrekt. Bei ungewichteten Kanten dürfte die Breitensuche das Effizienteste sein.
 
Ok, ich danke euch allen für die Antworten. Ich werd mich mal ransetzen und rumprobieren :)
 
Breitensuche/Tiefensuche wird am schnellsten laufen. Bitte vergesse die Optimierung der Abbtuchsbedingung nicht.
Breitensuche hat sogar dann den Vorteil, dass es in O (Pfadlänge) bestimmt terminiert. Bei Tiefensuche kann ich nichts derart offensichtliches finden.
 
Zurück
Oben