Algoritmi di visita di un grafo

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Algoritmi di visita di un grafo"

Transcript

1 Algoritmi di isita di n grafo Ilaria Castelli castelli@dii.nisi.it Uniersità degli Stdi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Visita di n grafo, A.A. 2009/2010 1/44

2 Grafi Visita in ampiezza Visita in profondità Ordinamento topologico I. Castelli Visita di n grafo, A.A. 2009/2010 2/44

3 Scopo e tipi di isita di n grafo Visita Una isita (o attraersamento) di n grafo G permette di esaminare i nodi e gli archi di G in modo sistematico. Esistono arie tipologie di isita, con dierse proprietà. In particolare: 1 Visita in ampiezza (BFS = Breadth First Search) 2 Visita in profondità (DFS = Depth First Search) I. Castelli Visita di n grafo, A.A. 2009/2010 3/44

4 Breadth First Search Visita in ampiezza Dato n grafo G = (V, E) e n nodo s chiamato sorgente, la isita in ampiezza esplora gli archi di G per scoprire ttti i nodi raggingibili a partire da s La isita BFS calcola la distanza (nmero minimo di archi) tra s e ogni ertice da esso raggingibile La isita consente di definire n albero BFS, con radice s, contenente ttti i nodi raggingibili Nell albero BFS il cammino da s a n nodo corrisponde a n cammino minimo (contenente il nmero minimo di archi) La isita BFS si pò applicare sia ai grafi diretti che a qelli non diretti I. Castelli Visita di n grafo, A.A. 2009/2010 4/44

5 Breadth First Search La isita in ampiezza esplora i nodi del grafo partendo da qelli a distanza 1 da s. Poi isita qelli a distanza 2, e così ia. L algoritmo isita ttti i ertici ad n liello k prima di isitare qelli a liello k + 1. distanza = 3 distanza = 2 r distanza = 1 h s i t Si genera n albero Si isitano nodi ia ia più distanti dalla sorgente x y I. Castelli Visita di n grafo, A.A. 2009/2010 5/44

6 Breadth First Search Per tenere traccia del progresso della isita, l algoritmo BFS associa delle flag ai nodi. Spponiamo di poter colorare i nodi di bianco, grigio o nero. All inizio ttti i nodi sono bianchi e, sccessiamente, possono dientare grigi e, infine, neri. Un nodo iene scoperto la prima olta che iene incontrato drante la isita e, in tale istante, cessa di essere bianco. La distinzione tra nodi grigi e neri esiste affinché la isita proceda in ampiezza. In sostanza, la distinzione è la segente: Bianchi: non ancora scoperti Grigi: appena scoperti; sono la frontiera tra nodi scoperti e non. I nodi adiacenti ad n nodo grigio possono essere bianchi. Neri: scoperti. Ttti i nodi adiacenti ad n nodo nero sono stati scoperti. I. Castelli Visita di n grafo, A.A. 2009/2010 6/44

7 Algoritmo BFS - Strttre dati Le strttre dati sate dall algoritmo sono le segenti: Liste di adiacenza Adj Adj[] è la lista dei nodi adiacenti a. Array color color[] contiene il colore del nodo Array d d[] contiene la distanza di dal nodo sorgente s. Viene inizializzata a infinito. Array p p[] contiene il predecessore del nodo nell albero BFS Coda Q contiene i nodi grigi I. Castelli Visita di n grafo, A.A. 2009/2010 7/44

8 Algoritmo BFS 1 BFS(G, s ) 2 f o r o g n i nodo i n V[G] { s } / i n i z i a l i z z a z i o n e / 3 c o l o r [ ] = WHITE 4 d [ ] = i n f i n i t y 5 p [ ] = NIL 6 7 c o l o r [ s ] = GRAY / i s i t o l a s o r g e n t e / 8 d [ s ] = 0 9 p [ s ] = NIL 0 Q = { s } 1 h i l e Q!= empty 2 = head [Q] / nodo da e s p a n d e r e / 3 f o r o g n i nodo i n Adj [ ] / i s i t o i n o d i a d i a c e n t i / 4 i f c o l o r [ ] = WHITE / s e e b i a n c o i e n e s c o p e r t o / 5 then c o l o r [ ] = GRAY 6 d [ ] = d [ ] p [ ] = 8 ENQUEUE(Q, ) / i n s e r i t o n e l l a coda Q / 9 DEQUEUE(Q) / t o l t o d a l l a coda : e g i a s t a t o e spanso / 0 c o l o r [ ] = BLACK I. Castelli Visita di n grafo, A.A. 2009/2010 8/44

9 Algoritmo BFS - Esempio r s x y t y s t t x r t x y x r s r s x y t r s x y t Adj p d r s t x y NIL 0 0 s 1 1 s r 2 t x Q = {} 2 I. Castelli Visita di n grafo, A.A. 2009/2010 9/44

10 Algoritmo BFS - Albero BFS La isita BFS consente di definire n albero BFS. all inizio contiene solo s qando n nodo bianco iene scoperto, scorrendo la lista di adiacenza di n nodo, allora l arco (, ) e stesso engono agginti all albero p(r) = s p(s) = NIL p(t) = p() = t r s t r s x y p() = r p() = s p(x) = p(y) = x 2 x 2 t 2 y 3 3 I. Castelli Visita di n grafo, A.A. 2009/ /44

11 Breadth First Search - Analisi Analisi del tempo di eseczione s n grafo G = (V, E) Il tempo necessario per l inizializzazione è O( V ) Ogni nodo raggingibile iene isitato na olta Le operazioni di inserimento e rimozione dalla coda costano O(1), qindi il tempo totale necessario per le operazioni slla coda è O( V ) La lista di adiacenza di n nodo iene scorsa na sola olta, qindi in totale il tempo è O( E ) Il tempo totale richiesto dall algoritmo BFS si ottiene sommando il tempo per l inizializzazione e qello necessario per isitare i nodi: O( V + E ) I. Castelli Visita di n grafo, A.A. 2009/ /44

