Dunque, non è semplicissimo riportare in un forum i vari passaggi...
Proviamo, se poi non ti è chiaro fammi sapere.
Dunque, scrivi in ordine lessiografico (o un altro ordine se diversamente specificato dall'esercizio) i vari archi:
v0v1
v0v2
v0v3
v1v0
v1v4
v1v5
v2v0
v2v3
.....
(da esempio)
Disegni due tabelle, una dei costi ed una dei collegamenti con righe pari ai vari vertici e colonne pari al numero di vertici -1 (si dimostra che se l'algoritmo converge entro n-1 passi allora esiste una soluzione altrimenti c'è un loop negativo, ed anche che se per due passi consecutivi non vi è alcun miglioramento l'algoritmo si può considerare concluso)
Nella tabella dei costi al passo 0 metti zero nel vertice di partenza ed infinito in tutti gli altri
In quella dei collegamenti metti NIL (Not In Link) per tutti i vertici. (Consiglio di usare una matita, visto che dovrai modificare spesso le tabelle)
Adesso scorri la lista degli archi precedentemente stilata, e ti fermi al primo arco che interessa il vertice di partenza (poniamo il caso che il vertice di partenza sia v1, allora sceglierai l'arco v1v0).
Nella tabella dei costi in v0 metterai il valore presente nella matrice delle adiacenze alla riga v1 e nella colonna v0 mentre nella tabella dei collegamenti alla riga v0 metterai l'arco v1v0.
Procedi nello scorrere la lista ed aggiornando di conseguenza la tabella, ovviamente se un vertice è già stato raggiunto, ne modifichi il costo ed il relativo collegamento solo se questo porta un miglioramento (costo precedente link> costo attuale link).
Seguendo l'esempio dovrai aggiornare nei costi v4 e nei collegamenti aggiungere l'arco v1v4 e così via.
Conclusa la prima lettura della lista si conclude anche il passo 0 e si prosegue col passo 1,2,3,4 ammenocché per due passi consecutivi non vi sia alcun cambiamento, allora l'algoritmo si può considerare concluso.
Spero sia chiaro, se mi posti il testo per intero posso risolverlo in modo da mostrarti meglio i vari passaggi.
Fammi anche sapere i tuoi dubbi
