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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Appello dell 8 Febbraio 2005 Esercizio 1 (ASD) 1. Dire quale delle seguenti affermazioni è vera giustificando la risposta. (a) lg

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

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

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

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

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

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

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

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

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

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

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

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

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

4.1 Modelli di calcolo analisi asintotica e ricorrenze

4.1 Modelli di calcolo analisi asintotica e ricorrenze 4 Esercizi Prima Parte 4.1 Modelli di calcolo analisi asintotica e ricorrenze Esercizio 4 1 Rispondere alle seguenti domande: 1. Come misuriamo l efficienza di un algoritmo?. Quali sono gli algoritmi più

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

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

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

INTRODUZIONE: IL CONTESTO DEI SISTEMI

INTRODUZIONE: IL CONTESTO DEI SISTEMI INTRODUZIONE: IL CONTESTO DEI SISTEMI Il mondo reale è per sa natra complesso e le organizzazioni mane lo sono in modo particolare. Per potere comprendere e gestire la realtà è indispensabile svilppare

Dettagli

A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 13 giugno 2011

A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 13 giugno 2011 A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Stdi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia gigno Nome: Cognome: Matricola: voglio sostenere la prova orale il giorno venerdì //

Dettagli

COORDINAMENTO E GESTIONE DI PROGETTI COMPLESSI

COORDINAMENTO E GESTIONE DI PROGETTI COMPLESSI COORDINAMENTO E GESTIONE DI PROGETTI COMPLESSI 1. - Formulazione del problema Supponiamo di dover organizzare e gestire un progetto complesso, quale puó essere la costruzione di un edificio, oppure la

Dettagli

Algoritmi di visita di un grafo

Algoritmi di visita di un grafo Algoimi di iia di n gafo Ilaia Caelli caelli@dii.nii.i Unieià degli Sdi di Siena Dipaimeno di Ingegneia dell Infomazione A.A. 2009/2010 I. Caelli Viia di n gafo, A.A. 2009/2010 1/44 Gafi Viia in ampiezza

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

Dialog 4106 Basic/Dialog 4147 Medium. Manuale d'uso. Telefoni analogici per il sistema di comunicazione MD110

Dialog 4106 Basic/Dialog 4147 Medium. Manuale d'uso. Telefoni analogici per il sistema di comunicazione MD110 Dialog 4106 Basic/Dialog 4147 Medim Telefoni analogici per il sistema di comnicazione MD110 Manale d'so Cover Page Graphic (Grafica di copertina) Place the graphic directly on the page, do not care abot

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

Fondamenti di Informatica. Algoritmi per giochi. Il gioco dell undici. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica. Algoritmi per giochi. Il gioco dell undici. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a. 2005-200 lgoritmi per giochi Trovare un algoritmo che fornisca un unico metodo per risolvere ogni particolare problema

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

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

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

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

Simulazione di una Rete di Interconnessione di una Compagnia Aerea

Simulazione di una Rete di Interconnessione di una Compagnia Aerea Simulazione di una Rete di Interconnessione di una Compagnia Aerea Progetto del corso di Algoritmi e Strutture Dati a.a. 2011/2012 December 4, 2011 1 Introduzione Il progetto consiste nella realizzazione

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

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

NUMERO in SECONDA, addizioni e sottrazioni

NUMERO in SECONDA, addizioni e sottrazioni NUMERO in SECONDA, addizioni e sottrazioni Anna Dallai, Monica Falleri, Antonio Moro, 2013 Decina e abaco a scatole Se nel precedente anno non è stato introdotta la decina lavoriamo si raggrppamenti, diamo

Dettagli

Grafi: definizioni e visite

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

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

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

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

Approcci esatti per il job shop

Approcci esatti per il job shop Approcci esatti per il job shop Riferimenti lezione: Carlier, J. (1982) The one-machine sequencing problem, European Journal of Operational Research, Vol. 11, No. 1, pp. 42-47 Carlier, J. & Pinson, E.

Dettagli

Fondamenti di Ricerca Operativa

Fondamenti di Ricerca Operativa Politecnico di Milano Anno Accademico 2010/2011 Fondamenti di Ricerca Operativa Corso del Prof. Edoardo Amaldi Stefano Invernizzi Facoltà di Ingegneria dell Informazione Corso di Laurea Magistrale in Ingegneria

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

Dati e Algoritmi 1: A. Pietracaprina. Grafi (II parte)

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

Dettagli

Teoria normativa della politica economica

Teoria normativa della politica economica Teoria normativa della politica economica La teoria normativa si occpa di indicare il metodo e, di consegenza, le scelte che n atorità pbblica (policy maker) razionale dovrebbe assmere per persegire il

Dettagli

Algoritmi e Strutture Dati

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]

Dettagli

Ambienti più realistici. Ricerca online. Azioni non deterministiche L aspirapolvere imprevedibile. Soluzioni più complesse. Alberi di ricerca AND-OR

