analisi asintotica e metodi di analisi algoritmi e strutture dati

21
Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Upload: prudenzio-palumbo

Post on 01-May-2015

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Analisi asintotica e Metodi di analisi

Algoritmi e Strutture Dati

Page 2: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl2

• 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

Page 3: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl3

f(n) = O( g(n) ) se due costanti c>0 e n0≥0 tali che f(n) ≤ c g(n) per ogni n ≥ n0

Notazione asintotica O

cg(n)

f(n)

n0 n

f(n) = ( g(n) )

Page 4: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl4

Notare:

ngOnf 0ngnf

limn

0ngnf

lim ngOnf n

esiste) (se ngnf

lim ngOnf n

Page 5: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl5

f(n) = ( g(n) ) se due costanti c>0 e n0≥0 tali che f(n) ≥ c g(n) per ogni n ≥ n0

Notazione asintotica

n0 n

f(n) = ( g(n) )f(n)

c g(n)

Page 6: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl6

Notare:

ngnf ngnf

limn

ngnf

lim ngnf n

0 esiste) (se ngnf

lim ngnf n

Page 7: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl7

f(n) = ( 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

Notazione asintotica

n0 n

f(n) = ( g(n) )f(n)

c1 g(n)

c2 g(n)

Page 8: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl8

Notare che:

ngOnf g(n) nf

ngΘnf g(n)O nf

ngnf g(n) nf

ngnf g(n) nf

ngOnf e ngΩnf g(n) nf

Page 9: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl9

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:

0ngnf

lim ngonf n

ngO ngo

Page 10: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl10

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:

ngnf

lim ngnf n

ng ng

Page 11: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl11

Riassumendo ……

menteasintotica cngnf

c0 ngΘnf 21

menteasintotica ngnf

c0 ngnf 1

menteasintotica cngnf

0 ngOnf 2

0 ngnf

lim ngonf n

ngnf

lim ngnf n

Page 12: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl12

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 n0 ad - |ad-1|n-1 - … - |a0| n-d > 0

Se scegliamo:

c1 = ad - |ad-1| n0-1 - … - |a0 | n0

-d

c2 = ad + |ad-1| + … + |a0| n n0 c1 nd T(n) c2 nd

Esempio:

Page 13: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl13

Logaritmi ……

Esponenziali ……

Polinomi ……

Fattoriali ……

P(n) = ad nd + ad-1 nd-1 + … + a0

ad > 0

f(n) = an

a >1

P(n) = (nd)P(n) = O(nd)P(n) = (nd)

an = (nd)an = (nd)

f(n) = logb(n) b>1

1,,0 dc

d

cb

n nnlog

lim

logb(n) = o(nd)logb(n) = O(nd)

f(n) = n! = n*(n-1)*……*2*1 n! = o(nn) n! = (an)

d

n

n na

lim

Page 14: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl14

Proprietà della notazione asintotica

Transitività

Riflessività

Simmetria

Simmetria trasposta

nhnf nhng e ngnf nhOnf nhOng e ngOnf nhnf nhng e ngnf

nhnf nhng e ngnf ooo

nhnf nhng e ngnf

nfnf

nfΟnf nfnf

nfng ngnf

nfng ngOnf

nfng ngonf

Page 15: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl15

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)=(n2): scegliere c=1 e n0=0• Infatti, 3n2+10 ≥ 1n2 per ogni n≥0

═> f(n)=(n2): infatti f(n)= (g(n)) se e solo se f(n)= (g(n)) e f(n)= (g(n))

– f(n)=O(n3) basta scegliere c=1 e n0=4• Infatti, 3n2+10 ≤ 1n3 per ogni n≥4

…ma f(n) ≠ (n3)

Notazione asintotica: esempi

Page 16: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl16

Metodi di analisi

Page 17: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl17

• 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

Page 18: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl18

• 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

Caso peggiore

Page 19: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl19

• 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

Caso migliore

Page 20: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl20

• 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

Caso medio

Page 21: Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati

Copyright © 2004 - The McGraw - Hill Companies, srl21

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?