Sbagliando si impara. L’algoritmo che si autocorregge

Sbagliando si impara. L’algoritmo che si autocorregge

Un algoritmo è un insieme di passaggi codificati per risolvere un problema. Si tratta di un procedimento logico tradotto da un numero finito di passaggi elementari. Tecnicamente è uno dei concetti chiave alla base dell’informatica. Praticamente è quello che gli esseri umani sono abituati a fare fin dalla nascita per imparare, con la differenza che i processi cognitivi degli esseri umani sono non univoci, soggetti all’emotività e all’interpretazione.

Una ricetta è un algoritmo per uno chef, come lo schema di risoluzione di equazione lo è per un matematico. Più variabili ci sono, più complessa sarà la scrittura dell’algoritmo e anche la sua esecuzione. Per sua natura, un algoritmo è un’operazione di riduzione: tutto ciò che può essere descritto può essere trasformato in una sequenza di elementi elementari. Ogni comportamento umano può essere ridotto alla somma delle singole parti. Così gli algoritmi fanno ormai parte della nostra esperienza quotidiana, dalle ricerche su Google al sistema di mobilità per gli insegnanti nella scuola, passando per i filtri sui social e a quelli per l’ecommerce di Amazon. Invisibili e sempre più potenti, gli algoritmi sono in grado di orientare scelte e decisioni. Ma sono sempre infallibili? Di fatto, un algoritmo è sempre soggetto alle manipolazioni, in quanto prodotto della programmazione umana.

Dal 2006 a oggi, ci sono stati almeno sei flash crash che hanno rischiato di far saltare i mercati finanziari di mezzo mondo, tutti riconducibili ad algoritmi fuori controllo. Senza però correre il rischio di legare la salvezza o la condanna dell’umanità a una sequenza di codice, i ricercatori dell’Università degli Studi di Roma La Sapienza hanno messo a punto un algoritmo matematico che si autocorregge in caso di errore. Serve alla risoluzione di problemi complessi alla base della crittografia moderna e per il design e la verifica di circuiti integrati nei microchip. L’algoritmo è stato battezzato “backtracking survey propagation” ed è in grado di assegnare le variabili del problema un po’ alla volta sulla base delle informazioni raccolte in una procedura dinamica detta di “message passing”.

Ma come funziona? Ogni variabile fa una stima del valore che dovrebbe assumere per risolvere il problema e “passa” questa informazione alle variabili accanto. In aggiunta, il nuovo algoritmo permette anche di tornare indietro, nel caso in cui sia stato commesso un errore, liberando alcune variabili già assegnate e permettendo di affrontare e risolvere problemi che prima erano intrattabili.

Categorie: Software