Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture dati Mod B
Advertisements

Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Strutture dati per insiemi disgiunti
Il problema del cammino minimo tra 2 nodi in un grafo non cooperativo
TSP Traveling Salesman’s Problem Università di Camerino
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.
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
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Cammini minimi con una sorgente
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Cammini minimi con sorgente singola
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Esercizi su alberi binari
Algoritmi Paralleli e Distribuiti a.a. 2008/09 Lezione del 12/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
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Cammini minimi Algoritmo SPT.Acyclic
Algoritmi e Strutture Dati (Mod. B)
Trovare il percorso minimo da b ad ogni altro vertice
Algoritmi e Strutture Dati (Mod. B)
Grafi.
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Algoritmi greedy Gli algoritmi greedy in genere non sono esatti, cioè determinano soluzioni non necessariamente ottime Per il problema dell’albero ricoprente.
Fibonacci Heaps e il loro utilizzo nell’algoritmo di Prim
Prof. Cerulli – Dott.ssa Gentili
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Prof. Cerulli – Dott.ssa Gentili
Grafi.
PARTE PRIMA: Reti Cablate
Algoritmi e Strutture Dati
Grafi.
Usi (meno scontati) della visita DFS
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Grafi Rappresentazione mediante liste di adiacenza:
Cammini minimi da un sorgente
Ordinamento topologico Cammino minimo dalla sorgente
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
Olimpiadi di Informatica 2010 Giornate preparatorie
Algoritmi elementari su grafi
Capitolo 12 Minimo albero ricoprente: Algoritmo di Kruskal Algoritmi e Strutture Dati.
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)
Prof. Cerulli – Dott. Carrabs
Capitolo 13 Cammini minimi: Bellman e Ford 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.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Grafi: rappresentazione e visita
Capitolo 13 Cammini minimi: algoritmo di Dijkstra Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Cammini minimi fra tutte le coppie:
Cammini minimi in grafi:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmo di Prim Algoritmi e Strutture.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
R-AR-B R-CR-D R-E R-F H-A H-B H-CH-D H-E H-FH-G Rete di Riferimento Grafo Equivalente OSPF - RIP BGP.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi di routing statici (pag.72) UdA2L4 Questi algoritmi, sono eseguiti solamente all'avvio della rete, e le decisioni di routing a cui essi pervengono.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Capitolo 13 Cammini minimi: algoritmo di Dijkstra Algoritmi e Strutture Dati.
Algoritmi Avanzati a.a.2012/2013 Prof.ssa Rossella Petreschi Albero Ricoprente Lezione n°9.
Transcript della presentazione:

Laureando: Enrico Sperindio Relatore: Prof. GIORGIO ROMANIN JACUR Università degli studi di Padova 2008-2009 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

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

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

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.

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

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

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

L’implementazione in Excel

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

Esempio

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

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

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

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}

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

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

Esempio Arborescenza di radice s dei cammini minimi

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