Capitolo 13 Cammini minimi Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 3 Definizioni Sia G=(V,E) un grafo orientato con pesi w sugli archi. Il costo di un cammino = è dato da: Un cammino minimo tra una coppia di vertici x e y è un cammino di costo minore o uguale a quello di ogni altro cammino tra gli stessi vertici.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 4 Proprietà dei cammini minimi Sottostruttura ottima: ogni sottocammino di un cammino minimo è anch’esso minimo Grafi con cicli negativi: se due vertici x e y appartengono a un ciclo di costo negativo, non esiste nessun cammino minimo finito tra di essi Se G non contiene cicli negativi, tra ogni coppia di vertici connessi in G esiste sempre un cammino minimo semplice, in cui cioè tutti i vertici sono distinti
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 5 Distanza fra vertici La distanza d xy tra due vertici x e y è il costo di un cammino minimo da x a y, o +∞ se i due vertici non sono connessi Disuguaglianza triangolare: per ogni x, y e z Condizione di Bellman: per ogni arco (u,v) e per ogni vertice s: d sv ≤ d su + d uv, ed essendo d uv ≤w(u,v)
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 6 Alberi di cammini minimi Un arco (u,v) appartiene a un cammino minimo a partire da un vertice s se e solo se u è raggiungibile da s e d su +w(u,v)=d sv I cammini minimi da un vertice s a tutti gli altri vertici (raggiungibili) del grafo possono essere rappresentati tramite un albero radicato in s, detto albero dei cammini minimi
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 7 Calcolare cammini minimi dalle distanze
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 8 Tecnica del rilassamento Partendo da stime per eccesso delle distanze D xy ≥ d xy aggiornare le stime, decrementandole progressivamente fino a renderle esatte. Aggiornamento delle stime basato sul seguente passo di rilassamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 9 Algoritmo generico per il calcolo delle distanze rilassamento
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 10 Algoritmo di Bellman e Ford (per cammini minimi a sorgente singola)
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 11 Ordine di rilassamento Sia = un cammino minimo. Se fossimo in grado di eseguire i passi di rilassamento nell’ordine seguente: in k passi avremmo la soluzione. Purtroppo non conosciamo l’ordine giusto, essendo ignoto
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 12 Approccio di Bellman e Ford Esegue n passate In ciascuna passata rilassa tutti gli archi Dopo la j-esima passata, i primi j rilassamenti corretti sono stati certamente eseguiti (ovvero è stata trovata d sv j ) Esegue però molti rilassamenti inutili!
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 13 Pseudocodice Tempo di esecuzione: O(n m)
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 14