Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.

Slides:



Advertisements
Presentazioni simili
Il problema della ricerca Algoritmi e Strutture Dati.
Advertisements

Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Capitolo 1 Unintroduzione informale agli algoritmi Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Capitolo 1 Unintroduzione informale agli algoritmi Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 1 Unintroduzione informale agli algoritmi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Capitolo 1 Unintroduzione informale agli algoritmi Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti lineari.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Stesso approccio.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Unintroduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
Il problema della ricerca Algoritmi e Strutture Dati.
Il problema della ricerca Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Usa la tecnica del.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Diremo che f(n) =
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Luciano Gualà
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Il problema della ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Il problema della ricerca Algoritmi e Strutture Dati.
Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento: lower bound Ω(n log n) e MergeSort ((*) l’intera lezione) Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Transcript della presentazione:

Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 2 Modello di calcolo Lanalisi della complessità di un algoritmo è basata sul concetto di passo elementare Bisogna stabilire un modello di calcolo di riferimento su cui è eseguito lalgoritmo Macchina a registri (RAM: random access machine) –un programma finito –un nastro di ingresso e uno di uscita –una memoria strutturata come un array ogni cella può contenere un qualunque valore intero/reale –un registro detto accumulatore (contiene operandi istruzione corrente) –un registro detto contatore delle istruzioni (contiene indirizzo istruzione successiva) la RAM è unastrazione dellarchitettura di von Neumann

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 3 Criterio di costo uniforme Complessità temporale misurata come numero di passi elementari eseguiti Complessità spaziale misurata come numero massimo di celle di memoria occupate durante lesecuzione Passi elementari: –istruzione ingresso/uscita (lettura o stampa) –operazione aritmetico/logica –accesso/modifica del contenuto della memoria Complessità temporale e spaziale espresse in notazione asintotica

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 4 Algoritmo fibonacci5 Il tempo di esecuzione è O(n) –O(n) linee di codice eseguite –O(n) passi elementari eseguiti

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 5 Notazione asintotica

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 6 f(n) = tempo di esecuzione / occupazione di memoria di un algoritmo su input di dimensione n La notazione asintotica è unastrazione utile per descrivere lordine di grandezza di f(n) ignorando alcuni dettagli, come costanti moltiplicative e termini di ordine inferiore Notazione asintotica

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 7 f(n) = O( g(n) ) se due costanti c>0 e n 0 0 tali che 0 f(n) c g(n) per ogni n n 0 Notazione asintotica O

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 8 Esempi: Sia f(n) = 2n 2 + 3n, allora f(n)=O(n 3 ) (c=1, n 0 =3) f(n)=O(n 2 ) (c=3, n 0 =3) f(n) O(n)

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 9 Notazione asintotica O La scrittura: 2n 2 +4=O(n 3 ) è un abuso di notazine per: 2n 2 +4 O(n 3 ) O( g(n) )={f(n) | c>0 e n 0 0 tali che 0 f(n) c g(n) per ogni n n 0 }

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 10 Notare:

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 11 f(n) = ( g(n) ) se due costanti c>0 e n 0 0 tali che f(n) c g(n) 0 per ogni n n 0 Notazione asintotica n0n0 n f(n) = ( g(n) ) f(n) c g(n)

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 12 Esempi: Sia f(n) = 2n 2 – 3n, allora f(n)= (n) (c=1, n 0 =2) f(n)= (n 2 ) (c=1, n 0 =3) f(n) (n 3 )

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 13 Notazione asintotica La scrittura: 2n 2 +4= (n) è un abuso di notazine per: 2n 2 +4 (n) (g(n))={f(n) | c>0 e n 0 0 tali che 0 c g(n) f(n) per ogni n n 0 }

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 14 Notare:

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 15 f(n) = ( g(n) ) se tre costanti c 1,c 2 >0 e n 0 0 tali che c 1 g(n) f(n) c 2 g(n) per ogni n n 0 Notazione asintotica n0n0 n f(n) = ( g(n) ) f(n) c 1 g(n) c 2 g(n)

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 16 Esempi: Sia f(n) = 2n 2 – 3n, allora f(n)= (n 2 ) (c 1 =1, c 2 =2, n 0 =3) f(n) (n) f(n) (n 3 )

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 17 Notazione asintotica La scrittura: 2n 2 +4= (n 2 ) è un abuso di notazine per: 2n 2 +4 (n 2 ) (g(n))={f(n) | c 1,c 2 >0 e n 0 0 tali che c 1 g(n) f(n) c 2 f(n) per ogni nn 0 }

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 18 Notare che:

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 19 Notazione o Data una funzione g(n): N R, si denota con o(g(n)) l insieme delle funzioni f(n): N R: o(g(n)) = {f(n) : c > 0, n 0 tale che n n 0 0 f(n) < c g(n) } Notare:

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 20 Notazione Data una funzione g(n): N R, si denota con (g(n)) l insieme delle funzioni f(n): (g(n)) = {f(n) : c > 0, n 0 tale che n n 0 0 c g(n) < f(n) } Notare:

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 21 Riassumendo ……

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 22 Analogie O >

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 23 Proprietà della notazione asintotica Transitività Riflessività Simmetria Simmetria trasposta

