Problema del rappresentante o dei turisti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Problema del rappresentante o dei turisti"

Transcript

1 Algoritmi greedy

2 Filosofia utilizzata in pb. di ottimizzazione strategia euristica di cui è necessario valutare la bontà effettuano localmente una scelta ottima non ripensabile (definitivamente inclusa o esclusa) per raggiungere un ottimo globale la scelta dipende solo da quelle già fatte ma non dalle future approccio top-down mentre dinamica è bottom-up algoritmo greedy(a ={a 1,,a n }=insieme di candidati)sottoinsieme S di A S=vuoto Ordina A per appetibilità crescente Per (i=1;i<=n;i++) Se a i può essere aggiunto a S allora S=SUa i Restituisci S

3 Problema del rappresentante o dei turisti

4 Modello Partenza: (0,0) Passi: (i,j-1) s(i,j) (i-1,j) a(i,j) (i,j) Destinazione: (n-1,m-1)

5 Scelta greedy Ad ogni incrocio prendere la strada con un peso maggiore

6

7

8

9 Greedy

10 Valutazione scelta greedy Corretta NON ottima

11 Il problema del resto

12 Scelta greedy Utilizzare la moneta di valore massimo

13

14 Funziona?

15 Esempio Sia r = 77, c0 = 7, c1 = 3, c2 = 1 Ottimo cambio per 77 = 7 11 Sia r = 4, c0 = 2, c2 = 1 Ottimo cambio per 4 = 2 2 Sia r = 77, c0 = 50, c1 = 20, c2 = 10, c3 = 5, c4 = 1 Ottimo cambio per 77 = = = = = 1

16 Termina

17

18 Esempio Non sempre la tecnica golosa riesce a restituire l ottimo Sia r = 40, c0 = 25, c1 = 20, c2 = 10, c3 = 5 cambio per 40 = 25 + (10+5) Ottimo cambio per 40 = Non sempre la tecnica golosa riesce a restituire il resto adatto anche se è possibile Sia r = 70, c0 = 60, c1 = 50, c2 = 20 cambio greedy per 70 = Ottimo cambio per 70 =

19 Valutazione della scelta greedy In generale il pb. di sapere quando la scelta greedy per il pb. del resto restituisce una soluzione ottima è NP-completo

20 Quando è ottimo? Se l insieme dei valori delle monete contiene la rappresentazione binaria di r allora l algoritmo greedy è corretto e ottimo essendo la rappresentazione binaria golosa 77 = = e c0=64, c1=8, c2=4, c3=1

