2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1"

Transcript

1 . Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano

2 .. 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, determinare un cammino di costo minimo da s a t. s èl origine s 6 8 t èla destinazione c ij rappresenta il costo (lunghezza, tempo di percorrenza, ) dell arco (i, j) A 9 5 E. Amaldi Fondamenti di R.O. Politecnico di Milano 6 t

3 I problemi di cammini ottimi (minimi o massimi) hanno innumerevoli applicazioni: pianificazione e gestione di reti di trasporto, elettriche, idrauliche, di comunicazione,.. pianificazione di progetti complessi (relazioni logiche tra entità)... N.B.: Se grafo G non orientato j i lati sono considerati come coppie di archi i i j E. Amaldi Fondamenti di R.O. Politecnico di Milano

4 Un approccio di tipo greedy rispetto agli archi del taglio corrente ( simile a quello di Prim per gli alberi di supporto di costo minimo ) non è esatto! Esempio S s δ + ( S ) t s S δ + ( S ) t E. Amaldi Fondamenti di R.O. Politecnico di Milano

5 S s t s t = 6 = 5 il cammino ottenuto con il procedimento greedy non è di costo minimo. E. Amaldi Fondamenti di R.O. Politecnico di Milano 5

6 Algoritmo di Dijkstra ipotesi c ij, (i, j) A con c ij = + se (i, j) A input G = (N, A) con n = N e m = A, un nodo s N, c ij (i, j) A output Cammini minimi da s a tutti gli altri nodi 6 8 s t E. Amaldi Fondamenti di R.O. Politecnico di Milano 6

7 Idea: Esplorare i nodi in ordine crescente del costo di un cammino minimo da s a ciascuno di essi. Ad ogni nodo j N si associa una etichetta L[j] che al termine dell algoritmo rappresenta il costo di un cammino minimo da s a j. Greedy sui cammini da s a j! # s # # 6 8 # # E. Amaldi Fondamenti di R.O. Politecnico di Milano t # 5

8 Esempio s 6 8 Etichette associate ad ogni nodo j: [ L[j], pred[j] ] 9 dove pred[j] è il predecessore di j nel cammino minimo da s a j 5 6 t [, ] δ + ( S ) S * + < + [, ] s S E. Amaldi Fondamenti di R.O. Politecnico di Milano 8

9 S * [, ] [, ] [, ] + < + δ + ( S ) 8 5 S [, ] [, ] δ + ( S ) [, ] + < + * 5 [ 6, ] [, ] S δ + ( S ) [, ] [, ] 5 E. Amaldi Fondamenti di R.O. Politecnico di Milano 9 [ 6, ] * [ 8, 5 ] 6 + < +

10 [, ] [, ] δ + ( S ) * [ 8, 5 ] S [, ] [ 6, ] 5 S [, ] [ 8, 5 ] δ + ( S ) [, ] * 6 [, ] [ 6, ] [, ] E. Amaldi Fondamenti di R.O. Politecnico di Milano 5

11 Cammino minimo da s a j: pred[j], pred[ pred [j] ],..., s [, ] s [, ] 6 8 [, ] 9 5 [ 8, 5 ] 6 [ 6, ] t [, ] j= t Cammino di costo minimo da s a t Cammino di costo minimo da s al nodo E. Amaldi Fondamenti di R.O. Politecnico di Milano

12 Algoritmo di Dijkstra Struttura dati S N sottoinsieme di nodi di cui le etichette sono definitive L[ j] = costo di un cammino minimo da s a j, j S min { L[i] + c ij : (i, j) δ + (S) }, j S... E. Amaldi Fondamenti di R.O. Politecnico di Milano

13 s v L[v]= h c vh = L[h] δ + ( S ) i S c ij = L[i]=5 L[j] j Dato grafo G orientato e il sottoinsieme corrente di nodi S N, si considera il taglio orientato δ + (S) e si individua (v,h) δ + (S) tale che: L[v] + c vh = min { L[i] + c ij : (i, j) δ + (S) } cioè L[v] + c vh L[i] + c ij (i,j) δ + (S) E. Amaldi Fondamenti di R.O. Politecnico di Milano

14 pred[j] = v t.c. L[ v]+ c min L[i] + i c ij vj = { c : S} con = + se (i,j) A j S predecessore di j nel cammino minimo da s a j j S s L[i]=5 ij i c ij = j v c vj = L[v]= L[ j]=5 pred[ j]=v S δ + (S) E. Amaldi Fondamenti di R.O. Politecnico di Milano

