Algoritmi e Strutture di Dati II 2. Visite di grafi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Algoritmi e Strutture di Dati II 2. Visite di grafi"

Transcript

1 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 un grafo: visita in ampiea (breadth-first visit): mi muovo il più possible in ampiea (di fratello in fratello) e ritorno sui miei passi solo quando non posso più spingermi oltre; visita in profondità (depth-first visit): mi muovo il più possible in profondità (di padre in figlio) e ritorno sui miei passi solo quando non posso più spingermi oltre.

2 Algoritmi e Strutture di Dati II 3 Le due visite a confronto

3 Algoritmi e Strutture di Dati II 4 Visita in ampiea I dati di ingresso dell algoritmo BFS (Breadth-First Search) sono un grafo G =(V,E) e un nodo sorgente s 2 V. L algoritmo: esplora tutti i vertici raggiungibili a partire da s; calcola e memoria le distane (la lunghea del cammino minimo) da s a tutti i nodi raggiungibili da s; costruisce l albero dei cammini minimi (BF-albero) da s a tutti i nodi raggiungibili da s.

4 Algoritmi e Strutture di Dati II 5 Visita in ampiea Ogni nodo viene scoperto quanto è incontrato la prima volta dalla procedura e terminato quando tutti i suoi successori sono stati scoperti. Per distinguere i nodi visitati da quelli ancora da visitare, BFS colora i nodi di bianco, di grigio e di nero, con il seguente significato: nodi bianchi corrispondono a nodi ancora da scoprire; nodi grigi corrispondono a nodi scoperti ma non ancora terminati; nodi neri corrispondono a nodi terminati. Quindi i nodi grigi formano la frontiera tra nodi scoperti (ona nera) e nodi ancora da scoprire (ona bianca).

5 Algoritmi e Strutture di Dati II 6 Zona bianca, grigia e nera s

6 Algoritmi e Strutture di Dati II 7 BFS: strutture di dati L algoritmo BFS assume che il grafo G sia rappresentato mediante liste di adiacena. Esso usa le seguenti strutture di dati: un vettore color tale che color[u] è il colore del nodo u; un vettore º tale che º[u] è il padre del nodo u; un vettore d tale che d[u] è la distana di u dalla sorgente s; una coda Q per memoriare i nodi grigi (la frontiera).

7 Algoritmi e Strutture di Dati II 8 Visita in ampiea 1: BFS(G, s) 2: for each u 2 V [G] \{s} do 3: color[u] white 4: d[u] 1 5: º[u] nil 6: end for 7: color[s] gra 8: d[s] 0 9: º[s] nil 10: Q ; 11: Enqueue(Q, s)

8 Algoritmi e Strutture di Dati II 9 12: while not QueueEmpt(Q) do 13: u Dequeue(Q) 14: for each v 2 Adj[u] do 15: if color[v] =white then 16: color[v] gra 17: d[v] d[u]+1 18: º[v] u 19: Enqueue(Q, v) 20: end if 21: end for 22: color[u] black 23: end while

9 Algoritmi e Strutture di Dati II 10 0 r s t u (a) Q s v w x

10 Algoritmi e Strutture di Dati II r s t u (b) Q w r v w x 1

11 Algoritmi e Strutture di Dati II 12 1 r 0 s 2 t u (c) Q r t x v w 1 x 2

12 Algoritmi e Strutture di Dati II 13 (d) 1 r v 2 0 s w 1 2 t x 2 u Q t x v

13 Algoritmi e Strutture di Dati II 14 1 r 0 s 2 t 3 u (e) Q x v u v w x 2 1 2

14 Algoritmi e Strutture di Dati II 15 1 r 0 s 2 t 3 u (f) Q v u v w x

15 Algoritmi e Strutture di Dati II 16 1 r 0 s 2 t 3 u (g) Q u v w x

16 Algoritmi e Strutture di Dati II 17 1 r 0 s 2 t 3 u (h) Q v w x

17 Algoritmi e Strutture di Dati II 18 1 r 0 s 2 t 3 u (i) Q v w x

