Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.

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
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.
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 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:
Capitolo 13 Cammini minimi: Algoritmo di Floyd e Warshall Algoritmi e Strutture Dati.
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 Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Boruvka Algoritmi.
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.
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 Usa la tecnica del.
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 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 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.
Capitolo 10 Tecniche algoritmiche 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:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Capitolo 1 Un’introduzione.
Il problema della ricerca Algoritmi e Strutture Dati.
Analisi asintotica e Metodi di analisi 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.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Sesta giornata Risolvere efficientemente un problema in P: Il problema dell’ordinamento: Insertion.
Algoritmi e Strutture Dati
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.
Transcript della presentazione:

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi 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 2 Modello di calcolo Per valutare la complessità di un algoritmo, bisogna prima di tutto stabilire un modello di calcolo di riferimento su cui esso viene eseguito 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 è un’astrazione dell’architettura di von Neumann

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 3 Macchina a registri

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 4 Criterio di costo uniforme Nel modello a costi uniformi, ogni istruzione ha un costo unitario Complessità temporale misurata come numero di passi elementari eseguiti –istruzione ingresso/uscita (lettura o stampa) –operazione aritmetico/logica –accesso/modifica del contenuto della memoria Complessità spaziale misurata come numero massimo di celle di memoria della RAM occupate durante l’esecuzione

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 5 Dimensione dell’input Misureremo le risorse di calcolo usate da un algoritmo (tempo di esecuzione / occupazione di memoria ) in funzione della dimensione dell’istanza in input Esistono due modalità di caratterizzazione della dimensione dell’input: –Quantità di memoria effettiva utilizzata per codificare l’input (ad esempio, numero di bit necessari per rappresentare un valore in input) –Parametro caratterizzante la dimensione dell’input (ad esempio, numero di elementi di una sequenza da ordinare)

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 6 Domanda di approfondimento Qual è la complessità temporale dell’algoritmo Fibonacci4 in funzione della rappresentazione dell’input? E dell’algoritmo Fibonacci6 ?

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

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 8 Complessità temporale e spaziale saranno espresse in notazione asintotica rispetto alla dimensione dell’input 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 9 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 10 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 11 Notare:

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

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

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 21 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 22 Se f(n) = a d n d + a d-1 n d-1 + … + a 0 è un polinomio di grado d (con a d >0), allora f(n) =  (n d ) Infatti: f(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 | c 1 n d = a d n d -|a d-1 | n d n …- |a 0 | n d n 0 -d ≤ (per n  n 0 si ha n d n 0 -k  n d-k ) a d n d - |a d-1 | n d-1 -…- |a 0 |  a d n d + a d-1 n d-1 + … + a 0 c 2 n d = a d n d + |a d-1 | n d +…+ |a 0 | n d  a d n d + |a d-1 | n d-1 +…+ |a 0 |  a d n d + a d-1 n d-1 + … + a 0   n  n 0 c 1 n d  f(n)  c 2 n d Esempio:

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

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 25 Come detto, misureremo le risorse di calcolo usate da un algoritmo in funzione della dimensione delle istanze Ma istanze diverse, a parità di dimensione, potrebbero richiedere risorse diverse! Ad esempio, se devo cercare un elemento x in un insieme di n elementi in input, il numero di confronti che farò dipenderà dalla posizione che x occupa nella sequenza. 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 26 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 Definizione analoga può essere data per lo spazio Caso peggiore

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

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

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

Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 31 Delimitazioni inferiori (lower bound) Definizione Un algoritmo A ha costo di esecuzione  (g(n)) su istanze di dimensione n e rispetto ad una certa risorsa di calcolo, se la quantità f(n) di risorsa necessaria per eseguire A nel caso peggiore (e quindi non è detto che debba essere necessaria per ogni istanza di dimensione n: istanze facili potrebbero richiedere meno risorse!) verifica la relazione f(n)=  (g(n)) Definizione (complessità intrinseca di un problema) Un problema P ha una delimitazione inferiore alla complessità  (g(n)) rispetto ad una certa risorsa di calcolo se ogni algoritmo che risolve P ha costo di esecuzione  (g(n)) rispetto a quella risorsa

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

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