2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
|
|
- Erico Festa
- 7 anni fa
- Visualizzazioni
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
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) diffusione di messaggi segreti memorizzazione
Dettagli2.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
Dettagli2.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
Dettagli2 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
Dettagli2.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
Dettagli2 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
Dettaglietà (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.
DettagliTeoria 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 =
DettagliTeoria 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
Dettagli1 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
DettagliProblema 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
Dettagli2.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
DettagliAlgoritmo 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
Dettagli2.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
DettagliPROBLEMI 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
Dettagli3 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
DettagliCammini 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
Dettagli5.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
DettagliIl 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
DettagliAlberi 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
DettagliCammini 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
DettagliIntroduzione 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
DettagliQuinto 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
DettagliAppunti 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
DettagliProgettazione 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
DettagliAlgoritmi 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
DettagliAlgoritmi 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
DettagliGrafi (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
Dettagli5.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)
DettagliGrafi (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
DettagliRICERCA 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
DettagliProblema 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
DettagliIl 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à
DettagliProgettazione 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
DettagliParte 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
DettagliEsame 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
DettagliModelli 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
DettagliEsercizi 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
DettagliCapitolo 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à
DettagliBioinformatica. 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,)
DettagliUNIVERSITÀ 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
DettagliOttimizzazione 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
DettagliSoluzioni 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
DettagliGrafi 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
DettagliAlgoritmi 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
Dettagli11.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)
DettagliCammini 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
DettagliVisite 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
DettagliCammini 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)
DettagliProblemi 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
DettagliCammini 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
DettagliPROBLEMA 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
DettagliAlberi 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,
DettagliDefinizione 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
DettagliCammini 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
DettagliRICERCA 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
DettagliGrafi 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
DettagliCammini 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
DettagliOttimizzazione 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
Dettagli1) 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
DettagliRICERCA 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,
DettagliEsercizi 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
DettagliEsame 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
DettagliEsercizi 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
DettagliRICERCA 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
DettagliG è 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
DettagliAMPL 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
DettagliAppunti 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)
Dettagli2.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
DettagliRICERCA 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
DettagliUniversità 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
DettagliTeoria 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
DettagliProgettazione 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
DettagliEsame 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
DettagliAlgoritmi 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
DettagliComplessità 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
DettagliAlgoritmi 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
DettagliRICERCA 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
DettagliRICERCA 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
DettagliEsame 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
DettagliClaudio 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
DettagliUNIVERSITÀ 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à
DettagliAlgoritmi 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
DettagliRICERCA 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
DettagliAlgoritmi 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)
DettagliAd 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
DettagliEsercitazione 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:
Dettaglialgoritmi 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,
DettagliRICERCA 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
DettagliVisite 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
DettagliRICERCA 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
DettagliINSTRADAMENTO: 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=
Dettagli3.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
DettagliAnalisi 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