18 Algoritmi e Strutture di Dati II 19 Complessità di BFS 1: BFS(G, s) 2: for each u 2 V [G] \{s} do 3: color[u] white 4: d[u] 1 5: º[u] nil 6: end for 7: color[s] gra 8: d[s] 0 9: º[s] nil 10: Q ; 11: Enqueue(Q, s)

19 Algoritmi e Strutture di Dati II 20 12: while not QueueEmpt(Q) do 13: u Dequeue(Q) 14: for each v 2 Adj[u] do 15: if color[v] =white then 16: color[v] gra 17: d[v] d[u]+1 18: º[v] u 19: Enqueue(Q, v) 20: end if 21: end for 22: color[u] black 23: end while

20 Algoritmi e Strutture di Dati II 21 Complessità di BFS L algoritmo consiste di una fase di iniialiaione e di un ciclo while. La complessità della fase di iniialiaione è O(n). La complessità del ciclo while si valuta così: Quante volte viene eseguito il ciclo? Ogni nodo raggiungibile da s viene caricato in Q esattamente una volta. Ad ogni iteraione scarico esattamente un nodo da Q. Quindi il ciclo viene eseguito al massimo n volte (tutti i nodi sono raggiungibili da s);

21 Algoritmi e Strutture di Dati II 22 Quanto costa ogni iteraione del ciclo? Ad ogni iteraione del ciclo: visito la lista di adiacena di un nodo; eseguo altre operaioni di costo costante (esempio, Enqueue e Dequeue). Dato che la somma delle lunghee di tutte le liste di adiacena è O(m), la complessità del ciclo while vale O(n + m). In totale, BFS costa O(n +(n + m)) = O(n + m) cioé è lineare nella dimensione dell input.

22 Algoritmi e Strutture di Dati II 23 Eserciio. Si scriva una procedura che stampa il cammino minimo da s a v assumendo che BFS(G, s) sia già stata invocata per calcolare il BF-albero con radice s.

23 Algoritmi e Strutture di Dati II 24 PrintPath(G, s, v) 1: if v = s then 2: print s 3: else 4: if º[v] =nil then 5: print no path exists 6: else 7: P rintp ath(g, s, º[v]) 8: print v 9: end if 10: end if

24 Algoritmi e Strutture di Dati II 25 PrintPath(G, s, v) 1: if v = s then 2: print s 3: else 4: if º[v] =nil then 5: print no path exists 6: else 7: x v 8: repeat 9: Push(S, x) 10: x º[x] 11: until x = nil 12: while not StackEmpt(S) do 13: print Pop(S) 14: end while 15: end if 16: end if

25 Algoritmi e Strutture di Dati II 26 Visita in profondità L algoritmo DFS (Depth-First Search) ha in input un grafo G =(V,E). L algoritmo: esplora tutti i vertici del grafo. L algoritmo parte da una sorgente qualsiasi e cambia sorgente quanto tutti i nodi raggiungibili dalla sorgente sono stati esplorati; registra i nodi visitati in un insieme di alberi, chiamato DF-foresta. Ogni albero ha come radice una sorgente; calcola e memoria i tempi di scoperta eitempi di terminaione di ogni nodo.

26 Algoritmi e Strutture di Dati II 27 Visita in profondità Per distinguere i nodi visitati da quelli ancora da visitare, DFS colora i nodi di bianco, di grigio e di nero: ogni nodo è iniialmente bianco; quando un vertice viene scoperto, cioè incontrato per la prima volta, il suo colore diventa grigio; quando un nodo viene terminato, cioè quando tutti i suoi discendenti sono stati esaminati, il colore diventa nero.

27 Algoritmi e Strutture di Dati II 28 DFS: strutture di dati L algoritmo DFS assume che il grafo G sia rappresentato mediante liste di adiacena. Esso usa le seguenti strutture di dati: un vettore color tale che color[u] è il colore del nodo u; un vettore º tale che º[u] è il padre del nodo u; un vettore d tale che d[u] contiene l istante in cui il nodo u viene scoperto; un vettore f tale che f[u] contiene l istante in cui il nodo u viene terminato.

