giovedì 30 maggio 2019

Codice binario, tra arte e matematica

“Abbiamo cercato di trasferire in arte ed andare ‘oltre’ il linguaggio che si cela dietro la più grande invenzione del secolo scorso: il computer. Ogni quadro custodisce, ed è celato, sottoforma di linguaggio binario, un messaggio, un ‘segno’ dell’umanità [...] Si crea così un dialogo artistico con chi saprà, uomini e donne del nostro tempo, leggerne il sottile linguaggio d’amore.”
(Giordano Redaelli) 


Superficie verde salice. L'albero è...(2018) - M&G Redaelli -  foto © Annalisa Santi

Come ci fa capire lo stesso Giordano Redaelli questo quadro fa parte della serie di opere, da lui ideate insieme al padre Michele, che, attraverso il codice binario, traducono su tela parole, frasi simboliche e anche pensieri di filosofi come Aristotele, di santi come Madre Teresa, e di scienziati come Einstein o Margherita Hack. 

L'opera citata fa parte della mostra "Arte e Salute alle radici della prevenzione", una mostra collettiva d'arte contemporanea sul tema dell'albero, molto interessante e irtrigante (inaugurata in questi giorni alla Sala Eventi del grattacielo Pirelli a Milano, a cura di Francesca Bianucci e Chiara Cinelli), che mi ha dato lo spunto per prendere in considerazione alcune opere esposte che mi hanno particolarmente colpito per le chiare implicazioni matematiche.


Mostra "Arte e Salute alle radici della prevenzione" dal 15 al 29 maggio 2019 allo 
Spazio Eventi Grattacielo Pirelli - via Fabio Filzi 22 - Milano

Tra queste opere vorrei oggi analizzare, legandola solo a curiosità matematiche, questa opera di Giordano e Michele Redaelli.     
Appare forse singolare che l'opera presenti questa semplice composizione di numeri, per di più limitati a solo due, lo <0> e l’ <1>, anche se l’arte, di ogni tempo e civiltà, spesso in modo inconsapevole, presenta una struttura matematica. 
Traducendo il codice binario del quadro, in testo a noi più comprensibile, si legge la frase "L'albero è salute. ~ L'albero è vita".
Anche in questo acrilico su tela è celato quindi il significato dell'albero che simbolicamente, sia nella pittura, dalle tele di grandi artisti del passato agli interpreti contemporanei, come nelle anonime trame dei tappeti persiani, è sempre stato universalmente considerato un simbolo di vita e di salute.
Dall’immagine biblica dell’albero della vita alle parole di Alce Nero, il mistico Sioux che lo rappresentava al centro del cerchio del mondo, l’albero costituisce davvero un’immagine universale e archetipica, un simbolo potente che vive e si moltiplica, nello spazio e nel tempo, in un’infinita varietà di forme.

Una di queste varietà e che ha costituito per me una particolare curiosità matematica è rappresentata appunto dall'opera "Superficie verde salice. L'albero è..." di M&G Redaelli. 
Una curiosità matematica basata sulla polarità espressa dal codice binario che, sul piano estetico, i due artisti traducono elaborando un linguaggio astratto improntato all’essenzialità visiva e al rigore:

“Questa polarità si esprime in una serie di opposte tensioni che dettano il ritmo dell’opera, infondendo dinamismo al rigore della composizione: semplicità e complessità, luce e ombra, pieno e vuoto, ripetizione e variazione, esattezza e ambiguità, positivo e negativo. La monocromia delle tele associata alla ripetizione seriale dei numeri 0 e 1, disposti in sequenze regolari ma variabili, crea un clima percettivo di pura astrazione visiva che invita a fare un passo più in là, oltre i confini dell’opera stessa”.
(Francesca Bianucci e Chiara Cinelli)

A parte le considerazioni estetiche, ben sottolineate dalla competenza delle due curatrici della mostra, prendo io spunto proprio da quest'opera per introdurre alcune curiosità, magari meno note, sul codice binario.
In informatica e discipline affini, l'espressione codice binario si riferisce, in generale, a notazioni che utilizzano simboli binari (o bit) e può avere numerosi significati specifici:
- nel contesto della programmazione, per codice binario si intende un codice eseguibile da un processore, ovvero si riferisce a un programma (o altra porzione di software) scritto in linguaggio macchina
- nel contesto della rappresentazione dei dati, il termine codice binario si può riferire a un modo di rappresentazione dei numeri interi corrispondente al sistema numerico binario o a un sistema derivato (per esempio la rappresentazione in complemento a due)
- l'espressione codice binario potrebbe essere usata anche in senso generico per intendere un codice (nell'accezione della teoria dell'informazione, della crittografia o di altre discipline analoghe) che utilizza un alfabeto composto da due soli simboli (zero e uno).
Interessante curiosità è l'esempio della codifica binaria di 4 colori diversi: rosso, verde, blu, giallo, in cui a ciascun colore può essere associato il seguente codice: 
rosso 00, verde 01, blu 10, giallo 11.