21 Se l insieme dei valori delle monete è fissato e allora la scelta greedy è corretta c0=10, c1=5, c2=1 89 = La scelta greedy è anche ottima se: r = n o 10 + n n 2 1 è t.c. n 1 1, n d i i i r n c mod mod5 5 ) (2 ' ' r n n n n r r r n n n n r

22 Siano c0 = 50, c1 = 25, c2 = 10, c3 = 5, c4 = 1 e c k la prima moneta usata da goloso ma non da ottimo Sia s la somma dei valori per il loro numero usati da ottimo tranne c k e da c k+1 fino a c d-1 Mostriamo che non e possibile: k = 4: ovvio k = 3: per ottimalità s 4 < 5 k = 2: per ottimalità s = 9 < 10 due monete da 5 sono peggio di una da 10 tre monete da 5 sono peggio di una da 10 e una da 5 quattro monete da 5 sono peggio di due 10 cinque monete da 5 non sono minori di 25 k = 1: per ottimalità s = 24 < 25 (analogo k = 2) k = 0: per ottimalità s = 49 < 50 (analogo k = 2)

23 Sequenziamento di attività

24 Formulazione Dato il tempo di servizio di n job t 1,., t n, sia T(i) il tempo di esecuzione di ciascuno. Determinare l ordine in cui processare gli n job in modo da minimizzare il tempo totale di permanenza nel sistema.

25 Esempio Nella coda di un server di posta elettronica sono presenti 3 messaggi che attendono di essere recapitati ai loro destinatari con messaggio tempo 1 50msc 2 100msc 3 3msc Quale dei 6 ordini di recapito è preferibile?

26 Algoritmo di forza bruta T(n)=O(n!)

27 t 1 =50msc, t 2 =100msc, t 3 =3msc Il server è cmq. impegnato per 153msec. ordine t totale t medio (50+100)+( )= , (50+3)+( )=256 85, (100+50)+( )= , (100+3)+( )= , (3+50)+( )=209 69, (3+100)+( )=259 86,3

28 Scelta greedy Processare per primo il job che richiede il minore tempo di esecuzione

29 Ordinamento crescente ottimo Restituisce la permutazione dei job a seguito dell ordinamento

30

31 Ordinamento stabile o no? Se l inserimento dei tempi è in base all ingresso nel sistema allora la stabilità garantisce un criterio FIFO

32 Valutazione della scelta greedy La scelta greedy è corretta e ottima ottimo t c t j S1O S2O S2O > S2G goloso t j S1G S2G t c

33 Complessità data dall ordinamento T(n)=O(nlogn)

34 Pianificazione di attività

35 Formulazione

36 Inizio

37 Settaggio della matrice di compatibilità tra l attività i e j i i i j j j j i

38 Generazione esaustiva ricorsiva dei sottoinsiemi

39 Massimo parziale compatibile

40 Algoritmo di forza bruta T(n)=O(2 n )

41 Scelta golosa?

42 Esempio cattivo

43 Scelta golosa?

44 Esempio cattivo

45 Scelta golosa?

46 Esempio cattivo

47 Scelta golosa!

48 [inizio,fine) Esempio

49 vettore t: indici 0 1 inizio fine

50 Ordinamento crescente ottimo in base al tempo di fine

51

52 Ordinamento stabile o no? Un ipotetico doppio ordinamento crescente stabile su inizio e successivamente su fine massimizza l utilizzo della macchina

53 Valutazione della scelta greedy La scelta greedy è corretta e ottima

54 goloso ottimo

55 Complessità data dall ordinamento T(n)=O(nlogn)

56 Il problema dello zaino 0-1

57 Scelta golosa? Scegliere l oggetto in base al valore selezionare quello che ha maggiore valore e peso compatibile con la capacità dello zaino

58 maxw=50 w v o o o maxw valore oggetto 1 2

59 Esempio cattivo maxw=50 w v o o o o maxw valore oggetto 1 4

60 Scelta golosa! Scegliere l oggetto in base al valore selezionare quello che ha maggiore valore e peso minore tra quelli di pari valore e cmq. compatibile con la capacità dello zaino

61 Ordinamento stabile o no? Se l inserimento degli oggetti è in base al loro arrivo allora la stabilità sul peso garantisce un criterio FIFO La stabilità sul valore è necessaria per migliorare la scelta golosa

62 Scelta greedy: oggetto di valore massimo senza inversione ordine maxw=50 w v o o o maxw valore oggetto 3 2 OTTIMO

63 Scelta greedy: oggetto di valore specifico massimo senza inversione ordine maxw=50 w v v/w o o o maxw valore oggetto 3 2 OTTIMO

64 Lasciando inalterato l ordine le performance sono le medesime

65 Scelta greedy: oggetto di valore massimo con inversione ordine maxw=50 w v o o o maxw valore oggetto 3 2 OTTIMO

66 Scelta greedy: oggetto di valore specifico massimo con inversione ordine maxw=50 w v v/w o o o maxw valore oggetto 1 2 NON OTTIMO

67 Rilassamento condizione sull ultimo bagaglio: oggetto di valore massimo senza inversione ordine maxw=55 w v o o o maxw valore oggetto 3 2 ½ di 1 OTTIMO

68 Rilassamento condizione sull ultimo bagaglio: oggetto di valore specifico massimo senza inversione ordine maxw=55 w v v/w o o o maxw valore oggetto 3 2 ½ di 1 OTTIMO

69 Lasciando inalterato l ordine le performance sono le medesime

70 Rilassamento condizione sull ultimo bagaglio: oggetto di valore massimo con inversione ordine maxw=50 w v maxw o valore o oggetto 3 2 o NON OTTIMO

71 Rilassamento condizione sull ultimo bagaglio: oggetto di valore specifico massimo con inversione ordine maxw=50 w v v/w o o o maxw valore oggetto 1 2 2/3 di 3 OTTIMO

72 La scelta precedente funziona potendo inserire parti di un oggetto maxw=50 w v v/w o o o maxw valore oggetto 1 2 2/3 di 3

73 Quale scelta greedy? v rilassato v/w

74

75

76

77

78 Complessità O(nlogn) per l ordinamento

79 Bin packing

80 . Formulazione Dato un numero naturale C = capacità di ciascun bin e n naturali a 1,., a n ( C)( trovare una partizione B 1,.,B k degli n numeri naturali e con k minimo t.c. a i B j ai C, j 1,..., k

81 Algoritmo next-fit Inserisci a 1 in B 1, j=1 Per ogni a i i>1 Se B j ha spazio inserisce a i in B j altrimenti alloca un nuovo bin e inseriscici a i

82 Esempio C=80

83 capacità bin numero oggetti

84 E corretto?

85 E corretto?

86

87 Valutazione della scelta greedy Next-fit usa al più il doppio del numero minimo di bin utilizzabili A= a 1 +.+a n = B 1 +.+B k min k A C k pari: A= a 1 +.+a n = (B 1 + B 2 )+.+(B k-1 + B k ) essendo B j + B j+1 >C allora A>k/2 *C da cui k<2*a/c

88 k dispari: A= a 1 +.+a n = (B 1 + B 2 )+.+(B k-2 + B k-1 )+ B k essendo B j + B j+1 >C allora A>(k-1)/2 *C + B k da cui k 2*A/C Da cui l asserto k A 2 2min k C

89 Esempio Sia C = 2m e a 1,., a 4m = m,1,m1,,m,1 Soluzione ottima alloca k=m+1 bin Next-fit alloca 2m bin

90 Algoritmo first-fit Per ogni a i,i=1,,n j=1 Fino a che ci sono bin allocati Se B j ha spazio inserisce a i in B j altrimenti j=j+1 alloca un nuovo bin e inseriscici a i

91 E corretto?

92 E corretto?

93 First-fit

94 Esempio C=80 senza ordinamento con ordinamento: scelta greedy

95 T worst ( n) O( n 2 ) Si verifica con a i =C/2+1

96 Codifica testi

97 Codici binari 1) a lunghezza fissa ASCII, ASCII esteso, UNICODE su alfabeti di cardinalità limitata A, T, G, C

98

99

100 Codici binari 2) a lunghezza variabile con separatore Morse SOS = --- prefix-free: nessuna parola di codice è prefisso di un altra parola di codice

101 Non prefix-free

102 Codici a lunghezza fissa sprecano molti bit simboli più frequenti dovrebbero essere codificati con parole più corte

103 bit vs bit Carattere a b c d e f N. apparizioni lunghezza fissa lunghezza variabile Codifica di decba: Decodifica di :

104 Lunghezza fissa a b c d e f

105 Lunghezza variabile a c b d f e

106 Alberi binari e codici bifix-free

107

