20.9.17

Enumerazione ed algoritmo. Don Chisciotte cavaliere algebrico (Paolo Zellini)

Dalle tavolette cuneiformi di Babilonia all'eroe di Cervantes, passando per le coppie di conigli di Fibonacci: l'arte di enumerare che fonda i calcoli moderni ha radici antiche. 
Sono le fondamenta dei computer che regolano le nostre vite.
Università degli Studi  di Udine, Museo dell'informatica.
Ricostruzione di una tavoletta sumerica contenente calcoli
“Chi più onesto e valoroso del celebre Amadigi di Gaula? Chi più saggio di Palmerino d'Inghilterra? Chi più accomodante e trattabile di Tirante il Bianco? Chi più galante di Lisuarte di Grecia? Chi più ferito e feritore di Don Belianigi?”. L'elenco, nel terzo capitolo della seconda parte del Don Chisciotte, non finisce qui, e del resto Don Chisciotte è in grado di enumerare, anche in altre occasioni, un insieme spropositato di cavalieri erranti, un catalogo di nomi e di soprannomi dei più fantasiosi, della cui effettiva esistenza egli è certissimo. Quando il signor Pietro Perez, curato e amico di Don Chisciotte, dichiara il suo imbarazzo a credere che tutti quegli eroi siano esistiti in carne e ossa, l'ingegnoso hidalgo ha buoni motivi per spiegargli che è in errore. L'enumerazione avvalora la tesi che i suddetti cavalieri siano vissuti davvero e chi ne dubita si inganna.
Prima di morire, alla fine delle sue imprese, Don Chisciotte saprà riconoscere di essersi lui stesso ingannato. Rimane però lo sconcerto: da che cosa poteva nascere in Don Chisciotte l'idea che quei personaggi fossero davvero esistiti? Non basta attribuirne la causa alla pazzia del cavaliere errante immaginato da Cervantes. Le sue enumerazioni sono una brillante parodia dei tradizionali elenchi di uomini ed eroi, di dèi e semidèi, che troviamo nelle Scritture, nell'epos di Omero, nella Teogonia di Esiodo e nelle tragedie di Eschilo. E non ci sono dubbi che quelle enumerazioni servissero a presentare sulla scena del mondo, in modo credibile, figure umane o divine altrimenti invisibili, insignificanti o inverosimili.
Da dove veniva questo potere realizzante dell'enumerazione? E quali sarebbero state le sue conseguenze nel nostro modo di pensare in generale? Ogni volta che contiamo gli elementi di un insieme, selezioniamo e raduniamo in una sola unità più cose disseminate, e con ciò ne rafforziamo la presenza, sveliamo quel carattere essenziale che ne assicura un'esistenza più stabile. In questo consiste pure il significato del greco legein e del suo sostantivo logos. Proprio nel richiamare il senso originario del logos, come rassegna o raccolta guidata da una scelta, Heidegger poteva dedurre la sua funzione precipua di svelare, di rendere manifesto, e quindi di fare esistere le cose.
I moderni algoritmi hanno ereditato un potere realizzante analogo a quello delle enumerazioni parodiate da Cervantes. Non è un caso che la scienza degli algoritmi si sia sviluppata tumultuosamente nel Ventesimo secolo, in seguito alla crisi dei fondamenti della matematica, all'incertezza sulla reale esistenza degli insiemi infiniti e alla preoccupazione per i paradossi che ne derivavano. L'esistenza di un insieme era certamente garantita, tuttavia, dalla possibilità di enumerarne e calcolarne gli elementi con un processo computazionale limitato nel tempo. In conclusione: l'infinito non esiste; esistono, invece, i numeri calcolati da un algoritmo.
Infatti l'enumerazione è la base per definire l'algoritmo. È questo un compito delicato, che i matematici devono assumersi per spiegare in modo coerente e plausibile concetti che resterebbero altrimenti vaghi e confusi. Come nel caso dell'algoritmo, la matematica ha cercato definizioni convincenti per le idee di numero, di rapporto, di caso e di informazione. Spesso è accaduto che le definizioni proposte, pur coerenti e ingegnose, siano state sottoposte a revisione critica, anche a distanza di secoli.
Nel 1888 Richard Dedekind pubblicava un breve e denso trattato dal titolo Essenza e significato dei numeri in cui dimostrava che le principali operazioni aritmetiche possono essere ricondotte, per via di un percorso gerarchico, al puro atto di enumerare. A questo scopo si serviva di una strategia particolare che Kurt Godei, nel 1931, avrebbe chiamato ricorsione, e che divenne il fondamento dell’idea stessa di algoritmo. L’algoritmo ricorsivo suddivide un problema in sotto-problemi di dimensione più piccola e analoghi all’originale. Consiste quindi in un programma che prescrive, tra le sue istruzioni, l’esecuzione di un programma identico a se stesso, opportunamente adattato alla dimensione dei sotto-problemi. Non si tratta di un circolo vizioso, ma dell’auto-similarità di una procedura che richiama, al suo interno, una procedura simile a se stessa.

