Proprietà delle notazioni asintotiche

Documenti analoghi
Algoritmi e Strutture Dati

Algoritmi e Strutture Dati

Tempo e spazio di calcolo

poiché f(n) max{f(n),g(n)}, e g(n) max{f(n),g(n)}, sommando termine a termine: Quindi possiamo concludere che f(n)+g(n) = Θ(max{f(n),g(n)})

Esercizi Capitolo 2 - Analisi di Algoritmi

Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.

Esercizi di Algoritmi e Strutture Dati

Due algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort

Macchina RAM. Modelli di calcolo e metodologie di analisi. Linguaggio di una macchina RAM. Algoritmi e Strutture Dati. Istruzioni.

Esercizi per il corso di Algoritmi, anno accademico 2014/15

Insiemi, Numeri, Terminologia. Prof. Simone Sbaraglia

Algoritmi e Strutture Dati

Algoritmi (9 CFU) (A.A )

Algoritmi e Strutture Dati. Capitolo 4 Ordinamento

Tempo e spazio di calcolo (continua)

5) Equazioni di ricorrenza

Ricerca binaria. Operazione dominante: confronto

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Corso di Analisi Matematica Successioni e loro limiti

Sviluppi e derivate delle funzioni elementari

Progettazione di Algoritmi

Primo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

4.1 Modelli di calcolo analisi asintotica e ricorrenze

Algoritmi e Strutture Dati

La complessità del calcolo

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013

Complementi di Analisi Matematica Ia. Carlo Bardaro

Ordinamenti per confronto: albero di decisione

Limiti di successioni

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

A.A CORSO DI ALGEBRA 1. PROFF. P. PIAZZA, E. SPINELLI. SOLUZIONE ESERCIZI FOGLIO 5.

Algoritmi e Strutture Dati

Appunti di Algoritmi e Strutture Dati. Alberto Carraro

Esercizi sulla complessità di frammenti di pseudo-codice

0.1 Numeri complessi C

Dispense del corso di Algebra 1. Soluzioni di alcuni esercizi

Sommario. Ordinamento. Selection Sort Bubble Sort/ Shaker Sort Shell Sort

UNIVERSITA DEGLI STUDI DI PERUGIA

LIMITI. 1. Definizione di limite.

Massimo e minimo limite di successioni

Potenze reali, esponenziali e logaritmi

Esercitazione sugli sviluppi in serie di Taylor

Funzioni Complesse di variabile complessa

2 2 2 A = Il Det(A) = 2 quindi la conica è non degenere, di rango 3.

Funzioni. iniettiva se x y = f (x) f (y) o, equivalentemente, f (x) = f (y) = x = y

1 Primitive e integrali indefiniti

Funzioni Monotone. una funzione f : A B. si dice

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Problemi, istanze, soluzioni

CORSO DI ANALISI MATEMATICA 1 ESERCIZI. Carlo Ravaglia

1 Limiti e continuità per funzioni di una variabile

Corso di Geometria III - A.A. 2016/17 Esercizi

Algoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

RICERCA OPERATIVA. Tema d esame del 04/03/2008 (Simulazione)

MATEMATICA DI BASE 1

Esercizi sui sistemi di equazioni lineari.

Tracce di soluzioni di alcuni esercizi di matematica 1 - gruppo 76-93

A Analisi Matematica 1 (Corso di Laurea in Informatica e Bioinformatica) Simulazione compito d esame

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

ANALISI 1 - Teoremi e dimostrazioni vari

Codice Gray. (versione Marzo 2007)

una possibile funzione unidirezionale

CORSO DI LAUREA IN FISICA

Laboratorio di Algoritmi e Strutture Dati. Aniello Murano. people.na.infn.it/~murano/ Murano Aniello - Lab. di ASD Terza Lezione

Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015

Geometria BIAR Esercizi 2

Funzione esponenziale Equazioni esponenziali RIPASSO SULLE POTENZE

Corso di Analisi Numerica

Minimo albero di copertura

Le proprietà che seguono valgono x, y > 0, a > 0 a 1, e b qualsiasi. Da queste si possono anche dedurre le seguenti uguaglianze log a 1 = 0

