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.

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Algoritmi e Strutture dati Mod B
Algoritmi e Strutture Dati
Ricorsione in SQL-99.
Algoritmi e Strutture Dati
TSP Traveling Salesman’s Problem Università di Camerino
UNIVERSITA’ DI MILANO-BICOCCA LAUREA MAGISTRALE IN BIOINFORMATICA
Programmazione dinamica: problema della sottosequenza più lunga
                      Insertion-Sort
Introduzione ai grafi Grafo diretto e non diretto
Introduzione Cosa sono le reti di Petri?
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
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Cammini minimi con sorgente singola
Master Bioinformatica 2002: Progetto di Algoritmi1 Programmazione Dinamica (PD) Altra tecnica per risolvere problemi di ottimizzazione, piu generale degli.
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati (Mod. B)
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)
Grafi.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Passo 3: calcolo del costo minimo
Algoritmi e Strutture Dati
PARTE PRIMA: Reti Cablate
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Cammini minimi tra tutte le coppie
Web Communities and their identificaton
Grafi Rappresentazione mediante liste di adiacenza:
Cammini minimi da un sorgente
Ordinamento topologico Cammino minimo dalla sorgente
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.
Master Bioinformatica 2002: Grafi
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Olimpiadi di Informatica 2010 Giornate preparatorie
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
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
Prof. Cerulli – Dott. Carrabs
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.
Programmazione dinamica Algoritmi golosi Analisi ammortizzata
Problemi risolvibili con la programmazione dinamica Abbiamo usato la programmazione dinamica per risolvere due problemi. Cerchiamo ora di capire quali.
Grafi: rappresentazione e visita
Algoritmi e Strutture Dati
Cammini minimi fra tutte le coppie:
Cammini minimi in grafi:
Algoritmi e Strutture Dati Luciano Gualà
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Cammini minimi tra tutte le coppie
Cammini di costo minimo su un grafo pesato
Transcript della presentazione:

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 tra ogni coppia di vertici. Applicazione dei metodi di programmazione dinamica.

Master Bioinformatica 2002: Grafi Sviluppo di un algoritmo di programmazione dinamica Caratterizzazione della struttura di una soluzione ottima definizione ricorsiva del valore di una soluzione ottima. Calcolo iterativo del valore di una soluzione ottima mediante una strategia bottom-up Costruzione di una soluzione ottima a partire dal valore calcolato

Master Bioinformatica 2002: Grafi Cammino minimo Peso di un cammino p = w(p) = k-1 i=1 w(v i, v i+1 ) Il peso di un cammino minimo da u a v è definito come d(u,v) = min{w(p) | p: u v } se v è raggiungibile da u = 0 se v = u = se v non è raggiungibile da u

Master Bioinformatica 2002: Grafi I pesi w degli archi sono valori interi, possono essere anche valori negativi. Assumiamo che il grafo non contenga cicli con pesi negativi, perchè in questo caso la nozione di cammino minimo non è ben definita a b c Percorrendo il ciclo svariate volte otteniamo un cammino con un peso sempre piu basso

Master Bioinformatica 2002: Grafi Rappresentazione con matrice di adiacenza Assumiamo che un grafo (orientato) pesato G = (V,E,w) con |V| = n sia rappresentato con una matrice di adiacenza n n W[i,j] definita come W[i,j] = 0 se i = j = w(i,j) se i j e (i,j) E = se (i,j) E

Master Bioinformatica 2002: Grafi Struttura dei cammini minimi Proprietà della sottostruttura ottima: sia p un cammino ottimo: ogni sottocammino di p e ottimo. v0vi vj vk p p ij q ij Il sottocammino p ij di p deve essere un cammino ottimo da vi a vj

Master Bioinformatica 2002: Grafi Vertici intermedi Sia p = un cammino semplice da v 1 a,v l i vertici intermedi sono v 2,…,v l-1. Siano V = {1,…,n} i vertici di un grafo G, considera per un vertice k arbitrario il sottoinsieme {1,…,k} siano i,j V.

Master Bioinformatica 2002: Grafi Algoritmo di Floyd-Warshall Considera tutti i cammini da i a j in cui vertici intermedi sono nellinsieme {1,…,k} e sia p un cammino minimo tra di essi. E possibile definire una relazione tra p e i cammini minimi tra i vertici i e j i cui vertici intermedi sono nellinsieme {1,…,k-1}