15 Algoritmo di Dijkstra input output G = (N, A), n = N, m = A, s N, c ij (i, j) A Cammini minimi da s a tutti gli altri nodi BEGIN END S := {s}; L[s] := ; pred[s] := s; WHILE S n DO individuare (v,h) δ + (S) ={ (i,j) : (i,j) A, i S, j S} t.c. L[v] + c vh = min { L[i] + c ij : (i,j) δ + (S) }; L[h] := L[v] + c vh ; pred[h] := v; S := S {h}; END-WHILE taglio uscente NB: Se δ + (S)=, l algoritmo finisce: nessun h N \ S è raggiungibile da s E. Amaldi Fondamenti di R.O. Politecnico di Milano 5

16 Complessità Dipende da come, ad ogni iterazione, viene individuato l arco (v,h) del taglio uscente δ + (S). Se scansione esplicita di tutti m archi scartando quelli che non appartengono a δ + (S), complessità totale sarebbe O(nm), ossia O(n ) per i grafi densi. Determinando le etichette (qui L[j]) per aggiornamento ( algoritmo di Prim) basta considerare un solo arco di δ + (S) per ogni nodo j S complessità totale O(n ). E. Amaldi Fondamenti di R.O. Politecnico di Milano 6

17 Proprietà L algoritmo di Dijkstra è esatto. Dim. Al p-esimo passo: S = {s, i,..., i p } e L[ j ] = costo di un cammino minimo da s a j, j S costo di un cammino minimo con tutti i nodi intermedi in S j S Per induzione sul numero p di passi : base induttiva : è vero per p = : S = {s}, L[s] = e L[ j] = c sj j s passo induttivo : se è vero al p-esimo passo, lo è anche al (p+)-esimo E. Amaldi Fondamenti di R.O. Politecnico di Milano 7

18 (p+)-esimo passo: Sia h S il nodo che viene inserito in S e ϕ il cammino da s a h tale che: L[v] + c vh L[i] + c ij (i, j) δ + (S) Verifichiamo che per qualsiasi cammino π da s a h si ha c(π) c(ϕ) esistono i S e j S tali che S v h π = π (i, j) π dove ϕ (i, j) è il primo arco π δ + (S) s π L[v] i π π j per scelta di (v,h) costo c(ϕ) c(π) = c(π ) + c ij + c(π ) L[i] + c ij L[v] + c vh c(π ) L[ i ]: per ipotesi induttiva c(π ) perché c ij E. Amaldi Fondamenti di R.O. Politecnico di Milano 8

19 I cammini minimi da s a tutti i nodi j sono memorizzati mediante il vettore dei predecessori [, ] [ 8, 5 ] [, ] s 5 t [, ] j=t [, ] [ 6, ] I cammini minimi da s a tutti gli altri nodi formano un albero (albero dei cammini minimi). E. Amaldi Fondamenti di R.O. Politecnico di Milano 9

20 L algoritmo di Dijkstra non è applicabile se esistono archi di costo c ij < Esempio - In questo caso, otteniamo il cammino di costo mentre esiste il cammino di costo Il costo da a non è più modificato dopo il primo passo. Tramite una scelta greedy sui cammini uscenti dal nodo viene preso pari a c che è localmente migliore (c < c ) anche se il cammino ha un costo totale inferiore causa la presenza di c <. E. Amaldi Fondamenti di R.O. Politecnico di Milano

21 Esercizio Determinare i cammini minimi dal nodo a tutti gli altri nodi del seguente grafo: E. Amaldi Fondamenti di R.O. Politecnico di Milano

22 .. Algoritmo di Floyd-Warshall Permette di determinare i cammini minimi tra tutte le coppie di nodi s, t anche in presenza di archi di costo negativo. N.B.: Se il grafo contiene circuiti di costo totale negativo, il problema non è ben definito! Esempio s -6 costo: - t L algoritmo di Floyd-Warshall permette di individuare l esistenza di circuiti di costo negativo E. Amaldi Fondamenti di R.O. Politecnico di Milano

23 Algoritmo di Floyd-Warshall input output Grafo orientato G = (N, A) descritto mediante la matrice n x n dei costi c ij. Per ogni coppia di nodi i, j N, il costo d ij di un cammino minimo da i a j. Struttura dati: due matrici n x n De P di cui gli elementi rappresentano al termine dell algoritmo d ij = costo di un cammino minimo da i a j p ij = predecessore di j nel cammino minimo da i a j E. Amaldi Fondamenti di R.O. Politecnico di Milano

24 E. Amaldi Fondamenti di R.O. Politecnico di Milano Esempio D P Algoritmo di Floyd-Warshall Per (i, j) A si pone d ij = c ij, per gli auto-anelli d ii = e per (i, j) A si pone d ij = La matrice dei predecessori viene inizializzata con p ij = i n.b.: da a e da a.