12 Breadth First Search - Cammini minimi Distanza minima Si definisce distanza minima δ(s, ) da s a, il nmero minimo di archi di n cammino dal nodo s al nodo δ(s, ) 0 δ(s, ) = se non è raggingibile partendo da s Cammino minimo Un cammino di lnghezza δ(s, ) da s a si dice cammino minimo. Nota: possono esistere più cammini minimi tra de nodi BFS La isita BFS calcola la distanza minima δ(s, ) di ogni nodo raggingibile da s Nell albero BFS il cammino da s ad n nodo è n cammino minimo I. Castelli Visita di n grafo, A.A. 2009/ /44

13 Breadth First Search - Proprietà Lemma Dato n grafo G = (V, E) diretto o non diretto e n nodo s V qalsiasi, allora per ogni arco (, ) E si ha δ(s, ) δ(s, ) + 1 Dimostrazione Se non è raggingibile da s, allora δ(s, ) = Se è raggingibile da s, allora anche è raggingibile. Il cammino minimo da s a non pò essere più lngo del cammino minimo da s a, più l arco (, ) I. Castelli Visita di n grafo, A.A. 2009/ /44

14 Breadth First Search - Proprietà Lemma Sia G = (V, E) n grafo diretto o non diretto e s V n nodo sorgente qalsiasi, a partire dal qale è stato esegito l algoritmo BFS. Allora per ogni nodo V si ha d[] δ(s, ) Dimostrazione Per indzione: d[s] = 0 = δ(s, s) e, per qalsiasi nodo V {s}, ale d[] = δ(s, ) Dato n nodo scoperto drante l esplorazione di n nodo, per ipotesi indttia ale d[] δ(s, ). d[] }{{} = d[] + 1 }{{} algoritmo ipotesi indttia δ(s, ) + 1 δ(s, ) }{{} lemma precedente I. Castelli Visita di n grafo, A.A. 2009/ /44

15 Breadth First Search - Proprietà Lemma Spponendo che drante l eseczione della ricerca BFS s n grafo G = (V, E), la coda Q contenga i nodi < 1,..., r >, doe 1 = head[q] e r = tail[q], allora d[ r ] d[ 1 ] + 1 e d[ i ] d[ i+1 ], i = 1,..., r 1 La differenza tra le distanze da s dei nodi presenti nella coda in n certo momento è al più 1 Un nodo iene inserito nella coda (dientando r+1 ) qando il nodo in testa, 1, iene esplorato d[ r+1 ] = d[] = d[ 1 ] + 1 d[ r ] d[ 1 ] + 1 = d[] = d[ r+1 ] I. Castelli Visita di n grafo, A.A. 2009/ /44

16 Breadth First Search - Proprietà Proposizione I nodi che entrano nella coda Q sono ttti e soli i nodi tali che δ(s, ) <, cioè ttti i nodi raggingibili da s Dimostrazione 1 entra in Q = δ(s, ) < Si procede per indzione sll i-esima iterazione dell operazione ENQUEUE se i = 0, solo s è nella coda: δ(s, s) = 0 < se i > 0, spponiamo che l ipotesi indttia sia era per ogni iterazione k < i. Al passo i si isita Adj[], con = head[q], e i nodi bianchi engono inseriti in Q. Per ipotesi indttia δ(s, ) <. Poiché esiste l arco (, ): δ(s, ) δ(s, ) + 1 < I. Castelli Visita di n grafo, A.A. 2009/ /44

17 Breadth First Search - Proprietà 2 entra in Q = δ(s, ) < Si procede per indzione s δ(s, ) = k se δ(s, ) = 0 è ero: = s se δ(s, ) = k > 0, per ipotesi indttia si ha che per ogni tale che δ(s, ) < k, è già entrato in coda. Poiché δ(s, ) <, esiste n cammino < 0,..., i 1, i > da s a, con 0 = s e i =. s 0 (i 1) δ(s, i 1 ) = k 1 e i 1 è nella coda per ipotesi indttia. Qando errà isitata Adj[ i 1 ] errà scoperto e: se è bianco entra in coda non pò essere grigio o nero, altrimenti sarebbe già entrato in coda, perché arrebbe δ(s, ) < k! I. Castelli Visita di n grafo, A.A. 2009/ /44

18 Breadth First Search - Albero BFS Albero BFS L array p definisce n sottografo dei predecessori di G. In particolare, si tratta di n albero, T p : T p = (V p, E p ) V p = { V : p[] NIL} {s} E p = {(p[], ) E : V p {s}} Una olta esegita la ricerca BFS, la segente procedra stampa il cammino minimo da s a 1 PRINT PATH(G, s, ) 2 i f = s 3 then p r i n t s 4 e l s e i f p [ ] = NIL 5 then p r i n t "non esiste n cammino da s a " 6 e l s e PRINT PATH(G, s, p [ ] ) 7 p r i n t I. Castelli Visita di n grafo, A.A. 2009/ /44

19 Depth First search Visita in profondità Dato n grafo G = (V, E) ed n nodo s, detto nodo sorgente, la isita depth first esplora il grafo andando il più possibile in profondità. Dato n nodo appena scoperto, la isita prosege a partire da si soi archi che ancora non sono stati esplorati Qando si sono esplorati ttti gli archi del nodo, si torna al nodo dal qale è stato scoperto, e si esplorano i soi lteriori archi non ancora esplorati (se ce ne sono) Si prosege finchè non engono scoperti ttti i nodi raggingibili da s Se i sono ancora dei nodi non scoperti, no di qesti iene adottato come na noa sorgente, e la isita riprende a partire da esso L algoritmo termina qando ttti i nodi sono stati scoperti I. Castelli Visita di n grafo, A.A. 2009/ /44

20 Depth First Search Per tenere traccia del progresso della isita, anche l algoritmo DFS associa delle flag ai nodi. Di noo, si sppone di colorare i nodi di bianco, grigio o nero. All inizio ttti i nodi sono bianchi e, sccessiamente, possono dientare grigi e, infine, neri. Un nodo iene scoperto la prima olta che iene incontrato drante la isita e, in tale istante, cessa di essere bianco. La distinzione tra nodi grigi e neri è necessaria affinché la isita proceda in profondità. La distinzione è la segente: Bianchi: non ancora scoperti Grigi: sono stati scoperti, ma l esplorazione della loro lista di adiacenza non è ancora terminata. Neri: l esplorazione della loro lista di adiacenza è completata. I. Castelli Visita di n grafo, A.A. 2009/ /44

21 Algoritmo DFS - Strttre dati Le strttre dati sate dall algoritmo sono le segenti: Liste di adiacenza Adj Adj[] è la lista dei nodi adiacenti a. Array color color[] contiene il colore del nodo Array p p[] contiene il predecessore del nodo nella foresta DFS Array d d[] è n timestamp che contiene il momento in ci è stato scoperto. Array f f[] è n timestamp che contiene il momento in ci si è conclsa la isita di, cioè si è finito di esaminare al sa lista di adiacenza Adj[]. I. Castelli Visita di n grafo, A.A. 2009/ /44

22 Algoritmo DFS - Strttre dati Nota: Il nodo è bianco prima di d[] grigio tra d[] e f[] nero dopo f[] Oiamente si ha d[] < f[], V I timestamp sono nmeri interi compresi tra 1 e 2 V, poiché ogni nodo iene scoperto esattamente na olta, e si finisce di esplorarlo esattamente na olta. I. Castelli Visita di n grafo, A.A. 2009/ /44

23 Algoritmo DFS 1 DFS(G, s ) 2 f o r o g n i e r t i c e i n V[G] / i n i z i a l i z z a z i o n e / 3 c o l o r [ ] = WHITE 4 p [ ] = NIL 5 time = 0 6 f o r o g n i e r t i c e i n V[G] 7 i f c o l o r [ ] = WHITE 8 then DFS VISIT ( ) / i s i t a o g n i nodo non s c o p e r t o / 1 DFS VISIT ( ) 2 c o l o r [ ] = GRAY 3 d [ ] = time / tempo d i i n i z i o i s i t a l i s t a d i a d i a c e n z a / 4 time = time f o r o g n i e r t i c e i n Adj [ ] 6 i f c o l o r [ ] = WHITE 7 then p [ ] = 8 DFS VISIT ( ) / i s i t a s b i t o n o d i non s c o p e r t i / 9 c o l o r [ ] = BLACK / f i n i t o d i i s i t a r e i n o d i a d i a c e n t i / 0 f [ ] = time 1 time = time + 1 I. Castelli Visita di n grafo, A.A. 2009/ /44

24 Algoritmo DFS - Esempio Adj x y y z x x y z y x z z I. Castelli Visita di n grafo, A.A. 2009/ /44

25 Algoritmo DFS - Esempio 1/ 1/ 2/ 1/ 2/ 3/ x y z x y z x y z 1/ 2/ 1/ 2/ 1/ 2/ B B 4/ 3/ x y z 4/ 3/ x y z 4/5 3/ x y z 1/ 2/ 1/ 2/7 1/ 2/7 B B F B 4/5 3/6 4/5 3/6 4/5 3/6 x y z x y z x y z I. Castelli Visita di n grafo, A.A. 2009/ /44

26 Algoritmo DFS - Esempio 1/8 2/7 1/8 2/7 9/ 1/8 2/7 9/ F B F B F B C 4/5 3/6 4/5 3/6 4/5 3/6 x y z x y z x y z 1/8 2/7 9/ 1/8 2/7 9/ 1/8 2/7 9/ F B C F B C F B C 4/5 3/6 10/ x y z 4/5 3/6 10/ x y z B 4/5 3/6 10/11 x y z B 1/8 2/7 9/12 F B C 4/5 3/6 10/11 x y z B I. Castelli Visita di n grafo, A.A. 2009/ /44

27 Foresta DFS Allo stesso modo della ricerca BFS, nella ricerca DFS, n nodo iene scoperto esplorando la lista di adiacenza di n nodo già scoperto. L array p tiene traccia del predecessore di ogni nodo scoperto: p[] = Foresta DFS L array p definisce n sottografo dei predecessori di G. In particolare, si tratta di na foresta, F p : F p = (V, E p ) E p = {(p[], ) : V e p[] NIL} Il sottografo dei predecessori è na foresta depth first, costitita da più alberi depth first. I. Castelli Visita di n grafo, A.A. 2009/ /44

28 Foresta DFS - Classificazione degli archi Gli archi del grafo originario engono classificati in: Tree-edge. Archi della foresta DFS. Forard-edge. Archi in aanti. Archi non appartenenti alla foresta DFS, che anno da n ertice ad n so sccessore nella foresta DFS. Qando engono percorsi drante l algoritmo DFS, collegano de nodi già scoperti. Backard-edge. Archi all indietro. Archi non appartenenti alla foresta DFS, che anno da n ertice ad n so antenato nella foresta DFS. Archi del grafo che, qando engono percorsi drante l algoritmo DFS, collegano de nodi già scoperti. Cross-edge Archi di attraersamento. Ttti gli altri archi. Collegano de nodi che non hanno na relazione di discendenza l no dall altro. I. Castelli Visita di n grafo, A.A. 2009/ /44

29 Foresta DFS p 1/8 9/12 1/8 2/7 9/12 F B C 4/5 3/6 10/11 x y z B x y z NIL NIL y F B 2/7 3/6 4/5 y x C 10/11 z B La strttra degli alberi DFS rispecchia esattamente la strttra delle chiamate ricorsie alla procedra DF S V ISIT : = p[] se e solo se DF S V ISIT () è stata chiamata drante lo scorrimento della lista di adiacenza di. Nota: gli archi scenti ed entranti sllo stesso nodo (self-loop), engono considerati backard-edge. I. Castelli Visita di n grafo, A.A. 2009/ /44

30 Algoritmo DFS - Analisi 1 Nella procedra DF S ci sono de cicli, che engono esegiti Θ( V ) 2 La procedra DF S V ISIT iene richiamata esattamente na olta per ogni nodo V 3 Drante l eseczione di DF S V ISIT (), il ciclo nelle linee 5-8 iene esegito Adj[] olte 4 Poiché Adj[] = Θ( E ) V il costo totale per l eseczione del ciclo è Θ( E ) Il tempo totale di eseczione è Θ( V + E ) I. Castelli Visita di n grafo, A.A. 2009/ /44

31 Algoritmo DFS - Proprietà Teorema delle parentesi In na isita in profondità di n grafo (diretto o non diretto) G = (V, E), per ogni coppia di nodi e, definiamo gli interalli A = [d[], f[]] B = [d[], f[]] Allora, na e na sola delle segenti condizioni è era: 1 A B = 2 L interallo A è interamente inclso nell interallo B, e è n discendente di in n albero DFS 3 L interallo B è interamente inclso nell interallo A, e è n discendente di in n albero DFS I. Castelli Visita di n grafo, A.A. 2009/ /44

32 Algoritmo DFS - Proprietà Dimostrazione 1 Caso 1. d[] < d[]. Ci sono de sottocasi: 1 d[] < f[] iene scoperto prima di Qando si scopre la isita di non è stata completata ( è grigio) Ciò ol dire che è discendente di Poiché è stato scoperto più recentemente di, la isita di dee completarsi prima di tornare a : f[] < f[] QUindi l interallo A = [d[], f[]] è completamente contento in B = [d[], f[]] d[] d[] f[] f[] I. Castelli Visita di n grafo, A.A. 2009/ /44

33 Algoritmo DFS - Proprietà 1 2 d[] > f[] dienta nero prima che enga scoperto Qindi, qando iene scoperto la isita di è già stata completata d[] < f[] e d[] < f[] Qindi gli interalli A = [d[], f[]] e B = [d[], f[]] sono disginti d[] f[] d[] f[] 2 Caso 2. d[] > d[]: è simmetrico, basta scambiare il rolo di e Corollario (consege dal teorema delle parentesi) Un nodo è n discendente di n nodo in n albero della foresta DFS per n grafo (diretto o non diretto) G se e solo se d[] < d[] < f[] < f[] I. Castelli Visita di n grafo, A.A. 2009/ /44

34 Algoritmo DFS - Proprietà 1/8 9/12 F B 2/7 3/6 y C 10/11 z B y x z 4/5 x I. Castelli Visita di n grafo, A.A. 2009/ /44

35 Algoritmo DFS - Un altro esempio y z s t 3/6 2/9 1/10 11/16 B F C B 4/5 C 7/8 C 12/13 C 14/15 x B s 1/10 C z F 2/9 C y 3/6 7/8 C t 11/16 B 12/13 14/15 C y x s z t x 4/ I. Castelli Visita di n grafo, A.A. 2009/ /44

36 Algoritmo DFS - Proprietà Teorema del cammino bianco In na foresta DFS, n nodo è discendente di se e solo se al tempo d[] (in ci la isita scopre ), il ertice è raggingibile da con n cammino contenente esclsiamente nodi bianchi. d[]/ I. Castelli Visita di n grafo, A.A. 2009/ /44

37 Algoritmo DFS - Classificazione degli archi L algoritmo DFS pò essere modificato in modo da effettare na classificazione degli archi. Ogni arco pò essere classificato in fnzione del colore del ertice che ragginge, qando iene percorso per la prima olta: Archi bianchi. Qelli appartenenti a n albero DFS. Archi grigi. Archi backard. Uniscono de nodi grigi drante la isita DFS. Archi neri. Archi forard (se d[] < d[]) oppre crossard (se d[] > d[]). Nota: in n grafo non diretto ci possono essere ambigità perché (, ) e (, ) sono lo stesso arco. In tal caso l arco iene classificato come l arco orientata (, ) oppre (, ), a seconda della direzione in ci iene percorso per la prima olta. I. Castelli Visita di n grafo, A.A. 2009/ /44

38 Algoritmo DFS - Classificazione degli archi Teorema Se G è n grafo non orientato, allora ogni arco è n tree-edge oppre n backard-edge. Dimostrazione. Sia (, ) n arco arbitrario Spponiamo d[] < d[] (senza perdita di generalità) Allora si erifica no di qesti de casi: 1 (, ) iene isitato a partire da, con grigio e bianco. In tal caso è n tree-edge. 2 (, ) iene isitato a partire da, con e entrambi grigi. In tal caso è n backard-edge. I. Castelli Visita di n grafo, A.A. 2009/ /44

39 Algoritmo DFS - Classificazione degli archi Lemma Un grafo diretto è aciclico se e solo se l algoritmo DFS non determina l esistenza di backard-edge B x y z Dimostrazione. 1 =. Se (, ) è n arco all indietro, allora è n antenato di nella foresta DFS. Qindi, esiste n cammino da a in G, e l arco backard (, ) completa il ciclo. 2 =. Si sppone che G abbia n ciclo c. Sia il primo ertice del ciclo ad essere scoperto, e sia (, ) l arco che lo precede nel ciclo. Al tempo d[] ttti i nodi da a sono bianchi ( grigio). Per il teorema dei cammini bianchi sarà n discendente di. Qindi, (, ) è necessariamente n backard-edge. I. Castelli Visita di n grafo, A.A. 2009/ /44

40 Ordinamento topologico L algoritmo DFS pò essere sato per effettare n ordinamento topologoco dei nodi di n grafo diretto aciclico (DAG - Direct Acyclic Graph). Ordinamento topologico Un ordinamento topologico di n DAG G = (V, E) è n ordinamento lineare dei soi ertici tale che, se G contiene n arco (, ), allora compare prima di nell ordinamento. Se il grafo contenesse dei cicli, n ordinamento di qesto tipo non sarebbe possibile. I. Castelli Visita di n grafo, A.A. 2009/ /44

41 Ordinamento topologico I. Castelli Visita di n grafo, A.A. 2009/ /44

42 Ordinamento topologico 1 TOPOLOGICAL SORT(G) 2 Chiama DFS(G) p e r c a l c o l a r e i tempi d i f i n e i s i t a f [ ] 3 p e r o g n i e r t i c e 4 Appena l a i s i t a d i n nodo e finita, inseriscilo 5 in testa a na lista concatenata 6 Restitisci la lista concatenata dei nodi Spponendo che s = 2 e Adj[s] = f[2] > f[1] > f[3] > f[4] Nota: l ordinamento topologico ottento aria a seconda della sorgente scelta, e dall ordine dei nodi nelle liste Adj I. Castelli Visita di n grafo, A.A. 2009/ /44

43 Ordinamento topologico Teorema T OP OLOGICAL SORT (G) prodce n ordinamento topologico di n grafo orientato aciclico G Dimostrazione. È sfficiente dimostrare che per ogni coppia di ertici, V, se esiste n arco (, ), allora f[] < f[] Poiché il grafo è aciclico, non esistono backard-edge (archi grigi). Qindi (, ) pò essere: 1 n arco bianco (tree-edge). In tal caso è bianco e dienta discendente di e, per il teorema delle parentesi, f[] < f[] 2 n arco nero (forard-edge oppre cross-edge). In tal caso è nero e f[] < f[] perché è già dientato nero prima di aer conclso la isita di. I. Castelli Visita di n grafo, A.A. 2009/ /44

44 Ordinamento topologico - Analisi DF S(G) richiede tempo Θ( V + E ) L inserimento di ognno dei V nodi nella lista richiede tempo costante. L ordinamento topologico richiede tempo Θ( V + E ) I. Castelli Visita di n grafo, A.A. 2009/ /44

Depth-first search. Visita in profondità di un grafo Algoritmo Esempio Complessità dell algoritmo Proprietà Ordinamento topologico

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

Dettagli

Grafo diretto Università degli Studi di Milano

Grafo diretto Università degli Studi di Milano Grafo diretto Un grafo diretto G è na coppia ordinata (V, E), doe V è l insieme dei ertici {,,,,n} (anche detti nodi). E V V è n insieme di coppie ordinate (,) dette archi diretti 6 V= {,,,4,5,6,7} 7 4

Dettagli

Appunti di Algoritmi e Strutture Dati. Grafi. Gianfranco Gallizia

Appunti di Algoritmi e Strutture Dati. Grafi. Gianfranco Gallizia Appunti di Algoritmi e Strutture Dati Grafi Gianfranco Gallizia 12 Dicembre 2004 2 Indice 1 Grafi 5 1.1 Definizione.............................. 5 1.2 Implementazione........................... 5 1.2.1

Dettagli

Visita di grafi. Vittorio Maniezzo - Università di Bologna

Visita di grafi. Vittorio Maniezzo - Università di Bologna Visita di grafi Vittorio Manieo - Uniersità di Bologna Liste di adiacena Lista di adiacenadi n ertice : lista che concatena ttti i ertici adiacenti a Il grafo pò essere rappresentato dalle liste di adiacena

Dettagli

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona e e Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario e ed implementazione in Java Visita di un grafo e e Concetti di base Struttura

Dettagli

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione Alberi binari Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari

Dettagli

Grafi. Moreno Marzolla Dip. di Informatica Scienza e Ingegneria Università di Bologna. moreno.marzolla@unibo.it http://www.moreno.marzolla.

Grafi. Moreno Marzolla Dip. di Informatica Scienza e Ingegneria Università di Bologna. moreno.marzolla@unibo.it http://www.moreno.marzolla. Grafi Moreno Marzolla ip. di Informatica Scienza e Ingegneria Università di ologna moreno.marzolla@unibo.it http://www.moreno.marzolla.name/ opyright lberto Montresor, Università di Trento, Italy (http://www.dit.unitn.it/~montreso/asd/index.shtml)

Dettagli

Esempi. non. orientato. orientato

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 è

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Sommario. Rappresentazione dei grafi. Ordinamento topologico. Visita in ampiezza Visita in profondità

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

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

Che cosa c è nella lezione. Questa lezione si occupa di teoria dei grafi: la rappresentazione dei grafi. le visite dei grafi

Che cosa c è nella lezione. Questa lezione si occupa di teoria dei grafi: la rappresentazione dei grafi. le visite dei grafi Algoritmi e Programmazione Aanzata - teoria 1/18 Che cosa c è nella lezione Qesta lezione si occpa di teoria dei grafi: la rappresentazione dei grafi le isite dei grafi gli alberi ricoprenti minimi i cammini

Dettagli

Ricerca non informata in uno spazio di stati

Ricerca non informata in uno spazio di stati Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

Algoritmi e Strutture di Dati II 2. Visite di grafi

Algoritmi e Strutture di Dati II 2. Visite di grafi Algoritmi e Strutture di Dati II 2 Visite di grafi Gli algoritmi di visita di un grafo hanno come obiettivo l esploraione di tutti i nodi e gli archi del grafo. Vi sono due modi principali per esplorare

Dettagli

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione presentato in questo file trova la seq. a costo minimo per

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

STRUTTURE NON LINEARI

STRUTTURE NON LINEARI PR1 Lezione 13: STRUTTURE NON LINEARI Michele Nappi mnappi@unisa.it www.dmi.unisa.it/people/nappi Per la realizzazione della presentazione è stato utilizzato in parte materiale didattico prodotto da Oronzo

Dettagli

40 Algoritmi sui Grafi

40 Algoritmi sui Grafi Università degli Studi di Napoli Parthenope Corso di Laurea in Informatica A.A 2014/15 PROGETTO PROGRAMMAZIONE III 40 Algoritmi sui Grafi Relatore: Prof. Raffaele Montella Studente: Diego Parlato Matricola:

Dettagli

Grafi: cammini minimi

Grafi: cammini minimi Algoritmi e Programmaione Aanata EIP Grafi: cammini minimi Flio CORNO - Matteo SONZA REORDA Dip. Atomatica e Informatica Politecnico di Torino Sommario Introdione Algoritmo di Dijkstra Algoritmo di Bellman-Ford.

Dettagli

Alcuni Preliminari. Prodotto Cartesiano

Alcuni Preliminari. Prodotto Cartesiano Alcuni Preliminari Prodotto Cartesiano Dati due insiemi A e B, si definisce il loro prodotto cartesiano A x B come l insieme di tutte le coppie ordinate (a,b) con a! A e b! B. Es: dati A= {a,b,c} e B={,2,3}

Dettagli

IL PROBLEMA DELLO SHORTEST SPANNING TREE

IL PROBLEMA DELLO SHORTEST SPANNING TREE IL PROBLEMA DELLO SHORTEST SPANNING TREE n. 1 - Formulazione del problema Consideriamo il seguente problema: Abbiamo un certo numero di città a cui deve essere fornito un servizio, quale può essere l energia

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Alberi Binari di Ricerca (BST) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Alberi Binari di Ricerca (Binary Search Trees BST)

Dettagli

I NUMERI NATURALI. Per cominciare impariamo a leggere alcuni numeri naturali e dopo prova a scriverli nella tua lingua:

I NUMERI NATURALI. Per cominciare impariamo a leggere alcuni numeri naturali e dopo prova a scriverli nella tua lingua: I NUMERI NATURALI Per cominciare impariamo a leggere alcni nmeri natrali e dopo prova a scriverli nella ta linga: NUMERI ITALIANO LA TUA LINGUA 1 UNO 2 DUE 3 TRE 4 QUATTRO 5 CINQUE 6 SEI 7 SETTE 8 OTTO

Dettagli

Alberi binari di ricerca

Alberi binari di ricerca Alberi binari di ricerca Definizione Visita dell albero inorder Ricerca Ricerca minimo, massimo e successore. Inserimento ed eliminazione di un nodo Problema del bilanciamento dell albero Albero binario

Dettagli

Esercizi di Matematica Finanziaria

Esercizi di Matematica Finanziaria Università degli Stdi di Siena Facoltà di Economia Esercizi di Matematica Finanziaria relativi ai capitoli XI-XIII del testo Cladio Pacati a.a. 998 99 c Cladio Pacati ttti i diritti riservati. Il presente

Dettagli

Algoritmi e Strutture Dati Grafi. Daniele Loiacono

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)