Algoritmi e Strutture Dati (Elementi)

CORSO DI LAUREA IN MATEMATICA

Cosa dobbiamo già conoscere?

Transcript:

Proprietà delle notazioni asintotiche

Punto della situazione Cos è un algoritmo Tempo di esecuzione T(n) Analisi di algoritmi: analisi asintotica di T(n) Notazioni asintotiche Argomento di oggi Proprietà delle notazioni asintotiche Motivazioni Confrontare tempi di esecuzione di algoritmi fra loro o con funzioni standard (lineare, polinomiale, esponenziale )

Notazioni asintotiche Nell analisi asintotica analizziamo T(n) 1. A meno di costanti moltiplicative (perché non quantificabili) 2. Asintoticamente (per considerare input di taglia arbitrariamente grande, quindi in numero infinito) Le notazioni asintotiche: O, Ω, Θ ci permetteranno il confronto tra funzioni, mantenendo queste caratteristiche. Idea di fondo: O, Ω, Θ rappresentano rispettivamente,, = in un analisi asintotica

Notazione asintotica Ω Notazione duale di O: f(n) = Ω (g(n)) se esistono costanti c > 0, n 0 0 tali che per ogni n n 0 si ha f(n) c g(n)

Analisi asintotica di T(n) T(n) = O(g(n)) significa che il tempo di esecuzione, anche nel caso peggiore, è limitato superiormente da g(n) T(n) = Ω(g(n)) significa che il tempo di esecuzione, anche nel caso migliore, è limitato inferiormente da g(n) T(n) = Θ(g(n)) significa che nel caso peggiore è O(g(n)) e nel caso migliore è Ω(g(n)) (in pratica non vi è distinzione fra tempo di esecuzione nel caso peggiore e migliore) Esempio. T I (n), tempo di esecuzione di InsertionSort è T I (n)= Ω(n) e T I (n) =O(n 2 ) T M (n ), tempo di esecuzione di MergeSort è T M (n)= Θ(n log n)

Asymptotic Order of Growth Upper bounds. T(n) is O(f(n)) if there exist constants c > 0 and n 0 0 such that for all n n 0 we have T(n) c f(n). Lower bounds. T(n) is (f(n)) if there exist constants c > 0 and n 0 0 such that for all n n 0 we have T(n) c f(n). Tight bounds. T(n) is (f(n)) if T(n) is both O(f(n)) and (f(n)). Ex: T(n) = 32n 2 + 17n + 32. T(n) is O(n 2 ), O(n 3 ), (n 2 ), (n), and (n 2 ). T(n) is not O(n), (n 3 ), (n), or (n 3 ). 8

Funzioni più utilizzate Scaletta: Man mano che si scende troviamo funzioni che crescono più velocemente (in senso stretto)

Asymptotic Bounds for Some Common Functions Polynomials. a 0 + a 1 n + + a d n d is (n d ) if a d > 0. Polynomial time. Running time is O(n d ) for some constant d independent of the input size n. Logarithms. O(log a n) = O(log b n) for any constants a, b > 0. can avoid specifying the base Logarithms. For every x > 0, log n = O(n x ). log grows slower than every polynomial Exponentials. For every r > 1 and every d > 0, n d = O(r n ). 10 every exponential grows faster than every polynomial

Più in dettaglio Informalmente. Più precisamente: Un esponenziale cresce più velocemente di qualsiasi polinomio n d = O (r n ) per ogni d>0 e r>1 Un polinomio cresce più velocemente di qualsiasi potenza di logaritmo log b n k = O (n d ) per ogni k, d>0 e b>1

E ancora Informalmente. Per esempio: Nel confronto fra esponenziali conta la base Nel confronto fra polinomi conta il grado Nel confronto fra logaritmi la base non conta 2 n = O(3 n ) n 2 = O(n 3 ) log 10 n = log 2 n (log 10 2) = Θ (log 2 n)

Polinomi vs logaritmi Un polinomio cresce più velocemente di qualsiasi potenza di logaritmo. Per esempio Lo proveremo con c=1 e n 0 =1, cioè log 2 n n, n 1