28 Algoritmi e Strutture di Dati II 29 DFS(G) 1: for each u 2 V [G] do 2: color[u] white 3: º[u] nil 4: end for 5: time 0 6: for each u 2 V [G] do 7: if color[u] =white then 8: DFSV isit(u) 9: end if 10: end for

29 Algoritmi e Strutture di Dati II 30 DFSV isit(u) 1: color[u] gra 2: time time +1 3: d[u] time 4: for each v 2 Adj[u] do 5: if color[v] =white then 6: º[v] u 7: DFSV isit(v) 8: end if 9: end for 10: color[u] black 11: time time +1 12: f[u] time

30 Algoritmi e Strutture di Dati II 31 1/ u v w (a) x

31 Algoritmi e Strutture di Dati II 32 1/ u 2/ v w (b) x

32 Algoritmi e Strutture di Dati II 33 1/ 2/ u v w (c) x 3/

33 Algoritmi e Strutture di Dati II 34 1/ 2/ u v w (d) x 4/ 3/

34 Algoritmi e Strutture di Dati II 35 1/ 2/ u v w (e) x 4/5 3/

35 Algoritmi e Strutture di Dati II 36 1/ 2/ u v w (f) x 4/5 3/6

36 Algoritmi e Strutture di Dati II 37 1/ 2/7 u v w (g) x 4/5 3/6

37 Algoritmi e Strutture di Dati II 38 1/8 u 2/7 v w (h) x 4/5 3/6

38 Algoritmi e Strutture di Dati II 39 1/8 2/7 u v 9/ w (i) x 4/5 3/6

39 Algoritmi e Strutture di Dati II 40 1/8 2/7 u v 9/ w (j) x 4/5 3/6 10/

40 Algoritmi e Strutture di Dati II 41 1/8 2/7 u v 9/ w (k) x 4/5 3/6 10/11

41 Algoritmi e Strutture di Dati II 42 1/8 2/7 u v 9/12 w (l) x 4/5 3/6 10/11

42 Algoritmi e Strutture di Dati II 43 Complessità di DFS DFS(G) 1: for each u 2 V [G] do 2: color[u] white 3: º[u] nil 4: end for 5: time 0 6: for each u 2 V [G] do 7: if color[u] =white then 8: DFSV isit(u) 9: end if 10: end for

43 Algoritmi e Strutture di Dati II 44 DFSV isit(u) 1: color[u] gra 2: time time +1 3: d[u] time 4: for each v 2 Adj[u] do 5: if color[v] =white then 6: º[v] u 7: DFSV isit(v) 8: end if 9: end for 10: color[u] black 11: time time +1 12: f[u] time

44 Algoritmi e Strutture di Dati II 45 Complessità di DFS La procedura DFS impiega un tempo O(n) sena considerare il tempo di esecuione delle chiamate di DFSVisit; La procedura DFSVisit viene chiamata esattamente una volta per ogni nodo, quindi al più n volte; DFSVisit visita la lista di adiacena del nodo su cui è chiamata, oltre a fare altre operaioni di costo costante; Quindi tutte le chiamata a DFSVisit costano O(n + m), e il costo totale di DFS è O(n +(n + m)) = O(n + m) quindi lineare nella dimensione dell input.

45 Algoritmi e Strutture di Dati II 46 Proprietà della visita in profondità Per ogni nodo u, al termine di DFS, vale che: 1 d[u] <f[u] 2n in quanto esiste un unico evento di scoperta e un unico evento di fine per ognuno degli n vertici.

