Ich habe diese Frage in StackOverflow gestellt. Ich wurde gebeten, hier einzuziehen. hier ist es also:
Ich brauche einige Klarstellungen und Eingaben bezüglich des Dijkstra-Algorithmus im Vergleich zur Breitensuche in gerichteten Graphen, wenn diese korrekt sind.
Der Dijkstra-Algorithmus findet den kürzesten Weg von Knoten A
zu Knoten F
in einem gewichteten Diagramm, unabhängig davon, ob es einen Zyklus gibt oder nicht (solange keine negativen Gewichte vorhanden sind).
A
Dafür werden jedoch alle Pfade von zu allen anderen Knoten im Diagramm berechnet, und wir erfassen den Pfad von A
bis, F
indem wir die Sequenzen der Knoten in umkehren prev
.
BFS: Findet den kürzesten Pfad von Knoten A
zu Knoten F
in einem nicht gewichteten Diagramm, schlägt jedoch fehl, wenn ein Zyklus erkannt wird.
BFS berechnet jedoch nur den Pfad von Knoten A zu Knoten F und nicht unbedingt den gesamten Pfad von Knoten A. Wenn Knoten F früh erreicht wird, wird nur der Pfad zurückgegeben.