Dettagli

Algoritmi di Visita di Grafi. Damiano Macedonio mace@unive.it

Algoritmi di Visita di Grafi. Damiano Macedonio mace@unive.it lgoritmi di Visita di rafi amiano Macedonio mace@unive.it Original work opyright lberto Montresor, Università di Trento, Italy Modifications opyright 00 0, Moreno Marzolla, Università di ologna, Italy

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

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

Quanti centesimi mancano per avere 1 unità se ho 30 centesimi?... E se ne ho 35?... E se ne ho 73?... 0,5 1,4 3,2 7,4 0,7 0,78 1,12 1,06

Quanti centesimi mancano per avere 1 unità se ho 30 centesimi?... E se ne ho 35?... E se ne ho 73?... 0,5 1,4 3,2 7,4 0,7 0,78 1,12 1,06 I NUMERI DECIMALI Calcolo rapido Rispondi alle segenti domande. Qanti decimi occorrono per fare 1 nità?... E mezza nità?... Qanti decimi mancano per avere 1 nità intera se ho 7 decimi?... E se ne ho 6?...

Dettagli

Sistemi Interconnessi

Sistemi Interconnessi Corso di Fondamenti di Atomatica Università di Roma La Sapienza Sistemi Interconnessi L. Lanari Dipartimento di Informatica e Sistemistica Università di Roma La Sapienza Roma, Ital Ultima modifica Ma 29,

