L'algoritmo di Dijkstra viene utilizzato solo quando si dispone di un'unica sorgente e si desidera conoscere il percorso più piccolo da un nodo all'altro, ma non riesce [nei grafici con bordi negativi]
L'algoritmo di Dijkstra è un esempio di percorso più breve a sorgente singola o algoritmo SSSP . Ogni algoritmo SSSP calcola le distanze del percorso più breve da un nodo sorgente a ogni altro nodo nel grafico. Inoltre, calcola una rappresentazione compatta di tutti i percorsi più brevi da s a ogni altro nodo, sotto forma di un albero radicato. Nel codice Wikipedia, è il genitore di v in questo albero.SSprevious[v]
v
Il comportamento dell'algoritmo di Dijkstra nei grafici con spigoli negativi dipende dalla variante precisa in discussione. Alcune varianti dell'algoritmo, come quella di Wikipedia, vengono sempre eseguite rapidamente ma non calcolano correttamente i percorsi più brevi in presenza di bordi negativi. Altre varianti, come quella in queste note di lezione, calcolano sempre correttamente i percorsi più brevi (a meno che non vi sia un ciclo negativo raggiungibile dalla fonte) ma, nel caso peggiore, possono richiedere tempi esponenziali se ci sono bordi negativi.
L'algoritmo di Floyd-Warshall viene utilizzato quando uno qualsiasi di tutti i nodi può essere un'origine, quindi si desidera che la distanza più breve raggiunga qualsiasi nodo di destinazione da qualsiasi nodo di origine. Questo fallisce solo quando ci sono cicli negativi.
È corretto. Floyd-Warshall è un esempio di algoritmo del percorso più breve di tutte le coppie , il che significa che calcola i percorsi più brevi tra ogni coppia di nodi. Un altro esempio è "per ciascun nodo v, eseguire Dijkstra con v come nodo di origine". Ce ne sono molti altri.
Bellman-Ford è usato come Dijkstra, quando esiste una sola fonte. Questo può gestire pesi negativi e il suo funzionamento è uguale a quello di Floyd-Warshall ad eccezione di una fonte, giusto?
O ( V3)O ( V2E)O ( VE)
Per ulteriori dettagli, consultare il manuale degli algoritmi preferiti. (Non hanno un libro di testo preferito algoritmi, non è vero?)