108 Costo: numero di bit per codificare un file B( T ) i f ( i ) d T ( i ) d T ( i ) profondità della foglia con etichetta i

109 Carattere a b c d e Frequenza Codice Codice B(codice a lunghezza fissa) = 3 * 100 = 300 B(T1) = (2*75) + (3*25) = 225 B(T2) = (2*77) + (3*23) = 223

110 Scopo Dato un alfabeto e le frequenze con cui i caratteri appaiono in un testo, determinare un codice a lunghezza variabile prefix-free con minore costo 1. Approccio esaustivo troppo costoso 2. Codici di Huffman basato su corrispondenza tra codici binari prefixfree e alberi binari

111 Codice di Huffman

112 Algoritmo greedy

113 Esempio Determinare il codice di Huffman per CIAOO MAMMA

114 carattere m a o i c frequenza

115 c: 1 i: 1 o: 2 a: 3 m: 3

116 ci:2 o: 2 a: 3 m: c: 1 i: 1

117 cio:4 0 1 a: 3 m: 3 ci:2 o: c: 1 i: 1

118 cio:4 0 1 am:6 0 1 ci:2 0 1 o: 2 a: 3 m: 3 c: 1 i: 1

119 cio:4 0 1 am:6 0 1 ci:2 0 1 o: 2 a: 3 m: 3 c: 1 i: 1

120 am:6 0 1 cio:4 0 1 a: 3 m: 3 ci:2 0 1 o: 2 c: 1 i: 1

121 CIAOOMAMMA codificato ASCII CIAOOMAMMA algoritmo di Huffman

122

123 i: a: o: 9.83 m: 2.51 c: 4.5

124 CIAOOMAMMA codificato ASCII CIAOOMAMMA algoritmo di Huffman frequenza assoluta: frequenza relativa:

125 continua

126 Esempio carattere a b c d e f frequenza

127 f: 5 e: 9 c: 12 b: 13 d: 16 a: 45

128 c: 12 b: 13 d: a: f: 5 e: 9

129 d: 16 a: f: 5 e: 9 c: 12 b: 13

130 a: 45 c: 12 b: d: f: 5 e: 9

131 a: c: 12 b: d: f: 5 e: 9

132 (45+((12+13)+((5+9)+16))) a: c: 12 b: d: f: 5 e: 9

133 Min Heap binari

134

135

136 =(5+9)

137 13 14 =(5+9) 16 45

138 14 =(5+9) 45 16

139 14 =(5+9) 25 =(12+13) 16 45

140 16 25 =(12+13) 45

141 25 =(12+13) 45

142 25 =(12+13) 45 =((5+9)+16) 30

143 30 =((5+9)+16) 45

144 45

145 45 55 =((12+13)+((5+9)+16))

146 100 =(45+((12+13)+((5+9)+16)))

147 Implementazione con code Due code fq, sq 1.Ordina i simboli in ordine non decrescente di frequenza 2.Inserisci in fq tutte le frequenze (radici degli alberi) in modo che il simbolo con minima frequenza sia in testa a fq 3.Fintanto che ci sono almeno due nodi nelle code fq e sq 1.Estrai dalle due code le due radici con frequenza minima esaminando le teste delle due code 2.Crea una nuova radice (con figli le due radici appena estratte) con frequenza la somma delle frequenze dei figli 3.Inserisci la nuova radice nella coda sq 4.Il nodo rimasto è la radice dell albero finale

148 Code fq sq testa first coda last

149 fq sq 14 (5+9)

150 fq sq 14 (5+9) 25 (12+13)

151 fq 45 sq 25 (12+13) 30 ((5+9)+ 16)

152 fq 45 sq 55 ((12+13)+((5+9)+16))

153 fq sq 100 (45+((12+13)+((5+9)+16)))

154 Casi coda fq = 0 e sq >= 2 fq = 1 e sq >= 1 fq >= 2 e sq = 0 fq >= 2 e sq = 1 fq >= 2 e sq >= 2 fm=fq1, sm=fq2 fm=sq1, sm=sq2 fm=fq1, sm=sq1 fm=sq1, sm=fq1

155

156

157

158

159 Come scrivere il file di input?

160

161 Lemma 1 f ( i ) Dato un alfabeto siano la frequenza di. Siano x, y con frequenza i minore. Allora esiste sempre un codice prefisso ottimo dove i codici associati a x e y hanno la stessa lunghezza e differiscono solo per l ultimo bit

162 x b y y b c x c T T