Dettagli

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II

Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II Algoritmi e Strutture Dati (Mod. B) Algoritmi su grafi Ricerca in profondità (Depth-First Search) Parte II Classificazione digli archi Sia G la foresta DF generata da DFS sul grafo G. Arco d albero: gli

Dettagli

TSP con eliminazione di sottocicli

TSP con eliminazione di sottocicli TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 3 5 7-8 9 57

Dettagli

Introduzione. Algoritmi Link-State. Principi. Adiacenze OSPF (2) Adiacenze OSPF (1) Open Shortest Path First Protocol (OSPF)

Introduzione. Algoritmi Link-State. Principi. Adiacenze OSPF (2) Adiacenze OSPF (1) Open Shortest Path First Protocol (OSPF) Introdzione Open Shortest Path First Protocol (OSPF) Svilppo inizia nel 987 OSPF Working Grop (parte di IETF) OSPFv2 emanato nel 99 OSPFv2 aggiornato nel RFC 278 Principi OSPF è n protocollo di roting

Dettagli

Alberi auto-aggiustanti

Alberi auto-aggiustanti Alberi auto-aggiustanti Dispensa didattica per il corso di Algoritmi e Strutture Dati a.a. 2007/2008 ver. 1.3 Ing. Claudio Mazzariello, Prof. Carlo Sansone 27 Maggio 2008 A differenza di altre possibili