In pratica Per stabilire l ordine di crescita di una funzione dovremo tenere ben presente la «scaletta» e alcune proprietà delle notazioni asintotiche

Transitivity Properties (analoga ad a b e b c allora a c per i numeri) If f = O(g) and g = O(h) then f = O(h). If f = (g) and g = (h) then f = (h). If f = (g) and g = (h) then f = (h). Additivity. If f = O(h) and g = O(h) then f + g = O(h). If f = (h) and g = (h) then f + g = (h). If f = (h) and g = (h) then f + g = (h). 15 (Attenzione: l analoga per i numeri sarebbe se a c e b c allora a+b c, che non è vera!!)

Transitività Se f = O(g) e g = O(h) allora f = O(h) Ipotesi: esistono costanti c,n 0 > 0 tali che per ogni n n 0 si ha f(n) c g(n) esistono costanti c,n 0 > 0 tali che per ogni n n 0 si ha g(n) c h(n) Tesi (Dobbiamo mostrare che): esistono costanti c,n 0 > 0 tali che per ogni n n 0 si ha f(n) c h(n) Quanto valgono c, n 0? f(n) c g(n) c c h(n) per ogni n n 0 e n n 0 c = c c n 0 = max {n 0, n 0 }

Ipotesi: Additività Se f = O(h) e g = O(h) allora f + g = O(h) esistono costanti c,n 0 > 0 tali che per ogni n n 0 si ha f(n) c h(n) esistono costanti c,n 0 > 0 tali che per ogni n n 0 si ha g(n) c h(n) Tesi (Dobbiamo mostrare che): esistono costanti c,n 0 > 0 tali che per ogni n n 0 si ha f(n )+g(n) c h(n) Quanto valgono c, n 0? f(n )+g(n) c h(n) + c h(n)= (c+c ) h(n) per ogni n n 0 e n n 0 c = c + c n 0 = max {n 0, n 0 }

Due regole fondamentali Nel determinare l ordine di crescita asintotica di una funzione 1. Possiamo trascurare i termini additivi di ordine inferiore 2. Possiamo trascurare le costanti moltiplicative ATTENZIONE! Le regole NON servono però per determinare esplicitamente le costanti c ed n 0.

Prima regola «Possiamo trascurare i termini additivi di ordine inferiore» Cosa significa formalmente? Se g = O(f) allora f + g = (f) Ipotesi: g è di ordine inferiore a f: g=o(f): esistono costanti c,n 0 > 0 tali che per ogni n n 0 si ha g(n) c f(n) Tesi (Dobbiamo mostrare che): f + g = O(f): dato che f=o(f) e g=o(f) per l additività: f+g=o(f). f + g = (f): esistono c, n 0 > 0 tali che per ogni n n 0 si ha f(n )+g(n) c f(n): f(n )+g(n) f(n) essendo g(n) 0; c =1 ed n 0 = 0

Seconda regola «Possiamo trascurare le costanti moltiplicative» Cosa significa formalmente? Per ogni costante a > 0 allora a f = (f) Ipotesi: a>0 Tesi esistono costanti c>0, n 0 0 tali che per ogni n n 0 si ha a f(n) c f(n) esistono costanti c >0, n 0 0 tali che per ogni n n 0 si ha a f(n) c f(n) c = c = a n 0 = n 0 = 0

Per confrontare crescita di due funzioni Basterà usare: La «scaletta» Le proprietà di additività e transitività Le due regole fondamentali

Domanda Per questo genere di esercizi: a cosa serve la calcolatrice? Suggerimento: ricorda che f(n) = O(g(n)) significa f(n) c g(n) per ogni n n 0 cioè per un numero infinito di valori di n. QUINDI: NON basta dimostrare che per qualche costante c f(1) c g(1), f(2) c g(2), f(10.000) c g(10.000)!!! Perché potrebbe essere invece f(n) c g(n) per ogni n 10.001.

Esercizio 1

Esercizio 1bis Dimostrare che 3n 5-16n+ 2 = (n 5 ) per definizione, cioè mostrando dei possibili valori per le costanti c ed n 0.

Esercizio 2 NOTA: Esistono anche funzioni (particolari) non confrontabili tramite O

Esercizio 3