Tecniche Algoritmiche: divide et impera
|
|
|
- Andrea Serra
- 8 anni fa
- Visualizzazioni
Transcript
1 Tecniche Algoritmiche: divide et impera Una breve presentazione F. Damiani - Alg. & Lab. 04/05
2 Divide et impera (o Divide and conquer) Per regnare occorre tenere divisi i nemici e trarne vantaggio F. Damiani - Alg. & Lab. 04/05
3 Divide et impera Tecnica top-down: 1. Dividi l istanza del problema in due o più sottoistanze 2. Risolvi ricorsivamente il problema sulle sottoistanze 3. Ricombina la soluzione dei sottoproblemi allo scopo di ottenere la soluzione globale Esempi: ricerca binaria, mergesort, quicksort F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
4 Divide et impera - Schema generale Divide-et-impera (P, n) if n k then risolvi direttamente else dividi P in sottoproblemi P 1, P 2,,P h di dimensione n 1, n 2,, n h risp. for i 1 to h do Divide-et-impera (P i, n i ) combina i risultati di P 1,, P h per ottenere quello di P F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
5 Divide et impera - Complessità Il costo dell algoritmo è di solito costante per i casi in cui la soluzione viene costruita direttamente; per i casi in cui non è immediata, il costo può essere espresso come somma di h + 2 costi: il costo di dividere il problema nei sottoproblemi il costo di combinare i risultati dei sottoproblemi per ottenere il risultato del problema gli h costi delle soluzioni dei sottoproblemi T(n) = c n k = D(n) + C(n) + Σ i=1..h T(n i ) n > k F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
6 E relativamente semplice esprimere la complessità con una relazione di ricorrenza. Puo essere però piuttosto complicato risolvere la relazione di ricorrenza. Abbiamo esaminato tre modi per trovare la soluzione: metodo iterativo metodo di sostituzione metodo principale F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
7 Il metodo iterativo Sviluppare la ricorrenza ed esprimerla come somma di termini che dipendono solo da n e dalle condizioni al contorno. Per risolvere la ricorrenza si applicano le tecniche per limitare le sommatorie (puo essere utile disegnare l albero della ricorsione) Esempio: consideriamo l equazione T(n) = 4T(n/2) + n T(n) = n + 4T(n/2) = n + 4 ( n/2 + 4 T(n/4)) = n + 2n (n/4 + 4 T(n/8) ) = n + 2n + 4n (n/8 + 4 T(n/16) ) = n + 2n lgn-1 n + 2 lgn T(1) = n ( lgn-1 ) + n Θ(1) = n (2 lgn -1) + Θ(n) = n 2 -n + Θ(n) 2 F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
8 Alberi di ricorsione ( variante del metodo iterativo) Esempio: disegnamo l unfolding della ricorrenza T(n) = n + 4T(n/2) T(n) n T(n/2) T(n/2) T(n/2) T(n/2) F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
9 n n n/2 n/2 n/2 n/2 2n lgn n/4 n/4 n/4 n/4 n/4 n/4 n/4 n/4 n/4 n/4 n/4 n/4 n/4 n/4 n/4 n/4 4n 2 lgn Θ(1) Totale: lgn-1 n Σ 2 i + 2 lgn Θ(1) = n (n - 1) + n Θ(1) = Θ(n 2 ) i=0 F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
10 Il metodo di sostituzione Ipotizza un limite asintotico, e verifica l ipotesi con una dimostrazione per induzione. Esempio T(n) = 4T(n/2) + n Per provare che T(n) = O(n 3 ) mostriamo che esistono c ed n 0 : T(n) c n 3 per tutti gli n n 0 Supponendo T(k) c k 3 per tutti i k < n, si ottiene T(n) = 4T(n/2) + n 4c(n/2) 3 + n = cn 3 - (c/2 n 3 -n) cn 3 per c 2 e n 1 Nota: T(1) deve essere c 1 3 F. Damiani - Alg. & Lab. 04/05
11 Esempio (continua): proviamo che T(n) = O(n 2 ) Cerchiamo di dimostrare che T(n) c n 2 per tutti gli n n 0 Supponendo T(k) c k 2 per tutti i k < n, si ottiene T(n) = 4T(n/2) + n 4c(n/2) 2 + n = cn 2 + n cn 2 per nessun c 0 Dobbiamo modificare l ipotesi, consideriamo: T(n) c n 2 - d n, d 1 T(n) = 4T(n/2) + n 4 (c(n/2) 2 - d(n/2)) + n = cn 2-2dn + n = c n 2 d n - (d n - n) cn 2 -dn Si può scegliere d = 1. F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
12 Bisogna fare attenzione alle condizioni al contorno (non è sempre scontato che esse siano limitate da c f(n)) Ad esempio supponiamo di aver dimostrato per la ricorrenza T(n) = 2 T( n/2 ) + n che T(n) c n lgn e sia T(1) = 1 Allora non si ottiene T(1) c 1 lg1 per nessun c, essendo lg1 = 0 La difficoltà può essere superata ricordando che la notazione asintotica richiede di dimostrare T(n) c n lgn per gli n n 0, dove n 0 è una costante. Consideriamo allora T(2) e T(3), in quanto per n > 3, la relazione non dipende più da T(1). T(2) = 4 c 2 lg2 T(3) = 5 c 3 lg3 Basta scegliere c 2 F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
13 Un inconveniente del metodo di sostituzione è che non esiste una regola per trovare la soluzione corretta per ogni ricorrenza. Di solito bisogna provare più tentativi, ma se la ricorrenza è simile ad una di cui si conosce la soluzione, si può provare la stessa soluzione. Ad esempio: T(n) = 2T( n/2 + 15) + n Intuitivamente per n grande la differenza tra n/2 e n/ non è molto significativa. Si può perciò tentare con la soluzione T(n) = O(n lgn), che sappiamo risolvere la ricorrenza T(n) = 2T( n/2 ) + n. F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
14 Esercizio: dimostriamo che la ricorrenza T(n) = 2T ( n/2 + 15) + n appartiene all insieme O(n lgn) Proviamo T(n) c n lgn (n) = 2T ( n/2 + 15) + n (per n > 30, n/ < n) 2 (c (n/2 + 15) lg(n/2 + 15)) + n = 2 (c ((n + 30)/2) lg ((n + 30)/2)) + n = c (n + 30) lg ((n + 30)/2)) + n = c (n + 30) lg (n + 30) c (n + 30) lg2 + n = c (n + 30) lg (n + 30) c (n + 30) + n = c n lg (n + 30) + c 30 lg (n + 30) c n c 30 + n c n lg (5 n/4) + c 30 lg (5 n/4) + n c n c 30 (per n > 120 = c n (lg n + lg 3 lg 4) + c 30 (lg n + lg 3 lg 4) + n c n c 30 = c n lg n + c (lg 5 2) n + c 30 lg n + c 30 (log 5 2) + n c n c 30 = c n lg n + c 30 lg n + n c (3 log 5) n c 30 (3 log 5) = c n lg n + c 30 (lg n + log 5 3) (c (3 log 5) + 1) n c n lg n (per c=1 e n suff. grande) F. Damiani - Alg. & Lab. 04/05
15 Il metodo principale Teorema Master (versione semplificata) Siano a 1, b > 1 e c 0 delle costanti. T(n) sia definita dalla seguente ricorrenza: T(n) = a T(n/b) + Θ(n c ) dove n/b rappresenta n/b oppure n/b. Allora T(n) è asintoticamente limitato nel modo seguente: 1. se c < log b a allora T(n) = Θ(n log b a ) 2. se c = log b a allora T(n) = Θ(n c lgn) 3. se c > log b a allora T(n) = Θ(n c ) F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
16 Consideriamo un semplice esempio Per le equazioni di ricorrenza: 1. T 1 (n) = 4 T(n/2) + n 2. T 2 (n) = 4 T(n/2) + n 2 3. T 3 (n) = 4 T(n/2) + n 3 Si applicano rispettivamente i casi 1, 2 e 3 del teorema principale. Si ha allora: 1. T 1 (n) = Θ(n 2 ) 2. T 2 (n) = Θ(n 2 lgn) 3. T 3 (n) = Θ(n 3 ) F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
17 Proviamo a interpretare le complessità ottenute Caso 1. T 1 (n) = 4 T(n/2) + n = Θ(n 2 ) si applica se il costo della divisione in sottoproblemi e della costruzione della soluzione a partire da quella dei sottoproblemi (n c ) è trascurabile rispetto al costo della soluzione dei sottoproblemi stessi (a T(n/b)). Caso 2. T 2 (n) = 4 T(n/2) + n 2 = Θ(n 2 lgn) si applica se il costo della divisione in sottoproblemi e della costruzione della soluzione a partire da quella dei sottoproblemi (n c ) è analogo al costo della soluzione dei sottoproblemi stessi (a T(n/b)). Caso 3. T 3 (n) = 4 T(n/2) + n 3 = Θ(n 3 ) si applica se il costo della divisione in sottoproblemi e della costruzione della soluzione a partire da quella dei sottoproblemi (n c ) è il fattore dominante. F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
18 Un esempio di uso del teorema principale Il tempo di calcolo per l algoritmo DI-Massimo-Ricorsivo soddisfa la ricorrenza: T(n) = 2 T(n/2) + Θ(1) a = b = 2 c = 0 < 1 = log b a Caso 1 del teorema principale: T(n) = Θ(n log 2 2 ) = Θ(n) Il costo della divisione in sottoproblemi e della costruzione della soluzione a partire da quella dei sottoproblemi (n c ) è trascurabile rispetto al costo della soluzione dei sottoproblemi stessi (a T(n/b)). F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
19 Ancora un esempio di uso del teorema principale Il tempo di calcolo per l algoritmo Merge-Sort soddisfa la ricorrenza: T(n) = 2 T(n/2) + Θ(n) a = b = 2 c = 1 = log b a Caso 2 del teorema principale: T(n) = Θ(n c lgn) = Θ(n lgn) l costo della divisione in sottoproblemi e della costruzione della soluzione a partire a quella dei sottoproblemi (n c ) è analogo al costo della soluzione dei ottoproblemi stessi (a T(n/b)). F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04)
20 Un case study F. Damiani - Alg. & Lab. 04/05
21 Problema: moltiplicazione di interi di grandezza arbitraria Moltiplicare o sommare due numeri non sempre è un operazione eseguibile in tempo costante: se i numeri occupano più di una parola di memoria, anche le operazioni elementari potrebbero richiedere tempo superiore a O(1) Moltiplicare due numeri a n cifre, secondo un algoritmo che conosciamo fin dalla scuola elementare, richiede tempo O(n 2 ): possiamo fare di meglio? F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
22 Rappresentazione decimale di interi a n cifre Idea: dividiamo X e Y a metà: X 1 (Y 1 ) = n/2 cifre più significative di X (Y) X 0 (Y 0 ) = n/2 cifre meno significative di X (Y) F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
23 Divisione del problema F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
24 Osservazioni Moltiplicare un numero per 10 k = shift a sinistra delle cifre del numero di k posizioni Somma di due numeri di k cifre: tempo O(k) La moltiplicazione di due numeri a n cifre si riduce quindi a: quattro moltiplicazioni di numeri a n/2 cifre un numero costante di operazioni implementabili in tempo O(k) F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
25 Equazione di ricorrenza La soluzione è Θ(n 2 ) dal Teorema Master Cosa abbiamo guadagnato? F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
26 Ridurre il numero di moltiplicazioni Detti: si ha F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
27 Analisi Eseguiamo tre moltiplicazioni e un numero costante di somme e shift log 2 3 La soluzione è Θ(n ) = Θ(n 1.59 ) dal Teorema Master F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
28 Conclusione Divide et impera: varie applicazioni: ricerca binaria, mergesort, quicksort, moltiplicazione di interi di grandezza arbitraria, moltiplicazione di matrici, F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Algoritmi e Strutture Dati
Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 I conigli di Fibonacci Ricerca Binaria L isola dei conigli
Analisi algoritmi ricorsivi e relazioni di ricorrenza
Analisi algoritmi ricorsivi e relazioni di ricorrenza Punto della situazione Finora abbiamo affrontato: il tempo di esecuzione di un algoritmo, l analisi asintotica con le notazioni asintotiche e la tecnica
5. DIVIDE AND CONQUER I
Divide-et-Impera (Divide and conquer) 5. DIVIDE AND CONQUER I Mergesort e Relazioni di ricorrenza Esempi di progettazione D&I Moltiplicazione di interi Contare inversioni Divide-et-Impera. Definizione
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultima Modifica: 7 ottobre 202 Copyright Portions of this work are Copyright 202, Moreno Marzolla. This work is licensed
Macchina RAM. Modelli di calcolo e metodologie di analisi. Linguaggio di una macchina RAM. Algoritmi e Strutture Dati. Istruzioni.
Algoritmi e Strutture Dati Macchina RAM Nastro di ingresso Modelli di calcolo e metodologie di analisi Contatore istruzioni Programm a Accumulatore Unità centrale M[0] M[1] Nastro di uscita Basato su materiale
Algoritmi (9 CFU) (A.A )
Algoritmi (9 CFU) (A.A. 2009-10) Equazioni di ricorrenza Prof. V. Cutello Algoritmi 1 Overview Definiamo cos è una ricorrenza Introduciamo 3 metodi per risolvere equazioni di ricorrenza Sostituzione e
Divide et impera. Divide et impera. Divide et impera. Divide et impera
Divide et impera Divide et impera La tecnica detta divide et impera è una strategia generale per impostare algoritmi (par. 9.4). Consideriamo un problema P e sia n la dimensione dei dati, la strategia
Algoritmi e strutture dati. Analisi di algoritmi Funzioni di costo, notazione asintotica
Algoritmi e strutture dati Analisi di algoritmi Funzioni di costo, notazione asintotica Alberto Montresor Università di Trento 2016/09/11 This work is licensed under a Creative Commons Attribution-ShareAlike
Tempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
Albero di Riscorsione
Albero di Riscorsione Albero di ricorsione Un albero di ricorsione è un modo di visualizzare cosa accade in un algoritmo divide et impera L etichetta della radice rappresenta il costo non ricorsivo della
Algoritmi e Strutture Dati
Analisi asintotica e Ricorrenze Esercizi Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Notazioni O, Ω e Θ Parte I Notazioni
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Informazioni sul corso + Un introduzione informale agli algoritmi Domenico Fabio Savo 1 Domenico Fabio Savo Email: [email protected] Web: http://www.dis.uniroma1.it/~savo
5) Equazioni di ricorrenza
Pag 37 5) Equazioni di ricorrenza Valutare la complessità di un algoritmo ricorsivo è, in genere, più laborioso che nel caso degli algoritmi iterativi. Infatti, la natura ricorsiva della soluzione algoritmica
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 1 Un introduzione informale agli algoritmi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione informale di algoritmo Insieme di istruzioni, definite
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
Grafi: ordinamento topologico
.. Grafi: ordinamento topologico Che cosa e e come si calcola Che cosa e un ordinamento topologico F. Damiani - Alg. & Lab. 04/05 Una definizione di ordinamento topologico Definizione. Funzione σ: V {1,
Tempo e spazio di calcolo
Tempo e spazio di calcolo Modelli di calcolo e metodologie di analisi F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04) In quale modo stimiamo il tempo di calcolo? Possiamo considerare
2. Analisi degli Algoritmi
2. Analisi degli Algoritmi Introduzione 2.1 Un modello di macchina elementare: la Macchina a Registri 2.2 Costo di esecuzione di un programma 2.3 Analisi del costo di esecuzione: il modello a costi uniformi
Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.
E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare
Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base
Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile
Cammini minimi fra tutte le coppie
Capitolo 12 Cammini minimi fra tutte le coppie Consideriamo il problema dei cammini minimi fra tutte le coppie in un grafo G = (V, E, w) orientato, pesato, dove possono essere presenti archi (ma non cicli)
Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output
Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di
Algoritmi e Strutture Dati
Analisi di algoritmi 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 Parte I Analisi
Dispense per i corsi di Informatica generale Corso di laurea in Matematica e. Introduzione agli Algoritmi Corso di laurea in Informatica
Dispense per i corsi di Informatica generale Corso di laurea in Matematica e Introduzione agli Algoritmi Corso di laurea in Informatica Prof. Tiziana Calamoneri Prof. Giancarlo Bongiovanni Questi appunti
Parte III: Algoritmo di Branch-and-Bound
Parte III: Algoritmo di Branch-and-Bound Divide et Impera Sia z * max {c T x : x S} (1) un problema di ottimizzazione combinatoria difficile da risolvere. Domanda: E possibile decomporre il problema (1)
Note per la Lezione 6 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
Rappresentazione di Numeri Reali. Rappresentazione in virgola fissa (fixed-point) Rappresentazione in virgola fissa (fixed-point)
Rappresentazione di Numeri Reali Un numero reale è una grandezza continua Può assumere infiniti valori In una rappresentazione di lunghezza limitata, deve di solito essere approssimato. Esistono due forme
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 27 marzo 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
Algoritmi e Strutture Dati
Analisi Asintotica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Un graduale processo di astrazione Passo 1: abbiamo ignorato il costo effettivo
Programmazione dinamica
Programmazione dinamica Primi esempi 29 ottobre 2014 Punto della situazione Abbiamo visto: analisi asintotica relazioni di ricorrenza (vedremo altri esempi) prima tecnica di programmazione: divide-etimpera
Lezione 3 - Teoria dei Numeri
Lezione 3 - Teoria dei Numeri Problema 1 Trovare il più piccolo multiplo di 15 formato dalle sole cifre 0 e 8 (in base 10). Il numero cercato dev'essere divisibile per 3 e per 5 quindi l'ultima cifra deve
Note per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
m = a k n k + + a 1 n + a 0 Tale scrittura si chiama rappresentazione del numero m in base n e si indica
G. Pareschi COMPLEMENTI ED ESEMPI SUI NUMERI INTERI. 1. Divisione con resto di numeri interi 1.1. Divisione con resto. Per evitare fraintendimenti nel caso in cui il numero a del Teorema 0.4 sia negativo,
Esercizi Capitolo 12 - Divide-et-Impera
Esercizi Capitolo 12 - Divide-et-Impera Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare
Laboratorio di Programmazione M-Z
Diretta Laboratorio di Programmazione M-Z Docente: Dott.ssa Alessandra Lumini [email protected] Università di Bologna, Sede di Cesena Divide et impera Dividere un problema in sottoproblemi più
! Dividere il problema in diverse parti. ! Risolvere ogni parte ricorsivamente. ! Combinare le soluzioni dei sottoproblemi in soluzioni globali.
Divide-and-Conquer Chapter 5 Divide and Conquer Divide-and-conquer.! Dividere il problema in diverse parti.! Risolvere ogni parte ricorsivamente.! Combinare le soluzioni dei sottoproblemi in soluzioni
Corso di Architettura degli Elaboratori
Corso di Architettura degli Elaboratori Codifica dell'informazione: Numeri Binari (lucidi originali della Prof.ssa Zacchi e del Prof. Balossino, rivisti dal Prof. Baldoni) 1 Codifica dell'informazione?
poiché f(n) max{f(n),g(n)}, e g(n) max{f(n),g(n)}, sommando termine a termine: Quindi possiamo concludere che f(n)+g(n) = Θ(max{f(n),g(n)})
Sol Esercizio 1 Es. Notazione asintotica: 1. Si dimostri che f(n)+g(n) = Θ(max{f(n),g(n)}) sotto l ip. f(n),g(n) >0, a partire da un certo n 0. poiché f(n) max{f(n),g(n)}, e g(n) max{f(n),g(n)}, sommando
Programmazione dinamica
Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione
Esercizi su alberi binari
Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica
Esempio : i numeri di Fibonacci
Esempio : i numeri di Fibonacci La successione di Fibonacci F 1, F 2,... F n,... è definita come: F 1 =1 F 2 =1 F n =F n 1 F n 2,n 2 Leonardo Fibonacci (Pisa, 1170 Pisa, 1250) http://it.wikipedia.org/wiki/leonardo_fibonacci
Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi
Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare
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
Architettura degli Elaboratori
Architettura degli Elaboratori Rappresentazione dell Informazione Barbara Masucci Cosa studiamo oggi Ø Un moderno elaboratore è un sistema elettronico digitale programmabile Ø Il suo comportamento è flessibile
Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n
Elementi di Algebra e di Matematica Discreta Numeri interi, divisibilità, numerazione in base n Cristina Turrini UNIMI - 2016/2017 Cristina Turrini (UNIMI - 2016/2017) Elementi di Algebra e di Matematica
11. Misure con segno.
11. Misure con segno. 11.1. Misure con segno. Sia Ω un insieme non vuoto e sia A una σ-algebra in Ω. Definizione 11.1.1. (Misura con segno). Si chiama misura con segno su A ogni funzione ϕ : A R verificante
Esercizi sulla complessità di frammenti di pseudo-codice
Esercizi sulla complessità di frammenti di pseudo-codice Esercizio 1 Si determini la complessità temporale del seguente frammento di pseudo-codice in funzione di n. Il ciclo contiene solo istruzioni elementari;
una possibile funzione unidirezionale
una possibile funzione unidirezionale moltiplicare due interi a n bit è facile (in O(n 2 ) con l algoritmo usuale) trovare un primo a n bit, e verificare che è primo, è facile (vedremo poi) fattorizzare
Programmazione dinamica
Programmazione dinamica Ilaria Castelli [email protected] Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 29/21 I. Castelli Programmazione dinamica, A.A. 29/21 1/35
04 - Numeri Complessi
Università degli Studi di Palermo Scuola Politecnica Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 04 - Numeri Complessi Anno Accademico 2015/2016 M. Tumminello,
UNIVERSITA DEGLI STUDI DI PERUGIA
UNIVERSITA DEGLI STUDI DI PERUGIA REGISTRO DELLE LEZIONI E DELLE ALTRE ATTIVITÀ DIDATTICHE Anno accademico 2006-2007 Dott./Prof. Pinotti Maria Cristina Settore scientifico-disciplinare INF01 Facoltà Scienze
Equazioni di primo grado
Equazioni di primo grado 15 15.1 Identità ed equazioni Analizziamo le seguenti proposizioni: a ) cinque è uguale alla differenza tra sette e due ; b ) la somma di quattro e due è uguale a otto ; c ) il
A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5.
A.A. 2015-2016. CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5. Esercizio 5.1. Determinare le ultime tre cifre di n = 13 1625. (Suggerimento. Sfruttare il Teorema di Eulero-Fermat)
Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla
Camil Demetrescu Irene Finocchi Giuseppe F. Italiano Algoritmi e Strutture Dati 2/ed Quiz a risposta multipla Indice 1 Un introduzione informale agli algoritmi 1 2 Modelli di calcolo e metodologie di
Algoritmi e Strutture Dati
Introduzione al corso di Algoritmi e Strutture Dati Luigi Pontieri Il nome del corso: Algoritmi e Strutture Dati Algoritmo: metodo per la risoluzione di problemi di elaborazione di informazioni, espresso
Esercizi di Analisi Numerica. Errori, Cambi di base, Numeri macchina, Aritmetica finita
Esercizi di Analisi Numerica Errori, Cambi di base, Numeri macchina, Aritmetica finita ERRORI - es. 1 Calcolare il numero di decimali esatti e di cifre significative nei seguenti numeri scritti in base
Principio di induzione: esempi ed esercizi
Principio di induzione: esempi ed esercizi Principio di induzione: Se una proprietà P n dipendente da una variabile intera n vale per n e se, per ogni n N vale P n P n + allora P vale su tutto N Variante
Ordinamenti per confronto: albero di decisione
Ordinamenti per confronto: albero di decisione Albero di decisione = rappresentazione grafica di tutte le possibili sequenze di confronti eseguite da un algoritmo assegnato di ordinamento per confronto
1 Il polinomio minimo.
Abstract Il polinomio minimo, così come il polinomio caratterisico, è un importante invariante per le matrici quadrate. La forma canonica di Jordan è un approssimazione della diagonalizzazione, e viene
Università degli Studi di Roma Tor Vergata. Principio di induzione matematica
Università degli Studi di Roma Tor Vergata. Principio di induzione matematica Il Principio di induzione matematica è una tecnica di dimostrazione che permette la dimostrazione simultanea di infinite affermazioni.
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ù
LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g
LEZIONE 3 3.. Matrici fortemente ridotte per righe. Nella precedente lezione abbiamo introdotto la nozione di soluzione di un sistema di equazioni lineari. In questa lezione ci poniamo il problema di descrivere
Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort
Due algoritmi di ordinamento basati sulla tecnica Divide et Impera: Mergesort e Quicksort (13 ottobre 2009, 2 novembre 2010) Ordinamento INPUT: un insieme di n oggetti a 1, a 2,, a n presi da un dominio
L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013
L algoritmo AKS Seminario per il corso di Elementi di Algebra Computazionale Oscar Papini 22 luglio 2013 Test di primalità Come facciamo a sapere se un numero n è primo? Definizione (Test di primalità)
Proprietà delle notazioni asintotiche
Proprietà delle notazioni asintotiche Punto della situazione Cos è un algoritmo Tempo di esecuzione T(n) Analisi di algoritmi: analisi asintotica di T(n) Notazioni asintotiche Argomento di oggi Proprietà
ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15
ANNO ACCADEMICO 2014/15 1 a prova in itinere 13 gennaio 2015 ESERCIZIO 1 Si risolva l equazione di ricorrenza al variare del parametro reale a>1. T (n) = 27 n a T + n 2 log n a ESERCIZIO 2 Si ordinino
z =[a 4 a 3 a 2 a 1 a 0 ] 10
Esercizio 1. Sia z =[a 4 a 3 a 2 a 1 a 0 ] 10 un numero intero (la notazione significa che le cifre con cui rappresento z in base 10 sono a 4,..., a 0 {0, 1,..., 9}, ecioè z = a 4 10 4 + a 3 10 3 + a 2
Algoritmi e Strutture Dati
Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Heap Heap binari: definizione Un heap binario è una struttura dati composta
Tutti i numeri qui considerati sono interi. Se si tratta in particolare di numeri Naturali (quindi non negativi) verrà specificato.
LICEO B. RUSSELL A.S. 2010/2011 DALLA TEORIA DEI NUMERI ALLE CONGRUENZE Tutti i numeri qui considerati sono interi. Se si tratta in particolare di numeri Naturali (quindi non negativi) verrà specificato.
Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base
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
Un esempio di calcolo di complessità: insertion sort
Un esempio di calcolo di complessità: insertion sort Vediamo su un esempio come si può calcolare la complessità di un algoritmo... L esempio è un metodo semplice per ordinare arrays: insertion sort, o
8. Completamento di uno spazio di misura.
8. Completamento di uno spazio di misura. 8.1. Spazi di misura. Spazi di misura completi. Definizione 8.1.1. (Spazio misurabile). Si chiama spazio misurabile ogni coppia ordinata (Ω, A), dove Ω è un insieme