25 Ciclo h= : Per ogni coppia di nodi i, j (compreso casi i=j) si controlla se per andare da i a j conviene passare per h (=): d i + d j < d ij = c ij Operazione triangolare relativa al nodo h: Poiché non esistono tali archi, le matrici D e P rimangono invariate E. Amaldi Fondamenti di R.O. Politecnico di Milano 5 i d ih h d ij d hj j

26 E. Amaldi Fondamenti di R.O. Politecnico di Milano 6 D P Per andare da a conviene passare per : d = mentre il cammino (,) (,) è di costo d + d = = -7 Il costo d viene rimpiazzato col costo del nuovo cammino d +d Poiché il predecessore di nel nuovo cammino è si pone p = Ciclo h= :

27 E. Amaldi Fondamenti di R.O. Politecnico di Milano 7 D P Per andare da a conviene passare per : d = mentre il cammino (,) (,) è di costo d + d = 8 = - Poiché il predecessore di nel nuovo cammino è si pone p = Il costo d viene rimpiazzato col costo del nuovo cammino d +d

28 - Per andare da a conviene passare per : d = 9 mentre il cammino (,) (,) è di costo d + d = + 6 = 7 Riguardo gli auto-anelli, si nota che passando per il cammino da a se stesso risulta di costo - = - 9 < d = Esiste quindi un circuito ( ) di costo negativo! Alla fine del ciclo h = le matrici dei costi e dei predecessori sono: D P E. Amaldi Fondamenti di R.O. Politecnico di Milano 8

29 Algoritmo di Floyd-Warshall BEGINg FOR i:= TO n DO FOR j:= TO n DO p ij := i; END-FOR END-FOR FOR h:= TO n DO /* operazione triangolare su h */ FOR i:= TO n WITH i h DO FOR j:= TO n WITH j h DO IF (d ih + d hj < d ij ) THEN d ij = d ih + d hj ; Operazione triangolare: p ij := p hj ; Si aggiorna d ij se dal punto di END-IF vista del costo risulta più END-FOR conveniente raggiungere j da i passando per h END-FOR FOR i:= TO n DO IF d ii < THEN STOP; END-IF /* un circuito negativo */ END-FOR END-FOR END E. Amaldi Fondamenti di R.O. Politecnico di Milano 9

30 Si può verificare (per induzione su h) che l algoritmo di Floyd-Warshall è esatto Complessità Nel caso peggiore l operazione triangolare viene eseguita su tutti i nodi h ( che sono n ) e per ogni coppia di nodi i e j ( che sono n ) Complessità totale: O(n ) E. Amaldi Fondamenti di R.O. Politecnico di Milano

31 Esercizio Determinare i cammini minimi tra tutte le coppie di nodi del seguente grafo: E. Amaldi Fondamenti di R.O. Politecnico di Milano

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) diffusione di messaggi segreti memorizzazione

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di

Dettagli

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2 OTTIMIZZAZIONE SU GRAFI. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 2 OTTIMIZZAZIONE SU GRAFI E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Molti problemi decisionali possono essere formulati utilizzando il linguaggio della teoria dei grafi. Esempi: - problemi di

Dettagli

età (anni) manutenzione (keuro) ricavato (keuro)

età (anni) manutenzione (keuro) ricavato (keuro) .6 Cammini minimi. Determinare i cammini minimi dal nodo 0 a tutti gli altri nodi del seguente grafo, mediante l algoritmo di Dijkstra e, se applicabile, anche mediante quello di Programmazione Dinamica.

Dettagli

Teoria dei Grafi Parte I. Alberto Caprara DEIS - Università di Bologna

Teoria dei Grafi Parte I. Alberto Caprara DEIS - Università di Bologna Teoria dei Grafi Parte I Alberto Caprara DEIS - Università di Bologna acaprara@deis.unibo.it Teoria dei Grafi Paradigma di rappresentazione di problemi Grafo G : coppia (V,E) V = insieme di vertici E =

Dettagli

Teoria dei Grafi Parte I

Teoria dei Grafi Parte I Teoria dei Grafi Parte I Daniele Vigo D.E.I.S. - Università di Bologna dvigo@deis.unibo.it Teoria dei Grafi Paradigma di rappresentazione di problemi Grafo G : coppia (V,E) V = insieme di vertici E = insieme

Dettagli

1 TEORIA DELLE RETI 1. 1 Teoria delle reti. 1.1 Grafi

1 TEORIA DELLE RETI 1. 1 Teoria delle reti. 1.1 Grafi 1 TEORIA DELLE RETI 1 1 Teoria delle reti 1.1 Grafi Intuitivamente un grafo è un insieme finito di punti (nodi o vertici) ed un insieme di frecce (archi) che uniscono coppie di punti Il verso della freccia