Dettagli

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0 LEZIONE 23 231 Diagonalizzazione di matrici Abbiamo visto nella precedente lezione che, in generale, non è immediato che, data una matrice A k n,n con k = R, C, esista sempre una base costituita da suoi

Dettagli

Grafi: ordinamento topologico

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,

Dettagli

1. Considerazioni generali

1. Considerazioni generali 1. Considerazioni generali Modelli di shop scheduling In molti ambienti produttivi l esecuzione di un job richiede l esecuzione non simultanea di un certo numero di operazioni su macchine dedicate. Ogni

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

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione Esercizi II parte Esercizio 1 Discutere la correttezza di ciascuna delle seguenti affermazioni. Dimostrare formalmente la validità

Dettagli

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo L. De Giovanni G. Zambelli 1 Problema del flusso a costo minimo Il problema del flusso a costo minimo é definito

Dettagli

Ricerca Operativa. Claudio Arbib Universitàdi L Aquila. Problemi combinatorici (Gennaio 2006)

Ricerca Operativa. Claudio Arbib Universitàdi L Aquila. Problemi combinatorici (Gennaio 2006) Claudio Arbib Universitàdi L Aquila Ricerca Operativa Problemi combinatorici (Gennaio 2006) Sommario Problemi combinatorici Ottimizzazione combinatoria L algoritmo universale Il metodo greedy Problemi

