La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati.

Presentazioni simili


Presentazione sul tema: "Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati."— Transcript della presentazione:

1 Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

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

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

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

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

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

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

8 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 8 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)

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

10 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 10 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:

11 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 11 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:

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

13 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 13 Se T(n) = a d n d + a d-1 n d-1 + … + a 0 è un polinomio di grado m (con a m >0), allora T(n) =  (n d ) Infatti: T(n) / n d = a d + a d-1 n -1 + … + a 0 n -d   n 0 :  n  n 0 a d - |a d-1 |n -1 - … - |a 0 | n -d > 0 Se scegliamo: c 1 = a d - |a d-1 | n … - |a 0 | n 0 -d c 2 = a d + |a d-1 | + … + |a 0 |  n  n 0 c 1 n d  T(n)  c 2 n d Esempio:

14 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 14 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 ) a n =  (n d ) f(n) = log b (n) b>1 log b (n) =  o(n d ) log b (n) =  O(n d ) f(n) = n! = n*(n-1)*……*2*1 n! =  o(n n ) n! =   (a n )

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

16 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 16 Sia f(n)=3n –f(n)=O(n 2 ): basta scegliere c=4 e n 0 =4 Infatti, 3n ≤ 4n 2 per ogni n≥4 –f(n)=  (n 2 ): scegliere c=1 e n 0 =0 Infatti, 3n ≥ 1n 2 per ogni n≥0 ═> f(n)=  (n 2 ): infatti f(n)=  (g(n)) se e solo se f(n)=  (g(n)) e f(n)=  (g(n)) –f(n)=O(n 3 ) basta scegliere c=1 e n 0 =4 Infatti, 3n ≤ 1n 3 per ogni n≥4 …ma f(n) ≠  (n 3 ) Notazione asintotica: esempi

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

18 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 18 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

19 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 19 Sia tempo(I) il tempo di esecuzione di un algoritmo sull’istanza 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 l’algoritmo Caso peggiore

20 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 20 Sia tempo(I) il tempo di esecuzione di un algoritmo sull’istanza 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 l’algoritmo Caso migliore

21 Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 21 Sia P (I) la probabilità di occorrenza del- l’istanza 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


Scaricare ppt "Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati."

Presentazioni simili


Annunci Google