Ma storicamente a chi si deve l'ideazione del sistema binario?
Il sistema numerico binario è un sistema numerico posizionale in base 2, vale a dire che utilizza solo due simboli, <0> e <1> , invece delle dieci cifre utilizzate dal sistema numerico decimale.  Ciascuno dei numeri espressi nel sistema numerico binario è definito "numero binario" così come i numeri che solitamente usiamo col sistema decimale, a base 10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), sono definiti "numeri decimali".
In informatica il sistema binario è utilizzato per la rappresentazione interna dell'informazione dalla quasi totalità degli elaboratori elettronici, in quanto le caratteristiche fisiche dei circuiti digitali rendono molto conveniente la gestione di due soli valori, rappresentati fisicamente da due diversi livelli di tensione elettrica. 
Tali valori assumono convenzionalmente il significato numerico di 0 e 1 o quelli di vero e falso della logica booleana.
Tradizionalmente, l’invenzione del sistema si fa risalire al filosofo e matematico tedesco Gottfried W. Leibniz che, nel 1679, pose le basi dell’aritmetica binaria nel suo celebre manoscritto “De Progressione Dyadica” e successivamente Leibniz intuì che il suo sistema potesse essere usato anche a fini logici. Intuizione che si concretizzerà a metà del XIX secolo, quando il matematico inglese George Boole fonderà la logica matematica, ponendo le basi per il futuro linguaggio informatico.


 "Mathesis biceps. Vetus, et noua" (1669) - Juan Caramuel 

Ma fu davvero Leibeniz il primo? 
Al sistema numerico binario sono stati attribuiti molti padri, ma il primo a proporne l'uso fu Juan Caramuel con la pubblicazione del volume "Mathesis biceps. Vetus, et noua" pubblicato a Campagna nel 1669, dieci anni prima della pubblicazione, nel 1679, del “De Progressione Dyadica” di Gottfried Wilhelm von Leibniz, e se ne trova traccia anche nelle opere di Nepero.
Caramuel, chiamato "Magnus" dai contemporanei, fu veramente un uomo straordinario, il cui ingegno portentoso e versatile gli permise di riuscire in tutti i settori dello scibile.
Conoscitore di ben ventiquattro lingue, poliglotta-poligrafo, lasciò una produzione bibliografica talmente copiosa e svariata da sbalordire, ma non è passato alla storia per l'ideazione del sistema binario, bensì è forse più noto come architetto, soprattutto per la Cattedrale con fronte curvilineo che si affaccia sulla splendida piazza Ducale di Vigevano. 
Solo quindi successivamente, il matematico tedesco Gottfried Wilhelm von Leibniz ne studiò l'aritmetica, prendendo spunto dagli esagrammi cinesi, incentrati sull’alternanza binaria delle linee continue e spezzate, dell’I Ching o Libro dei Mutamenti, l’antico testo della cultura tradizionale cinese, attribuito al leggendario imperatore Fu Hsi (Leibniz, il sistema binario e la Cina).


Leibniz accosta gli otto trigrammi fondamentali ai primi otto numeri binari (da 0 a 7), 
sostituendo la linea spezzata Yin con lo 0 e la linea continua Yang con l’1
 e leggendo i trigrammi dal basso verso l’alto. 
Combinando questi 8 trigrammi, si ottengono i 64 esagrammi 
che costituiscono il sistema completo dell’I-Ching

Sarà quindi Leibniz sia ad usare le cifre <0> e <1> per la codifica dei numeri, che a descrivere le principali regole aritmetiche che soggiacciono alla matematica binaria. 
Nel 1703, per sostenere tale sistema di numerazione egli scrisse:

"Invece della progressione di dieci in dieci, impiego da molti anni la progressione più semplice di tutte, che va di due in due, ritenendo che sia perfettamente adeguata alla scienza dei numeri. Utilizzo solo due caratteri, “0” e “1” e poi, quando sono arrivato a due, ricomincio" 
(Leibeniz)

Però, come accennato prima, non ebbe un seguito immediato e l'aritmetica binaria venne ben presto dimenticata e riscoperta solo nel 1847 grazie al matematico inglese George Boole che aprirà l'orizzonte alle grandi scuole di logica matematica del Novecento e soprattutto alla nascita del calcolatore elettronico.

Tornando all'opera dei Redaelli, analizzando e convertendo il testo (usando questo convertitore), si vede come questo codice venga qui utilizzato come codice puramente alfabetico e non numerico.
Ma anche qui salterà agli occhi un'altra curiosità legata al codice e a una importante teoria matematica, la teoria dei codici.

Come anticipato le righe del codice corrispondono alla frase (tradotta da binario ad alfabeto latino ASCII)
L albero è salute. ~ L albero è vita.

0001110001[]01001100L0001100[]01100001a01101100l01100010b01100101e01110010r01101111o00100000spaziovuoto11101000è00100000spaziovuoto01110011s01100001a01101100l01110101u01110100t01100101e00101110.00100000spaziovuoto01111110~00100000spaziovuoto01001100L00011001[]01100001a01101100l01100010b01100101e01110010r01101111o00100000spaziovuoto11101000è00100000spaziovuoto01110110v01101001i01110100t01100001a00101110.00011101