Dettagli

Esercitazione 7. Grafi. Rappresentazione e algoritmi di visita

Esercitazione 7. Grafi. Rappresentazione e algoritmi di visita Esercitazione 7 Grafi Rappresentazione e algoritmi di visita Grafo G = (V,E) non orientato 1 1 G = (V,E) orientato 6 Rappresentazione Grafo G = (V,E) metodi standard per la rappresentazione Liste di adiacenza

Dettagli

Plate Locator Riconoscimento Automatico di Targhe

Plate Locator Riconoscimento Automatico di Targhe Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa

Dettagli

Note su quicksort per ASD 2010-11 (DRAFT)

Note su quicksort per ASD 2010-11 (DRAFT) Note su quicksort per ASD 010-11 (DRAFT) Nicola Rebagliati 7 dicembre 010 1 Quicksort L algoritmo di quicksort è uno degli algoritmi più veloci in pratica per il riordinamento basato su confronti. L idea

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Struttura elettronica delle molecole. Teoria quantistica del legame chimico

Struttura elettronica delle molecole. Teoria quantistica del legame chimico Strttra elettronica delle molecole. Teoria qantistica del legame chimico Lo ione idrogeno molecolare H 2 + Eq. Schroedinger singolo elettrone La fnzione d onda φ b soddisfa na eqazione analoga. Gli atovalori