Ambienti più realistici. Ricerca online. Azioni non deterministiche L aspirapolvere imprevedibile. Soluzioni più complesse. Alberi di ricerca AND-OR Ambienti più realistici Ricerca online Maria Simi a.a. 2011/2012 Gli agenti risolutori di problemi classici assumono: Ambienti completamente osservabili e deterministici il piano generato può essere generato

Dettagli

Minimo sottografo ricoprente. Minimo sottografo ricoprente. Minimo albero ricoprente. Minimo albero ricoprente

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,

Dettagli

4. Analisi dei segnali periodici e serie di Fourier

4. Analisi dei segnali periodici e serie di Fourier 4. Analisi dei segnali periodici e serie di Forier Joseph Forier 1768-183 1 Nel so lavoro fondamentale del 187 Théorie analytiqe de la chaler, Jean Baptiste Joseph 1 La vita di Forier, oltre ad essere

Dettagli

Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT

Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT Giuditta Franco Corso di Laurea in Bioinformatica - AA 2012/2013 Uno dei più grossi risultati nell informatica degli

Dettagli

A VVISI E DICHIARAZIONI DI LEGGE

A VVISI E DICHIARAZIONI DI LEGGE A VVISI E DICHIARAZIONI DI LEGGE Copyright 2002 by ScanSoft, Inc. Ttti i diritti riservati. Nessna parte di qesta pbblicazione pò essere trasmessa, trascritta, riprodotta, memorizzata in alcn sistema compterizzato

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

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006 Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006 Esercizio 1 - Heapsort Si consideri la seguente struttura dati, chiamata heap. Essa è un albero binario semi-completo (ossia un

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

http://users.dimi.uniud.it/~massimo.franceschet/te... Who Shall Survive? Misure di centralità su reti sociali

http://users.dimi.uniud.it/~massimo.franceschet/te... Who Shall Survive? Misure di centralità su reti sociali Who Shall Survive? Misure di centralità su reti sociali Una rete sociale (social network) è una struttura fatta di persone e relazioni tra le persone. I sociologi chiamano attori (actors) le persone della

Dettagli

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.7)

Matematica Computazionale(6cfu) Ottimizzazione(8cfu) (a.a , lez.7) Docente: Marco Gaviano (e-mail:gaviano@nica.it) Corso di Larea in Infomatica Corso di Larea in Matematica Matematica Comptazionale(6cf) Ottimizzazione(8cf) (a.a. -4, lez.7) Matematica Comptazionale, Ottimizzazione,

Dettagli

Problema del cammino minimo

Problema del cammino minimo Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento

Dettagli

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

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice.

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice. Convalida: attività volta ad assicurare che il SW sia conforme ai requisiti dell utente. Verifica: attività volta ad assicurare che il SW sia conforme alle specifiche dell analista. Goal: determinare malfunzionamenti/anomalie/errori

Dettagli

Progetto DSA Matematica

Progetto DSA Matematica Classe a Progetto DSA Matematica Come le insegnanti ben sanno, all interno della classe ogni bambino ha le se caratteristiche pecliari, i soi tempi e le se molità di apprendimento. Appare qindi necessario

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

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena

Gestione della produzione e della supply chain Logistica distributiva. Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione Università di Siena Problemi di Distribuzione: Il problema del Vehicle Rou:ng

Dettagli

Problemi di soddisfacimento di vincoli. Formulazione di problemi CSP. Colorazione di una mappa. Altri problemi

Problemi di soddisfacimento di vincoli. Formulazione di problemi CSP. Colorazione di una mappa. Altri problemi Problemi di soddisfacimento di vincoli Maria Simi a.a. 2014/2015 Problemi di soddisfacimento di vincoli (CSP) Sono problemi con una struttura particolare, per cui conviene pensare ad algoritmi specializzati

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

APPUNTI SUI METODI PERT-C.P.M.

APPUNTI SUI METODI PERT-C.P.M. APPUNTI SUI METODI PERT-C.P.M. (corso di ricerca operativa) A cura di: Antonio Scalera 1 PERT/C.P.M. I metodi Pert e C.P.M. studiano lo sviluppo di un progetto attraverso la programmazione delle attività

Dettagli

Rendite vitalizie. Matematica finanziaria seconda parte Prof. Massimo Angrisani a.a. 2012/2013

Rendite vitalizie. Matematica finanziaria seconda parte Prof. Massimo Angrisani a.a. 2012/2013 Rendite italizie Mateatica finanziaria seconda parte Prof. Massio Angrisani a.a. 2012/2013 1 Cos è na rendita italizia 2 Un indiido di età x si assicra, a partire da tale età, il pagaento di n iporto (rata)

Dettagli

Capitolo 2 ELEMENTI BASE DI INGEGNERIA SISMICA