lim f(n)/g(n)= c >0 f(n)= (g(n)) c/2 < f(n)/g(n) < 2c n Se allora Infatti: per n suff. grande

Se T(n) = a d n d + a d-1 n d-1 + … + a 0 è un polinomio di grado d (con a d >0), allora T(n) = (n d ) Infatti: T(n) / n d = a d + a d-1 n -1 + … + a 0 n -d che tende a a d quando n : Esempio:

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 26 Logaritmi …… Esponenziali …… Polinomi …… Fattoriali …… P(n) = a d n d + a d-1 n d-1 + … + a 0 a d > 0 f(n) = a n a >1 P(n) = (n d ) P(n) = O(n d ) P(n) = (n d ) a n = (n d ) f(n) = log b (n) b>1 [log b (n)] c = o(n d ) [log b (n)] c = O(n d ) f(n) = n! = n*(n-1)*……*2*1 n! = o(n n ) n! = (a n )

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 27 Metodi di analisi

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 28 Misureremo le risorse di calcolo usate da un algoritmo ( tempo di esecuzione / occupazione di memoria ) in funzione della dimensione n delle istanze Istanze diverse, a parità di dimensione, potrebbero però richiedere risorse diverse Distinguiamo quindi ulteriormente tra analisi nel caso peggiore, migliore e medio Caso peggiore, migliore e medio

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 29 Sia tempo(I) il tempo di esecuzione di un algoritmo sullistanza I T worst (n) = max istanze I di dimensione n {tempo(I)} Intuitivamente, T worst (n) è il tempo di esecuzione sulle istanze di ingresso che comportano più lavoro per lalgoritmo Caso peggiore

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 30 Sia tempo(I) il tempo di esecuzione di un algoritmo sullistanza I T best (n) = min istanze I di dimensione n {tempo(I)} Intuitivamente, T best (n) è il tempo di esecuzione sulle istanze di ingresso che comportano meno lavoro per lalgoritmo significa davvero qualcosa? (mah…) Caso migliore

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 31 Sia P (I) la probabilità di occorrenza del- listanza I T avg (n) = istanze I di dimensione n { P (I) tempo(I) } Intuitivamente, T avg (n) è il tempo di esecuzione nel caso medio, ovvero sulle istanze di ingresso tipiche per il problema Richiede di conoscere una distribuzione di probabilità sulle istanze Caso medio

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 32 Ricerca di un elemento x in una lista L non ordinata Esempio 1 T best (n) = 1 x è in prima posizione T worst (n) = n x L oppure è in ultima posizione T avg (n) = (n+1)/2 assumendo che x L e che si trovi con la stessa probabilità in una qualsiasi posizione

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 33 Ricerca di un elemento x in un array L ordinato Esempio 2 (1/2) Confronta x con lelemento centrale di L e prosegue nella metà sinistra o destra in base allesito del confronto L[m] > x

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 34 Esempio 2 (2/2) T best (n) = 1 lelemento centrale è uguale a x T worst (n) = log n x L oppure viene trovato allultimo confronto T avg (n) = log n -1+1/n assumendo che le istanze siano equidistribuite Poiché la dimensione del sotto-array su cui si procede si dimezza dopo ogni confronto, dopo li-esimo confronto il sottoarray di interesse ha dimensione n/2 i Risulta n/2 i = 1 per i=log 2 n

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 35 Delimitazioni inferiori e superiori

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 36 Delimitazioni superiori (upper bound) Definizione Un algoritmo A ha costo di esecuzione O(f(n)) su istanze di dimensione n e rispetto ad una certa risorsa di calcolo, se la quantità r di risorsa sufficiente per eseguire A su una qualunque istanza di dimensione n verifica la relazione r(n)=O(f(n)) Definizione Un problema P ha una complessità O(f(n)) rispetto ad una risorsa di calcolo se esiste un algoritmo che risolve P il cui costo di esecuzione rispetto quella risorsa è O(f(n))

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 37 Delimitazioni inferiori (lower bound) Definizione Un algoritmo A ha costo di esecuzione (f(n)) su istanze di dimensione n e rispetto ad una certa risorsa di calcolo, se la massima quantità r di risorsa necessaria per eseguire A su istanze di dimensione n verifica la relazione r(n)= (f(n)) Definizione Un problema P ha una complessità (f(n)) rispetto ad una risorsa di calcolo se ogni algoritmo che risolve P ha costo di esecuzione (f(n)) rispetto quella risorsa

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 38 Ottimalità di un algoritmo Definizione Dato un problema P con complessità (f(n)) rispetto ad una risorsa di calcolo, un algoritmo che risolve P è ottimo se ha costo di esecuzione O(f(n)) rispetto quella risorsa

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 39 Analisi di algoritmi ricorsivi

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 40 Lalgoritmo di ricerca binaria può essere riscritto ricorsivamente come: Esempio Come analizzarlo?

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 41 Il tempo di esecuzione può essere descritto tramite una equazione di ricorrenza: Equazioni di ricorrenza c + T(n/2) se n>1 1 se n=1 T(n) = Vari metodi per risolvere equazioni di ricorrenza: iterazione, sostituzione, teorema Master...

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 42 Idea: srotolare la ricorsione, ottenendo una sommatoria dipendente solo dalla dimensione n del problema iniziale Metodo delliterazione Esempio: T(n) = c + T(n/2) T(n/2) = c + T(n/4)... T(n) = c + T(n/2) = 2c + T(n/4) = = ( j=1...i c ) + T(n/2 i ) = i c + T(n/2 i ) Per i=log 2 n: T(n) = c log n + T(1) = O(log n)

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 43 Esercizi Risolvere usando il metodo delliterazione le seguenti equazioni di ricorrenza: T(n)= n + T(n-1), T(1)=1; T(n)= 9 T(n/3) + n (soluzione sul libro di testo: Esempio 2.4)

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 44 Idea: 1. indovinare la (forma della) soluzione 2. usare induzione matematica per provare che la soluzione è quella intuita 3. risolvi rispetto alle costanti Metodo della sostituzione

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 45 Metodo della sostituzione Esempio: T(n) = n + T(n/2), T(1)=1 Assumiamo che la soluzione sia T(n) c n per una costante c opportuna Passo base: T(1)=1 c 1 per ogni c 1 Passo induttivo: T(n)= n + T(n/2) n+c (n/2) = (c/2+1) n Quindi T(n) c n per c2

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 46 Teorema Master Permette di analizzare algoritmi basati sulla tecnica del divide et impera: - dividi il problema (di dimensione n) in a sottoproblemi di dimensione n/b - risolvi i sottoproblemi ricorsivamente - ricombina le soluzioni Sia f(n) il tempo per dividere e ricombinare istanze di dimensione n. La relazione di ricorrenza è data da: a T(n/b) + f(n) se n>1 1 se n=1 T(n) =

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 47 Algoritmo fibonacci6 a=1, b=2, f(n)=O(1)

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 48 Teorema Master n vs f(n) log b a quale va più velocemente a infinito? Stesso ordine asintotico T(n) = (f(n) log n) Se una delle due è polinomialmente più veloce T(n) ha lordine asintotico della più veloce

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 49 La relazione di ricorrenza: Teorema Master ha soluzione: a T(n/b) + f(n) se n>1 1 se n=1 T(n) = 1. T(n) = (n ) se f(n)=O(n ) per >0 log b a log b a - 2. T(n) = (n log n) se f(n) = (n ) log b a 3. T(n) = (f(n)) se f(n)= (n ) per >0 e a f(n/b) c f(n) per c<1 e n sufficientemente grande log b a +

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 50 1) T(n) = n + 2T(n/2) a=2, b=2, f(n)=n= (n ) T(n)= (n log n) (caso 2 del teorema master) Esempi log 2 2 2) T(n) = c + 3T(n/9) a=3, b=9, f(n)=c= (n ) T(n)= (n) (caso 1 del teorema master) log ) T(n) = n + 3T(n/9) a=3, b=9, f(n)=n= (n ) (caso 3 del teorema master) log T(n)= (n) 3(n/9) c n per c=1/3

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 51 4) T(n) = n log n + 2T(n/2) a=2, b=2, f(n) = (n ) ma f(n) (n ), > 0 Esempi log 2 2 log 2 2+ non si può applicare il teorema Master!

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 52 Esempio: T(n) = T( n) + O(1), T(1) = 1 Cambiamento di variabile T(n) = T(n 1/2 ) + O(1) n=2 x x =log 2 n T(2 x ) = T(2 x/2 ) + O(1) R(x):=T(2 x ) R(x) = R(x/2) + O(1) R(x) = O(log x) T(n) = O(log log n)

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 53 Idea: –disegnare lalbero delle chiamate ricorsive indicando la dimensione di ogni nodo –studiare il tempo speso per tutte le chiamate di un dato livello dellalbero –studiare il numero di livelli dellalbero Esempio: T(n) = T(n/3) + T(2n/3) + n, T(1) = 1 Unaltra tecnica utile: Analisi dellalbero della ricorsione

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 54 Esercizio Progettare una versione ricorsiva dellalgoritmo di ricerca sequenziale, si fornisca lequazione di ricorrenza che descrive la sua complessità temporale e la si risolva con una delle tecniche studiate.

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 55 Soluzione RicercaSeq (A, x) 1. return RicercaSeqRic(A,x,1) RicercaSeqRic(A, x, i) 1. if i > n then return non trovato 2. if A[i] = x then return trovato else return RicercaSeqRic(A,x,i+1) Complessità temporale dellalgoritmo: T(n) = c + T(n-1); T(1) = O(1) T(n) = c + T(n-1) = 2c + T(n -2)= 3c + T(n -3)= … = c(n -1) + T(1) = c(n -1) + O(1)= O(n) usando il metodo delliterazione