Dettagli

La struttura dati ad albero binario

La struttura dati ad albero binario La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

TSP con eliminazione di sottocicli

TSP con eliminazione di sottocicli TSP con eliminazione di sottocicli Un commesso viaggiatore deve visitare 7 clienti in modo da minimizzare la distanza percorsa. Le distanze (in Km) tra ognuno dei clienti sono come segue: 7-8 9 7 9-8 79

Dettagli

uscente entrante adiacente Figure B.2 (a) (b) (c) incident from leaves incident to enters incident on adjacent degree isolated

uscente entrante adiacente Figure B.2 (a) (b) (c) incident from leaves incident to enters incident on adjacent degree isolated Grafi Si dice grafo un insieme di nodi legati "a due a due" da archi direzionati (o no) I grafi sono strutture dati di fondamentale importanza in informatica Vi sono centinaia di problemi computazionali

Dettagli

Minimo Albero Ricoprente

Minimo Albero Ricoprente Minimo lbero Ricoprente Pag. 1/20 Minimo lbero Ricoprente Il problema della definizione di un Minimo lbero Ricoprente trova applicazione pratica in diverse aree di studio, quali ad esempio la progettazione

Dettagli

Il Metodo Branch and Bound

Il Metodo Branch and Bound Il Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 4 Novembre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale

Dettagli

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

b i 1,1,1 1,1,1 0,1,2 0,3,4

b i 1,1,1 1,1,1 0,1,2 0,3,4 V o Appello // RICERCA OPERATIVA - Corso A (a.a. 9/) Nome Cognome: Corso di Laurea: L C6 LS LM Matricola: ) Si consideri il problema di flusso di costo minimo in figura. Si verifichi se il flusso ammissibile

Dettagli

Teoria dei grafi: ricerca di percorsi a minimo costo Ing. Valerio Lacagnina

Teoria dei grafi: ricerca di percorsi a minimo costo Ing. Valerio Lacagnina Metodi diide-et-impera, programmazione dinamica e algoritmi greed La programmazione dinamica, come il metodo diide-et-impera, risole n problema mettendo insieme le solzioni di n certo nmero di sottoproblemi.

Dettagli

Intelligenza Artificiale. Metodi di ricerca

Intelligenza Artificiale. Metodi di ricerca Intelligenza Artificiale Metodi di ricerca Marco Piastra Metodi di ricerca - 1 Ricerca nello spazio degli stati (disegno di J.C. Latombe) I nodi rappresentano uno stato Gli archi (orientati) una transizione

Dettagli

Ricerca Operativa A.A. 2007/2008

Ricerca Operativa A.A. 2007/2008 Ricerca Operativa A.A. 2007/2008 9. Cenni su euristiche e metaeuristiche per ottimizzazione combinatoria Motivazioni L applicazione di metodi esatti non è sempre possibile a causa della complessità del

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi 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

Dettagli

Analisi di una Rete Sociale

Analisi di una Rete Sociale 2012 Analisi di una Rete Sociale Alessandro Lovati Matricola 626053 Comunicazione Digitale ord. F47 26/01/2012 Indice : 1. Obiettivo del progetto 2. Realizzazione 3. Analisi dei risultati 3.1. Numero di

Dettagli

Grafi. V = {a, b, c, d} E = {(a, b), (a, c), (c, a), (d, d), (b, d)}

Grafi. V = {a, b, c, d} E = {(a, b), (a, c), (c, a), (d, d), (b, d)} Grafi Grafo orientato (o diretto) = (V,E) V = nodi o vertici - E = archi (edges) V = {a, b, c, d} E = {(a, b), (a, c), (c, a), (d, d), (b, d)} archi uscenti da un nodo x: (x, y) archi incidenti su un nodo

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

Programmazione dinamica

Programmazione dinamica Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)

Dettagli

Parte 3: Gestione dei progetti, Shop scheduling

Parte 3: Gestione dei progetti, Shop scheduling Parte : Gestione dei progetti, Shop scheduling Rappresentazione reticolare di un progetto Insieme di attività {,...,n} p i durata (nota e deterministica dell attività i) relazione di precedenza fra attività:

Dettagli

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso Flusso di costo minimo È dato un grafo direzionato G = (N, A). Ad ogni arco (i, j) A è associato il costo c ij

Dettagli

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO

PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO PROVA FINALE V. AULETTA G. PERSIANO ALGORITMI II - -MAGIS INFO 1. Load Balancing Un istanza del problema del load balancing consiste di una sequenza p 1,..., p n di interi positivi (pesi dei job) e un

Dettagli

Algoritmi. Matricole dispari Prof.ssa Anselmo. Pre-appello del 15 Gennaio 2015. Attenzione:

Algoritmi. Matricole dispari Prof.ssa Anselmo. Pre-appello del 15 Gennaio 2015. Attenzione: COGNOME: Nome: Algoritmi Matricole dispari Prof.ssa Anselmo Pre-appello del 15 Gennaio 2015 Attenzione: Inserire i propri dati nell apposito spazio soprastante e sottostante. Non voltare la pagina finché

Dettagli

Macchine sequenziali

Macchine sequenziali Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine sequenziali Lezione 14 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Automa a Stati Finiti (ASF) E una prima astrazione di

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

CUTPOINTS BRIDGES BLOCKS BLOCK GRAPHS - CUTPOINT GRAPHS

