Algoritmo

L'algoritmo è un procedimento che permette di calcolare un risultato e risolvere un problema, eseguendo una serie di ordini e condizioni imposta te a priori. L'algoritmo è un termine utilizzato in informatica per indicare la logica di calcolo seguita da un programma informatico per risolvere un problema. Sulla base dei dati di input un algoritmo calcola un valore in uscita (output) sulla base di un procedimento di risoluzione del problema. Per essere elaborato ed eseguito da un computer l'algoritmo è infine tradotto in una serie di istruzioni macchina tramite i linguaggi di programmazione informatica. L'algoritmo è un metodo di calcolo esplicito (inconfutabile) ed è descritto con un numero finito di regole. La parola algoritmo deriva dal nome del matematico persiano Muhammad ibn Mûsa 'l-Khwârizmî del IX secolo d.C. che lo utilizzò per indicare dei procedimenti di calcolo numerico sulle cifre arabiche. Ancora oggi la parola algoritmo è sinonimo di procedimento matematico di calcolo. Le principali caratteristiche di un algoritmo sono le seguenti:

  • Completezza. La completezza di un algoritmo consiste nella sua capacità di trovare una soluzione al problema per cui è stato sviluppato.
  • Ottimalità. L'ottimalità è una caratteristica che si verifica se la soluzione trovata dall'algoritmo è la migliore possibile.
  • Complessità. La complessità di un algoritmo consiste nell'effettiva applicazione pratica dello stesso per la soluzione di un problema in termini di tempo di elaborazione impiegato ( complessità temporale ) e di memoria utilizzata ( complessità spaziale ).

Un problema si dice trattabile ( problema trattabile ) se esiste un algoritmo in grado di risolverlo computazionalmente con una complessità polinomiale. Viceversa, il problema è detto problema intrattabile. Un problema trattabile può essere risolto utilizzando algoritmi diversi, più o meno complessi. A parità di efficacia dell'algoritmo la teoria della complessità consente di individuare l'algoritmo efficiente ossia quello in grado di risolvere il problema con minore tempo di esecuzione e minore consumo di risorse ( okpedia ).

condividi

 
 
commenti