Dettagli

Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi :

Problema dell albero di cammini minimi (SPT, Shortest Path Tree) o problema dei cammini minimi : Per almeno una delle soluzioni ottime { P i, i r } del problema generalizzato, l unione dei cammini P i forma un albero di copertura per G radicato in r e orientato, ossia un albero la cui radice è r i

Dettagli

2.3.3 Cammini ottimi nei grafi senza circuiti

2.3.3 Cammini ottimi nei grafi senza circuiti .. Cammini ottimi nei grafi senza circuiti Sia un grafo G = (N, A) orientato senza circuiti e una funzione di costo che assegna un valore c ij R ad ogni arco (i, j) A circuito Proprietà I nodi di un grafo

Dettagli

Algoritmo basato su cancellazione di cicli

Algoritmo basato su cancellazione di cicli Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile

Dettagli

2.3.5 Pianificazione di progetti

2.3.5 Pianificazione di progetti ..5 Pianificazione di progetti Un progetto è costituito da un insieme di attività i, con i =,..., m, ciascuna di durata d i stima Tra alcune coppie di attività esistono relazioni di precedenza del tipo

Dettagli

PROBLEMI SU GRAFO (combinatori)

PROBLEMI SU GRAFO (combinatori) PROLMI SU GRO (combinatori) In molti problemi il numero di soluzioni ammissibili è finito. Questi problemi sono quasi sempre descritti su grafi. Rete stradale: come andare da a in tempo minimo? Grafo orientato

Dettagli

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

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

Dettagli

5.1 Metodo Branch and Bound

5.1 Metodo Branch and Bound 5. Metodo Branch and Bound Consideriamo un generico problema di ottimizzazione min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando

Dettagli

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST)

Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST) Il Problema dell Albero Ricoprente Minimo (Shortest Spanning Tree - SST) È dato un grafo non orientato G=(V,E). Ad ogni arco e i E, i=1,,m, è associato un costo c i 0 7 14 4 10 9 11 8 12 6 13 5 17 3 2

Dettagli

Alberi di copertura. Mauro Passacantando. Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa

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 mpassacantando@di.unipi.it M. Passacantando TFA 0/ - Corso di Ricerca Operativa Università di Pisa / 9 Definizioni

Dettagli

Cammini minimi. Damiano Macedonio

