Problema del cammino minimo
|
|
|
- Gennaro Salvatori
- 8 anni fa
- Visualizzazioni
Transcript
1 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 tra due città con un arco etichettato con la distanza che separa le due città. Tra tutti i cammini che collegano le due città interessate, scegliamo quello più corto.
2 Algoritmi e Strutture di Dati II 3 Problema del cammino minimo Un grafo diretto pesato è u n a t r i p l a G =(V,E,w) ove(v,e) èun grafo diretto e w : E! R è una funzione peso che associa ad ogni arco un peso (o costo) reale. Il peso di un cammino è la somma dei pesi dei propri archi; la lunghezza di un cammino è il numero di archi del cammino; collega i due nodi. Dati due nodi u e v, uncammino minimo tra due nodi è, se esiste, un cammino di peso minimo che li collega. La distanza tra due nodi è il peso del cammino minimo che collega i due nodi.
3 Algoritmi e Strutture di Dati II 4 Varianti del problema Cammino minimo tra due nodi: dati due nodi u e v, trovare un cammino minimo da u e v; Cammino minimo con una sorgente: dato un nodo sorgente s, trovare, per ogni nodo del grafo v, un cammino minimo da s a v; Cammino minimo con una destinazione: dato un nodo destinazione d, trovare, per ogni nodo del grafo v, un cammino minimo da v a d; Cammino minimo per tutte le coppie di nodi: per ogni coppia di nodi u, v del grafo trovare un cammino minimo da u a v.
4 Algoritmi e Strutture di Dati II
5 Algoritmi e Strutture di Dati II
6 Algoritmi e Strutture di Dati II Proprietà del cammino minimo La proprietà della sottostruttura ottimale afferma che un cammino minimo contiene altri cammini minimi al suo interno. Teorema Sia p = hv 0,v,...,v k i un cammimo minimo da v 0 a v k e p i,j il sottocammino di p da v i a v j. Allora p i,j è un cammino minimo da v i a v j. Osservazione Un cammino minimo è un cammino semplice, cioè non contiene cicli.
7 Algoritmi e Strutture di Dati II 8 Rappresentazione del cammino minimo Sia G =(V,E,w) un grafo pesato e s una sorgente di G. Per ogni nodo v raggiungibile dalla sorgente s, rappresentiamo un solo cammino minimo da s a v. Scriviamo nella variabile º[v] il predecessore di v lungo il cammino minimo rappresentato dalla sorgente s a v. º[v] è nil se v = s oppure se non esiste alcun cammino minimo da s a v. Inoltre scriviamo nella variabile d[v] una stima (per eccesso) del peso del cammino minimo che va da s a v.
8 Algoritmi e Strutture di Dati II 9 Rappresentazione del cammino minimo Il sottografo G º =(V º,E º ) tale che: V º = {v V : º[v] 6= nil}[{s} e E º = {(º[v],v) E : º[v] 6= nil} è d e t t o albero dei cammini minimi con radice s. Per ogni nodo v V º, l unico cammino in G º da s a v corrisponde ad un cammino minimo in G da s a v.
9 Algoritmi e Strutture di Dati II 0 Inizializza Initialize(G,s) : for all v V [G] do : d[v] 3: º[v] nil 4: end for : d[s] 0 Il costo è Θ(n), con n = V.
10 Algoritmi e Strutture di Dati II Rilassa Relax(G,u,v) : if d[u]+w(u, v) <d[v] then : d[v] d[u] +w(u, v) 3: º[v] u 4: end if d[u] u s w(u,v) d[v] v
11 Algoritmi e Strutture di Dati II Algoritmo di Bellman-Ford L algoritmo risolve il problema del cammino minimo con una sorgente e pesi reali (possibilmente negativi). L algoritmo ritorna false se esiste un ciclo di peso negativo raggiungibile dalla sorgente. In questo caso, non tutti i cammini minimi dalla sorgente esistono. Altrimenti, l algoritmo ritorna true e, per ogni nodo v, calcola un cammino minimo dalla sorgente s a v e il suo peso.
12 Algoritmi e Strutture di Dati II 3 Algoritmo di Bellman-Ford L idea dell algoritmo è la seguente:. inizializzo i predecessori e le stime per ogni nodo;. ripeto, per n volte, il rilassamento di tutti gli archi; 3. se esiste qualche stima che può essere ulteriormente migliorata, allora il grafo contiene un ciclo di peso negativo raggiungibile da s, e quindi ritorno false; altrimenti ritorno true.
13 Algoritmi e Strutture di Dati II 4 Algoritmo di Bellman-Ford Bellman-Ford(G,s) : n V [G] : Initialize(G, s) 3: for i to n do 4: for all (u, v) E[G] do : Relax(G, u, v) 6: end for : end for 8: for all (u, v) E[G] do 9: if d[u]+w(u, v) <d[v] then 0: return false : end if : end for 3: return true
14 Algoritmi e Strutture di Dati II t x s y 9 z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
15 Algoritmi e Strutture di Dati II 6 t x 6 6 s y 9 z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
16 Algoritmi e Strutture di Dati II t x s y 9 z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
17 Algoritmi e Strutture di Dati II 8 t x s y 9 z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
18 Algoritmi e Strutture di Dati II 9 t x s y z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
19 Algoritmi e Strutture di Dati II 0 t x s y 9 z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
20 Algoritmi e Strutture di Dati II t x s y 9 z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
21 Algoritmi e Strutture di Dati II t x s y 9 z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
22 Algoritmi e Strutture di Dati II 3 t x 6 4 s y 9 z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
23 Algoritmi e Strutture di Dati II 4 t x s y z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
24 Algoritmi e Strutture di Dati II t x 6 4 s y 9 z E[G] = {(t,x),(t,y),(t,z),(x,t),(y,x),(z,x),(z,s),(s,t),(s,y)}
25 Algoritmi e Strutture di Dati II 6 Complessità Bellman-Ford(G,s) : n V [G] : Initialize(G, s) 3: for i to n do 4: for all (u, v) E[G] do : Relax(G, u, v) 6: end for : end for 8: for all (u, v) E[G] do 9: if d[u]+w(u, v) <d[v] then 0: return false : end if : end for 3: return true
26 Algoritmi e Strutture di Dati II. la fase di inizializzazione costa Θ(n);. il primo ciclo for costa (n ) m Θ() = Θ(nm); 3. il secondo ciclo for costa Θ(m); Quindi in totale il costo di Bellman-Ford è Θ(n + m + nm) =Θ(nm) cioè Θ(n 3 ) qualora il grafo sia denso.
27 Algoritmi e Strutture di Dati II 8 Grafi diretti aciclici (DAG) Supponiamo di avere un grafo G =(V,E,w) diretto e aciclico (DAG) con pesi reali (possibilmente negativi). Essendo G aciclico, esso non contiene cicli di peso negativo, quindi tutti i cammini minimi esistono e l algoritmo di Bellman-Ford ritorna true. Ordiniamo topologicamente i nodi del grafo, e inseriamo in E gli archi in quest ordine: prima tutti gli archi (in ordine qualsiasi) uscenti dal primo nodo in ordine topologico, poi tutti gli archi uscenti dal secondo nodo in ordine topologico, e così via. Ora lanciamo Bellman-Ford sul grafo G. Cosa succede?
28 Algoritmi e Strutture di Dati II 9 Bellman-Ford(G,s) : n V [G] : Initialize(G, s) 3: for i to n do 4: for all (u, v) E[G] do : Relax(G, u, v) 6: end for : end for 8: for all (u, v) E[G] do 9: if d[u]+w(u, v) <d[v] then 0: return false : end if : end for 3: return true
29 Algoritmi e Strutture di Dati II
30 Algoritmi e Strutture di Dati II
31 Algoritmi e Strutture di Dati II
32 Algoritmi e Strutture di Dati II
33 Algoritmi e Strutture di Dati II
34 Algoritmi e Strutture di Dati II
35 Algoritmi e Strutture di Dati II
36 Algoritmi e Strutture di Dati II 3 In sostanza, posso suddividere i grafi diretti pesati sui numeri reali in tre categorie in funzione del comportamento di Bellman-Ford su tali grafi:. grafi aciclici: in questo caso, ordinando opportunamente gli archi, Bellman-Ford raggiunge uno stato stabile in un passo;. grafi ciclici privi di cicli negativi: in questo caso Bellman-Ford raggiunge uno stato stabile in k passi, con k n ; 3. grafi ciclici con cicli negativi: in questo caso Bellman-Ford non raggiunge mai uno stato stabile.
37 Algoritmi e Strutture di Dati II 38 DAG-Shortest-Paths(G,s) : Initialize(G, s) : TopologicalSort(G, S) 3: while S 6= ; do 4: u Pop(S) : for all v Adj[u] do 6: Relax(G, u, v) : end for 8: end while
38 Algoritmi e Strutture di Dati II 39 Complessità la fase di inizializzazione costa Θ(n); l ordinamento topologico costa Θ(n + m); durante il ciclo while, faccio n di estrazioni dalla pila, ognuna con costo costante. Quindi il costo di tutte le estrazioni risulta Θ(n); durante il ciclo while, chiamo m volte la procedura Relax. Tale procedura ha costo costante, quindi il costo di tutti i rilassamenti ammonta a Θ(m).
39 Algoritmi e Strutture di Dati II 40 Il costo di DAG-Shortest-Paths è dunque Θ(3n +m) =Θ(n + m) contro Θ(nm) nel caso di Bellman-Ford.
40 Algoritmi e Strutture di Dati II 4 Algoritmo di Dijkstra L algoritmo di Dijkstra risolve il problema del cammino minimo con una sorgente e pesi reali non negativi. Dunque assumiamo che w(u, v) 0 per ogni arco (u, v) del grafo. L algoritmo mantiene un insieme S, inizialmente vuoto, che contiene i nodi terminati (per i quali un cammino minimo è già stato calcolato), e un insieme Q = V \ S di nodi ancora da scoprire.
41 Algoritmi e Strutture di Dati II 4 Fino a quando Q contiene qualche elemento, l algoritmo: estrae da Q il nodo u più vicino alla sorgente (cioè con la più piccola stima della distanza dalla sorgente); aggiunge u a S; rilassa tutti gli archi che escono da u. L insieme Q viene implementato con una coda con priorità basata sul minimo. Ogni nodo v viene inserito nella coda con priorità pari a d[v].
42 Algoritmi e Strutture di Dati II 43 Algoritmo di Dijkstra Dijkstra(G,s) : Initialize(G, s) : S ; 3: Q V [G] 4: while Q 6= ; do : u ExtractMin(Q) 6: S S [{u} : for all v Adj[u] do 8: Relax(G, u, v) 9: end for 0: end while
43 Algoritmi e Strutture di Dati II 44 0 t x s y z
44 Algoritmi e Strutture di Dati II 4 0 t 0 x s y z
45 Algoritmi e Strutture di Dati II 46 0 t x 8 4 s y z
46 Algoritmi e Strutture di Dati II 4 0 t 8 x 3 s y z
47 Algoritmi e Strutture di Dati II 48 0 t 8 x 9 s y z
48 Algoritmi e Strutture di Dati II 49 0 t 8 x 9 s y z
49 Algoritmi e Strutture di Dati II 0 Complessità Dijkstra(G,s) : Initialize(G, s) : S ; 3: Q V [G] 4: while Q 6= ; do : u ExtractMin(Q) 6: S S [{u} : for all v Adj[u] do 8: Relax(G, u, v) 9: end for 0: end while
50 Algoritmi e Strutture di Dati II la fase di inizializzazione costa Θ(n); la crazione del min-heap implicita nell istruzione Q V [G] costa Θ(n); durante il ciclo while, faccio n estrazioni del minimo. Ogni estrazione costa Θ(log n), quindi il costo di tutte le estrazioni risulta Θ(n log n); durante il ciclo while, chiamo m volte la procedura Relax. Durante la chiamata di Relax(G, u, v), la stima d[v] puòessere aggiornata. Questo implica la chiamata implicita di ModifyKey che costa Θ(log n). Quindi il costo di tutti i rilassamenti ammonta a Θ(m log n).
51 Algoritmi e Strutture di Dati II Il costo di Dijkstra è dunque Θ(n + n log n + m log n) =Θ((n + m) log n) contro Θ(nm) nel caso di Bellman-Ford. Se m> n log n n log n allora Dijkstra è da preferire. In particolare, se m n, Dijkstraè più veloce.
52 Algoritmi e Strutture di Dati II 3 Dijkstra e BFS Dijkstra è un algoritmo greedy: ad ogni passo, esso inserisce in S il nodo più vicino alla sorgente s. Inoltre, se associamo un peso unitario ad ogni arco, Dijkstra simula la procedura BFS che visita in ampiezza un grafo a partire da una sorgente. I nodi vengono visitati in ampiezza e inseriti in S una volta scoperti. Un cammino di peso minimo corrisponde ad un cammino di lunghezza minima. L albero dei cammini di peso minimo corrisponde al BF-albero dei cammini di lunghezza minima.
53 Algoritmi e Strutture di Dati II 4 t x s 0 y z
54 Algoritmi e Strutture di Dati II t x s 0 y z
55 Algoritmi e Strutture di Dati II 6 t x s 0 y z
56 Algoritmi e Strutture di Dati II t x s 0 y z
57 Algoritmi e Strutture di Dati II 8 t x s 0 y z
58 Algoritmi e Strutture di Dati II 9 t x s 0 y z
59 Algoritmi e Strutture di Dati II 60 Ricostruzione dei cammini minimi PrintPath(G, s, v) : if v = s then : print s 3: else 4: if º[v] =nil then : print no path exists 6: else : P rintp ath(g, s, º[v]) 8: print v 9: end if 0: end if
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
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
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
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
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
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
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
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
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
Esempi. non. orientato. orientato
Definizione! Un grafo G = (V,E) è costituito da un insieme di vertici V ed un insieme di archi E ciascuno dei quali connette due vertici in V detti estremi dell arco.! Un grafo è orientato quando vi è
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
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
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
Grafi: visita generica
.. Grafi: visita generica Una presentazione alternativa (con ulteriori dettagli) Algoritmi di visita Scopo: visitare tutti i vertici di un grafo (si osservi che per poter visitare un vertice occorre prima
COMPLEMENTI DI SHORTEST-PATH. ASD Fabrizio d'amore
COMPLEMENTI DI SHORTEST-PATH ASD 2016-17 Fabrizio d'amore problemi di shortest-path (SP) grafo di riferimento G=(V,E) semplice/orientato pesato pesi non negativi pesi arbitrari, ma no cicli a peso negativo
Sommario. Rappresentazione dei grafi. Ordinamento topologico. Visita in ampiezza Visita in profondità
Visite Grafi Sommario Rappresentazione dei grafi Visita in ampiezza Visita in profondità Ordinamento topologico Visita in ampiezza La visita in ampiezza breadth-first-search (BFS) di un grafo dato un vertice
Progettazione di algoritmi
Progettazione di algoritmi Discussione dell'esercizio [vincoli] Prima di tutto rappresentiamo il problema con un grafo G: i nodi sono le n lavorazioni L 1, L 2,, L n, e tra due nodi L h, L k c'è un arco
Minimo albero di copertura
apitolo 0 Minimo albero di copertura efinizione 0.. ato un grafo G = (V, E) non orientato e connesso, un albero di copertura di G è un sottoinsieme T E tale che il sottografo (V, T ) è un albero libero.
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)
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
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
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
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
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
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
Algoritmi e Strutture Dati Grafi. Daniele Loiacono
lgoritmi e Strutture ati Grafi Riferimenti 2 Questo materiale è tratto dalle trasparenze del corso lgoritmi e Strutture ati del prof. lberto Montresor dell Università di Trento. (http://www.dit.unitn.it/~montreso/asd/index.shtml)
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à
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,
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
Grafi: definizioni e visite
Grafi: definizioni e visite Grafi (non orientati) Grafo (non orientato): G = (V, E) V = nodi (o vertici) E = archi fra coppie di nodi distinti. Modella relazioni fra coppie di oggetti. Parametri della
Grafi: ordinamento topologico
.. Grafi: ordinamento topologico Che cosa e e come si calcola Che cosa e un ordinamento topologico F. Damiani - Alg. & Lab. 04/05 Una definizione di ordinamento topologico Definizione. Funzione σ: V {1,
Progettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 1/01/016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 12 Grafi e visite di grafi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme
Ottimizzazione nella Gestione dei Progetti - Esercitazione 1: calcolo degli schedule ottimi
Università degli Studi di Roma La Sapienza Ottimizzazione nella Gestione dei Progetti - Esercitazione : calcolo degli schedule ottimi di FABIO D ANDREAGIOVANNI Dipartimento di Informatica e Sistemistica
Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base
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 ([email protected])
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
Grafi pesati Minimo albero ricoprente
Algoritmi e Strutture Dati Definizioni Grafi pesati Minimo albero ricoprente Sia G=(V,E) un grafo non orientato e connesso. Un albero ricoprente di G è un sottografo T G tale che: T è un albero; T contiene
Algoritmi e Strutture Dati
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e Strutture Dati Capitolo 2 Minimo albero ricoprente: Algoritmo di Prim Il problema del calcolo di un Minimum
Progettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 06/07/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via
Strutture dati per insiemi disgiunti
Strutture dati per insiemi disgiunti Servono a mantenere una collezione S = {S 1, S 2,..., S k } di insiemi disgiunti. Ogni insieme S i è individuato da un rappresentante che è un particolare elemento
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
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à
Problemi di ordinamento
Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata
Algoritmi e Strutture Dati
Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Heap Heap binari: definizione Un heap binario è una struttura dati composta
Gestione della produzione e della supply chain Logistica distributiva
Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non
Algoritmi e Strutture di Dati (3 a Ed.) Algoritmo dei tre indiani. Alan Bertossi, Alberto Montresor
Algoritmi e Strutture di Dati ( a Ed.) Algoritmo dei tre indiani Alan Bertossi, Alberto Montresor Vediamo a grandi linee un algoritmo proposto da Kumar, Malhotra e Maheswari (978) come raffinamento di
Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III
Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte III Applicazioni di DFS Due prolemi: calcolare l ordinamento topologico indotto da un grafo aciclico.
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
Algoritmi e Strutture di Dati I 1. Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc
Algoritmi e Strutture di Dati I 1 Algoritmi e Strutture di Dati I Massimo Franceschet http://www.sci.unich.it/ francesc Algoritmi e Strutture di Dati I 2 Grafo Un grafo G è una coppia (V, E) ove V è un
Algoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
Quarto allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale
Quarto allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini [email protected] - [email protected] 30 marzo 2017 Programma 1. Lettura e analisi di un problema 2.
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
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)
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
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
Routing IP. IP routing
Routing IP IP routing IP routing (inoltro IP): meccanismo per la scelta del percorso in Internet attraverso il quale inviare i datagram IP routing effettuato dai router (scelgono il percorso) Routing diretto
Esercizi su alberi binari
Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica
GRAFI. Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi!
G R A F I 1 GRAFI Cosa sono Grafi non orientati Grafi orientati Grafi pesati Alberi Automi! 2 cip: cip: Pallogrammi Pallogrammi GRAFI: cosa sono I grafi sono una struttura matematica fondamentale: servono
Progettazione di algoritmi
Progettazione di algoritmi Discussione dell'esercizio [labirinto] Nel testo dell'esercizio abbiamo considerato come lunghezza del percorso il numero di bivi ma possiamo stimare meglio la lunghezza reale
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
Esercizi vari. Alberto Montresor. 19 Agosto, 2014
Esercizi vari Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive soluzioni
Dati e Algoritmi 1: A. Pietracaprina. Grafi (II parte)
Dati e Algoritmi 1: A. Pietracaprina Grafi (II parte) 1 Breath-First Search (algoritmo iterativo) Si assume una rappresentazione tramite liste di adiacenza. L ordine con cui si visitano i vicini di un
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.
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 27 marzo 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
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à
Minimo sottografo ricoprente. Minimo sottografo ricoprente. Minimo albero ricoprente. Minimo albero ricoprente
Minimo sottografo ricoprente Minimo sottografo ricoprente Dato un grafo connesso G = (V, E) con costi positivi sugli archi c e, un minimo sottografo ricoprente è un insieme di archi E E tale che: G = (V,
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
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à
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
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
In questa lezione. Heapsort. ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 114
In questa lezione Heapsort ordinamento con complessità, nel caso peggiore, O(nlogn) [CLRS01] cap. 6 da pag. 106 a pag. 11 1 Paternità L heapsort è stato pubblicato da J. W. J. Williams nel 106. Pochi mesi
IL PROBLEMA DEL FLUSSO DI COSTO MINIMO. DANIEL BUCCARELLA
IL PROBLEMA DEL FLUSSO DI COSTO MINIMO DANIEL BUCCARELLA 698102 [email protected] 1. Definizione del Problema Spesso i problemi di ottimizzazione sono caratterizzati da una struttura di grafo.
Terzo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale
Terzo allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini [email protected] - [email protected] 22 marzo 2016 Programma 1. Lettura di un problema tratto dalle
Depth-first search. Visita in profondità di un grafo Algoritmo Esempio Complessità dell algoritmo Proprietà Ordinamento topologico
Depth-first search Visita in profondità di n grafo Algoritmo Esempio Complessità dell algoritmo Proprietà Ordinamento topologico Depth-first search Dato n grafo G=(V,E) e n specifico ertice s chiamato
Ricerca Operativa Cammini minimi: algoritmi di Bellman-Ford e di Dijkstra
Ricerca Operativa Cammini minimi: algoritmi di Bellman-Ford e di Dijkstra L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi
Introduzione ai grafi. Introduzione ai grafi p. 1/2
Introduzione ai grafi Introduzione ai grafi p. 1/2 Grafi Un grafo G é costituito da una coppia di insiemi (V,A) dove V é detto insieme dei nodi e A é detto insieme di archi ed é un sottinsieme di tutte
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
