La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algoritmi e Strutture Dati

Presentazioni simili


Presentazione sul tema: "Algoritmi e Strutture Dati"— Transcript della presentazione:

1 Algoritmi e Strutture Dati
Analisi asintotica e Metodi di analisi

2 Notazione asintotica 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 Copyright © The McGraw - Hill Companies, srl

3 Notazione asintotica O
f(n) = O( g(n) ) se  due costanti c>0 e n0≥0 tali che f(n) ≤ c g(n) per ogni n ≥ n0 Copyright © The McGraw - Hill Companies, srl

4 Notare: Copyright © The McGraw - Hill Companies, srl

5 Notazione asintotica W
f(n) = W( g(n) ) se  due costanti c>0 e n0≥0 tali che f(n) ≥ c g(n) per ogni n ≥ n0 n0 n f(n) = W( g(n) ) f(n) c g(n) Copyright © The McGraw - Hill Companies, srl

6 Notare: Copyright © The McGraw - Hill Companies, srl

7 Notazione asintotica Q
f(n) = Q( g(n) ) se  tre costanti c1,c2>0 e n0≥0 tali che c1 g(n) ≤ f(n) ≤ c2 g(n) per ogni n ≥ n0 n0 n f(n) = Q( g(n) ) f(n) c1 g(n) c2 g(n) Copyright © The McGraw - Hill Companies, srl

8 Notare che: Copyright © The McGraw - Hill Companies, srl

9 o(g(n)) = {f(n) :  c > 0,  n0 tale che
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,  n0 tale che  n  n0 0  f(n)  c g(n) } Notare: Copyright © The McGraw - Hill Companies, srl

10 (g(n)) = {f(n) :  c > 0,  n0 tale che
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,  n0 tale che  n  n0 0  c g(n)  f(n) } Notare: Copyright © The McGraw - Hill Companies, srl

11 Riassumendo …… Copyright © The McGraw - Hill Companies, srl

12 T(n) / nd = ad + ad-1 n-1 + … + a0 n-d 
Esempio: Se T(n) = ad nd + ad-1 nd-1 + … + a0 è un polinomio di grado d (con ad>0), allora T(n) = (nd) Infatti: T(n) / nd = ad + ad-1 n-1 + … + a0 n-d  n0 :  n  n ad - |ad-1|n-1 - … - |a0| n-d > 0 Se scegliamo: c1 = ad - |ad-1| n … - |a0 | n0-d c2 = ad + |ad-1| + … + |a0|  n  n c1 nd  T(n)  c2 nd Copyright © The McGraw - Hill Companies, srl

13 P(n) = ad nd + ad-1 nd-1 + … + a0 ad > 0
Polinomi …… P(n) = (nd) P(n) = O(nd) P(n) = (nd) P(n) = ad nd + ad-1 nd-1 + … + a0 ad > 0 Esponenziali …… f(n) = an a >1 an = (nd) an = (nd) Logaritmi …… f(n) = logb(n) b>1 logb(n) = o(nd) logb(n) = O(nd) Fattoriali …… f(n) = n! = n*(n-1)*……*2*1 n! = o(nn) n! =  (an) Copyright © The McGraw - Hill Companies, srl

14 Proprietà della notazione asintotica
Transitività Riflessività Simmetria Simmetria trasposta Copyright © The McGraw - Hill Companies, srl

15 Notazione asintotica: esempi
Sia f(n)=3n2+10 f(n)=O(n2): basta scegliere c=4 e n0=4 Infatti, 3n2+10 ≤ 4n2 per ogni n≥4 f(n)=W(n2): scegliere c=1 e n0=0 Infatti, 3n2+10 ≥ 1n2 per ogni n≥0 ═> f(n)=Q(n2): infatti f(n)= Q(g(n)) se e solo se f(n)= O(g(n)) e f(n)= W(g(n)) f(n)=O(n3) basta scegliere c=1 e n0=4 Infatti, 3n2+10 ≤ 1n3 per ogni n≥4 …ma f(n) ≠ Q(n3) Copyright © The McGraw - Hill Companies, srl

16 Metodi di analisi Copyright © The McGraw - Hill Companies, srl

17 Caso peggiore, migliore e medio
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 Copyright © The McGraw - Hill Companies, srl

18 Caso peggiore Sia tempo(I) il tempo di esecuzione di un algoritmo sull’istanza I Tworst(n) = max istanze I di dimensione n {tempo(I)} Intuitivamente, Tworst(n) è il tempo di esecuzione sulle istanze di ingresso che comportano più lavoro per l’algoritmo Copyright © The McGraw - Hill Companies, srl

19 Caso migliore Sia tempo(I) il tempo di esecuzione di un algoritmo sull’istanza I Tbest(n) = min istanze I di dimensione n {tempo(I)} Intuitivamente, Tbest(n) è il tempo di esecuzione sulle istanze di ingresso che comportano meno lavoro per l’algoritmo Copyright © The McGraw - Hill Companies, srl

20 Caso medio Sia P(I) la probabilità di occorrenza del- l’istanza I
Tavg(n) = ∑ istanze I di dimensione n {P(I) tempo(I) } Intuitivamente, Tavg(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 Copyright © The McGraw - Hill Companies, srl

21 Approfondimento Sia dato un mazzo di n carte scelte in un universo U di 2n carte, e si supponga di dover verificare se una certa carta x in U appartenga o meno al mazzo. Qual è il costo di tale verifica (in termine di numero di confronti) nel caso migliore, peggiore e medio? Copyright © The McGraw - Hill Companies, srl


Scaricare ppt "Algoritmi e Strutture Dati"

Presentazioni simili


Annunci Google