La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR

Presentazioni simili


Presentazione sul tema: "Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR"— Transcript della presentazione:

1 Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR
Università degli studi di Padova Tesi di laurea di primo livello Ausilio didattico in Excel-Visual Basic per il ricavo dei cammini di costo minimo con l'algoritmo di Ford-Moore-Bellman Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR

2 Grafi Rappresentazione semplice e astratta della realtà in molti contesti applicativi Coppia di insiemi (N,A) dove N é detto insieme dei nodi e A é detto insieme degli archi. Se le gli archi sono orientati, il grafo è detto orientato, se non sono ordinate é detto non orientato. Una sequenza di archi (l0, l1), (l1, l2), …, (lk-1, lk) tali che ciascun arco sia adiacente a quello successivo, si definisce cammino che unisce i nodi l0 ed lk. Se il nodo iniziale della sequenza coincide con l’ultimo nodo della sequenza, il cammino si dice ciclo. Slide facoltativa

3 Il problema dei cammini minimi su grafi
Tipici problemi di interesse Trovare il cammino minimo tra un nodo s detto sorgente ed un nodo t detto destinazione Per un assegnato nodo s , trovare il percorso più breve da s a tutti gli altri nodi Trovare il cammino più breve tra tutte le coppie di nodi Applicazioni Pianificazione urbana del traffico Rotta ottima per i trasporti su strada in presenza anche di congestioni Protocolli di routing (OSPF, BGP, RIP) Pipelining nei circuiti elettronici a larga scala di integrazione Navigazione dei robot Schedulazione degli operatori per il telemarketing Gestione delle subroutine negli algoritmi di alto livello Smistamento messaggi nelle telecomunicazioni

4 Una possibile soluzione
Una soluzione ammissibile al problema dei cammini minimi consiste nel determinare n-1 cammini, uno per ogni coppia di nodi, ognuno dei quali ha origine nel nodo r e giunge ad uno dei rimanenti nodi del grafo. Sotto opportune ipotesi una soluzione ammissibile è una arborescenza di radice r, e la soluzione cercata è una arborescenza di radice r di costo minimo.

5 Teorema di Bellman Una soluzione ammissibile T è ottima se e solo se valgono le seguenti condizioni per ogni arco (u,v): l(v) = l(u) + c(u,v) se (u,v) appartiene a T l(v) ≤ l(u) + c(u,v) se (u,v) non appartiene a T Principio di ottimalità: l*(v) = MIN { l*(u) + c(u,v) } 9 v 7 Ciò permette di definire algoritmi basati sulla sostituzione degli archi che violano tale principio s 2 u 5

6 L’algoritmo di Ford-Bellman-Moore
R. Bellman, On a routing problem, 1958. L. R. Ford, Jr. Network flow theory, 1956. E. F. Moore, The shortest path through a maze, 1959. Q := {0} l[v] := ∞ p[v] := 0 l[s] := 0 p[s] := s EnQueue (s,Q) while do u := DeQueue (Q) for each edge (u,v) do if l[v] > l[u] + c(u,v) then l[v] := l[u] + c(u,v) l[v] := u if v not in Q then EnQueue (v,Q) endif endfor endwhile Per ogni nodo si ha un predecessore p(u) e la miglior distanza attualmente trovata l(u) Si appoggia ad una struttura Q che contiene tutti i nodi i cui archi uscenti potrebbero violare le condizioni di Bellman Si estrae un nodo u da Q e si controlla se le condizioni di ottimalità valgono per ciascun arco della sua stella uscente. Per ogni arco (u,v) che non soddisfa le condizioni, si pone p[v]=u e l’etichetta di v viene aggiornata. Non si effettua però l’aggiornamento delle etichette in tutti i nodi del sottoalbero di radice v, ma si inserisce v in Q pseudocodice., funzionamento

7 La versione di Pape Insieme Q implementato come deque
L’inserimento di in avviene secondo questa regola di natura euristica: se è la prima volta che viene inserito, esso deve essere posto in coda alla lista; se invece era già stato inserito in precedenza, allora si pone all’inizio della lista stessa. Idea di sfruttare subito il miglioramento dell’etichetta Prestazioni migliori solo su grafi sparsi [inizializzazione] EnQueue (s,Q) while do u := DeQueue(Q) for each edge (u,v) do if l[v] > l[u] + c(u,v) then if v not in Q then if D[v] = ∞ then EnQueueB(v; Q) else EnQueueF(v; Q) endif l[v] := l[u] + c(u,v) p[v] := u endfor endwhile

8 L’implementazione in Excel

9 L’implementazione in Excel
Algoritmo Strutture dati n  numero nodi e  numero archi s  nodo sorgente Edges  vettore archi dist  lista delle lunghezze del miglior cammino da s a v correntemente trovato pred  lista dei predecessori inList  flag che indica se un nodo è attualmente nella lista nEstr  vettore che indica per ogni nodo quante volte è stato estratto Q  lista dei nodi da esaminare

10 Esempio

11 Esempio Q = {s} Si esaminano gli archi uscenti da s
Si aggiornano le etichette di a e c Q = {a,c}

12 Esempio Q = {a,c} Si esaminano gli archi uscenti da a
Si aggiornano le etichette di b e d Q = {c,b,d}

13 Esempio Q = {c,b,d} Si esaminano gli archi uscenti da c
Non si aggiornano etichette Q = {b,d}

14 Esempio Q = {b,d} Si esaminano gli archi uscenti da b
Si aggiorna l’etichetta di c Inserisco c in testa in quanto già inserito in precedenza Q = {c,d}

15 Esempio Q = {c,d} Si esaminano gli archi uscenti da c
Non si aggiornano etichette Q = {d}

16 Esempio Q = {d} Si esaminano gli archi uscenti da d
Non si aggiornano etichette Q = { }  Termine algoritmo

17 Esempio Arborescenza di radice s dei cammini minimi

18 Esempio In caso di ciclo negativo Soluzione infinitamente migliorabile
Algoritmo deve terminare Presenza di tale ciclo indicata con un messaggio di errore


Scaricare ppt "Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR"

Presentazioni simili


Annunci Google