163 0 )) ( ) ( ))( ( ) ( ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ') ( ) ( ' ' x d b d x f b f b d b f x d x f b d b f x d x f T B T B T T T T T T

164 b b y c x c x y T T

165 ottimo essendo '') ( ) ( '') ( ) ( '') ( ') ( ') ( ) ( T T B T B T B T B T B T B T B T B '') ( ) ( T B T B

166 L algoritmo che costruisce un albero ottimo mediante una sequenza di operazioni di fusione può sempre iniziare con una scelta greedy dei due caratteri con la frequenza più piccola da fondere insieme

167 Lemma 2 Sia T un albero binario completo che rappresenta un codice prefisso ottimo per un alfabeto con funzione di frequenza f ( i ), i. Siano x e y due qualsiasi caratteri che appaiono come foglie dello stesso padre z in T. Si consideri z come carattere con frequenza f(z) = f(x)+f(y). Allora l albero T = T - {x,y} rappresenta un codice prefisso ottimo per = - {x,y} + {z}

168 )) ( ) ( ( ') ( ) ( )) ( ) ( ( ) ( ) ( 1) ) ( ))( ( ) ( ( ) ( ) ( ) ( ) ( 1 ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ') ( e ) ( ) (,, ', ' ' ' ' ' ' ' y f x f T B T B y f x f z d z f z d y f x f y d y f x d x f z d y d x d d f d f z d z f y d y f x d x f T B T B d d y x z y x y x T T T T T T T T T i T i i T i T T T i T i T i

169 Se T non è ottimo allora esiste T t.c. B( T '') B( T ') B( T '') f ( x) f ( y) B( T ) ASSURDO essendo T ottimo

170 Teorema L algoritmo di Huffman restituisce un codice prefisso ottimo

171 Conclusioni greedy rappresentante resto sequenziamento att. selezione att. zaino 0-1 bin packing codici Huffman corretto ottimo

172 RLE Con separatore =

173 Algoritmo LZW (Lempel - Ziv Welch) sfrutta la presenza di sottostringhe ripetute nei dati da comprimere. A partire da un dizionario contenente i simboli dell alfabeto, si inseriscono le sottostringhe che si incontrano esaminando il dato da comprimere.

174 Σ = {A,C,G,T} T=ACGTACGTACG I S 0 A 1 C 2 G 3 T

175

176 ACGTACGTACG codificato ASCII ACGTACGTACG algoritmo LZW

177 continua Σ = {,,, } T= LZW =

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio

Algoritmi Greedy. Tecniche Algoritmiche: tecnica greedy (o golosa) Un esempio Algoritmi Greedy Tecniche Algoritmiche: tecnica greedy (o golosa) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi

Dettagli

Tecniche Algoritmiche: tecnica greedy (o golosa)

Tecniche Algoritmiche: tecnica greedy (o golosa) Tecniche Algoritmiche: tecnica greedy (o golosa) Una breve (ma non troppo) presentazione F. Damiani - Alg. & Lab. 04/05 Problemi di ottimizzazione (1/2) La tecnica greedy è usata per risolvere problemi

Dettagli

Definizioni. Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente: soluzione ottima in un dominio contiguo. Il paradigma greedy

Definizioni. Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente: soluzione ottima in un dominio contiguo. Il paradigma greedy Il paradigma greedy Paolo Camurati, Fulvio Corno, Matteo Sonza Reorda Dip. Automatica e Informatica Politecnico di Torino Definizioni Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente:

Dettagli

carattere a b c d e f cod. var

carattere a b c d e f cod. var Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un altra Ogni codice a lunghezza fissa è ovviamente prefisso. Ma anche il codice a lunghezza variabile

Dettagli

Programmazione Greedy I codici di Huffman

Programmazione Greedy I codici di Huffman Programmazione Greedy I codici di Huffman Codifica dell informazione La rappresentazione ordinaria dell informazione prevede l impiego di un numero costante di bit; per esempio ad ogni carattere del codice

Dettagli

Codifica di Huffman e Lempel-Ziv-Welch A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

Codifica di Huffman e Lempel-Ziv-Welch A L B E R T O B E L U S S I A N N O A C C A D E M I C O / Codifica di Huffman e Lempel-Ziv-Welch 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 0 / 2 0 1 1 Tipi di compressione Senza perdita (lossless): permettono di ricostruire perfettamente

Dettagli

Codifica di Huffman e Lempel-Ziv-Welch

Codifica di Huffman e Lempel-Ziv-Welch e Lempel-Ziv-Welch 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 0 / 2 0 1 1 Tipi di compressione Senza perdita (lossless): permettono di ricostruire perfettamente la rappresentazione

Dettagli

Informatica 3. LEZIONE 16: Heap - Codifica di Huffmann. Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann

Informatica 3. LEZIONE 16: Heap - Codifica di Huffmann. Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann Informatica 3 LEZIONE 16: Heap - Codifica di Huffmann Modulo 1: Heap e code di priorità Modulo 2: Esempio applicativo: codifica di Huffmann Informatica 3 Lezione 16 - Modulo 1 Heap e code di priorità Introduzione

Dettagli

Ottimizzazione Combinatoria e Reti (a.a. 2007/08)

Ottimizzazione Combinatoria e Reti (a.a. 2007/08) o Appello 6/07/008 Ottimizzazione Combinatoria e Reti (a.a. 007/08) Nome Cognome: Matricola: ) Dopo avere finalmente superato l esame di Ricerca Operativa, Tommaso è pronto per partire in vacanza. Tommaso

Dettagli

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono

Algoritmi e Strutture Dati Laboratorio 15/12/2008. Daniele Loiacono Algoritmi e Strutture Dati Laboratorio 15/12/2008 Problema della compressione Rappresentare i dati in modo efficiente Impiegare il numero minore di bit per la rappresentazione Goal: risparmio spazio su

Dettagli

La codifica di sorgente

La codifica di sorgente Tecn_prog_sist_inform Gerboni Roberta è la rappresentazione efficiente dei dati generati da una sorgente discreta al fine poi di trasmetterli su di un opportuno canale privo di rumore. La codifica di canale

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi Golosi (Greedy) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino un algoritmo goloso correttezza Problema della selezione di attività

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

Problemi dello zaino e di bin packing

Problemi dello zaino e di bin packing Problemi dello zaino e di bin packing Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 2 Dicembre 2014 Ricerca Operativa 2 Laurea

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) diffusione di messaggi segreti memorizzazione

Dettagli

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea

Dettagli

2.2 Alberi di supporto di costo ottimo

2.2 Alberi di supporto di costo ottimo . Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di

Dettagli

La codifica di sorgente

La codifica di sorgente Tecn_prog_sist_inform Gerboni Roberta è la rappresentazione efficiente dei dati generati da una sorgente discreta al fine poi di trasmetterli su di un opportuno canale privo di rumore. La codifica di canale

Dettagli

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Strutture Elementari Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 29 ottobre 2008 Strutture Dati Astratte Il concetto di dato Il concetto

Dettagli

Heap e code di priorità

Heap e code di priorità Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010

Dettagli

Complementi ed Esercizi di Informatica Teorica II

Complementi ed Esercizi di Informatica Teorica II Complementi ed Esercizi di Informatica Teorica II Vincenzo Bonifaci 21 maggio 2008 4 Problemi di ottimizzazione: il Bin Packing Il problema bin packing è il seguente: dato un insieme di n oggetti di dimensioni

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

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno Il concetto di dato Il concetto

Dettagli

Programmazione Dinamica (PD)

Programmazione Dinamica (PD) Programmazione Dinamica (PD) Altra tecnica per risolvere problemi di ottimizzazione, piu generale degli algoritmi greedy La programmazione dinamica risolve un problema di ottimizzazione componendo le soluzioni

Dettagli

Il concetto di informazione

Il concetto di informazione Il concetto di informazione Qualunque informazione è definita tramite tre caratteristiche fondamentali: 1. Valore indica il particolare elemento assunto dall informazione 2. Tipo indica l insieme degli

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Cognome................................ Nome................................... Matricola............................... Algoritmi e Strutture Dati Prova scritta del 4 luglio 207 TEMPO DISPONIBILE: 2 ore

Dettagli

1 Esercizio - caso particolare di ottimalità

1 Esercizio - caso particolare di ottimalità Corso: Gestione ed elaborazione grandi moli di dati Lezione del: 5 giugno 2006 Argomento: Compressione aritmetica e Tecniche di compressione basate su dizionario Scribes: Andrea Baldan, Michele Ruvoletto

Dettagli

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità

Laboratorio di Algoritmi e Strutture Dati. Code con Priorità Laboratorio di Algoritmi e Strutture Dati Code con Priorità Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro Materiale di base gentilmente concesso

Dettagli

Dizionari Liste invertite e Trie

Dizionari Liste invertite e Trie Dizionari Liste invertite e Trie Lucidi tratti da Crescenzi Gambosi Grossi, Strutture di dati e algoritmi Progettazione, analisi e visualizzazione Addison-Wesley, 2006 Dizionari Universo U delle chiavi

Dettagli

3.2 Rilassamenti lineari/combinatori e bounds

3.2 Rilassamenti lineari/combinatori e bounds 3.2 Rilassamenti lineari/combinatori e bounds Consideriamo un problema di Ottimizzazione Discreta min{f(x) : x X} e sia z il valore di una soluzione ottima x X. Metodi di risoluzione spesso generano una

Dettagli

Spesso sono definite anche le seguenti operazioni:

Spesso sono definite anche le seguenti operazioni: Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una relazione d ordine. Sono definite almeno le seguenti operazioni:

Dettagli

Tecniche euristiche greedy

Tecniche euristiche greedy Tecniche euristiche greedy PRTLC - Schema delle esercitazioni Come ricavare la soluzione ottima Modelli Solver commerciali Schema delle esercitazioni Come ricavare la soluzione ottima Modelli Solver commerciali

Dettagli

5.1 Metodo Branch and Bound

5.1 Metodo Branch and Bound 5. Metodo Branch and Bound Si consideri il problema min{ c(x) : x X } Idea: Ricondurre la risoluzione di un problema difficile a quella di sottoproblemi più semplici effettuando una partizione (ricorsiva)

Dettagli

Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una

Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una Code a priorità Una coda a priorità è una struttura dati astratta che permette di rappresentare un insieme di elementi su cui è definita una relazione d ordine. Sono definite almeno le seguenti operazioni:

Dettagli

Esercitazione 7. Grafi. Rappresentazione e algoritmi di visita

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

Dettagli

Informazione e sua rappresentazione: codifica

Informazione e sua rappresentazione: codifica Corso di Calcolatori Elettronici I Informazione e sua rappresentazione: codifica ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Il concetto di informazione Qualunque informazione è definita

Dettagli

Tecniche Algoritmiche/2 Algoritmi greedy

Tecniche Algoritmiche/2 Algoritmi greedy Tecniche Algoritmiche/2 Algoritmi greedy Ivan Lanese Dipartimento di Informatica Scienza e Ingegneria Università di Bologna ivan.lanese@gmail.com http://www.cs.unibo.it/~lanese/ Tecniche Greedy 2 Introduzione

Dettagli

Corso: Algoritmi e strutture dati Studente: Irene M. Gironacci Titolo prgetto: Huffmann code Anno: primo anno di laurea triennale

Corso: Algoritmi e strutture dati Studente: Irene M. Gironacci Titolo prgetto: Huffmann code Anno: primo anno di laurea triennale Corso: Algoritmi e strutture dati Studente: Irene M. Gironacci Titolo prgetto: Huffmann code Anno: primo anno di laurea triennale Breve descrizione del problema trattato La codifica di Huffman usa un metodo

Dettagli

Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I)

Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I) Algoritmi e Strutture Dati (Mod. B) Algoritmi Greedy (parte I) Algoritmi greedy Gli algoritmi per problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 29/01/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via

Dettagli

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max

Makespan con set-up dipendenti dalla sequenza. 1/s jk /C max Makespan con set-up dipendenti dalla sequenza 1/s jk /C max 1/s jk /C max Un tempo di riattrezzaggio (set-up) s jk è richiesto fra il processamento di j e quello di k. In questo caso, C max dipende dalla

Dettagli

Appunti lezione Capitolo 14 Greedy

Appunti lezione Capitolo 14 Greedy Appunti lezione Capitolo 14 Greedy Alberto Montresor 21 Novembre, 2016 1 Domanda: dimostrare che S[i, j] = con i j Nel problema della selezione delle attività, il sottoinsieme S[i, j] è definito nel modo

Dettagli

Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly

Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly Scrivere il codice ARM che implementi le specifiche richieste e quindi verificarne il comportamento usando il simulatore

Dettagli

Esercitazione 4 Algoritmi greedy

Esercitazione 4 Algoritmi greedy Esercitazione 4 Algoritmi greedy Problema 9 (es.2 appello 18/02/2016 modulo 2) Nel museo Tor VerLouvre c è un lungo corridoio rettilineo in cui sono esposti n quadri nelle posizioni 0 q 1 < q 2 < q 3

Dettagli

Informatica 3. Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Lezione 21 - Modulo 1. Introduzione (1) Introduzione (2) Ricerca:

Informatica 3. Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Lezione 21 - Modulo 1. Introduzione (1) Introduzione (2) Ricerca: Informatica 3 Informatica 3 LEZIONE 21: Ricerca su liste e tecniche di hashing Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing Lezione 21 - Modulo 1 Algoritmi sequenziali e basati su

Dettagli

METODI DELLA RICERCA OPERATIVA

METODI DELLA RICERCA OPERATIVA Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco (mdifrance@unica.it) i i Dott.ing. Maria Ilaria Lunesu (ilaria.lunesu@unica.it)

Dettagli

Lunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27

Lunghezza media. Teorema Codice D-ario prefisso per v.c. X soddisfa. L H D (X). Uguaglianza vale sse D l i. = p i. . p.1/27 Lunghezza media Teorema Codice D-ario prefisso per v.c. X soddisfa L H D (X). Uguaglianza vale sse D l i = p i.. p.1/27 Lunghezza media Teorema Codice D-ario prefisso per v.c. X soddisfa L H D (X). Uguaglianza

Dettagli

Soluzioni della settima esercitazione di Algoritmi 1

Soluzioni della settima esercitazione di Algoritmi 1 Soluzioni della settima esercitazione di Algoritmi 1 Beniamino Accattoli 19 dicembre 2007 1 Grafi Un grafo è non orientato se descrivendo un arco come una coppia di vertici (i,j) l ordine è ininfluente

Dettagli

Introduzione alla codifica entropica

Introduzione alla codifica entropica Compressione senza perdite Il problema Introduzione alla codifica entropica Abbiamo un alfabeto di simboli A (nota: non è detto che gli elementi di A siano numeri) Sappiamo che il simbolo a A si presenta

Dettagli

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2015/16) Nome: Cognome: Matricola: o Appello // RICERCA OPERATIVA (a.a. /) Nome: Cognome: Matricola: ) Si consideri il seguente problema di PL: max x + x x x x x x + x x Si applichi l algoritmo del Simplesso Duale, per via algebrica, a

Dettagli

Comunicazioni Elettriche II

Comunicazioni Elettriche II Comunicazioni Elettriche II Laurea Magistrale in Ingegneria Elettronica Università di Roma La Sapienza A.A. 2017-2018 Equiripartizione asintotica AEP Asymptotic Equiripartition Property AEP Nella teoria

Dettagli

3.4 Metodo di Branch and Bound

3.4 Metodo di Branch and Bound 3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land

Dettagli

Calcolo dell n-esimo numero di Fibonacci

Calcolo dell n-esimo numero di Fibonacci Calcolo dell n-esimo numero di Fibonacci Formulazione F n F F F 0 1 n 0 1 F, n 2 1 n2 Algoritmo numerico F n 1 5 n n 1 2 5 1 2 5, 1 Algoritmo ricorsivo Complessità T ( n) 2 T ( n 1) T ( n 2) T ( n) 3F

Dettagli

In questa lezione Strutture dati elementari: Pila Coda Loro uso nella costruzione di algoritmi.

In questa lezione Strutture dati elementari: Pila Coda Loro uso nella costruzione di algoritmi. In questa lezione Strutture dati elementari: Pila Coda Loro uso nella costruzione di algoritmi. 1 strutture dati (astratte) Una struttura dati astratti consiste di uno o più insiemi con delle operazioni

Dettagli

d. Cancellazione del valore 5 e. Inserimento del valore 1

d. Cancellazione del valore 5 e. Inserimento del valore 1 Esercizio1 Si consideri un albero binario non vuoto in cui a ciascun nodo v è associato un numero reale v.val. Scrivere un algoritmo che, dato in input l'albero T e un numero reale x, restituisce true

Dettagli

Modello di sistema di comunicazione

Modello di sistema di comunicazione Corso di Laurea a Distanza in Ingegneria Elettrica Corso di Comunicazioni Elettriche Teoria dell informazione A.A. 2006-07 Alberto Perotti DELEN-DAUIN Modello di sistema di comunicazione Il modello di

Dettagli

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola:

RICERCA OPERATIVA (a.a. 2011/12) Nome: Cognome: Matricola: 5 o Appello 8/0/0 RICERCA OPERATIVA (a.a. 0/) Nome: Cognome: Matricola: ) Si individui un albero dei cammini minimi di radice sul grafo in figura, utilizzando l algoritmo più appropriato dal punto di vista

Dettagli

Gli heap. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino

Gli heap. Sommario. Algoritmi e Programmazione Avanzata. Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino Gli heap Fulvio CORNO - Matteo SONZA REORDA Dip. Automatica e Informatica Politecnico di Torino 1 a.a. 2001/2002 Sommario Gli heap L algoritmo Heapsort Le code con priorità. 2 a.a. 2001/2002 Politecnico

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 0/06/06 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai

Dettagli

Progettazione di Algoritmi

Progettazione di Algoritmi Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 06/07/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via

Dettagli

Informatica Generale Homework di Recupero 2016

Informatica Generale Homework di Recupero 2016 Informatica Generale Homework di Recupero 016 docente: Ivano Salvo Sapienza Università di Roma Gruppo 1 Esercizio 1.1 Scrivere un programma C che presi in input due interi positivi a ed b (a, b > 0) calcola

Dettagli

PROGRAMMAZIONE II canale A-D luglio 2008 TRACCIA DI SOLUZIONE

PROGRAMMAZIONE II canale A-D luglio 2008 TRACCIA DI SOLUZIONE PROGRAMMAZIONE II canale A-D 2007-2008 14 luglio 2008 TRACCIA DI SOLUZIONE 1. Si vogliono realizzare mediante puntatori delle liste circolari, cioè delle liste tali che l ultimo elemento della lista punta

Dettagli

ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO

ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO ASSEGNAMENTO DELLE OPERAZIONI DI TAGLIO NELLA PRODUZIONE DI CAPI DI ABBIGLIAMENTO Lo scenario produttivo Una nota azienda produce capi di abbigliamento per l alta moda Ogni capo è costituito da vari pezzi

Dettagli

Teoria dell informazione

Teoria dell informazione Corso di Laurea a Distanza in Ingegneria Elettrica Corso di Comunicazioni Elettriche Teoria dell informazione A.A. 2008-09 Alberto Perotti DELEN-DAUIN Modello di sistema di comunicazione Il modello di

Dettagli

Esercizio. 2 i=i*2) j=j*2)

Esercizio. 2 i=i*2) j=j*2) Esercizio 1 Esercizio 2 i=i*2) j=j*2) Soluzione Il frammento è composto da due parti quasi identiche. L unica differenza è il modo in cui crescono i contatori. Nella prima parte la crescita è lineare mentre

Dettagli

19/09/14. Il codice ASCII. Altri codici importanti. Extended ASCII. Tabella del codice ASCII a 7 bit. Prof. Daniele Gorla

19/09/14. Il codice ASCII. Altri codici importanti. Extended ASCII. Tabella del codice ASCII a 7 bit. Prof. Daniele Gorla Il codice ASCII ASCII è un acronimo per American Standard Code for Information Interchange Nato nell IBM nel 1961, diventa standard ISO (International Organization for Standardization) nel 1968. Codifica

Dettagli

Il problema del commesso viaggiatore

Il problema del commesso viaggiatore Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa mpassacantando@di.unipi.it M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università

Dettagli

Ordinamenti. Grafo : definizione. Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici

Ordinamenti. Grafo : definizione. Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Ordinamenti 1 Vittorio Maniezzo Università di Bologna Grafo : definizione Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Un arco a= {u,v}

Dettagli

Def. La lunghezza media L(C) di un codice C per una v.c. Obiettivo: Codice ottimo rispetto alla lunghezza media. Lunghezza media di un codice

Def. La lunghezza media L(C) di un codice C per una v.c. Obiettivo: Codice ottimo rispetto alla lunghezza media. Lunghezza media di un codice Lunghezza media di un codice Def. La lunghezza media L(C) di un codice C per una v.c. X con d.d.p. P(x) è data da L(C) = x X p (x) l (x) = E[l(X)] Obiettivo: Codice ottimo rispetto alla lunghezza media

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

Divide et impera. Divide et impera. Tecniche Algoritmiche. Algoritmi e Strutture Dati. at(n/b) + f(n) se n>1 1 se n=1. T(n) = ha soluzione:

Divide et impera. Divide et impera. Tecniche Algoritmiche. Algoritmi e Strutture Dati. at(n/b) + f(n) se n>1 1 se n=1. T(n) = ha soluzione: Algoritmi e Strutture Dati Tecniche Algoritmiche Divide et impera Basato su materiale di C. Demetrescu, I. Finocchi, G.F. Italiano 2 Divide et impera Teorema Master: un strumento generale per risolvere

Dettagli

Esercizi per il corso di Algoritmi, anno accademico 2011/12

Esercizi per il corso di Algoritmi, anno accademico 2011/12 Esercizi per il corso di Algoritmi, anno accademico 2011/12 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

Dettagli

Esercizi per il corso di Algoritmi

Esercizi per il corso di Algoritmi 1 Esercizi per il corso di Algoritmi Esercizi sulla Tecnica Programmazione Dinamica 1. Esercizio: Si consideri la seguente variante del problema dello Zaino 0/1. L input é costituito da n oggetti a 1...,a

Dettagli

Dato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche:

Dato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche: Heapsort Dato un insieme S di n elementi totalmente ordinato, l'algoritmo di ordinamento detto HeapSort ha le seguenti caratteristiche: T(n) = O(n log(n)) Alg. Ordinamento ottimale Ordina in loco (niente

Dettagli

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo:

PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Il costo di cammino minimo da un vertice u ad un vertice v è definito nel seguente modo: PROBLEMA DEI CAMMINI MINIMI [CORMEN ET AL. CAP. 24] Sia G = (V,E) un grafo orientato ai cui archi è associato un costo W(u,v). Il costo di un cammino p = (v 1,v 2,...,v k ) è la somma dei costi degli archi

Dettagli

Alberi ed Alberi Binari

Alberi ed Alberi Binari Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,

Dettagli

Informazione e sua rappresentazione: codifica

Informazione e sua rappresentazione: codifica Corso di Calcolatori Elettronici I A.A. 2011-2012 Informazione e sua rappresentazione: codifica Lezione 2 Prof. Antonio Pescapè Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