46 Algoritmi e Strutture di Dati II 47 Proprietà della visita in profondità Teorema delle parentesi. Per ogni visita di profondità di un grafo G =(V,E) (diretto o indiretto), per ogni due vertici distinti u e v, esattamente una delle seguenti condiione è vera: 1. gli intervalli [d[u],f[u]] e [d[v],f[v]] sono disgiunti, e nessuno tra u e v è un discendente dell altro nella DF-foresta; 2. l intervallo [d[u],f[u]] è contenuto nell intervallo [d[v],f[v]] e u è un discendente di v nella DF-foresta; 3. l intervallo [d[v],f[v]] è contenuto nell intervallo [d[u],f[u]] e v è un discendente di u nella DF-foresta.

47 Algoritmi e Strutture di Dati II 48 Classificaione degli archi Possiamo definire quattro tipi di archi: 1. archi tree: sono gli archi della DF-foresta; 2. archi back: sono archi (u, v) che connettono un vertice u ad un suo ascendente v nello stesso albero appartenente alla DF-foresta; 3. archi forward: sono archi non tree (u, v) che connettono un vertice u ad un suo discendente v nello stesso albero appartenente alla DF-foresta; 4. archi cross: tutti gli altri archi. Possono connettere vertici nello stesso albero (purché nessuno dei due vertici sia un discendente dell altro) oppure connettere vertici di alberi diversi.

48 Algoritmi e Strutture di Dati II 49 1/8 u 2/7 v 9/12 w F B C x 4/5 3/6 10/11 B

49 Algoritmi e Strutture di Dati II 50 Classificaione degli archi Teorema Sia (u, v) un arco di un grafo G. SiaC il colore del nodo v quando l arco (u, v) viene esplorato per la prima volta dalla visita in profondità. Allora: se C è bianco, allora (u, v) è un arco tree; se C è grigio, allora (u, v) è un arco back; se C è nero, allora: se d[u] <d[v], allora (u, v) è un arco forward; se d[u] >d[v], allora (u, v) è un arco cross.

50 Algoritmi e Strutture di Dati II 51 1/ u v w (a) x

51 Algoritmi e Strutture di Dati II 52 1/ u 2/ v w (b) x

52 Algoritmi e Strutture di Dati II 53 1/ 2/ u v w (c) x 3/

53 Algoritmi e Strutture di Dati II 54 1/ 2/ u v w (d) x 4/ 3/

54 Algoritmi e Strutture di Dati II 55 1/ 2/ u v w (d) B x 4/ 3/

55 Algoritmi e Strutture di Dati II 56 1/ 2/ u v w (e) x 4/5 3/

56 Algoritmi e Strutture di Dati II 57 1/ 2/ u v w (f) x 4/5 3/6

57 Algoritmi e Strutture di Dati II 58 1/ 2/7 u v w (g) x 4/5 3/6

58 Algoritmi e Strutture di Dati II 59 1/8 u 2/7 v w (h) x 4/5 3/6

59 Algoritmi e Strutture di Dati II 60 1/8 u 2/7 v w (h) F x 4/5 3/6

60 Algoritmi e Strutture di Dati II 61 1/8 2/7 u v 9/ w (i) x 4/5 3/6

61 Algoritmi e Strutture di Dati II 62 1/8 2/7 u v 9/ w (j) x 4/5 3/6 10/

62 Algoritmi e Strutture di Dati II 63 1/8 2/7 9/ u v w (j) x 4/5 3/6 10/ B

63 Algoritmi e Strutture di Dati II 64 1/8 2/7 u v 9/ w (k) x 4/5 3/6 10/11

64 Algoritmi e Strutture di Dati II 65 1/8 2/7 u v 9/12 w (l) x 4/5 3/6 10/11

65 Algoritmi e Strutture di Dati II 66 1/8 u 2/7 v 9/12 w (l) C x 4/5 3/6 10/11

66 Algoritmi e Strutture di Dati II 67 1/8 u 2/7 v 9/12 w F B C x 4/5 3/6 10/11 B

67 Algoritmi e Strutture di Dati II 68 1/ u v w (a) x

68 Algoritmi e Strutture di Dati II 69 1/ 2/ u v w (b) x

69 Algoritmi e Strutture di Dati II 70 1/ 2/ u v w (c) x 3/

70 Algoritmi e Strutture di Dati II 71 1/ 2/ u v w (d) x 4/ 3/

71 Algoritmi e Strutture di Dati II 72 1/ u 2/ v w (d) B x 4/ 3/

72 Algoritmi e Strutture di Dati II 73 1/ u 2/ v w (d) B B x 4/ 3/

73 Algoritmi e Strutture di Dati II 74 1/ 2/ u v w (e) B B x 4/5 3/

74 Algoritmi e Strutture di Dati II 75 1/ 2/ 6/ u v w (f) B B x 4/5 3/

75 Algoritmi e Strutture di Dati II 76 1/ 2/ 6/ u v w (g) B B x 4/5 3/ 7/

76 Algoritmi e Strutture di Dati II 77 1/ u 2/ v 6/ w (h) B B x 4/5 3/ 7/8

77 Algoritmi e Strutture di Dati II 78 1/ 2/ 6/9 u v w (i) B B x 4/5 3/ 7/8

78 Algoritmi e Strutture di Dati II 79 1/ 2/ 6/9 u v w (j) B B x 4/5 3/10 7/8

79 Algoritmi e Strutture di Dati II 80 1/ 2/11 6/9 u v w (k) B B x 4/5 3/10 7/8

80 Algoritmi e Strutture di Dati II 81 1/12 u 2/11 v 6/9 w B B x 4/5 3/10 7/8

81 Algoritmi e Strutture di Dati II 82 Identificaione di cicli Teorema. Un grafo G è aciclico se e soltanto se una visita in profondità di G non produce alcun arco di tipo back.

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

Algoritmi di visita di un grafo

Algoritmi di visita di un grafo 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

Dettagli

Agenti risolutori di problemi. Risolvere i problemi mediante ricerca Maria Simi a.a 2014/2015

Agenti risolutori di problemi. Risolvere i problemi mediante ricerca Maria Simi a.a 2014/2015 Agenti risolutori di problemi Risolvere i problemi mediante ricerca Maria Simi a.a 2014/2015 Agenti risolutori di problemi Adottano il paradigma della risoluzione di problemi come ricerca in uno spazio

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

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

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

Fondamenti di Internet e Reti 097246

Fondamenti di Internet e Reti 097246 sul livello di Rete Instradamento. o Si consideri la rete in figura.. Si rappresenti, mediante un grafo, la rete per il calcolo dei cammini minimi (solo i nodi e gli archi no reti). Si calcoli il cammino

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

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

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

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

7) Strutture dati fondamentali

7) Strutture dati fondamentali Pag 78 7) Strutture dati fondamentali L algoritmo Heapsort che abbiamo illustrato nel capitolo precedente è un ottimo esempio di soluzione (al problema dell ordinamento, nel caso specifico) nella quale

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

PARTE III MACCHINE A REGISTRI

PARTE III MACCHINE A REGISTRI PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson

Dettagli

B-Tree. Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in:

B-Tree. Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in: B-Tree Prof. Rudolf Bayer Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in: Filesystem: btrfs, NTFS, ReiserFS, NSS, XFS, JFS

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

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

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

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

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12 A / A / Seconda Prova di Ricerca Operativa Cognome Nome Numero Matricola Nota: LA RISOLUZIONE CORRETTA DEGLI ESERCIZI CONTRADDISTINTI DA UN ASTERISCO È CONDIZIONE NECESSARIA PER IL RAGGIUNGIMENTO DELLA

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

Approfondimento sull algoritmo di

Approfondimento sull algoritmo di Approfondimento sull algoritmo di LINK STATE corso: Reti di Calcolatori prof. Gianluca Foresti Indice 1 Introduzione Pag. 3 1.1 Il livello di rete Pag. 3 1.2 Algoritmi di routing Pag. 3 2 Pag. 4 2.1 Descrizione

Dettagli

Livello di Rete. Prof. Filippo Lanubile. Obiettivo

Livello di Rete. Prof. Filippo Lanubile. Obiettivo Livello di Rete Circuiti virtuali e datagram La funzione di instradamento Costruzione della tabella di routing Algoritmi di routing adattivi: distance vector routing e link-state routing Routing gerarchico

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

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

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali 1 Modelli imperativi: le RAM (Random Access Machine) I modelli di calcolo imperativi sono direttamente collegati al modello Von Neumann,

Dettagli

Test del Software. Definizione SCOPO LIMITI DEL TEST

Test del Software. Definizione SCOPO LIMITI DEL TEST Definizione! Verifica dinamica del comportamento del software rispetto a quello atteso, utilizzando un insieme finito di casi di test, appropriatamente selezionati nel dominio di tutti i casi possibili

Dettagli

STRUTTURE (O COSTRUTTI) DI CONTROLLO

STRUTTURE (O COSTRUTTI) DI CONTROLLO Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni

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

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

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

Algoritmi per la Visualizzazione. Disegno 2D ortogonale. Disegno ortogonale 2D (1) Disegno ortogonale 2D (2)

Algoritmi per la Visualizzazione. Disegno 2D ortogonale. Disegno ortogonale 2D (1) Disegno ortogonale 2D (2) Algoritmi per la visualizzazione DISEGNO DI GRAFI: ALCUNI CASI PARTICOLARI Disegno 2D ortogonale Disegno ortogonale 2D () Disegno ortogonale 2D (2) Punto di vista umano: primo criterio per giudicare la

Dettagli

Esercizi Capitolo 14 - Algoritmi Greedy

Esercizi Capitolo 14 - Algoritmi Greedy Esercizi Capitolo 14 - Algoritmi Greedy Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare

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

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?

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

Intelligenza Artificiale. Lezione 14. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 14 0

Intelligenza Artificiale. Lezione 14. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 14 0 Intelligenza Artificiale Lezione 14 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 14 0 Sommario Russell & Norvig Capitolo 4, Paragrafi 3 4 IDA* SMA* Ricerca Hill-climbing Simulated annealing Intelligenza

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

Esercizio: numero primo

Esercizio: numero primo Esercizio: numero primo Dato un numero N scrivere un algoritmo che verifichi se N è un numero primo e stampi un relativo messaggio Il numero N è un numero primo se è divisibile solo per 1 e per N Quindi,

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

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti Definizioni Problemi del testing:criterio di selezione dei casi di test Test Funzionale: suddivisione in classi di equivalenza e analisi dei valori limite Test Strutturale: basato sul flusso di controllo

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

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

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

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Preparati per il compito in classe Modulo 5

Preparati per il compito in classe Modulo 5 Preparati per il compito in classe Modulo 5 Hai i dati relativi a una serie di N (con N < 20) cinema, per ogni cinema si conoscono il nome e l incasso. Scrivi un programma che, presi in input tali dati,

Dettagli

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi) Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) 3. (testo di riferimento: Bellini-Guidi) Ing. Agnese Pinto 1 di 28 Linguaggi di programmazione Un programma è un algoritmo

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

La programmazione con vincoli in breve. La programmazione con vincoli in breve

La programmazione con vincoli in breve. La programmazione con vincoli in breve Obbiettivi Introdurre la nozione di equivalenza di CSP. Dare una introduzione intuitiva dei metodi generali per la programmazione con vincoli. Introdurre il framework di base per la programmazione con

Dettagli

Sommario della lezione

Sommario della lezione Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/36 Sommario della lezione Ulteriori esempi di applicazione della Programmazione Dinamica Esempio di applicazione

Dettagli

Barriere assorbenti nelle catene di Markov e una loro applicazione al web

Barriere assorbenti nelle catene di Markov e una loro applicazione al web Università degli studi di Roma Tre Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Matematica Sintesi relativa alla Tesi di Laurea in Matematica di Giulio Simeone Barriere assorbenti

Dettagli

I Algoritmi ricorsivi e analisi della loro complessità 5. II Algoritmi randomizzati e loro analisi di prestazione 7

