Breve e universale storia degli algoritmi

di Luigi Laura

Luiss University Press

Leggi un estratto

Introduzione

Gli algoritmi oggi controllano tantissimi aspetti delle nostre vite: ci sono algoritmi che cercano per noi informazioni sul web, che decidono i prezzi dei biglietti aerei e quali pubblicità vedremo su internet, algoritmi che progettano serie tv, algoritmi che ci guidano passo passo nel raggiungere una destinazione usando un navigatore o un programma su uno smartphone, algoritmi che decidono quali notizie vediamo nei social network.

Ma cosa è, esattamente, un algoritmo? Sono state proposte diverse definizioni, di cui parleremo in maggior dettaglio in seguito; per il momento possiamo dire che un algoritmo è simile a una ricetta: è un procedimento per giungere a un risultato (ad esempio, una torta) a partire da dati o informazioni in ingresso (gli ingredienti). Questa metafora ci consente anche di chiarire la relazione tra programmi e algoritmi: gli algoritmi sono la parte teorica di un programma per computer e esistono indipendentemente dall’essere stati implementati in uno o più programmi; questo è simile a quello che avviene per le ricette, che rappresentano la parte teorica della cucina: una ricetta esiste indipendentemente del fatto che sia stata implementata (preparando il piatto corrispondente) una o più volte.

Da un punto di vista storico, i primi algoritmi di cui abbiamo traccia risalgono a circa 4000 anni fa, nell’antico Egitto e a Babilonia, ed erano essenzialmen- te algoritmi di calcolo numerico, come gran parte degli algoritmi fino al secolo scorso.

Ma la vera grande rivoluzione che ha portato gli algoritmi a diffondersi non ha a che fare con il calcolo numerico, bensì con due fattori: la capacità di manipolare informazioni di qualsiasi natura, non solo numeri, e la diffusione dei computer e il loro collegamento nell’artefatto più complesso realizzato dall’uomo – il World Wide Web, la rete di documenti e contenuti che si poggia su Internet, la rete di reti di computer.

In questo libro ripercorriamo le tappe dell’incredibile ascesa al potere degli algoritmi: nel capitolo seguente cercheremo di comprendere meglio cosa sia un algoritmo, con esempi di algoritmi creati da personaggi che non vi aspettereste, come Giulio Cesare, Edgar Allan Poe e Sherlock Holmes, solo per citarne alcuni. I due capitoli successivi descrivono, per sommi capi, le idee e le persone che hanno portato alla creazione del computer, ovvero di una macchina in grado di eseguire qualsiasi algoritmo, e di Internet e del World Wide Web. Nel quarto capitolo parleremo degli algoritmi usati dai colossi dei nostri giorni: Google, Facebook, Amazon e Netflix; come vedremo, i loro sistemi sono accomunati dal fatto di cercare di capire cosa ci piaccia.

Poi affronteremo aspetti di cui si parla poco: fino ad ora ci siamo concentrati sull’interazione tra le persone e gli algoritmi, ma cosa succede quando gli algo- ritmi interagiscono tra di loro? E vedremo anche come sia possibile costruire, tramite algoritmi, un sistema monetario decentralizzato (Bitcoin) basato su una tecnologia interessantissima ma al tempo stesso piena di insidie, la Blockchain. Infine, parleremo dei recentissimi progressi nel campo dell’intelligenza artifi- ciale, ottenuti con idee algoritmiche che risalgono alla metà del secolo scorso ma che solo oggi, disponendo di potenza di calcolo adeguata e grandi quantità di dati (i famigerati Big Data), si stanno manifestando.

Per i lettori più arditi, in appendice riportiamo alcuni esempi di programmi in diversi linguaggi di programmazione; alla fine di ogni capitolo trovate un indovinello algoritmico, la cui soluzione è proprio un algoritmo. Se volete verificare la correttezza della soluzione trovata, o non siete riusciti a risolverli, le soluzioni sono alla fine di questo libro.