Cammini minimi tra tutte le coppie

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture dati Mod B
Advertisements

Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
08 Febbraio 2008 BOZZA Laboratorio di ricerca operativa I grafi e il problema del cammino minimo a.a. 2007/2008 Calogero Vetro.
Master Bioinformatica 2002: Grafi Problema: cammini minimi da tutti i vertici a tutti i vertici Dato un grafo pesato G =(V,E,w), trovare un cammino minimo.
Introduzione ai grafi Grafo diretto e non diretto
Grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed 2 Copyright © The McGraw.
Algoritmi e Strutture Dati
Cammini minimi con una sorgente
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Programmazione dinamica
Alberi binari di ricerca
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Cammini minimi con sorgente singola
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 05/05/2009 Prof. ssa ROSSELLA PETRESCHI a cura del Dott. SAVERIO CAMINITI.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
ANALISI DEI GRUPPI seconda parte
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Cammini minimi Algoritmo SPT.Acyclic
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e Strutture Dati (Mod. B)
Trovare il percorso minimo da b ad ogni altro vertice
Algoritmi e Strutture Dati (Mod. B)
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
APPUNTI SUL LINGUAGGIO C
Algoritmo di Kruskal Parte con tutti i vertici e nessun lato (sottografo aciclico, o foresta, ricoprente) Ordina i lati per costo non decrescente.
Algoritmi greedy Gli algoritmi greedy in genere non sono esatti, cioè determinano soluzioni non necessariamente ottime Per il problema dell’albero ricoprente.
Esempio di esecuzione dellalgoritmo di Prim 1 v1v1 v5v5 v2v2 v3v3 v4v U = {v 1 } X =Ø 1 v1v1 v5v5 v2v2 v3v3 v4v U = {v.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof. Cerulli – Dott.ssa Gentili
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Componenti fortemente connesse
Cammini minimi da un sorgente
Ordinamento topologico Cammino minimo dalla sorgente
Gli algoritmi del minimo percorso
Alberi di copertura minimi. Dato un grafo pesato G = (V,E), si richiede di trovare un albero T = (V,E’), E’  E, tale che la somma dei pesi associati.
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Università degli Studi di Roma Tor Vergata
Algoritmi elementari su grafi
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Master Bioinformatica 2002: Visite di Grafi La struttura dati D è una PILA (STACK) Visita in profondità o Depth-First-Search (DFS)
Algoritmi e Strutture Dati
Capitolo 13 Cammini minimi: Algoritmo di ordinamento topologico, di Dijkstra, e di Floyd e Warshall Algoritmi e Strutture Dati.
Master Bioinformatica 2002: Visite di Grafi Algoritmi di visita Scopo: visitare tutti i vertici di un grafo per scoprirne proprietà di vario tipo. Alcune.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Grafi: rappresentazione e visita
Algoritmi e Strutture Dati
Cammini minimi fra tutte le coppie:
Cammini minimi in grafi:
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°10.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
Cammini minimi tra tutte le coppie
Cammini di costo minimo su un grafo pesato
Transcript della presentazione:

Cammini minimi tra tutte le coppie

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 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 dall’i-esima riga della matrice  sarà un albero di cammini minimi con radice in i.

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

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

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

Algoritmo di Floyd-Warshall: esempio 2 4 3 7 1 3 8  -4 1 7 4 2 -5 6 1 3 8 2 -4 -5 5 4 6

Algoritmo di Floyd-Warshall: esempio 3 8  -4 1 7 4 2 -5 6 1 2 3 4 5

Algoritmo di Floyd-Warshall: esempio 3 8  -4 1 7 4 2 5 -5 -2 6 1 2 3 4 5

Algoritmo di Floyd-Warshall: esempio 3 8 4 -4  1 7 5 11 2 -5 -2 6 1 2 3 4 5

Algoritmo di Floyd-Warshall: esempio 3 8 4 -4  1 7 5 11 2 -1 -5 -2 6 1 2 3 4 5

Algoritmo di Floyd-Warshall: esempio 3 -1 4 -4 1 7 5 2 -5 -2 8 6 1 4 2 3 5

Algoritmo di Floyd-Warshall: esempio 3 -1 2 -4 1 7 4 5 -5 -2 8 6 1 4 5 2 3

Algoritmo di Floyd-Warshall: complessità Determinata dei tre cicli for. Ogni esecuzione dell’istruzione interna è O(1), quindi: T(V,E) = (n3) = (V3)