Cammini minimi. Damiano Macedonio Cammini minimi Damiano Macedonio mace@unive.it Copyright 2010 2012, Moreno Marzolla, Università di Bologna, Italy (http://www.moreno.marzolla.name/teaching/asd2011b/) Modifications Copyright c 2015, Damiano

Dettagli

Introduzione ai grafi

Introduzione ai grafi TFA A048 Anno Accademico 2012-13 Outline Cenni storici sui grafi Nozioni introduttive: cammini, connessione, alberi, cicli Cammini di costo minimo Origini storiche La nascita della teoria dei grafi risale

Dettagli

Quinto appello 27/6/ = 4. B b B = 2 b N = 4

Quinto appello 27/6/ = 4. B b B = 2 b N = 4 Quinto appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si risolva il problema di PL dato applicando l algoritmo del Simplesso Duale, per via algebrica, a partire dalla base B {, }. Per

Dettagli

Appunti lezione Capitolo 13 Programmazione dinamica

Appunti lezione Capitolo 13 Programmazione dinamica Appunti lezione Capitolo 13 Programmazione dinamica Alberto Montresor 12 Novembre, 2015 1 Domanda: Fattore di crescita dei numeri catalani Vogliamo dimostrare che cresce almeno come 2 n. La nostra ipotesi

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 0/06/06 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai

Dettagli

Algoritmi e strutture dati

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

Dettagli

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 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

Dettagli

Grafi (orientati): cammini minimi

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

Dettagli

5.1 Metodo Branch and Bound

5.1 Metodo Branch and Bound 5. Metodo Branch and Bound Si consideri il problema min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando una partizione (ricorsiva)

Dettagli

Grafi (orientati): cammini minimi

Grafi (orientati): cammini minimi .. Grafi (orientati): cammini minimi Una presentazione alternativa (con ulteriori dettagli) Un algoritmo greedy per calcolare i cammini minimi da un vertice sorgente in un grafo orientato e pesato, senza

Dettagli

RICERCA OPERATIVA (a.a. 2018/19)

RICERCA OPERATIVA (a.a. 2018/19) Secondo appello //9 RICERCA OPERATIVA (a.a. 8/9) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: min y + y y y y y = y + y y = y, y, y, y Si verifichi se la soluzione ȳ =,,, sia ottima

Dettagli

Problema del cammino minimo

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

Dettagli

Il problema del commesso viaggiatore

Il problema del commesso viaggiatore Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università

Dettagli

Progettazione di algoritmi. Reti di flusso (2)

Progettazione di algoritmi. Reti di flusso (2) Progettazione di algoritmi Reti di flusso (2) Correttezza e complessità dell algoritmo di Ford-Fulkerson Il teorema del massimo flusso-minimo taglio L algoritmo di Ford-Fulkerson per il calcolo del massimo

Dettagli

Parte V: Rilassamento Lagrangiano

Parte V: Rilassamento Lagrangiano Parte V: Rilassamento Lagrangiano Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice

Dettagli

Esame di Ricerca Operativa del 18/06/18

Esame di Ricerca Operativa del 18/06/18 Esame di Ricerca Operativa del 8/0/8 (Cognome) (Nome) (Numero di Matricola) Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: max x x x +x x x x +x x x x + x

Dettagli

Modelli di Programmazione Lineare. PRTLC - Modelli

Modelli di Programmazione Lineare. PRTLC - Modelli Modelli di Programmazione Lineare PRTLC - Modelli Schema delle esercitazioni Come ricavare la soluzione ottima Modelli Solver Come ricavare una stima dell ottimo Rilassamento continuo - generazione di

Dettagli

Esercizi proposti nel Cap Soluzioni. Esercizio 14.1

Esercizi proposti nel Cap Soluzioni. Esercizio 14.1 M. CARAMIA, S. GIORDANI, F. GUERRIERO, R. MUSMANNO, D. PACCIARELLI RICERCA OPERATIVA Isedi Esercizi proposti nel Cap. 14 - Soluzioni Esercizio 14.1 Al fine di utilizzare l algoritmo più efficiente, verifichiamo

Dettagli

Capitolo 5. Algoritmi di ricerca su grafo. 5.1 Algoritmi di ricerca su grafo

Capitolo 5. Algoritmi di ricerca su grafo. 5.1 Algoritmi di ricerca su grafo Capitolo 5 Algoritmi di ricerca su grafo Gli algoritmi di ricerca su grafo, oggetto dei prossimi paragrafi, rappresentano tecniche fondamentali per determinare nodi che soddisfino particolari proprietà

Dettagli

Bioinformatica. Grafi. a.a Francesca Cordero. Grafi Bioinformatica

Bioinformatica. Grafi. a.a Francesca Cordero. Grafi Bioinformatica fcordero@di.unito.it Introduzione cknowledgement Lucidi da. Horváth,. emetrescu et al, lgoritmi e strutture dati, McGraw-Hill 3 efinizione: che cosa sono i grafi? definizione astratta: un grafo G = (V,)

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

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

Dettagli

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Ottimizzazione Combinatoria e Reti (a.a. 2007/08) o Appello 6/07/008 Ottimizzazione Combinatoria e Reti (a.a. 007/08) Nome Cognome: Matricola: ) Dopo avere finalmente superato l esame di Ricerca Operativa, Tommaso è pronto per partire in vacanza. Tommaso

Dettagli

Soluzioni della settima esercitazione di Algoritmi 1

Soluzioni della settima esercitazione di Algoritmi 1 Soluzioni della settima esercitazione di Algoritmi 1 Beniamino Accattoli 19 dicembre 2007 1 Grafi Un grafo è non orientato se descrivendo un arco come una coppia di vertici (i,j) l ordine è ininfluente

Dettagli

Grafi Stessa distanza

Grafi Stessa distanza Grafi Stessa distanza In un grafo orientato G, dati due nodi s e v, si dice che: v è raggiungibile da s se esiste un cammino da s a v; la distanza di v da s è la lunghezza del più breve cammino da s a

Dettagli

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi

Dettagli

11.4 Chiusura transitiva

11.4 Chiusura transitiva 6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)

Dettagli

Cammini minimi con sorgente singola

Cammini minimi con sorgente singola Cammini minimi con sorgente singola Vittorio Maniezzo - Università di Bologna Cammini minimi con sorgente singola Dato: un grafo(orientatoo non orientato) G= (V,E,W) con funzionedi peso w:e R un particolarevertices

Dettagli

Visite in Grafi BFS e DFS

Visite in Grafi BFS e DFS Visite in Grafi BFS e DFS Visita di un Grafo Obiettivo: Visitare una sola volta tutti i nodi del grafo. Es.: visitare un porzione del grafo del Web Difficoltà: Presenza di cicli: Marcare i nodi visitati

Dettagli

Cammini minimi fra tutte le coppie

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)

Dettagli

Problemi di Percorso. Capitolo dodicesimo

Problemi di Percorso. Capitolo dodicesimo Capitolo dodicesimo Problemi di Percorso Introduzione I problemi di determinazione di percorsi ottimi sono tra i più noti problemi di ottimizzazione su rete. Essi si presentano in innumerevoli campi, nella

