Il suono di un computer che riordina le cose

Sound Sorting

Musica dai numeri, per una volta, invece che il contrario. E tutto quanto perché Timo Bingmann, studente PhD dell’Istituto di Informatica e Algoritmica di Karlsruhe, in terra di Germania, ha messo assieme una delle più inutili, ed al contempo suggestive, applicazioni dell’ambito open source: una demo musicata, fondata sull’incontro ben riuscito tra immagini elaborate al computer e suoni sintetici disposti sul raggio dei 120 Hz – 1,212 Hz, che non avrebbero di certo sfigurato in Space Invaders, Pac-Man, o la prima genesi di Mario Bros; ma le fondamenta del progetto, e c’era da aspettarselo visto il livello dell’autore, non si limitano al solo àmbito del puro svago. Ma trovano piuttosto l’origine da un bisogno assoluto e primordiale della matematica, il gesto encomiabile che ha il nome di divulgazione. Sfido chiunque, posto di fronte ad un simile sequenza di animazioni, soltanto una minima dimostrazione sequenziale di quello che può fare l’app The Sound of Sorting, a non porsi momentaneamente la questione del che cosa ha appena visto, quale sia l’origine di un tale susseguirsi di linee ubriache, suoni e spostamenti finalizzati alla risoluzione del problema. Ottimo! Perché per approfondire, tutto ciò che risulta in effetti necessario fare è visitare il sito dell’autore, dove codice sorgente e software precompilato sono liberamente disponibili a vantaggio dei curiosi. Per instaurare anche noi, grazie a un paio di lievi passaggi con il mouse, un rapporto più diretto con quello che può fare un moderno computer, e comprendere davvero quanto siamo fortunati a vivere nell’epoca dei processori da un milione di transistor, interconnessi grazie a fili spessi appena un decimo di micron (quando un capello ne misura 100 di spessore).
Tutto inizia, come sempre capitò, nel caos: un istrogramma di linee bianche, disposte alla rinfusa sopra un fondo scuro. Questa sequenza non ha un compito difficile alla comprensione, perché rappresenterebbe, nella prassi geometrica acclarata, una serie di numeri, progressivamente sempre più grandi ma disposti alla rinfusa. Un dataset. Che in termini informatici, altro non sarebbe che una serie di entità con una vaga relazione tra di loro, generalmente incasellati all’interno di una singola tabella di database. Pensate, ad esempio, ad un foglio Excel contenente l’anagrafica di un’intera azienda da 2.000 dipendenti, indicante per ciascuno nome, cognome e data di nascita. Ora, per ordinare un simile marasma secondo crismi differenti, come quello alfabetico oppure l’età, tutto quello che dobbiamo fare è premere metaforicamente un pulsante, o per meglio dire tirar giù un menù a tendina, poco prima di selezionar l’ipotesi corretta. Ma se soltanto…Prima di farlo appoggiassimo un orecchio, molte volte più piccolo, preciso e percettivo del nostro di semplici umani, sulla superficie di silicio della prima làmina di un chip, forse ci renderemmo conto del folle movimento che richiede un tale calcolo automatico, del turbine di elettroni posseduti, la micro-energia che trova sfogo con un’enfasi nei fatti impossibile, fino a un paio di generazioni fà. Forse, per intraveder l’immagine di una figura: Monna Lisa Cyberpunk, come fu tradotto l’Overdrive di William Gibson, terzo romanzo di una serie, pubblicato sul finire degli anni ’80, quando finalmente, il pensiero digitale terminava un processo di fuoriuscita dall’àmbito specialistico dei matematici teorici, per passare a quello delle forme ad incastro e degli idraulici fungini, alla ricerca di una strada di mattoni gialli per il prossimo futuro. Era come se la donna leonardesca, raffigurata sullo sfondo di un selvaggio bosco di addizioni, d’un tratto aprisse gli occhi, pronunciando questa frase: “Io sono lo Zero. E tu, sai contare fino a Uno?” Bene, perché al resto penso io.

Quick Sorting
Non tutto deve essere per forza sterile e inumano. Alla Sapientia University di Tirgu Mures, Romania, spiegano gli algoritmi di ordinamento con dei balli etnici, in cui a ciascun partecipante viene assegnato un numero del database. Di video come questo, ce n’è un’intera serie.