Master Bioinformatica 2002: Grafi Se k non e un vertice intermedio di p, allora tutti i vertici intermedi di p sono nellinsieme {1,…,k-1}. Questo significa che il peso di un cammino minimo da i a j in cui tutti i vertici intermedi sono in {1,…,k} è dato dal peso di un cammino minimo da i a j in cui tutti i vertci intermedi sono in {1,…,k-1}.

Master Bioinformatica 2002: Grafi Se k è un vertice intermedio di p allora possiamo spezzare p così: i j k p1 p2 p1 e un cammino minimo da i a k in cui tutti i vertici intermedi sono nellinsieme {1,…,k-1}. p2 e un cammino minimo da i a k in cui tutti i vertici intermedi sono nellinsieme {1,…,k-1}.

Master Bioinformatica 2002: Grafi Questo significa che il peso di un cammino minimo da i a j in cui tutti i vertici intermedi sono in {1,…,k} è dato dal peso di un cammino minimo da i a k in cui tutti i vertci intermedi sono in {1,…,k-1} + il peso di un cammino minimo da k a j in cui tutti i vertci intermedi sono in {1,…,k-1}.

Master Bioinformatica 2002: Grafi Relazione di ricorrenza Definiamo D (k) [i,j] = peso di un cammino minimo da i a j in cui tutti i vertici intermedi sono nellinsieme {1,…k}

Master Bioinformatica 2002: Grafi D (k) [i,j] = W[i,j] se k = 0 D (k) [i,j] = min {D (k-1) [i,j], D (k-1) [i,k]+ D (k-1) [k,j]} se k > 0

Master Bioinformatica 2002: Grafi Sottoproblemi comuni D (5) [1,6] D (4) [1,6]D (4) [1,5] + D (4) [5,6] D (3) [1,6]D (3) [1,4] + D (3) [4,6] D (3) [1,5]D (3) [1,4] + D (3) [4,5] D (3) [5,4] + D (3) [4,6]D (3) [5,6]

Master Bioinformatica 2002: Grafi Calcolo iterativo della sequenza di matrici D (0),…, D (n) Floyd-Warshall(W) //W matrice di adiacenza n n D (0) W for k = 1 to n for i = 1 to n for j = 1 to n D (k) [i,j] min{D (k-1) [i,j], D (k-1) [i,k] + D (k-1) [k,j]} return D (n) Complessità: O(n 3 )

Master Bioinformatica 2002: Grafi Calcolo dei cammini minimi Matrice dei predecessori P (k) [i,j] = predecessore di j in un cammino minimo da i a j in cui tutti i vertici intermedi sono nellinsieme {1,…,k}. ij x P (k) [i,j] = x

Master Bioinformatica 2002: Grafi Relazione di ricorrenza per i predecessori per k = 0 P (k) [i,j] = NULL se i = j oppure W[i,j]= P (k) [i,j] = i se i j e W[i,j] < per k > 0 P (k) [i,j] = P (k-1) [i,j] se D[i,j] (k-1) D [i,k] (k-1) + D[k,j] (k-1) P (k) [i,j] = P (k-1) [k,j] se D[i,j] (k-1) > D [i,k] (k-1) + D[k,j] (k-1)

Master Bioinformatica 2002: Grafi Calcolo delle matrici D (0),…, D (n) e P (0),…, P (n) Floyd-Warshall(W) Inizializza D (0) e P (0) mediante W for k = 1 to n for i = 1 to n for j = 1 to n D (k) [i,j] D (k-1) [i,j] P (k) [i,j] P (k-1) [i,j] if D (k) [i,j] > D (k-1) [i,k] + D (k-1) [k,j] then D (k) [i,j] D (k-1) [i,k]+ D (k-1) [k,j] P (k) [i,j] P (k-1) [k,j] return

Master Bioinformatica 2002: Grafi Esempio W

Master Bioinformatica 2002: Grafi D (0) P (0) D (1) P (1)

Master Bioinformatica 2002: Grafi D (1) P (1) D (2) P (2)

Master Bioinformatica 2002: Grafi D (2) P (2) D (3) P (3)

Master Bioinformatica 2002: Grafi D (3) P (3) D (4) P (4)

Master Bioinformatica 2002: Grafi

Master Bioinformatica 2002: Grafi