Dettagli

Cammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo

Cammini Minimi. Algoritmo di Dijkstra. Cammino in un grafo Cammini Minimi Algoritmo di Dijkstra Cammino in un grafo Dato un grafo G=(V,E), un Cammino (Percorso) in G è un insieme di vertici v 1, v 2,.., v k tali che (v i, v i+1 ) E v 1 v 2 v 3 v k In un grafo

Dettagli

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo:

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo: PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Sia G = (V,E) un grafo orientato ai cui archi è associato un costo W(u,v). Il costo di un cammino p = (v 1,v 2,...,v k ) è la somma dei costi degli archi

Dettagli

Alberi e arborescenze di costo minimo

Alberi e arborescenze di costo minimo Alberi e arborescenze di costo minimo Complementi di Ricerca Operativa Giovanni Righini Dipartimento di Tecnologie dell Informazione - Università degli Studi di Milano Definizioni - 1 Un grafo G = (V,

Dettagli

Definizione 1.3 (Arco accoppiato) Un arco è accoppiato se è appartenente al matching M.

Definizione 1.3 (Arco accoppiato) Un arco è accoppiato se è appartenente al matching M. Matching. Definizioni Definizione. (Matching di un grafo G = (N, A)) Il matching di un grafo è un sottoinsieme M di archi tali per cui nessuna coppia di essi condivida lo stesso nodo. Definizione.2 (Matching

Dettagli

Cammini di costo minimo

Cammini di costo minimo Cammini di costo minimo Ivan Lanese Dipartimento di Informatica Scienza e Ingegneria Università di Bologna ivan.lanese@gmail.com http://www.cs.unibo.it/~lanese/ Cammini di Costo Minimo 2 Definizione del

Dettagli

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola: 5 o Appello 8/0/0 RICERCA OPERATIVA (a.a. 0/) Nome: Cognome: Matricola: ) Si individui un albero dei cammini minimi di radice sul grafo in figura, utilizzando l algoritmo più appropriato dal punto di vista

Dettagli

Grafi non orientati. Grafi (non orientati) Rappresentazione di Grafi: matrice delle adiacenze. Tipiche applicazioni di modelli basati su grafi

Grafi non orientati. Grafi (non orientati) Rappresentazione di Grafi: matrice delle adiacenze. Tipiche applicazioni di modelli basati su grafi Grafi non orientati Grafi (non orientati) Notazione. G = (V, E) V = nodi (o vertici). E = archi (o lati) tra coppie di nodi. Modella relazioni definite tra coppie di oggetti. aglia di un grafo: numero

Dettagli

Cammini Minimi. Algoritmo di Dijkstra

Cammini Minimi. Algoritmo di Dijkstra Cammini Minimi Algoritmo di Dijkstra Cammino in un grafo Dato un grafo G=(V,E), un Cammino (Percorso) in G è un insieme di vertici v 1, v 2,.., v k tali che (v i, v i+1 ) E v 1 v 2 v 3 v k In un grafo

Dettagli

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33

Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33 Ottimizzazione su grafi: massimo flusso (parte 1) Ottimizzazione su grafi:massimo flusso (parte 1) p. 1/33 Ottimizzazione su grafi:massimo flusso (parte 1) p. 2/33 Reti di flusso Una rete di flusso è una

Dettagli

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44;

1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44; 1) Data la seguente istanza di TSP (grafo completo con 5 nodi): c 12 = 52; c 13 = 51; c 14 = 40; c 15 = 53; c 23 = 44; c 24 = 15; c 25 = 12; c 34 = 32; c 35 = 55; c 45 = 24 Si calcoli l ottimo duale (formulazione

Dettagli

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola: Primo appello 9//8 RICERCA OPERATIVA (a.a. 7/8) Nome: Cognome: Matricola: ) Si risolva il seguente problema di PL max x + x x + x x x x x applicando l algoritmo del Simplesso Primale, per via algebrica,

Dettagli

Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi

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

Dettagli

Esame di Ricerca Operativa del 07/06/2019

Esame di Ricerca Operativa del 07/06/2019 Esame di Ricerca Operativa del 0/0/09 (Cognome) (Nome) (Numero di Matricola) Esercizio. (a) Risolvere il seguente problema di programmazione lineare applicando l algoritmo del simplesso duale: min y y

Dettagli

Esercizi Union-Find e su Grafi. Ugo Vaccaro

Esercizi Union-Find e su Grafi. Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 0 07 Esercizi Union-Find e su Grafi. Ugo Vaccaro. Esercizio: Scrivere pseudocodice per Make-Set, Union, e Find-Set usando la rappresentazione attraverso liste

Dettagli

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2017/18) Nome: Cognome: Matricola: Sesto appello 7/7/8 RICERCA OPERATIVA (a.a. 7/8) Nome: Cognome: Matricola: ) Si risolva il seguente problema di PL applicando l algoritmo del Simplesso Duale, per via algebrica, a partire dalla base B