CUTPOINTS BRIDGES BLOCKS BLOCK GRAPHS - CUTPOINT GRAPHS CUTPOINTS BRIDGES BLOCKS BLOCK GRAPHS - CUTPOINT GRAPHS INTRODUZIONE Per conoscere la struttura di un grafo connesso è importante individuare nel grafo la distribuzione di certi punti detti cutpoints (punti

Dettagli

LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L. Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso

LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L. Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso LABORATORIO DI ALGORITMI E STRUTTURE DATI A-L Ingegneria e scienze informatiche Cesena A.A: 2016/2017 Docente: Greta Sasso Grafi Un grafo è una struttura definita come un insieme di nodi (o vertici) che

Dettagli

Introduzione Ordini parziali e Reticoli Punti fissi

Introduzione Ordini parziali e Reticoli Punti fissi Introduzione Ordini parziali e Reticoli Punti fissi By Giulia Costantini (819048) & Giuseppe Maggiore (819050) Table of Contents ORDINE PARZIALE... 3 Insieme parzialmente ordinato... 3 Diagramma di Hasse...

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Controlli automatici

Controlli automatici Controlli atomatici Sistemi a tempo discreto Prof. Paolo Rocco (paolo.rocco@polimi.it) Politecnico di Milano Dipartimento di Elettronica, Informaione e Bioingegneria Introdione Un sistema dinamico a tempo

Dettagli

Tecniche Reticolari. Problema: determinare l istante di inizio di ogni attività in modo che la durata complessiva del progetto sia minima

Tecniche Reticolari. Problema: determinare l istante di inizio di ogni attività in modo che la durata complessiva del progetto sia minima Project Management Tecniche Reticolari Metodologie per risolvere problemi di pianificazione di progetti Progetto insieme di attività A i di durata d i, (=,...,n) insieme di relazioni di precedenza tra

Dettagli

Grafi: visita generica

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

Dettagli

Operazioni di Comunicazione di base. Cap.4

Operazioni di Comunicazione di base. Cap.4 Operazioni di Comunicazione di base Cap.4 1 Introduzione: operazioni di comunicazioni collettive Gli scambi collettivi coinvolgono diversi processori Sono usati massicciamente negli algoritmi paralleli

Dettagli

Il principio di induzione e i numeri naturali.

Il principio di induzione e i numeri naturali. Il principio di induzione e i numeri naturali. Il principio di induzione è un potente strumento di dimostrazione, al quale si ricorre ogni volta che si debba dimostrare una proprietà in un numero infinito

Dettagli

Grafi: visita in profondita

Grafi: visita in profondita .. rafi: visita in profondita Una presentazione alternativa (con ulteriori dettagli) onsideriamo la versione concreta dell algoritmo di visita generica con costruzione del sottografo dei predecessori:

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

Sommario della lezione

Sommario della lezione Università degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/33 Sommario della lezione Ancora sui cammini minimi: Cammini minimi in grafi con archi di costo negativo Algoritmi

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

IL SISTEMA INFORMATIVO

IL SISTEMA INFORMATIVO LEZIONE 15 DAL MODELLO DELLE CONDIZIONI DI EQUILIBRIO AL MODELLO CONTABILE RIPRESA DEL CONCETTO DI SISTEMA AZIENDALE = COMPLESSO DI ELEMENTI MATERIALI E NO CHE DIPENDONO RECIPROCAMENTE GLI UNI DAGLI ALTRI

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

execute reject delay

execute reject delay Scheduler Lo scheduler stabilisce l ordine di esecuzione delle operazioni. Le azioni che svolge sono: execute: l operazione può essere eseguita immediatamente, per cui viene passata al data manager reject:

Dettagli

Macchine di Turing. a n B B. Controllo Finito

Macchine di Turing. a n B B. Controllo Finito Macchine di Turing Il modello standard di macchina di Turing era un controllo finito, un nastro di input, diviso in celle, e una testina che prende in considerazione una cella del nastro alla volta. Il

Dettagli

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007 Sommario Macchine a stati finiti M. Favalli 5th June 27 4 Sommario () 5th June 27 / 35 () 5th June 27 2 / 35 4 Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Dettagli

A i è un aperto in E. i=1

A i è un aperto in E. i=1 Proposizione 1. A è aperto se e solo se A c è chiuso. Dimostrazione. = : se x o A c, allora x o A = A o e quindi esiste r > 0 tale che B(x o, r) A; allora x o non può essere di accumulazione per A c. Dunque

Dettagli

24 - Strutture simmetriche ed antisimmetriche

24 - Strutture simmetriche ed antisimmetriche 24 - Strutture simmetriche ed antisimmetriche ü [.a. 2011-2012 : ultima revisione 1 maggio 2012] In questo capitolo si studiano strutture piane che presentano proprieta' di simmetria ed antisimmetria sia

Dettagli

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique

CPM - PERT CPM - PERT. Rappresentazione di un progetto. Gestione di un progetto. Critical Path Method Project Evaluation and Review Technique CPM - PERT CPM - PERT CPM e PERT sono metodologie per la gestione di progetti composti da più attività in cui esistano relazioni di precedenza. Critical Path Method Project Evaluation and Review Technique

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici CPU a singolo ciclo assimiliano Giacomin Schema del processore (e memoria) Unità di controllo Condizioni SEGNALI DI CONTROLLO PC emoria indirizzo IR dato letto UNITA DI ELABORAZIONE

Dettagli

Ricorsione. Rosario Culmone. - p. 1/13

Ricorsione. Rosario Culmone. - p. 1/13 Ricorsione Rosario Culmone - p. 1/13 Induzione e Ricorsione Spesso utilizzeremo le definizioni induttive. Sono forme di definizione compatte che descrivono un numero infinito di elementi. I contesti di

Dettagli

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante: Sommario Macchine a stati finiti M. Favalli Engineering Department in Ferrara 4 Sommario (ENDIF) Analisiesintesideicircuitidigitali / 35 (ENDIF) Analisiesintesideicircuitidigitali 2 / 35 4 Le macchine

Dettagli

Ricorsione in SQL-99. Introduzione. Idea di base

Ricorsione in SQL-99. Introduzione. Idea di base Ricorsione in SQL-99 Introduzione In SQL2 non è possibile definire interrogazioni che facciano uso della ricorsione Esempio Voli(lineaAerea, da, a, parte, arriva) non è possibile esprimere l interrogazione

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Elementi di Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Il problema La CMC produce automobili in uno stabilimento

Dettagli