La prima metà del ‘900 ha visto una vera e propria concentrazione di persone geniali, specialmente nel campo scientifico, che hanno letteralmente cambiato il mondo in cui viviamo: si pensi a Einstein, Heisenberg e Schrödinger nel campo della fisica (e molti altri potrebbero citarsi).
La scienza e la tecnologia sono progredite enormemente in tutti i campi e le comunicazioni di massa, la televisione prima e i computer poi per terminare il secolo con Internet e il Web, hanno irreversibilmente cambiato il mondo, la società e anche tutti noi. Dare la palma dello scienziato più influente del ‘900 è quindi arduo e probabilmente privo di senso, ma una delle personalità che spiccano è senz’altro quella di Alan Turing.
Turing ha vissuto la sua troppo breve esistenza nella prima metà del ‘900: nato nel 1912 e morto, probabilmente suicida nel 1954, nella sua breve vita ha dato un contributo che altri grandi personaggi hanno potuto dare solo collettivamente. Ci sono almeno quattro motivi che lo rendono una delle persone più importanti del XX secolo: enumeriamoli.
La teoria della calcolabilità
Noi umani contiamo fin dalla Preistoria: il più antico manufatto che rechi tracce di conteggi, un osso di lupo trovato a Ishango in Africa, ha 20.000 anni! Tutti impariamo oggi a contare fin dalle scuole più elementari, e poi a fare calcoli, usando formule e algoritmi.
Il concetto di algoritmo è utilizzato da millenni: sebbene il nome derivi dal grande studioso dell’Islam medievale al-Khwarizmi, Romani, Greci, Cinesi, Indiani, Babilonesi e tutte le altre civiltà hanno utilizzato algoritmi. Ma per sapere in modo preciso cosa sia un algoritmo dobbiamo aspettare il 1936!
In quell’anno, il giovane Alan Turing pubblica un articolo scientifico dal titolo sibillino, On computable Numbers, with an application to the Entscheidungsproblem, nel quale fornisce una definizione matematica di algoritmo, in termini delle celebri macchine di Turing, che ha dato il via alla teoria della calcolabilità, uno dei pilastri teorici dell’informatica.
Nello stesso periodo, l’americano Alonzo Church (ogni volta che usate una lambda in un vostro programma lo state ricordando!) aveva definito un formalismo simbolico alternativo alla logica matematica dell’epoca, il lambda-calcolo: i suoi allievi Kleene e Rosser dimostrarono che questo formalismo non riusciva a dare una formalizzazione coerente dell’intera logica ma, limitandosi alle funzioni calcolabili, riusciva a descriverle come funzioni ricorsive.
Turing si addottorò a Princeton sotto la guida di Church e pubblicò il suo articolo contemporaneamente e indipendentemente da Church: l’ipotesi secondo la quale la nozione astratta di algoritmo sia codificata dalle macchine di Turing o dal lambda-calcolo di Church si chiama oggi tesi di Church-Turing.
Nel caso non foste familiarsi con la vita di quest’incredibile uomo, ecco un recap dei punti salienti, tra i suoi studi, le sue scoperte e il suo apporto alla scienza e all’innovazione:
La decifrazione dei codici nazisti
La carriera matematica di Turing sarebbe proseguita negli Stati Uniti, nella prestigiosa Princeton che accoglieva tanti geni europei da Einstein a Gödel a von Neumann, se i venti di guerra non avessero spirato cupi sull’Europa: tornato nel Regno Unito, a 28 anni Turing si trovò a capo del gruppo di crittografi che, nei laboratori segreti di Bletchley Park, si applicarono alla decifrazione delle codifiche prodotte dai nazisti con la macchina Enigma, un ingegnoso meccanismo crittografico.
In Polonia, il matematico Marian Rejewsky, aveva studiato Enigma e costruito delle macchine “anti-enigma” per provare a decifrarne i messaggi. Basandosi su quel lavoro, Alan Turing riuscì, semplificando la struttura delle macchine e rendendole più efficienti, a decifrare i codici nazisti e contribuire in modo determinante alla vittoria degli Alleati sul fronte Mediterraneo e Atlantico.
Infatti è con la codifica Enigma che le U-boat naziste venivano informate degli obiettivi da colpire. Un lavoro per il quale, a causa del segreto di stato, non ha avuto alcun riconoscimento: anzi, quel che Turing ebbe dal proprio governo, dieci anni dopo la fine della guerra, fu una persecuzione omofoba che è stata probabilmente una delle cause della sua morte.
L’invenzione del computer
La questione dell’invenzione del computer è intricata non meno che quella dell’invenzione della scrittura: non c’è stato un unico inventore, ma più gruppi di lavoro hanno nello stesso periodo progettato e costruito le prime macchine elettromeccaniche che hanno la struttura e la capacità teorica di quelle attuali.
Su questa sponda dell’Atlantico, il merito va a Turing. In primo luogo, avendo proposto un modello di macchina astratta per definire il concetto di algoritmo e avendo mostrato che una macchina di Turing può essere programmata per eseguire qualunque algoritmo (macchina universale), l’idea di realizzare fisicamente una tale macchina si presentava spontaneamente. Stante la tecnologia dell’epoca fu necessario immaginare come realizzare la memoria della macchina, i circuiti per eseguirne le istruzioni e capire di quali istruzioni dotarla.
A Liverpool e poi a Manchester, Alan Turing progettò due macchine che oggi diremmo possedevano una architettura RISC: l’idea di Turing è di mettere solo l’hardware indispensabile, implementando poche istruzioni di base e lasciando poi al software il compito di eseguire operazioni complesse. Questo è un approccio alternativo a quello che gli americani stavano seguendo negli Stati Uniti, sotto la guida di John von Neumann, che a suo tempo aveva proposto a Turing di restare a Princeton come suo assistente, possiamo solo immaginare che sarebbero riusciti a combinare quei due assieme!
La struttura di un computer che nella memoria contiene sia i dati che il programma che li elabora è oggi nota come macchina di von Neumann ma è da attribuire in ultima analisi ai progetti di Turing e all’idea della sua celebre macchina astratta.
L’intelligenza artificiale
Negli ultimi anni della sua vita, Turing si occupò di esplorare i limiti e le possibilità delle macchine che aveva contribuito a costruire, i primi computer della storia. La sua idea era che anche gli esseri umani, o meglio i loro cervelli, sono macchine che elaborano stimoli esterni per mezzo di algoritmi e che quindi la mente umana non è dissimile da una macchina di Turing con un sofisticato programma universale che la pone in grado di apprendere e reagire agli stimoli ambientali.
Per quanto l’intelligenza artificiale, come termine e come campo di studi, emergerà solo dopo il 1956, nel 1948 Turing propose in un rapporto la sua idea di macchina pensante e sviluppò alcuni concetti di intelligenza artificiale nel 1950 e nel 1951. In particolare Alan Turing capì che i computer potrebbero essere programmati per tradurre il linguaggio, per rispondere a domande in una lingua umana, per giocare a scacchi, dama e altro e per dimostrare teoremi matematici.
Turing ideò il suo celebre test proprio pensando a questo tipo di abilità linguistiche e si spinse a ipotizzare che macchine con miliardi di numeri al loro interno (ChatGPT ne ha 180 miliardi in effetti) potrebbero sostenere una conversazione sembrando umani: il test di Turing è più complesso, consiste nel far fare a un computer la parte di un maschio in una conversazione convincendo l’interlocutore che invece si tratta di una donna.
Due idee furono con chiarezza suggerite da Turing, ma disattese dai suoi immediati epigoni, e ci volle il secondo inverno dell’AI perché si affermassero:
- le AI non vanno costruire “già imparate” ma piuttosto vanno progettate e costruire macchine simili a un neonato, in grado di apprendere da sole e con il contatto con l’ambiente tutto quel che loro serve;
- occorre introdurre elementi di casualità nei programmi di AI, per evitare l’esplosione combinatoria della navigazione di tutti i casi possibili e anche perché in natura l’evoluzione utilizza il caso in modo essenziale nel processo di selezione naturale.
Queste due moderne idee sono alla base di tutte le intelligenze artificiali che vediamo oggi intorno a noi.