L’esperienza di provare direttamente ciò da cui deriva il video d’apertura (disponibile in fondo alla pagina, in versioni Win o Linux) la consiglio caldamente, a chiunque sperimenti un qualsivoglia interesse passeggero sull’argomento ma anche a tutti coloro che abbiano un paio di minuti da perdere dietro a una sublime verità. Ciò che si è chiamati a fare, in questa demo tecnica di un particolare ramo del pensiero, è selezionare l’ampiezza del dataset, quindi scegliere quale algoritmo implementare nella propria epica Ricerca. Ce n’è un po’ per tutti i gusti, dal grande classico dell’insertion sort, che consiste nel confrontare ad ogni passaggio tutti i numeri nell’istogramma, per poi crearne un’altro a lato già ordinato, al suo cognato più metodico, il merge sort, finalizzato all’applicazione del metodo divide et impera, ciò a dire, la divisione in una serie di scale progressive parallele, poi sovrapposte l’una all’altra, ossia inglobate, verso l’ottenimento dell’assoluta perfezione. E tutto sempre reso enfatico, grazie all’impiego di quel fischio modulato, in cui ciascuna comparazione emette un suono, nella creazione di una melodia che forse non sarà particolarmente orecchiabile, ma certamente lascia un’impressione degna di essere narrata. Viene quindi il turno del quick sort, lo straordinario metodo inventato da Tony Hoare nel 1959, che consiste nella scelta arbitraria di una serie di numeri di pivot (rotazione assiale) sulla base dei quali vengono abbinati gli altri, facendoli letteralmente piroettare avanti e dietro la membrana dello spazio visibile, sarebbe a dire, il velo d’illusione che in lingua sanscrita fu definito māyā, la creazione. E c’è davvero da stupirsi, se tanti insigni cervelli dell’epoca d’oro di Silicon Valley, tra cui Gates e Jobs, furono sempre affascinati dalle discipline orientali, giungendo addirittura (in casi meno celebri) a dichiararsi fervidi buddhisti? C’è qualcosa, in questa religione popolare nell’Estremo Oriente, che parla di un estremo razionalismo, applicato ai ritmi e crismi del pensiero transumano…Ma già la pagina è voltata, mentre si procede verso algoritmi ancor più efficienti, vertiginosi e spettacolari nella loro impossibile complessità.

Multi Sorting
In tempi più recenti, Bingmann ha prodotto un secondo video, in cui i diversi sistemi di ordinamento vengono fatti gareggiare tra di loro in parallelo, usando dei dataset della stessa grandezza. Qui appare, infine, tremendamente chiara l’inefficienza di alcuni dei metodi che producevano il “canto” migliore.

Lo heapsort è un sistema caotico che lavora per “cumuli” (heaps) all’interno dei quali viene per prima cosa individuato l’elemento più grande o piccolo di ciascun gruppo. Quindi questo, di volta in volta, viene integrato nella lista ordinata, in ciò che costituisce statisticamente un notevole miglioramento del semplice gesto di prendere i dati uno per uno, poi spostarli nella posizione corretta. Segue il radix sort, un’approccio particolarmente utile quando, come in questo caso, si ha a che fare con dei valori numerici puri: questo algoritmo prende in analisi infatti una cifra alla volta, a seconda delle preferenze dell’utilizzatore, l’unità, la decina, il centinaio oppure…Quindi passa a quella successiva e così via, finché non si ottiene quella scala graduata discendente, che nel mondo musicale di The Sound of Sorting è per prima cosa un’esperienza aurale (mmmmMMM-Bop) soddisfacente in se e per se, pur non avendo alcuna valida funzione.
Ma forse il video è al suo meglio nella parte successiva, quando vengono mostrati gli algoritmi cosiddetti semplici o per meglio dire inefficienti. Il migliore sound è forse conteso tra il bubble sort, un metodo che consiste nel comparare i dati una coppia per volta, scambiandoli se sono nell’ordine sbagliato, in una serie interminabile di plurimi passaggi, e lo gnome sort, un metodo inventato come parte di un esperimento teorico del Dr. Hamid Sarbazi-Azad dell’Università di Sharif, e che è stato scherzosamente paragonato all’approccio di uno gnomo che debba ordinare un grande numero di vasi fioriti. Ovvero, prendendoli uno per volta, confrontandoli con ciò che hanno a fianco e infine mettendoli da una parte in ordine di grandezza, in una sorta di versione inutilmente complicata dell’insertion sort. Ma il piccolo popolo, si sa, vive a dei ritmi molto differenti dai nostri. È stato del resto provato che un essere umano, trovandosi di fronte al compito di dover riordinare un mazzo di carte, non segue un approccio metodico e sempre uguale, come negli algoritmi computerizzati, bensì ne applica di differenti senza soluzione di continuità, mescolando in genere l’insertion con diverse varianti del bubble sort. Non è questo, che l’ultimo mistero del nostro cervello, che equivale a un numero imprecisato di possenti processori epta-core posti in sequenza, con quintillioni di possenti banchi di ram, eppure dimentica il nome di un collega nel giro di due secondi, per non parlare del numero di telefono del proprio capufficio.
Riordinare diventa, quindi, un processo gradevolmente musicale. Quale miglior modo per dare colore alla giornata? Una sequenza di numeri disordinati, nel pensiero tecnico specializzato, non è altro che un drago da sconfiggere, con la migliore arma a disposizione e che sia diversa in base al caso e alle necessità. Non esiste un algoritmo “migliore” proprio come l’ascia di Conan non è meglio del martello di Thor, né del resto la spada Excalibur, della lancia Gae Bolg. Tutto dipende dallo spessore delle scaglie che si hanno di fronte; l’ampiezza delle pipistrellesche ali; la quantità di denti avvelenati. Anche se uno stregone logaritmico potrebbe dissentire: sarebbe infatti possibile, per chi manovra gli universi paralleli della scienza quantistica, creare una lista ordinata sulla base delle particelle prive di una massa, e quindi di una posizione nello spazio. A quel punto, a patto di non osservarle (come nel famoso paradosso del Gatto) il dataset sarebbe al tempo stesso in ripida sequenza, e per mille volte volte disordinato. Nessun algoritmo umano può competere con una simile realtà. Peccato soltanto che a quel punto, per avere una lista finalmente corretta, l’unica soluzione sarebbe distruggere tutti i mondi tranne il milleunesimo. Aspetta un attimo! Possibile che questo…Sia GIÀ successo?

Lascia un commento