Quando usate un browser web come Chrome, Firefox o Safari su computer, tablet o smartphone sappiate che state utilizzando un programma che contiene nel suo ‘dna’ – inteso come ‘codice di programmazione’ – anche del codice sviluppato da un italiano, precisamente dal matematico Sebastiano Vigna dell’Università Statale di Milano.
Il nuovo algoritmo xorshift128+ nei dispositivi elettronici permette di risolvere un problema trovato in JavaScript – il linguaggio di scripting orientato agli oggetti e agli eventi, spesso utilizzato nella programmazione Web 2.0 per la creazione, in siti web e applicazioni web, di effetti dinamici interattivi. Il problema riscontrato riguarda una funzionalità specifica: la generazione di numeri pseudocasuali, utili ad esempio a identificare le transazioni negli acquisti online o per introdurre casualità nei videogiochi. Da quando JavaScript si è iniziato ad usare non solo per iil web ma anche per la gestione dei server, il problema si è fatto piu’ grave, rendendo necessario trovare una soluzione.
L’algoritmo xorshift128+ è gia’ stato adottato dai principali browser, come Chrome di Google, Firefox di Mozilla e Safari di Apple.
"Generare numeri in modo casuale è difficile e molto costoso", spiega Vigna all’Ansa. "Per questo fin dagli anni Quaranta si sono messi a punto algoritmi che permettono di calcolare in maniera deterministica dei numeri mimando la casualità che si può ottenere solo con processi fisici (come il lancio di un dado) che però sarebbero troppo costosi da riprodurre su larga scala per generare i milioni di bit casuali al secondo di cui si ha bisogno sul web".
Prima dell’introduzione del nuovo algoritmo xorshift128+, le sequenze di numeri pseudocasuali fornite dai browser più comuni si basavano su un algoritmo problematico, come denunciato da una start-up che si occupa di scommesse online, secondo cui l’algoritmo estraeva numeri simili più spesso di quanto ci si poteva attendere, rischiando di identificare due scommesse diverse con la stessa sequenza di numeri.
Adesso, grazie proprio all’algoritmo xorshift128+ scritto da Sebastiano Vigna, il problema legato alla creazione di sequenze di numeri pseudocasuali con JavaScript è risolto, e questo codice sarà installato ed eseguito sulla maggiorparte dei dispositivi elettronici, come cellulari, tablet e pc nuovi ed esistenti.
Chi è Sebastiano Vigna? Il matematico italiano che ha creato l’algoritmo xorshift128+ per risolvere una falla in Javascript ha ricevuto la laurea in Matematica presso l’Università di Milano nel 1991, e il dottorato di ricerca in Scienze dell’Informazione presso l’Università di Milano nel 1996. Attualmente è professore associato presso il Dipartimento di Informatica dell’Università degli Studi di Milano, e un membro del LAW (Laboratory for Web Algorithmics) istituito nel 2002 presso il Dipartimento di Scienze dell’Informazione (ora confluito nel Dipartimento di Informatica) dell’Università degli studi di Milano. La ricerca in LAW riguarda tutti gli aspetti algoritmici dello studio del web e dei social network. Tra gli altri progetti a cui Vigna sta lavorando: compressione di web e social graphs; Analisi di web e social graphs; Strutture dati efficienti per grandi quantità di dati; Indicizzazione di grandi collezioni di documenti; web crawling paralleli ad alte prestazioni; Generazione automatica di software da modelli concettuali; Computabilità su numeri reali; Teoria delle reti anonime (proprietà topologiche e problemi computabilità); Sistemi auto-stabilizzanti.