La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Cammini minimi tra tutte le coppie. Dato un grafo (orientato o non orientato) G = (V,E) con funzione di peso w: E R, trovare per ogni coppia di vertici.

Presentazioni simili


Presentazione sul tema: "Cammini minimi tra tutte le coppie. Dato un grafo (orientato o non orientato) G = (V,E) con funzione di peso w: E R, trovare per ogni coppia di vertici."— Transcript della presentazione:

1 Cammini minimi tra tutte le coppie

2 Dato un grafo (orientato o non orientato) G = (V,E) con funzione di peso w: E R, trovare per ogni coppia di vertici u,v V il minimo peso di un cammino da u a v. Verrà calcolata anche una matrice di predecessori ( uv ) dove uv è NIL se u=v o se non cè un cammino da u a v, altrimenti è un predecessore di v su di un cammino minimo da u. Il sottografo indotto dalli-esima riga della matrice sarà un albero di cammini minimi con radice in i.

3 Algoritmo di Floyd-Warshall d s,t (i) :cammino minimo da s a t contenente solo i vertici v 1,..., v i d s,t (0) = w(s,t) E un algoritmo di programmazione dinamica, può gestire archi di peso negativo ma si assume che non ci siano cicli negativi. Idea:

4 Algoritmo di Floyd-Warshall: idea d s,t (0) = w(s,t) d s,t (k) = w(s,t)if k = 0 min{d s,t (k-1), d s,k (k-1) + d k,t (k-1) }if k > 0 d s,t (i) :cammino minimo da s a t contenente solo i vertici v 1,..., v i

5 Algoritmo di Floyd-Warshall Floyd-Warshall(W) 1n=rows[W] 2 D (0) =W 3 for k = 1 to n do 2for i = 1 to n do 3 for j = 1 to n do 4d ij (k) = min(d ij (k-1), d ik (k-1) + d kj (k-1) ) 5return D (n)

6 Algoritmo di Floyd-Warshall: esempio W

7 Algoritmo di Floyd-Warshall: esempio D (0) (0)

8 Algoritmo di Floyd-Warshall: esempio D (1) (1)

9 Algoritmo di Floyd-Warshall: esempio D (2) (2)

10 Algoritmo di Floyd-Warshall: esempio D (3) (3)

11 Algoritmo di Floyd-Warshall: esempio D (4) (4)

12 Algoritmo di Floyd-Warshall: esempio D (5) (5)

13 Algoritmo di Floyd-Warshall: complessità T(V,E) = (n 3 ) = (V 3 ) Determinata dei tre cicli for. Ogni esecuzione dellistruzione interna è O(1), quindi:


Scaricare ppt "Cammini minimi tra tutte le coppie. Dato un grafo (orientato o non orientato) G = (V,E) con funzione di peso w: E R, trovare per ogni coppia di vertici."

Presentazioni simili


Annunci Google