Si definisce “Algoritmo“, in informatica, un sistema di calcolo, che restituisce un risultato in base alla verifica della veridicità di determinate condizioni.
In altre parole, l’algoritmo può così essere definito come un’elaborazione di dati che avviene secondo una serie di passaggi definiti e che restituisce un risultato univoco ad un problema.
Se dovessimo disegnare un algoritmo, potremmo pensare ad un diagramma di flusso: l’ordine che diamo alle istruzioni è fondamentale affinché il risultato sia quello atteso.
Oggi il termine “algoritmo” è tornato alla ribalta in quanto frequentemente associato al quello di “Intelligenza Artificiale“, a quello di “Machine Learning” e marketing automation.
In modo particolare in questo ultimo caso, i sistemi non solo si limitano ad eseguire quanto fornito, ma eseguendolo migliorano e riscrivono l’algoritmo stesso.
In tale contesto il riferimento è spesso fatto ad una particolare tipologia di algoritmi, quelli predittivi. Essi lavorano ed imparano sulla base di dati raccolti, per prevedere trend futuri.
Esistono diverse tipologie di algoritmo, ma esistono delle caratteristiche comuni che possiamo identificare in:
- atomicità – i passi dello schema non devono essere ulteriormente scomponibili;
- non ambiguità – i passi dello schema devono essere interpretabili in modo univoco;
- finitezza – ci deve avere un numero definito di passaggi;
- terminazione – l’algoritmo deve avvenire in un tempo definito;
- effettività – si deve arrivare ad un solo risultato.
L’algoritmo è un concetto fondamentale dell’informatica e le prime nozioni ed i primi riferimenti si trovano addirittura in documenti che risalgono al XVII secolo A.C.
Il termine, così come lo conosciamo oggi, deriva però da una trascrizione latina del nome di un matematico persiano al-Khwarizmi.
La formalizzazione matematica più famosa è senza dubbio quella della macchina di Turing risalente agli anni trenta del novecento.