Informazione e sua rappresentazione: codifica. Il concetto di informazione

Informazione e sua rappresentazione: codifica. Il concetto di informazione Corso di Calcolatori Elettronici I A.A. 2011-2012 Informazione e sua rappresentazione: codifica Lezione 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

Alberi. CORDA Informatica. A. Ferrari. Testi da. Marco Bernardo Edoardo Bontà. Dispense del Corso di. Algoritmi e Strutture Dati

Alberi. CORDA Informatica. A. Ferrari. Testi da. Marco Bernardo Edoardo Bontà. Dispense del Corso di. Algoritmi e Strutture Dati Alberi CORDA Informatica A. Ferrari Testi da Marco Bernardo Edoardo Bontà Dispense del Corso di Algoritmi e Strutture Dati Albero - definizione Albero Figli, fratelli, nodi, foglie Grado, livello, altezza,

Dettagli

Algoritmi e strutture di dati 2

Algoritmi e strutture di dati 2 Paola Vocca Lezione 4: Programmazione dinamica 1 Caratteristiche Programmazione dinamica: paradigma basato sullo stesso principio utilizzato per il divide et impera o il problema viene decomposto in sotto-problemi

Dettagli

Ordinamenti. Vittorio Maniezzo Università di Bologna

Ordinamenti. Vittorio Maniezzo Università di Bologna Ordinamenti 1 Vittorio Maniezzo Università di Bologna Grafo : definizione Un grafo G = (V,E)è composto da: V: insieme di vertici E V V: insieme di archi (edge) che connettono i vertici Un arco a= {u,v}

Dettagli

Esercizi Union-Find e su Grafi. Ugo Vaccaro

Esercizi Union-Find e su Grafi. Ugo Vaccaro Progettazione di Algoritmi Anno Accademico 0 07 Esercizi Union-Find e su Grafi. Ugo Vaccaro. Esercizio: Scrivere pseudocodice per Make-Set, Union, e Find-Set usando la rappresentazione attraverso liste

Dettagli

La rappresentazione delle informazioni

La rappresentazione delle informazioni La rappresentazione delle informazioni In queste pagine cercheremo di capire come sia possibile rappresentare mediante numeri e memorizzare in un file testi, immagini, video, suoni... Il computer per lavorare

Dettagli

PROVETTE D ESAME. Algoritmi e Strutture Dati

PROVETTE D ESAME. Algoritmi e Strutture Dati PROVETTE D ESAME Algoritmi e Strutture Dati ESERCIZIO 1 Si ottengano limiti superiori e inferiori per la seguente ricorrenza ESERCIZIO 1 ESERCIZIO 2 Dato un albero binario T, il grado di sbilanciamento

Dettagli

Introduzione al Column Generation Caso di Studio: il Bin Packing Problem

Introduzione al Column Generation Caso di Studio: il Bin Packing Problem Introduzione al Column Generation Caso di Studio: il Bin Packing Problem November 15, 2014 1 / 26 Introduzione Il column generation è una metodologia che può essere usata per risolvere problemi di ottimizzazione

Dettagli

Tipi di dato e Strutture dati elementari

Tipi di dato e Strutture dati elementari Tipi di dato e Strutture dati elementari Ing. Paolo Craca Anno accademico 2007/2008 Tipi di dato e Strutture dati elementari 1 / 40 Cosa vedremo in questo seminario 1 Introduzione 2 Pile 3 Code 4 5 Bibliografia

Dettagli

Informazione e sua rappresentazione: codifica

Informazione e sua rappresentazione: codifica Corso di Calcolatori Elettronici I A.A. 2010-2011 Informazione e sua rappresentazione: codifica Lezione 1-2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Informazione Quale è il centravanti

Dettagli

Sommario. Lempel-Ziv coding e varianti Run-length encoding. 1 Introduzione. 2 Codifica mediante predittori (Lossless JPEG, PNG, ecc.

Sommario. Lempel-Ziv coding e varianti Run-length encoding. 1 Introduzione. 2 Codifica mediante predittori (Lossless JPEG, PNG, ecc. Sommario Lempel-Ziv coding e varianti 1 2 Codifica mediante predittori (Lossless JPEG, PNG, ecc.) 3 Lempel-Ziv coding e varianti 4 Lempel-Ziv coding e varianti Il codice di Huffman visto prima sfrutta

Dettagli

Compressione Dati. Teorema codifica sorgente: Entropia fornisce un limite sia inferiore che superiore al numero di bit per simbolo sorgente.. p.

Compressione Dati. Teorema codifica sorgente: Entropia fornisce un limite sia inferiore che superiore al numero di bit per simbolo sorgente.. p. Compressione Dati Teorema codifica sorgente: Entropia fornisce un limite sia inferiore che superiore al numero di bit per simbolo sorgente.. p.1/21 Compressione Dati Teorema codifica sorgente: Entropia

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

Algoritmi & Laboratorio

Algoritmi & Laboratorio Acknowledgement Lucidi da F. Damiani, a.a. 2004-2005 C. Demetrescu et al, Algoritmi e strutture dati, McGraw-Hill M. Zacchi, a.a. 2003-2004 I lucidi non sono un sostituto per il libro di testo non contengono

Dettagli

1 Entropia: Riepilogo

1 Entropia: Riepilogo Corso: Gestione ed elaborazione grandi moli di dati Lezione del: 30 maggio 2006 Argomento: Entropia. Costruzione del modello di una sorgente. Codifica di Huffman. Scribes: Galato Filippo, Pesce Daniele,

Dettagli

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve

LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione

Dettagli