I Algoritmi ricorsivi e analisi della loro complessità 5. II Algoritmi randomizzati e loro analisi di prestazione 7 Indice I Algoritmi ricorsivi e analisi della loro complessità 5 II Algoritmi randomizzati e loro analisi di prestazione 7 IIITecniche di valutazione di complessità ammortizzata 9 III. Casi di studio..................................

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

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

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

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m

Dettagli

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente. Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è 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

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico ISTITUTO TECNICO STATALE MARCHI FORTI Viale Guglielmo Marconi n 16-51017 PESCIA (PT) - ITALIA PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico Docente PARROTTA GIOVANNI

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

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

Dettagli

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia)

ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) ESERCIZIO 1 (Definizione funzioni passaggio parametri per copia) Scrivere una funzione per definire se un numero è primo e un programma principale minimale che ne testa la funzionalità. #include

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 7 Le reti telematiche 1 Le reti telematiche Tra le tecnologie del XX secolo dominano l elaborazione e la distribuzione delle informazioni

Dettagli

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 9. Macchine a stati. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 9. Macchine a stati Dipartimento di Informatica Università di Pisa A.A. 2014/15 so far Modello del dominio Modello statico: diagrammi delle classi Modello dinamico : diagrammi di

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

Problemi di Instradamento di Veicoli

Problemi di Instradamento di Veicoli Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Problemi di Instradamento di Veicoli Renato Bruni bruni@dis.uniroma1.it Il materiale presentato è derivato

Dettagli

Misure (parte II) Gerarchie Incomplete

Misure (parte II) Gerarchie Incomplete Sistemi Informativi Avanzati Anno Accademico 2013/2014 Prof. Domenico Beneventano Misure (parte II) Gerarchie Incomplete Esempio Schema di Fatto STUDENTE(STUDENTE,,REGIONE,), DF:! REGIONE (,,) REGIONE!

Dettagli

Il problema del commesso viaggiatore

Il problema del commesso viaggiatore ITTS Vito Volterra Progetto ABACUS Ottimizzazione combinatoria Il problema del commesso viaggiatore Studente: Davide Talon Esame di stato 2013 Anno scolastico 2012-2013 Indice 1. Introduzione........................................

Dettagli

Trattamento degli errori

Trattamento degli errori Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2011-2012 Linguaggi Formali e Compilatori Trattamento degli errori Giacomo PISCITELLI Trattamento degli errori Comunemente gli errori di programmazione

Dettagli

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca

Dettagli

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste

4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste 4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1

Dettagli

Istruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a.

Istruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a. Istruzioni condizionali Istruzioni condizionali Statistica computazionale Carla Rampichini a.a. 2008/09 Subsetting I I espressione; I-THEN-ELSE I espress THEN istr; [ELSE istr;] DO WHILE DO UNTIL I-THEN-

Dettagli

Politecnico di Milano. Reti Wireless. Seminari didattici. Dalla teoria alla soluzione. Ilario Filippini

Politecnico di Milano. Reti Wireless. Seminari didattici. Dalla teoria alla soluzione. Ilario Filippini Politecnico di Milano Reti Wireless Seminari didattici Dalla teoria alla soluzione Ilario Filippini 2 Approccio euristico 3 Obiettivo dell approccio euristico 4 Tipi di euristiche Dalla teoria alla soluzione

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

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

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

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

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

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica dei programmi La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica operazionale: associa ad ogni programma la sequenza delle sue

Dettagli

DISPENSE DI PROGRAMMAZIONE. Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte III)

DISPENSE DI PROGRAMMAZIONE. Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte III) DISPENSE DI PROGRAMMAZIONE Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte III) Un linguaggio lineare di descrizione degli algoritmi: il linguaggio SPARKS Esercizi di conversione

Dettagli

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio Test (o analisi dinamica) Verifica parte IIA Rif. Ghezzi et al. 6.3-6.3.3 Consiste nell osservare il comportamento del sistema in un certo numero di condizioni significative Non può (in generale) essere

Dettagli

Lezione 6 Le pile. Informatica. 28 Aprile 2016

