Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
e
Analisi asintotica
2 marzo 2023
Argomenti in breve
• Metodologie di analisi di algoritmi
max = a1 max a1
For i = 2 to n for i = 2 to n {
If (ai > max) then if (ai > max)
max = ai max ai
Endif }
Endfor
• Numero di secondi?
• Implementato con quale struttura dati,
linguaggio, macchina, architettura,
compilatore…..?
• Su quanti numeri? 100, 1.000, 1.000.000?
Analisi
Studieremo il tempo in funzione della taglia n dell’input :
T(n)
T1(n)
T2(n)
Tk(n)
If then else
Ttest(n)
T(n) ≤ Ttest(n) + max {Tif(n), Telse(n)}
Tif(n) Telse(n)
Ciclo for
Ti(n)
Ttest(n)
g(n)
volte T(n) = Ti(n) + Ttest(n)+ g(n) (Ttest(n) + Tc(n) + Tr(n))
Tc(n)
Tr(n)
Regole per il calcolo di T(n) (caso non ricorsivo)
Linea 1: 1 assegnamento = c1
Linee 3 – 5 (una esecuzione): 1 confronto + 1 assegnamento eventualmente ≤ c2 + c1
Linea 2 - 6: 1 assegnamento + (n-1) incremento + n confronti + (n-1) if ≤
≤ c1 + (n-1) c3 + n c2 + (n-1) (c2 + c1)
T(n) ≤ 2 c1 + (n-1) c3 + n c2 +(n-1) (c2 + c1) = (c3 + 2c2 + c1) n + (c1 - c3 - c2)
• Indipendente da hardware
• Effettuabile con pseudocodice prima di
implementare l’algoritmo
• Considera infiniti input
T(n)
n2 n
log 2 n
3
n
Casi di interesse
Esempio: problema dell’ordinamento
• Exceptions.
– Some poly-time algorithms do have high constants and/or exponents and are
useless in practice.
– Some exponential-time (or worse) algorithms are widely used because the worst-
case instances seem to be rare.
33
Efficiency = polynomial
Confronto efficienza
n logn vs 2n
Le notazioni asintotiche: O, Ω, Θ
ci permetteranno il confronto tra funzioni, mantenendo queste
caratteristiche
Diremo per esempio che l’algoritmo per la ricerca del massimo ha
un tempo di esecuzione lineare, T(n) =O(n), essendo T(n) ≤ An + B
In termini di analisi …. matematica
(ovvero f(n)=o(g(n)) )
(ovvero g(n)=o(f(n)))
ESERCIZI
Nei compiti che seguono, potete provare a formalizzare
il problema computazionale alla base del problema
«reale» descritto.
Problemi…