Dettagli

G è 2-colorabile se ogni nodo può essere colorato di bianco o di nero in modo che nodi connessi da archi siano colorati con colori distinti.

G è 2-colorabile se ogni nodo può essere colorato di bianco o di nero in modo che nodi connessi da archi siano colorati con colori distinti. Grafi Grafi bipartiti Un grafo non orientato G è bipartito se l insieme dei nodi può essere partizionato in due sottoinsiemi disgiunti tali che nessun arco del grafo connette due nodi appartenenti allo

Dettagli

AMPL Problemi su Reti

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

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)

Dettagli

2.3.4 Pianificazione di progetti

2.3.4 Pianificazione di progetti .. Pianificazione di progetti Un progetto è costituito da un insieme di attività i, con i =,..., m, ciascuna di durata d i. stima Tra alcune coppie di attività esistono relazioni di precedenza del tipo

Dettagli

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola: Sesto appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si risolva il seguente problema di PL max x x x x x x + x x per via algebrica, mediante l algoritmo del Simplesso Primale a partire

Dettagli

Università Roma Tre - PAS Classe A048 "Matematica Applicata" - Corso di Informatica a.a. 2013/2014

Università Roma Tre - PAS Classe A048 Matematica Applicata - Corso di Informatica a.a. 2013/2014 Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A08 Matematica Applicata Corso di Informatica Algoritmi su Grafi Marco Liverani (liverani@mat.uniroma.it) Sommario

Dettagli

Teoria dei Grafi Concetti fondamentali

Teoria dei Grafi Concetti fondamentali Teoria dei Grafi Concetti fondamentali I grafi sono un mezzo per rappresentare relazioni binarie. Ad esempio: due città connesse da una strada due calcolatori connessi in una rete telematica due persone

Dettagli

Progettazione di Algoritmi Anno Accademico Esercizi su Grafi: Parte Prima

Progettazione di Algoritmi Anno Accademico Esercizi su Grafi: Parte Prima 1 Progettazione di Algoritmi Anno Accademico 2018 2019 Esercizi Ugo Vaccaro Esercizi su Grafi: Parte Prima N.B. Si ricorda che ogni algoritmo và accompagnato da una argomentazione sul perchè calcola correttamente

Dettagli

Esame di Ricerca Operativa del 19/07/19. Esercizio 1. (a) Risolvere mediante il metodo del simplesso il seguente problema di programmazione lineare:

Esame di Ricerca Operativa del 19/07/19. Esercizio 1. (a) Risolvere mediante il metodo del simplesso il seguente problema di programmazione lineare: Esame di Ricerca Operativa del /0/ (Cognome) (Nome) (Numero di Matricola) Esercizio. (a) Risolvere mediante il metodo del simplesso il seguente problema di programmazione lineare: max x +x x + x x x x

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione ai grafi Grafi: Definizione e Algoritmi di visita Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2007/08 Introduzione ai

Dettagli

Complessità Computazionale

Complessità Computazionale Complessità Computazionale La teoria della Computabilità cattura la nozione di algoritmo nel senso che per ogni problema sia esso decisionale o di calcolo di funzione stabilisce dei criteri per determinare

Dettagli

Algoritmi e Strutture dati Mod B. Grafi Percorsi Minimi: algoritmi esatti e algoritmi euristici (A*)

Algoritmi e Strutture dati Mod B. Grafi Percorsi Minimi: algoritmi esatti e algoritmi euristici (A*) Algoritmi e Strutture dati Mod B Grafi Percorsi Minimi: algoritmi esatti e algoritmi euristici (A*) Grafi: Percorsi minimi Un percorso minimo in un grafo G= grafo pesato orientato, con funzione di

Dettagli

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola: o Appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: max x + x x x x x x + x x Si applichi l algoritmo del Simplesso Duale, per via algebrica, a

Dettagli

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2016/17) Nome: Cognome: Matricola: Secondo appello //0 RICERCA OPERATIVA (a.a. 0/) Nome: Cognome: Matricola: ) Si risolva il seguente problema di PL max x x x x x + x x x per via algebrica, mediante l algoritmo del Simplesso Primale a partire

Dettagli

Esame di Ricerca Operativa del 20/02/18

Esame di Ricerca Operativa del 20/02/18 Esame di Ricerca Operativa del //8 (Cognome) (Nome) (Numero di Matricola) Esercizio. (a) Risolvere mediante l algoritmo del simplesso duale il seguente problema di programmazione lineare: min x x +x x

