L’algoritmo di Dijkstra.

Gli algoritmi più famosi
PageRank, Algoritmo di PageRank, Gli algoritmi più famosi, Algoritmo di ordinamento rapido, Algoritmo di Dijkstra, Algoritmo di RSA, Algoritmo di ricerca binaria, Algoritmo di backpropagation, Algoritmo di clustering k-means, Algoritmo di ordinamento a bolle (Bubble Sort),

di Sergio Mauri

L’algoritmo di Dijkstra è un algoritmo utilizzato per trovare il cammino più breve da un nodo di partenza a tutti gli altri nodi in un grafo pesato non negativo. La sua formula si basa su concetti di programmazione dinamica e funziona in questo modo:

Sia G un grafo pesato non negativo, e siano s il nodo di partenza e d(v) la lunghezza attuale del cammino più breve da s a v per ogni nodo v nel grafo.

L’algoritmo di Dijkstra procede nel seguente modo:

  1. Inizializza d(s)=0 e d(v)=∞ per ogni nodo vs.
  2. Finché ci sono nodi non visitati nel grafo:
  3. Scegli il nodo u non visitato con la distanza minima, cioè d(u), e contrassegnalo come visitato.
    • Per ogni arco (u,v) uscente da u, aggiorna la distanza d(v) se il percorso attraverso u è più breve del percorso attualmente conosciuto. L’aggiornamento avviene tramite l’equazione: d(v)=min(d(v),d(u)+w(u,v)) dove w(u,v) è il peso dell’arco tra u e v.
    • Una volta che tutti i nodi raggiungibili sono stati visitati, d(v) contiene la distanza minima da s a ogni nodo v nel grafo.

L’algoritmo di Dijkstra garantisce la correttezza poiché, ad ogni passo, seleziona il nodo con la distanza minima dal nodo di partenza. Questo nodo diventa quindi definitivamente visitato e non verrà mai più rivisitato, garantendo che la distanza minima di quel nodo sia stata determinata correttamente. La complessità temporale dell’algoritmo di Dijkstra dipende dall’implementazione e può variare da O(V^2) a O(E+V log V), dove V è il numero di nodi e E è il numero di archi nel grafo.

Sergio Mauri
Autore Sergio Mauri Blogger. Premio speciale al Concorso Claudia Ruggeri nel 2007; terzo posto al Premio Igor Slavich nel 2020. Ha pubblicato con Terra d’Ulivi nel 2007 e nel 2011, con Hammerle Editori nel 2013 e 2014 e con Historica Edizioni e Alcova Letteraria nel 2022 e Silele Edizioni (La Tela Nera) nel 2023.
** Se puoi sostenere il mio lavoro, comprami un libro **