Va qui però notata una stranezza che parrebbe un errore. 
Nel testo, al simbolo []  corrisponde sia 0001110001 iniziale che 00011001 (in seguito con un 1 e uno 0 in meno) perché mai? 

[] = 0001110001 o 00011001

E'un esempio molto banale e semplicistico (solo per rendere l'idea), per spiegare l' importanza della ridondanza nella codifica dell'informazione.
Le informazioni in codice binario devono essere comprensibili ad un operatore umano, e assumono prevalentemente la forma di caratteri alfanumerici (numeri decimali, lettere dell’alfabeto, simboli di punteggiatura, simboli matematici etc..).
Tale apparente incomunicabilità fra i due linguaggi, viene ricomposta mediante l’adozione di opportune codifiche, mediante le quali è possibile rappresentare in modo univoco un certo numero di simboli con configurazioni di bit prestabilite e una stringa o parola in un dato alfabeto è una successione di simboli (anche ripetuti) di quell’alfabeto.
Per rappresentare le 10 cifre distinte dei numeri decimali, occorrono codici binari a 4 bit (m = 4), quando, oltre alle cifre decimali, si vogliono anche codificare caratteri (maiuscoli e minuscoli), punteggiatura, simboli matematici etc... occorre estendere il numero di bit m del codice.
Il codice decimale BCD (Binary Coded Decimal)
Con questa codifica, ogni cifra decimale è rappresentata
dal binario puro corrispondente, secondo la tabella

Il numero decimale (5902) convertito in codice binario BCD

Il codice ASCII (l'acronimo ASCII significa American Standard Code for Information Interchange) è di gran lunga il codice alfanumerico più diffuso per lo scambio di informazioni fra sistemi di elaborazione e costituisce di fatto uno standard per la codifica dell’informazione nei sistemi di elaborazione.
Il codice ASCII standard è codificato su 7 bit, e quindi può rappresentare al massimo 2^7 = 128 simboli diversi.

Lo standard Unicode è stato introdotto per rappresentare caratteri di testo in sistemi informatici, ed è stato assunto come standard internazionale con la sigla ISO/IEC 10646.
Unicode propone uno standard per rappresentare i caratteri e simboli di tutti i linguaggi scritti, simboli matematici etc... e usa un codice a 16 bit, con cui `e possibile codificare 2^16 circa 65. 000 caratteri distinti.

Un codice si dice ridondante, quando codifica i simboli distinti con n = m+r bit, cioè usando r bit aggiuntivi rispetto agli m bit strettamente richiesti dalla codifica binaria.


m bit di parola
r bit di ridondanza
n = m + r bit di parola codice

L’idea è quella di codificare il messaggio in questione, costituito da blocchi di cifre o parole, attraverso una stringa di numeri ridondante, cioè composta da più cifre di quelle strettamente necessarie, in modo tale che il ricevitore possa accorgersi di eventuali cambiamenti del formato iniziale e correggere gli errori presenti.
L’aggiunta di bit di ridondanza permette quindi di costruire codici che consentono di controllare eventuali errori di trasmissione.
Si hanno due tipi di codici ridondanti:
- codici a rivelazione di errore che consentono di individuare la presenza di un errore
- codici a correzione di errore che consentono non solo di individuare la presenza di un errore, ma anche di identifcarne la posizione in modo da poterlo correggere.




In questo articolo non mi dilungherò ulteriormente su questo interessante ma complesso argomento che lascio alla curiosità del lettore, ricordando che fu anche grazie al contributo di una matematica inglese Florence Jessie Collinson MacWilliams e alle sue equazioni "MacWilliams Identities", che è stato possibile raggiungere ottimi livelli nel campo della teoria della codifica e quindi della trasmissione delle informazioni che ormai diamo per semplici e scontate.

Il termine digitale deriva dall’inglese digital, ovvero cifra, derivato dal latino ‘digitus’, ovvero dito. 
Come sappiamo nel cosiddetto segnale digitale, il messaggio è convertito in simboli e attualmente la codifica digitale in uso è quella relativa al sistema binario di <0> e <1> , di conseguenza, convertire un fenomeno naturale o analogico in digitale vuol dire convertirlo in una sequenza di bit (e viceversa). 
Tale tipo di segnale solitamente non subisce molti disturbi e viene ricevuto quasi identico rispetto a quello emesso e l’apparato che riceve il segnale deve quindi decodificare il segnale digitale e trasformarlo in un linguaggio comprensibile. 
E' quindi tutt'ora molto importante trovare soluzioni per correggere eventuali errori che si possono trasmettere in situazioni di disturbo.

Anche la telefonia mobile e la produzione musicale hanno subito dei cambiamenti di qualità e formato, passando dal sistema analogico a quello digitale. 
Per la telefonia si è passati dal Etacs al Gsm per finire con l'attualissimo 5G e, nel campo musicale, dal vecchio vinile (disco a 33 o 45 giri) al cd, per finire agli mp3 e mp4. 
Insomma il digitale ha portato una vera e propria rivoluzione che è entrata a far parte della nostra vita quotidiana, anche se dimentichiamo gli studiosi e i ricercatori che hanno permesso di raggiungere risultati sempre migliori.