Problema del rappresentante o dei turisti
|
|
- Pio Simoni
- 5 anni fa
- Visualizzazioni
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) Idea: per trovare una soluzione globalmente ottima, scegli ripetutamente soluzioni ottime localmente Un esempio Input: lista di interi
DettagliTecniche 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
DettagliDefinizioni. 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:
Dettaglicarattere 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
DettagliProgrammazione 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
DettagliCodifica 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
DettagliCodifica 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
DettagliInformatica 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
DettagliOttimizzazione 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
DettagliAlgoritmi 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
DettagliLa 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
DettagliAlgoritmi 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à
Dettagli2.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
DettagliProblemi 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
Dettagli2.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
Dettagli2.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
DettagliAlgoritmi 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
Dettagli2.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
DettagliLa 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
DettagliAlgoritmi 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
DettagliAlgoritmi 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
DettagliHeap 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
DettagliComplementi 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
DettagliAlgoritmi 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]
DettagliAlgoritmi 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
DettagliProgrammazione 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
DettagliIl 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
DettagliAlgoritmi e Strutture Dati
Cognome................................ Nome................................... Matricola............................... Algoritmi e Strutture Dati Prova scritta del 4 luglio 207 TEMPO DISPONIBILE: 2 ore
Dettagli1 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
DettagliLaboratorio 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
DettagliDizionari 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
Dettagli3.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
DettagliSpesso 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:
DettagliTecniche 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
Dettagli5.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)
DettagliCode 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:
DettagliEsercitazione 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
DettagliInformazione 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
DettagliTecniche 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
DettagliCorso: 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
DettagliAlgoritmi 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
DettagliProgettazione 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
DettagliMakespan 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
DettagliAppunti 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
DettagliLaboratorio 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
DettagliEsercitazione 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
DettagliInformatica 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
DettagliMETODI 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)
DettagliLunghezza 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
DettagliSoluzioni 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
DettagliIntroduzione 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
DettagliRICERCA 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
DettagliComunicazioni 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
Dettagli3.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
DettagliCalcolo 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
DettagliIn 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
Dettaglid. 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
DettagliModello 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
DettagliRICERCA 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
DettagliGli 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
DettagliProgettazione 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
DettagliProgettazione 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
DettagliInformatica 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
DettagliPROGRAMMAZIONE 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
DettagliASSEGNAMENTO 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
DettagliTeoria 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
DettagliEsercizio. 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
Dettagli19/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
DettagliIl 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à
DettagliOrdinamenti. 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}
DettagliDef. 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
Dettagli3 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
DettagliDivide 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
DettagliEsercizi 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
DettagliEsercizi 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
DettagliDato 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
DettagliPROBLEMA 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
DettagliAlberi 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,
DettagliInformazione 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
DettagliInformazione 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
DettagliAlberi. 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,
DettagliAlgoritmi 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
DettagliOrdinamenti. 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}
DettagliEsercizi 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
DettagliLa 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
DettagliPROVETTE 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
DettagliIntroduzione 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
DettagliTipi 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
DettagliInformazione 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
DettagliSommario. 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
DettagliCompressione 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
DettagliAlgoritmi 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
DettagliAlgoritmi & 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
Dettagli1 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,
DettagliLE 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