Dettagli

Claudio Arbib Università di L Aquila. Ricerca Operativa. Reti di flusso

Claudio Arbib Università di L Aquila. Ricerca Operativa. Reti di flusso Claudio Arbib Università di L Aquila Ricerca Operativa Reti di flusso Sommario Definizioni di base Flusso di un campo vettoriale Divergenza Integrale di Gauss-Greene Flusso in una rete Sorgenti, pozzi

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

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à

Dettagli

Algoritmi e Strutture dati Mod B. Grafi: Percorsi Minimi (parte I)

Algoritmi e Strutture dati Mod B. Grafi: Percorsi Minimi (parte I) Algoritmi e Strutture dati Mod B Grafi: Percorsi Minimi (parte I) Grafi: Percorsi minimi Un percorso minimo in un grafo G= grafo pesato orientato, con funzione di peso w: E fi che mappa archi in pesi

Dettagli

RICERCA OPERATIVA (a.a. 2003/04) Nome Cognome:

RICERCA OPERATIVA (a.a. 2003/04) Nome Cognome: o Appello 0//00 RICERCA OPERATIVA (a.a. 00/0) Nome Cognome: Corso di Laurea: I SI M Matricola Corso A B C ) La ditta di trasporti FurgonFast deve suddividere tra tre diversi trasportatori n oggetti da

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Capitolo 3 Cammini minimi: algoritmo di Dijkstra Cammini minimi in grafi: cammini minimi a singola sorgente (senza pesi negativi) Cammini minimi in grafi pesati Sia G=(V,E,w)

Dettagli

Ad ogni arco (i,j) del grafo e' associato un valore intero c(i,j) detto capacita' dell'arco

Ad ogni arco (i,j) del grafo e' associato un valore intero c(i,j) detto capacita' dell'arco 6) FLUSSI Definizione di flusso Si definisce rete di flusso un grafo orientato e connesso con i) un solo vertice con esclusivamente archi uscenti ii) un solo vertice con esclusivamente archi entranti Tradizionalmente

Dettagli

Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016

Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Esercitazione 6 Algorithmi e Strutture Dati (Informatica) A.A 2015/2016 Tong Liu April 14, 2016 Elementi Fondamentali Rappresentazione n = V numero di vertici (nodi) m = E numero di archi Matrice di adiacenza:

Dettagli

algoritmi e strutture di dati

algoritmi e strutture di dati algoritmi e strutture di dati grafi m.patrignani nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente, immagini,

Dettagli

RICERCA OPERATIVA (a.a. 2012/13) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2012/13) Nome: Cognome: Matricola: o Appello 7// RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si individui un albero dei cammini minimi di radice sul grafo in figura utilizzando l algoritmo più appropriato dal punto di vista della

Dettagli

Visite in Grafi BFS e DFS. PDF created with FinePrint pdffactory trial version

Visite in Grafi BFS e DFS. PDF created with FinePrint pdffactory trial version Visite in Grafi BFS e DFS Visita di un Grafo 8Obiettivo: 4Visitare una sola volta tutti i nodi del grafo. 4Es.: visitare un porzione del grafo del Web 8Difficoltà : 4Presenza di cicli: Marcare i nodi visitati

Dettagli

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola: o Appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: max x +x x +x x +x +x 7 x x Utilizzando il Teorema degli scarti complementari, si dimostri che

Dettagli

INSTRADAMENTO: ALGORITMO DI BELLMAN-FORD

INSTRADAMENTO: ALGORITMO DI BELLMAN-FORD UNIVERSITA' DEGLI STUDI DI BERGAMO Dipartimento di Ingegneria INSTRADAMENTO: ALGORITMO DI BELLMAN-FORD FONDAMENTI DI RETI E TELECOMUNICAZIONE A.A. 2012/13 - II Semestre Esercizio 1 Sia dato il grafo G=

Dettagli

3.3 Problemi di PLI facili

3.3 Problemi di PLI facili 3.3 Problemi di PLI facili Consideriamo un generico problema di PLI espresso in forma standard min{c t x : Ax = b, x Z n +} (1) dove A Z m n con n m, e b Z m. Supponiamo che A sia di rango pieno. Sia P

Dettagli

Analisi e implementazione dell algoritmo di Dijkstra (Parte 1)

Analisi e implementazione dell algoritmo di Dijkstra (Parte 1) Analisi e implementazione dell algoritmo di Dijkstra (Parte 1) Algoritmicamente August 1, 2009 http://algoritmicamente.wordpress.com/ 1 Concetti fondamentali Definizione 1 Un grafo è un insieme di vertici

Dettagli