Lezione 6 Le pile. Informatica. 28 Aprile 2016 Lezione 6 Le pile Informatica 28 Aprile 2016 Il porto di Anversa Il terminal del porto merci di Anversa usa delle gru a cavaliere per movimentare i container: I container arrivano per nave e vengono messi

Dettagli

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL In informatica il Pascal è un linguaggio di programmazione creato da Niklaus Wirth ed é un linguaggio di programmazione strutturata. I linguaggi di programmazione

Dettagli

GESTIONE DEGLI ARCHIVI

GESTIONE DEGLI ARCHIVI GESTIONE DEGLI ARCHIVI ARCHIVIO NON SAS ARCHIVIO NON SAS PUT FILE CARDS PASSO DI DATA SET MERGE OUTPUT UPDATE ARCHIVIO SAS ARCHIVIO SAS La lettura richiede sempre la dichiarazione INPUT in cui si indicano

Dettagli

Tipologie di macchine di Turing

Tipologie di macchine di Turing Tipologie di macchine di Turing - Macchina di Turing standard - Macchina di Turing con un nastro illimitato in una sola direzione - Macchina di Turing multinastro - Macchina di Turing non deterministica

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

Ottimizzazione nella gestione dei progetti

Ottimizzazione nella gestione dei progetti Ottimizzazione nella gestione dei progetti Capitolo 2: Reti di attività CARLO MANNINO Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica Definizioni di ase Il Progetto è costituito

Dettagli

Algoritmi e strutture di dati. Dispense. Corso di Laurea in Informatica. a.a. 2012-2013 Giorgio Gambosi UNIVERSITÀ DI ROMA ``TOR VERGATA''

Algoritmi e strutture di dati. Dispense. Corso di Laurea in Informatica. a.a. 2012-2013 Giorgio Gambosi UNIVERSITÀ DI ROMA ``TOR VERGATA'' Algoritmi e strutture di dati Corso di Laurea in Informatica Dispense aa 2012-2013 Giorgio Gambosi UNIVERSITÀ DI ROMA ``TOR VERGATA'' Revisione per l'aa 2013/14 a cura di Miriam Di Ianni (aggiornate al

Dettagli

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori. DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come Scopo principale dell informatica è risolvere problemi con i calcolatori. Non tutti i problemi sono risolvibili con i calcolatori. Si può dimostrato

Dettagli

Strumenti freeware/open source per l'insegnamento delle discipline scientifiche

Strumenti freeware/open source per l'insegnamento delle discipline scientifiche PLS-Fisica e AIF-Liguria - formazione/specializzazione rivolto per gli insegnanti Strumenti freeware/open source per l'insegnamento delle discipline scientifiche con applicazioni a problemi concreti GESTIRE

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

Esercitazione n o 3 per il corso di Ricerca Operativa

Esercitazione n o 3 per il corso di Ricerca Operativa Esercitazione n o 3 per il corso di Ricerca Operativa Ultimo aggiornamento October 17, 2011 Fornitura acqua Una città deve essere rifornita, ogni giorno, con 500 000 litri di acqua. Si richiede che l acqua

Dettagli

Algoritmi Genetici. e programmazione genetica

Algoritmi Genetici. e programmazione genetica Algoritmi Genetici e programmazione genetica Algoritmi Genetici Algoritmi motivati dall analogia con l evoluzione biologica Lamarck: le specie trasmutano nel tempo Darwin e Wallace: variazioni consistenti

Dettagli

PROF. Filippo CAPUANI. Installazione di Active Directory

PROF. Filippo CAPUANI. Installazione di Active Directory PROF. Filippo CAPUANI Installazione di Sommario Schema logico e fisico di Active Directory Infrastruttura di rete, schemi logici e schemi fisici Installazione di in un Domain Controller Creazione di una

Dettagli

COMPILAZIONE. Tarsformazione di linguaggi

COMPILAZIONE. Tarsformazione di linguaggi COMPILAZIONE Tarsformazione di linguaggi Le fasi della compilazione File sorgente Compilazione File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Libreria di run-time File

Dettagli