Si sente parlare sempre più spesso di algoritmi, in genere descritti, nel discorso pubblico e nei media, come non meglio identificate entità in grado di prendere decisioni, ma di che cosa si tratta esattamente? Abbiamo chiesto a Chat GPT, il software più famoso degli ultimi tempi, di darcene una definizione:

“In informatica, un algoritmo è una serie di istruzioni logiche e precise che descrivono come risolvere un determinato problema o eseguire una specifica attività. In altre parole, un algoritmo è un processo sistematico che prende in input uno o più valori e li elabora seguendo un insieme di istruzioni per produrre un risultato finale. Gli algoritmi sono utilizzati in una vasta gamma di applicazioni informatiche, come ad esempio la ricerca su Internet, la crittografia, l’analisi dei dati, l’intelligenza artificiale, la progettazione di software, e molti altri. Un buon algoritmo deve essere efficiente, accurato e generalmente applicabile, in modo che possa essere utilizzato in diversi contesti e risolvere il problema in modo efficiente e corretto”.

Dunque, l’algoritmo è qualcosa di molto più semplice, almeno in teoria, di quello che ci aspetteremmo: si tratta di una serie di passaggi da un punto di inizio a un punto di fine, ognuno dei quali non ulteriormente divisibile e che renda possibile una risposta univoca, processabile attraverso codice binario.

Su questo semplice concetto si sono costruite molte delle più complesse tecnologie che utilizziamo oggi. Il concetto di algoritmo, tuttavia, è molto antico e la sua storia ci riporta indietro all’antichità e al Medioevo. Di questo aspetto si occupano due libri usciti di recente: Algoritmi, monaci, mercanti di Giorgio Ausiello e Breve e universale storia degli algoritmi di Luigi Laura ()

Il concetto di algoritmo non nasce con l’informatica, ma esiste già prima in ambito matematico come la definizione dei passaggi di calcolo per ottenere un risultato. Esempi di questo tipo sono ritracciabili nelle tavolette babilonesi, studiate da Donald Knuth, che si chiudevano con la frase “questo è il modo di procedere”.

All’interno della storia dell’algoritmo ci sono alcune figure che hanno ricoperto dei ruoli centrali, come i matematici arabi (da uno di loro, Al-Khwarizmi, deriva la stessa parola algoritmo), i monaci spagnoli, i mercanti ebrei, i matematici e i maestri d’abaco europei.

Nel corso del Medioevo gli algoritmi sono stati utilizzati in ambito matematico e astrologico per il calcolo di numeri e posizioni celesti, ed erano trasmessi spesso oralmente, almeno fino all’invenzione della stampa. Esempi di libri sugli algoritmi sono però presenti fin dall’antichità, tra di essi si può citare gli Elementi di Euclide, del III secolo a.C., che contiene l’algoritmo di Euclide per il calcolo del massimo comun divisore di due numeri interi; al III secolo d.C. risale l’Arithmetica di Diofanto, che riporta algoritmi per la risoluzione di equazioni di secondo grado; ci sono poi il Libro dell’addizione e della sottrazione e il Libro del calcolo indiano di Al-Khwarizmi, risalenti al IX secolo d.C.; infine, ricordiamo il Liber Abaci di Leonardo Fibonacci, del XIII secolo, nel quale appare il famoso l’algoritmo per il calcolo della serie di Fibonacci.

L’applicazione del concetto di algoritmo in informatica va attribuita alla matematica britannica Ada Lovelace, attiva nella prima metà dell’800. Figlia del poeta inglese Lord Byron, ma abbandonata dal padre a pochi mesi dalla nascita, Ada Lovelace completò gli studi universitari in matematica, nonostante le difficoltà per le donne dell’epoca. Nel 1833 incontrò il matematico Charles Babbage, che si stava occupando di creare uno dei primi modelli di calcolatore meccanico.

Ada Lovelace intuì la necessita di programmare la macchina attraverso delle istruzioni per eseguire calcoli complessi e teorizzò il fatto che i numeri dovessero essere considerati come entità e non come quantità. In questo modo tutti i simboli potevano essere ridotti a numeri e in quanto tali manipolati attraverso un calcolatore. Così Ada Lovelace, circa cento anni prima di Touring, anticipò il concetto di universalità del calcolatore e l’idea di programmazione. Il suo algoritmo per calcolare i numeri di Bernoulli può essere considerato come il primo software della storia dell’informatica.

Da quel momento in poi le applicazioni degli algoritmi all’informatica garantiranno lo sviluppo e il successo della disciplina. I libri di Ausiello e Laura ci mostrano il lungo cammino che attraverso i secoli ci ha portato a sviluppare le tecnologie che oggi danno forma al nostro mondo e che determinano il nostro modo di vivere.

I due studiosi riescono ad avvicinare il lettore a un concetto come quello di algoritmo, sempre più presente nei nostri discorsi, e aiutano a riconsiderare la profondità storica anche delle cose che ci sembrano più moderne.

[In collaborazione con Daniel Raffini]

Condividi: