Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati.

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Il problema della ricerca Algoritmi e Strutture Dati.
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.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Usa la tecnica del.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 1 Unintroduzione informale agli algoritmi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi e Strutture Dati
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 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 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento 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 Ordinamenti lineari.
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 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.
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 Capitolo 6 Interrogazioni.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Unintroduzione.
Il problema della ricerca Algoritmi e Strutture Dati.
Il problema della ricerca 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 Capitolo 8 Code con.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Algoritmi e Strutture Dati
Visite di grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento 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 Alberi AVL (Adelson-Velskii.
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 1 Un albero è un grafo.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Alberi AVL (Adelson-Velskii.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
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
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 6 Rotazioni.
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.
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 Capitolo 1 Un’introduzione.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Capitolo 11 Visite di grafi 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 Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 1 Un’introduzione informale agli algoritmi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Il problema della ricerca Algoritmi e Strutture Dati.
Capitolo 13 Cammini minimi Algoritmi e Strutture Dati.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Quinta giornata Risolvere efficientemente un problema in P: ancora sulla sequenza di Fibonacci.
Algoritmi e Strutture Dati
Capitolo 10 Tecniche algoritmiche 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.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Transcript della presentazione:

Analisi asintotica e Metodi di analisi Algoritmi e Strutture Dati

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

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

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

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

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)

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

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)

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

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:

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:

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

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:

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 )

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

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

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

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

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

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

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