INSTRADAMENTO: ALGORITMO DI BELLMAN-FORD
|
|
|
- Eva Abate
- 7 anni fa
- Visualizzazioni
Transcript
1 UNIVERSITA' DEGLI STUDI DI BERGAMO Dipartimento di Ingegneria INSTRADAMENTO: ALGORITMO DI BELLMAN-FORD FONDAMENTI DI RETI E TELECOMUNICAZIONE A.A. 2012/13 - II Semestre
2 Esercizio 1 Sia dato il grafo G= (N, A) pesato e non orientato riportato in figura. Applicando l algoritmo di Bellman-Ford, calcolare i percorsi a costo minimo dal nodo 3 ad ogni nodo di N. Indicare con rigore i vari passi dell algoritmo. Soluzione L algoritmo di Bellman-Ford è definito per grafi orientati. Per questo motivo, costruiamo il grafo orientato associato a quello assegnato.
3 Passo 0 Inizializziamo l insieme L degli archi dell albero dei cammini minimi dal nodo 3 agli altri nodi di N, il costo associato ai nodi, D i, e gli archi utilizzati per costruire i cammini minimi associati ai vari nodi h i. L = Ø, D 3 = 0, D i = i N {3}, h i = null i N Elenchiamo gli archi per facilitare l aggiornamento dei pesi (l ordine è scelto a piacere): a 32 a 35 a 21 a 14 a 45 a 46 a 67 a 57 a 23 a 53 a 12 a 41 a 54 a 64 a 76 a 75 Passiamo ad aggiornare i pesi dei nodi, D i, per ogni arco, per un numero di volte massimo pari a N -1=6 volte. Passo 1 (aggiornamento #1 di 6) a 32, D 2 = min[d 2, D 3 + d 32 ] = min[, ] = 14, h 2 = a 32 a 35, D 5 = 2, h 5 = a 35 a 21, D 1 = 22, h 1 = a 21 a 14, D 4 = 24, h 4 = a 14 a 45, D 5 = 2, non aggiornato a 46, D 6 = 28, h 6 = a 46 a 67, D 7 = 33, h 7 = a 67 a 57, D 7 = 13, h 7 = a 57 a 23, D 3 = 0, non aggiornato a 53, D 3 = 0, non aggiornato a 12, D 2 = 14, non aggiornato a 41, D 1 = 22, non aggiornato a 54, D 4 = 11, h 4 = a 54 a 64, D 4 = 11, non aggiornato a 76, D 6 = 18, h 6 = a 76 a 75, D 5 = 2, non aggiornato
4 Rappresentiamo le informazioni ottenute alla fine di questo passo iterativo nella seguente tabella: D h a 21 a 32 / a 54 a 35 a 76 a 57 Passo 2 (aggiornamento #2 di 6) a 32, D 2 = 14, non aggiornato a 35, D 5 = 2, non aggiornato a 21, D 1 = 22, non aggiornato a 14, D 4 = 11, non aggiornato a 45, D 5 = 2, non aggiornato a 46, D 6 = 15, h 6 = a 46 a 67, D 7 = 13, non aggiornato a 57, D 7 = 13, non aggiornato a 23, D 3 = 0, non aggiornato a 53, D 3 = 0, non aggiornato a 12, D 2 = 14, non aggiornato a 41, D 1 = 13, h 1 = a 41 a 54, D 4 = 11, non aggiornato a 64, D 4 = 11, non aggiornato a 76, D 6 = 15, non aggiornato a 75, D 5 = 2, non aggiornato Rappresentiamo le informazioni ottenute alla fine di questo passo iterativo nella seguente tabella: D h a 41 a 32 / a 54 a 35 a 46 a 57 Passo 3 (aggiornamento #3 di 6) a 32, D 2 = 14, non aggiornato a 35, D 5 = 2, non aggiornato a 21, D 1 = 22, non aggiornato a 14, D 4 = 11, non aggiornato a 45, D 5 = 2, non aggiornato a 46, D 6 = 15, non aggiornato a 67, D 7 = 13, non aggiornato a 57, D 7 = 13, non aggiornato a 23, D 3 = 0, non aggiornato a 53, D 3 = 0, non aggiornato a 12, D 2 = 14, non aggiornato a 41, D 1 = 13,, non aggiornato a 54, D 4 = 11, non aggiornato a 64, D 4 = 11, non aggiornato
5 a 76, D 6 = 15, non aggiornato a 75, D 5 = 2, non aggiornato Non c è stato nessun aggiornamento dei pesi degli archi, di conseguenza l algoritmo di Bellman-Ford si ferma. Non è necessario riscrivere la tabella visto che coincide con quella del passo 2. Partendo dall ultima tabella (quella del passo 2), definiamo l albero dei cammini minimi dal nodo 3 agli altri nodi del grafo. L insieme degli archi dell albero, L, è dato dall insieme di archi specificato nella tabella. L = {a 41, a 32, a 54, a 35, a 46, a 57 } L albero è dunque il seguente T=(N, L), rappresentato anche in figura (gli archi sono rappresentati come non orientati visto che nel grafo reale di partenza non avevano orientamento; l orientamento è stato introdotto solo per applicare Bellman-Ford).
6 Esercizio 2 Sia dato il grafo G= (N, A) pesato e non orientato riportato in figura. Applicando l algoritmo di Bellman-Ford, calcolare i percorsi a costo minimo dai nodi 3 e 6 verso il nodo 1. Indicare con rigore i vari passi dell algoritmo. Soluzione L algoritmo di Bellman-Ford è definito per grafi orientati. Per questo motivo, costruiamo il grafo orientato associato a quello assegnato. Nel nostro caso si richiede di trovare i percorsi minimi dai nodi 3 e 6 verso il nodo 1. Dato che il grafo iniziale è non orientato, l albero dei percorsi a costo minimo dai nodi 3 e 6 verso il nodo 1 coincide con l albero dei percorsi a costo minimo dal nodo 1 verso i nodi 3 e 6. Per tale motivo, applichiamo Bellman-Ford come se dovessimo trovare i percorsi minimi aventi come origine il nodo 1. Inoltre, anche se in realtà dobbiamo trovare
7 solo i percorsi minimi da 1 verso 3 e 6, applichiamo Bellman-Ford come se dovessimo trovare i percorsi minimi verso tutti i nodi N. Passo 0 Inizializzo l insieme L degli archi dell albero dei cammini minimi dal nodo 1 verso i nodi 3 e 6, il costo associato ai nodi, D i, e gli archi utilizzati per costruire i cammini minimi associati ai vari nodi h i. L = Ø, D 1 = 0, D i = i N {1}, h i = null i N Elenchiamo gli archi per velocizzare l aggiornamento dei pesi (l ordine è definito a piacere): a 12 a 16 a 23 a 65 a 35 a 34 a 45 a 21 a 61 a 32 a 56 a 53 a 43 a 54 Passiamo ad aggiornare i pesi dei nodi, D i, per ogni arco, per un numero di volte massimo pari a N -1=5. Passo 1 (aggiornamento #1 di 5) a 12, D 2 = min[d 2, D 1 + d 12 ] = min[, 0 + 4] = 4, h 2 = a 12 a 16, D 6 = 2, h 6 = a 16 a 23, D 3 = 10, h 3 = a 23 a 65, D 5 = 11, h 5 = a 65 a 35, D 5 = 11, non aggiornato a 34, D 4 = 22, h 4 = a 34 a 45, D 5 = 11, non aggiornato a 21, D 1 = 0, non aggiornato a 61, D 1 = 0, non aggiornato a 32, D 2 = 4, non aggiornato a 56, D 6 = 2, non aggiornato a 53, D 3 = 10, non aggiornato a 43, D 3 = 10, non aggiornato a 54, D 4 = 18, h 4 = a 54
8 Rappresentiamo le informazioni ottenute alla fine di questo passo iterativo nella seguente tabella: D h / a 12 a 23 a 54 a 65 a 16 Passo 2 (aggiornamento #2 di 5) a 12, D 2 = 4, non aggiornato a 16, D 6 = 2, non aggiornato a 23, D 3 = 10, non aggiornato a 65, D 5 = 11, non aggiornato a 35, D 5 = 11, non aggiornato a 34, D 4 = 18, non aggiornato a 45, D 5 = 11, non aggiornato a 21, D 1 = 0, non aggiornato a 61, D 1 = 0, non aggiornato a 32, D 2 = 4, non aggiornato a 56, D 6 = 2, non aggiornato a 53, D 3 = 10, non aggiornato a 43, D 3 = 10, non aggiornato a 54, D 4 = 18, non aggiornato Non c è stato nessun aggiornamento dei pesi degli archi, di conseguenza l algoritmo di Bellman-Ford si ferma. Non è necessario riscrivere la tabella visto che coincide con quella del passo 1. Partendo dall ultima tabella (quella del passo 1), definiamo l albero dei cammini minimi ottenuto. L insieme degli archi dell albero, L, è dato dall insieme di archi specificato nella tabella. L = {a 12, a 23, a 54, a 65, a 16 } L albero è dunque il seguente T=(N, L), rappresentato anche in figura (gli archi sono rappresentati come non orientati visto che nel grafo reale di partenza non avevano orientamento; l orientamento è stato introdotto solo per applicare Bellman-Ford).
9 Tale albero rappresenta l albero dei cammini minimi da 1 verso tutti gli altri nodi. A noi, però, servono solo i cammini minimi verso i nodi 3 e 6. A tal fine, partendo dall albero trovato, evidenziamo gli archi che ci servono per raggiungere dal nodo 1 i nodi 3 e 6. Come si vede, i nodi 5 e 4 non sono richiesti per raggiungere 3 e 6, così come gli archi a 65 e a 54. Per tale motivo, l albero dei cammini minimi da 1 ai nodi 3 e 6 è il grafo T = (N, L ), rappresentato in figura, dove: N = {1,2,3,6 } L = {a 12, a 23, a 16 } Dato che il grafo è non orientato, tale albero dei cammini mini dal nodo 1 verso i nodi 3 e 6, coincide con il grafo dei cammini minimi dai nodi 3 e 6 verso il nodo 1.
UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013
A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N
4c. Esercizi sul livello di Rete Instradamento in Internet
c. sul livello di Rete Instradamento in Internet c- o Si consideri la rete in figura. Si rappresenti, mediante un grafo, la rete per il calcolo dei cammini minimi (solo i nodi e gli archi no reti). Si
UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014
A Ricerca Operativa 1 Seconda prova intermedia Un tifoso di calcio in partenza da Roma vuole raggiungere Rio De Janeiro per la finale del mondiale spendendo il meno possibile. Sono date le seguenti disponibilità
Grafi (orientati): cammini minimi
Grafi (orientati): cammini minimi Una breve presentazione Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Un cammino minimo tra
Algoritmi e strutture dati
Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di
Cammini minimi fra tutte le coppie
Capitolo 12 Cammini minimi fra tutte le coppie Consideriamo il problema dei cammini minimi fra tutte le coppie in un grafo G = (V, E, w) orientato, pesato, dove possono essere presenti archi (ma non cicli)
Dai ponti di Königsberg al postino cinese
Dai ponti di Königsberg al postino cinese Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa [email protected] M. Passacantando TFA 2012/1 - Corso di Ricerca Operativa Università
AMPL Problemi su Reti
Dipartimento di Matematica Università di Padova Corso di Laurea Informatica Outline Problemi su Reti Cammino Minimo Molti problemi di ottimizzazione combinatoria possono essere modellati ricorrendo ai
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore
Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente
Routing Introduzione Il livello 3 della pila ethernet ha il compito di muovere i pacchetti dalla sorgente attraversando più sistemi Il livello di network deve quindi: Scegliere di volta in volta il cammino
Cammini minimi in grafi:
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio III: la fine della trilogia Input: nelle puntate
Problema del cammino minimo
Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento
Fondamenti di Internet e Reti 097246
sul livello di Rete Instradamento. o Si consideri la rete in figura.. Si rappresenti, mediante un grafo, la rete per il calcolo dei cammini minimi (solo i nodi e gli archi no reti). Si calcoli il cammino
Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Cammini minimi Un cammino minimo tra una coppia di
Grafi diretti. Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove. V è u n i n s i e m e d i nodi (o vertici);
Algoritmi e Strutture di Dati II 2 Grafi diretti Un grafo diretto (o grafo orientato) G è una coppia (V,E) dove V è u n i n s i e m e d i nodi (o vertici); E µ V V è u n i n s i e m e d i archi. Denotiamo
Programmazione Dinamica (PD)
Programmazione Dinamica (PD) Altra tecnica per risolvere problemi di ottimizzazione, piu generale degli algoritmi greedy La programmazione dinamica risolve un problema di ottimizzazione componendo le soluzioni
Algoritmi e Strutture Dati. Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford
Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Bellman e Ford Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio II: cammini minimi a singola sorgente (per grafi
Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa
Alberi di copertura Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo, Pisa [email protected] M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni
12.1 IL PROBLEMA DEL CAMMINO MINIMO: L ALGORITMO DI DIJKSTRA
Problemi strutturati. IL PROBLEMA DEL CAMMINO MINIMO: L ALGORITMO DI DIJKSTRA Esercizio.. Dato il grafo di Figura.., trovare il peso dei cammini minimi dal nodo a tutti gli altri nodi del grafo (il peso
Algoritmi distribuiti su reti sincrone. Introduzione alle reti sincrone
Lucia Pallottino. Sistemi Robotici Distribuiti - Versione del 18 Aprile 2012 194 Algoritmi distribuiti su reti sincrone Per questo capitolo si può fare riferimento al libro Distributed Algorithms di Nancy
Grafi e reti di flusso
Grafi e reti di flusso Molti problemi di ottimizzazione sono caratterizzati da una struttura di grafo: in molti casi questa struttura emerge in modo naturale, in altri nasce dal particolare modo in cui
Esame di Ricerca Operativa del 11/07/2016
Esame di Ricerca Operativa del /0/01 (Cognome) (Nome) (Matricola) Esercizio 1. Un erboristeria vuole produrre una nuova tisana utilizzando tipi di tisane già in commercio. Tali tisane sono per lo più composte
Esame di Ricerca Operativa del 15/01/2015
Esame di Ricerca Operativa del 1/01/201 (Cognome) (Nome) (Matricola) Esercizio 1. Un azienda produce palloni da calcio e da basket che vende a 1 e 20 euro rispettivamente. L azienda compra ogni settimana
Esame di Ricerca Operativa del 15/01/2015
Esame di Ricerca Operativa del 1/01/01 (Cognome) (Nome) (Matricola) Esercizio 1. Un azienda produce palloni da basket e da calcio che vende rispettivamente a 1 e euro. L azienda compra ogni settimana 00
Esame di Ricerca Operativa del 07/09/2016
Esame di Ricerca Operativa del 0/09/201 (Cognome) (Nome) (Matricola) Esercizio 1. Un industria chimica produce due tipi di fertilizzanti (A e B) la cui lavorazione è affidata ai reparti di produzione e
Il problema del commesso viaggiatore
Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa [email protected] M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università
Problemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 13 Cammini minimi: Algoritmo di Dijkstra (*) (ACM in grafi diretti e non diretti senza archi di peso negativo) Punto della situazione Algoritmo basato sull ordinamento
Esame di Ricerca Operativa del 03/09/2015
Esame di Ricerca Operativa del 0/09/201 (Cognome) (Nome) (Matricola) Esercizio 1. Una raffineria di petrolio miscela tipi di greggio per ottenere tipi di carburante: senza piombo, diesel e blu diesel.
Macchine sequenziali. Automa a Stati Finiti (ASF)
Corso di Calcolatori Elettronici I Macchine sequenziali Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso
2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
. Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,
