Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Complessità e algoritmi approssimati, Appunti di Informatica

appunti sulla complessità in informatica e sugli algoritmi approssimati

Tipologia: Appunti

2016/2017

In vendita dal 02/12/2017

au.piantanida
au.piantanida 🇮🇹

4.7

(40)

11 documenti

1 / 1

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
La complessità
Complessità problemi ogni problema viene classificato secondo una CLASSE DI COMPLESSITA’, ciascuna
caratterizzata da parametri che legano la difficoltà di soluzione al tempo impiegato
Istanza di un problema valori di variabili che può assumere un problema
Algoritmo risolutore un algoritmo risolve un problema se applicato ad ogni sua istanza produce una
soluzione corretta.
Parametri di qualità di un algoritmo (descrivono la QUALITA’ sono parametri soggettivi):
1. Semplicità facile da comprendere e modificare
2. Qualità di struttura sia del codice che del programma
3. Accessibilità facile da accedere per l’utilizzo del programma
Criteri di efficienza di un algoritmo (oggettivi):
1. Complessità temporale tempo impiegato per eseguire un programma
2. Complessità spaziale spazio utilizzato
3. Complessità I/O tempo impiegato per l’acquisto o il trasferimento dei dati con le periferiche
4. Complessità trasmissione efficienza I/O di un algoritmo rispetto a stazioni remote
Caso migliore vettore già ordinato (il numero di operazioni è minimo)
Caso peggiore vettore completamente disordinato (il numero di operazioni è massimo)
Per misurare la complessità di un algoritmo non si usa il tempo di esecuzione ma l’ordine di grandezza del numero
di istruzioni che devono essere eseguite, ci interessa però il numero di istruzioni semplificate, ovvero il
comportamento dell’ALGORITMO APPROSSIMATO, ovvero la sua tendenza
Complessità asintotica ordine di grandezza con il quale l’algoritmo si comporta al variare della dimensione
del problema
Istruzione a costo unitario è un’operazione la cui esecuzione non dipende né dal valore né dal tempo delle
variabili, e prende il nome di PASSO BASE. E’ necessario considerare come caso base il singolo ciclo macchina e
valutare ogni istruzione sulla base dei cicli macchina necessari per eseguirla.
O-grande criterio matematico per dividere gli algoritmi in classi di complessità
Esempi:
O (1) algoritmi che eseguono sempre lo stesso numero di operazioni (complessità costante)
O (log n) algoritmo di ricerca binaria o logaritmica (complessità logaritmica)
O (n log n) algoritmi di ordinamento come il quick-sort (complessità pseudolineare)

Anteprima parziale del testo

Scarica Complessità e algoritmi approssimati e più Appunti in PDF di Informatica solo su Docsity!

La complessità

▲ Complessità problemi ogni problema viene classificato secondo una CLASSE DI COMPLESSITA’, ciascuna

caratterizzata da parametri che legano la difficoltà di soluzione al tempo impiegato

▲ Istanza di un problema valori di variabili che può assumere un problema

▲ Algoritmo risolutore un algoritmo risolve un problema se applicato ad ogni sua istanza produce una

soluzione corretta. Parametri di qualità di un algoritmo (descrivono la QUALITA’ sono parametri soggettivi):

1. Semplicità facile da comprendere e modificare

2. Qualità di struttura sia del codice che del programma

3. Accessibilità facile da accedere per l’utilizzo del programma

Criteri di efficienza di un algoritmo (oggettivi):

1. Complessità temporale tempo impiegato per eseguire un programma

2. Complessità spaziale spazio utilizzato

3. Complessità I/O tempo impiegato per l’acquisto o il trasferimento dei dati con le periferiche

4. Complessità trasmissione efficienza I/O di un algoritmo rispetto a stazioni remote

■ Caso migliore vettore già ordinato (il numero di operazioni è minimo)

■ Caso peggiore vettore completamente disordinato (il numero di operazioni è massimo)

▲ Per misurare la complessità di un algoritmo non si usa il tempo di esecuzione ma l’ordine di grandezza del numero

di istruzioni che devono essere eseguite, ci interessa però il numero di istruzioni semplificate, ovvero il comportamento dell’ALGORITMO APPROSSIMATO, ovvero la sua tendenza

▲ Complessità asintotica ordine di grandezza con il quale l’algoritmo si comporta al variare della dimensione

del problema

▲ Istruzione a costo unitario è un’operazione la cui esecuzione non dipende né dal valore né dal tempo delle

variabili, e prende il nome di PASSO BASE. E’ necessario considerare come caso base il singolo ciclo macchina e valutare ogni istruzione sulla base dei cicli macchina necessari per eseguirla.

▲ O-grande criterio matematico per dividere gli algoritmi in classi di complessità

Esempi:

■ O (1) algoritmi che eseguono sempre lo stesso numero di operazioni (complessità costante)

■ O (log n) algoritmo di ricerca binaria o logaritmica (complessità logaritmica)

■ O (n log n) algoritmi di ordinamento come il quick-sort (complessità pseudolineare)