Nel suo Liber Abaci (Libro dell’abaco) del 1202, una vera enciclopedia della scienza algoritmica del Medioevo, Leonardo Fibonacci si servì di una strategia molto simile per calcolare quante coppie di conigli sarebbero nate in un anno da una sola coppia, sapendo che in ogni mese da una coppia ne nasce un’altra e che ogni coppia inizia a riprodursi nel secondo mese di vita. La soluzione era semplice: in un dato mese il numero di coppie era la somma del numero di coppie dei due mesi antecedenti. Un algoritmo funziona allo stesso modo: si svolge in una serie di passi, e per compiere ciascun passo deve assicurarsi di ciò che è stato fatto nel passo precedente, seguendo a ritroso un processo di enumerazione. Un po’ come Orfeo che ha bisogno, per procedere, di guardarsi indietro per accertarsi se Euridice lo stia ancora seguendo.
Date le condizioni iniziali — nel caso di Fibonacci l’esistenza di una coppia di conigli nel primo mese — l’algoritmo procede in modo automatico: il risultato a ogni istante non è determinato dal nostro arbitrio, ma solo dal risultato dell’istante precedente. Anche se l’algoritmo calcola il valore di una funzione, esso è concettualmente diverso dalla semplice attribuzione di un valore a quella funzione, perché consiste in una procedura che mira a ottenere effettivamente quel valore. Distinguendo tra effetto e valore riusciamo a distinguere una procedura da una espressione matematica. L’espressione è una legge che associa numeri ad altri numeri, mentre l’esecuzione di una procedura ha per scopo un effetto, il risultato di un calcolo che si svolge nel tempo e nello spazio di memoria del computer.
A voler cercare le origini dell’idea di algoritmo, dobbiamo ritornare indietro di secoli, forse di millenni. La parola “algoritmo” deriva da Muhammad ibn Musa al-Kh-wàrizmì, il nome del matematico e astronomo arabo autore di un libro, apparso all’inizio del Nono secolo, sull’algebra (al-jabr) e sulla al-muqàbala, ovvero sulle tecniche per ridurre un’equazione a una forma che ne consentisse una risoluzione più semplice. Era chiamato algebrista, nell’opera di Cervantes, anche chi sistemava le ossa rotte o slogate. A un algebrista, appunto, dovette ricorrere il Cavaliere degli Specchi, vale a dire il baccelliere Sansone Carrasco, per guarire dalle conseguenze delle percosse inflittegli da Don Chisciotte.
Tuttavia le prime forme di pensiero algoritmico risalgono a circa quattromila anni fa e si trovano sulle tavolette in cuneiforme provenienti dall’area geografica intorno all’antica città di Babilonia. Si tratta di procedure applicate a problemi specifici, ma già contenenti schemi generali di calcolo, che sarebbero rimasti invariati fino ai nostri giorni. Donald Knuth, uno dei padri dell’informatica, ha notato che i calcoli babilonesi già possedevano lo stesso ordine e lo stesso carattere categorico delle moderne procedure, del loro mirare a un risultato concreto in un numero finito di passi.
Viene da aggiungere che troviamo un carattere simile in quegli innumerevoli algoritmi a cui deleghiamo con fiducia, e non senza rischi di fraintendimento, ogni misurazione e raccolta dei dati da cui dipendono le nostre previsioni e le nostre scelte. Ma in assenza di un’analisi dell’algoritmo, della complessità e della propagazione dell’errore nei calcoli, i numeri perentoriamente stampati dalla macchina alla fine di un processo potrebbero essere inutili e privi di senso. La percezione di una fondamentale incertezza e la diffusa avversione per i numeri traggono anche da qui la loro forza, a scapito però della credibilità di una scienza da cui dipende la possibilità di stabilire un nesso tra i nostri pensieri e la realtà delle cose.


“la Repubblica – Robinson” 26 marzo 2017  

Nessun commento:

statistiche