Capitolo 2 ELEMENTI BASE DI INGEGNERIA SISMICA Capitolo ELEMENTI BASE DI INGEGNERIA SISMICA 1. Premessa La crescita di importanza della dinamica delle strttre rislta evidente a chinqe abbia segito l evolzione delle problematiche connesse alla progettazione

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

Metodi Computazionali

Metodi Computazionali Metodi Computazionali Elisabetta Fersini fersini@disco.unimib.it A.A. 2009/2010 Catene di Markov Applicazioni: Fisica dinamica dei sistemi Web simulazione del comportamento utente Biologia evoluzione delle

Dettagli

Ingegneria del Software MINR. Giuseppe Santucci. 04 B - Esercitazione sui diagrammi Pert e Gantt. Gradi di libertà

Ingegneria del Software MINR. Giuseppe Santucci. 04 B - Esercitazione sui diagrammi Pert e Gantt. Gradi di libertà Ingegneria del Software MINR Giuseppe Santucci 4 - sercitazione sui diagrammi Pert e Gantt 4 xpertgantt. Gradi di libertà I. I. I.a I.b I.c I.4 4 xpertgantt. Obbiettivo dell esercitazione Stabilire le

Dettagli

TRASMISSIONE DELLA POTENZA

TRASMISSIONE DELLA POTENZA TRASMISSIOE DELLA POTEZA (Distillazione verticale) Conoscenza del principio di fnzionaento dei principali sistei di trasissione e trasforazione del oto. Sapere effettare calcoli si principali sistei di

Dettagli

I. Generalità, definizioni, classificazioni. MACCHINA A FLUIDO

I. Generalità, definizioni, classificazioni. MACCHINA A FLUIDO I. eneralità, definizioni, classificazioni. I.1 Definizioni rigardanti: macchine motrici ed operatrici e loro classificazione. Una macchina è n insieme di organi fissi e mobili, vincolati tra loro cinematicamente,

Dettagli

M A C C H I N E A F L U I D O

M A C C H I N E A F L U I D O 1 M A C C I N E A F L U I D O MACCINA: è n sistea di organi fissi e obili vincolati gli ni agli altri da legai definiti cineaticaente e disposti in odo tale da copiere, ovendosi sotto l azione di forze

Dettagli

L attenzione verso le cose del passato è sempre più

L attenzione verso le cose del passato è sempre più La gestione della geometria tridimensionale di n oggetto È fondamentale per ogni simlazione nmerica Antonio Giogoli Agiotech Le capacità odierne dell ingegneria inversa aprono novi confini all analista

Dettagli

Sintesi di reti logiche multilivello. Sommario. Motivazioni. Sommario. M. Favalli

Sintesi di reti logiche multilivello. Sommario. Motivazioni. Sommario. M. Favalli Sommario Sintesi di reti logiche multilivello M. Favalli Engineering Department in Ferrara 1 2 3 Aspetti tecnologici Sommario Analisi e sintesi dei circuiti digitali 1 / Motivazioni Analisi e sintesi dei

Dettagli

Dimensionamento dei lotti di produzione: il caso con variabilità nota

Dimensionamento dei lotti di produzione: il caso con variabilità nota Dimensionamento dei lotti di produzione: il caso con variabilità nota A. Agnetis In questi appunti studieremo alcuni modelli per il problema del lot sizing, vale a dire il problema di programmare la dimensione

Dettagli

2 Formulazione dello shortest path come problema di flusso

2 Formulazione dello shortest path come problema di flusso Strumenti della Teoria dei Giochi per l Informatica A.A. 2009/10 Lecture 20: 28 Maggio 2010 Cycle Monotonicity Docente: Vincenzo Auletta Note redatte da: Annibale Panichella Abstract In questa lezione

Dettagli

Flusso a costo minimo e simplesso su reti

Flusso a costo minimo e simplesso su reti Flusso a costo minimo e simplesso su reti La particolare struttura di alcuni problemi di PL può essere talvolta utilizzata per la progettazione di tecniche risolutive molto più efficienti dell algoritmo

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

Planning as Model Checking Presentazione della Tesina di Intelligenza Artificiale

Planning as Model Checking Presentazione della Tesina di Intelligenza Artificiale Planning as Model Checking Presentazione della Tesina di Intelligenza Artificiale di Francesco Maria Milizia francescomilizia@libero.it Model Checking vuol dire cercare di stabilire se una formula è vera

Dettagli

Ricerca euristica. Funzioni di valutazione euristica. Esempi di euristica. Strategia best-first: esempio. Algoritmo di ricerca Best-First 03/03/15

Ricerca euristica. Funzioni di valutazione euristica. Esempi di euristica. Strategia best-first: esempio. Algoritmo di ricerca Best-First 03/03/15 Ricerca euristica Ricerca euristica Maria Simi a.a. 2014/2015 La ricerca esaustiva non è praticabile in problemi di complessità esponenziale Noi usiamo conoscenza del problema ed esperienza per riconoscere

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

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