Alan Turing

Premessa

La vita

La macchina di Turing

 

Alan Turing

All’ inizio del nuovo anno scolastico, andando in classe  abbiamo trovato una sorpresa: i corridoi del nostro Istituto erano stati intitolati,  come le vie di una città, ad altrettanti celebri personaggi, ciascuno rappresentativo della specializzazione ospitata nella “ Via.."

Così è capitato che il corridoio che ospita la quarta B informatica fosse intitolato ad Alan Turing, ma alla domanda:“Turing, chi era costui?” nessuno dei ragazzi sapeva rispondere.

Allora  è nata l’idea di far leggere loro un libro che parlasse dell'’informatica come storia di gente vissuta nel proprio tempo, con le sue debolezze e , a volte , i suoi comportamenti assurdi, giustificati solo dalla  genialità delle loro menti.Gente che ha vissuto con il pensiero rivolto non al successo, né ai soldi, ma alla soluzione di problemi che le persone” comuni”  neanche si pongono.

Carriero Agostino e Candido Vito ,due alunni della 4° B, hanno letto il libro “Macchine come noi” scritto dai giornalisti Yurij Castelfranchi e Oliviero Stock per la Laterza Editori ed è venuta fuori questa relazione dalla quale si evince che più che l’aspetto “matematico” della sua vita , ha colpito i ragazzi  l’umanità e la fragilità presente nello scienziato.  

 torna su

 

La vita

Alan Turing nacque il 23 giugno 1912 a Londra e morì il 7 giugno 1954 a Manchester. E' stato uno dei pionieri dello studio della logica dei computer così come la conosciamo oggi ed è stato inoltre il primo ad interessarsi all'argomento dell'’ intelligenza artificiale. Egli fu considerato uno degli scienziati tra i più geniali del secolo. Interessato soltanto alla matematica e alla scienza mostrava capacità di intuizione straordinaria sebbene le sue pagelle furono sempre pessime e classificato ultimo della classe, si diplomò a stento. Eppure nel 1931 iniziò la sua carriera come matematico al King's College alla Cambridge University e questo grazie all’amico Christopher Morcom, conosciuto nel 1928 ad un corso di scienze. Christopher sempre alunno modello, Alan invece pasticcione geniale, però abile ad attirare l’attenzione su di lui per le sue dimostrazioni, che erano spesso tanto originali quanto incomprensibili.

Anche se egli non amava studiare, con la perdita dell’amico Christopher morto di tubercolosi due anni dopo il loro incontro, si ripromise di seguire la carriera dell’amico, superando  prima un esame e poi vincendo una borsa di studio, che sarebbe servita per mantenersi al collage in onore all’amico. Nel King’s Collage conobbe l’astrofisica di Eddington, la matematica di Hardy, le teorie economiche di Keynes e Pigou, le intelligenze libere e liberatrici di George Bernard Shaw e Bertrand Russel.  

Turing all'età di 16 anni

Una delle sue caratteristiche fu quella di non usare il lavoro di scienziati precedenti, ma bensì di ricreare le scoperte precedenti. Trasferitosi alla Princeton University iniziò ad esplorare quella che poi sarebbe stata definita come la Macchina di Turing universale.

Turing capì che non era necessario immaginare innumerevoli tipi di macchine diverse, ma ne bastava una sola, a patto che essa potesse imparare, ad esempio tramite i dati scritti su un nastro di carta, le regole da seguire caso per caso. La macchina di Turing, per grandi linee, non era altro che l'odierno computer. Questo concetto doveva essere rivoluzionario per quel tempo, in quanto molti computer negli anni '50 invece erano progettati per uno scopo preciso o per uno spettro limitato di scopi, al contrario del progetto di Turing, che voleva realizzare una macchina che riuscisse a fare tutto, cosa che oggigiorno noi diamo già per scontato.

Il metodo di istruzione del computer era molto importante nel concetto di Turing. Essenzialmente nei suoi progetti egli descriveva una macchina che conosceva solo alcune semplici istruzioni, e questi a loro volta dovevano far compiere ad un computer un compito particolare era soltanto una questione di spezzare l'istruzione in una serie di queste semplici istruzioni, una cosa identica al processo affrontato dai programmatori odierni. Costui era convinto che si potesse sviluppare un algoritmo per ogni problema. La parte più difficile però stava nel determinare quali fossero i livelli semplici e come spezzettare i grossi problemi. Il suo sogno più ambizioso era solo di cercare quali meccanismi si nascondevano dietro il pensiero umano. Un pensiero che una volta compreso e formalizzato, poteva essere rappresentato in linea di principio su tanti tipi di macchine.  

Durante la seconda guerra mondiale Turing mise le sue capacità matematiche al servizio del Department of Communications inglese per decifrare i codici di complessità diabolica usati nelle comunicazioni tedesche, un compito particolarmente difficile in quanto i tedeschi avevano sviluppato un tipo di computer denominato Enigma che era capace di generare un codice  che mutava costantemente e praticamene impossibili da decifrare. Per  sconfiggere Enigma ci voleva la mente di Alan Turing.  

Durante questo periodo al Department of Communications, Turing ed i suoi colleghi progettarono un calcolatore chiamato COLOSSUS che riusciva a decodificare in modo veloce ed efficiente i codici tedeschi comunicati con Enigma. Si trattava, essenzialmente di un insieme di servomotori e metallo. Con COLOSSUS si faceva così il primo passo verso il computer digitale. 

   La macchina Enigma

    Il calcolatore Colossus

Turing era dell'idea che si potessero creare macchine che fossero capaci di mimare i processi del cervello umano. Discusse la possibilità di tali macchine, riconoscendo la difficoltà che la gente avrebbe avuto nell'accettare una macchina che si poneva in concorrenza con la loro intelligenza, un problema che colpisce l'intelligenza artificiale ancor oggi. Secondo la sua idea non c'era niente che potesse fare il cervello, che allo stesso tempo un computer ben progettato non potesse fare. In poche parole inventare un  programma che il computer potesse imparare o dimenticare in ogni momento, facendo in modo che i circuiti dello stesso non dovessero essere smontati e rimontati ogni volta che cambiavano le operazioni da compiere: il calcolatore doveva essere in grado di modificare le proprie azioni da se, eseguire operazioni differenti a seconda di alcuni variabili, quali risultati di precedenti calcoli o i dati forniti dall’utente. Pensò inoltre che i computer del futuro dovevano essere capaci di percepire l’esterno immaginò di dotarlo a fianco di un “cervello elettronico”, telecamere, microfoni, altoparlanti, ecc… e trovare settori adatti di pensiero in cui tali macchine potessero esercitarsi.

Turing entrava spesso in dibattiti infuocati con altri scienziati per via delle sua concezioni radicali sul futuro dell'informatica: dal nostro punto di vista, le idee che aveva erano logiche e tutt'altro che sorprendenti. Dal punto di vista dei suoi contemporanei le sue idee erano stravaganti. Una replica interessante di Turing durante questi dibattiti era di chiedere ai colleghi se potevano creare un esame a cui un computer non poteva venir allenato a rispondere.

A tal proposito cominciò a scrivere e a provocare con programmi radiofonici. Scrisse un articolo nel 1950 in cui descriveva quello che attualmente è conosciuto come il Test di Turing. Il test consisteva in una persona che poneva delle domande tramite una tastiera sia ad una persona che ad una macchina intelligente. Era convinto che se la persona non poteva distinguere la macchina dall'altra persona dopo un ragionevole periodo di tempo, la macchina in qualche modo era intelligente.

Questo test diventerà uno dei punti più dibattuti della disciplina, sarà il 'santo graal' della comunità dell'intelligenza artificiale e il più usato in riviste e in articoli che si riferiscono all'intelligenza meccanica.

In seguito Turing lasciò il National Physical Laboratory prima del completamento dell’Automatic Computing Engine e si trasferì alla University of Manchester. Là lavorò alla realizzazione del Manchester Automatic Digital Machine (MADAM).

Da non dimenticare inoltre che uno degli aspetti principali della vita di Turing e che spesso passa inosservato è il suo lavoro nella biologia. Egli in effetti era interessato al come e perchè gli organismi avevano sviluppato una forma particolare e questo non di certo a causa dell’intervento esterno.

Turing credeva fermamente che la forma biologica era semplicemente un risultato dei processi chimici e fisici e che il punto di partenza basilare nella sua posizione si poteva riassumere così:

"Invece di chiedere perché una certa configurazione di foglie è particolarmente vantaggiosa per una pianta, cercò di dimostrare che era una conseguenza naturale del processo con cui vengono prodotte le foglie."  

Egli usava un approccio matematico al problema. Vedeva intercorrere tra natura e matematica una stretta relazione, tanto che lo scopo suo ultimo era di fondere la teoria biologica con la matematica e il computer, questo per creare la sua macchina intelligente.

Alan vedeva lo sviluppo delle foglie come una serie di semplici passi, un algoritmo. Questo si concordava col concetto base della sua Macchina di Turing.

Morì il 7giugno 1954 di quello che gli esami medici indicarono come "una auto-somministrazione di cianuro di potassio in un momento di squilibrio mentale". Sono comparse altre ragioni per la sua morte.

Mentre la madre dichiarava che era solito sperimentare con prodotti chimici casalinghi cercando di creare nuove sostanze ed era diventato incauto, altri invece dichiararono che era omosessuale e si era ucciso per prevenire l'eventuale imbarazzo.

Qualsiasi fosse la ragione della sua morte, Turing fu senza dubbio uno dei più grandi anticipatori nel campo dei computer. Gli odierni scienziati informatici fanno ancora riferimento ai suoi scritti. Il concetto dell'algoritmo, ancora oggi, si trova al centro di ogni programma per computer e per ogni tipo di computer digitale.

In sintesi Alan Turing fu colui che ridusse tutte le operazioni matematiche ai loro fondamentali, operazioni tanto facili che potevano essere fatte da una macchina, macchina che naturalmente prese il suo nome (Macchina di Turing).

Fu il primo ad immaginare la possibilità della realizzazione di macchine che fossero realmente pensanti e il suo lavoro fu di un’importanza cruciale per i destini della Seconda Guerra Mondiale.

Testo scritto da Carriero Agostino e Candido Vito , 4° B Informatica

 torna su

 

 

 

 

 

La "macchina"  di Turing                     clicca qui per vedere una simulazione   una simulazione 

 

Per Alan Turing, la prima questione da risolvere consisteva nel precisare le azione elementari che compiamo quando eseguiamo un calcolo. In effetti, una semplice operazione di somma viene appresa facilmente fin dalle scuole elementari; è un'operazione che effettuiamo meccanicamente ogni giorno, quando per esempio acquistiamo due oggetti dallo stesso fornitore, o quando conttabilizziamo il denaro che abbiamo in tasca. L'addizione è dunque un'operazione banale, ma sappiamo definirne l'algoritmo?

 

"Programmi" per risolvere manualmente problemi numerici sono noti fin dal 1800 a.C., quando i matematici babilonesi del tempo di Hammurabi precisarono le regole per risolvere alcuni tipi di equazioni. Le regole consistevano in procedimenti dettagliati passo dopo passo applicati dettagliatamente a particolari esempi numerici. In particolare, il termine "algoritmo" si rintraccia dall'ultima parte del nome del matematico persiano Abu Ja'far Mohammed ibn Mûsâ al-Khowârizmî, il cui testo di aritmetica esercitò una notevole influenza per molti secoli.

Per far questo, supponiamo di eseguire una somma di due numeri (naturali), per fissare le idee, 2+4.

algebra di Boole (685 bytes)

Visualizzando i numeri ordinati in successione, consideriamo il numero 2 e ripetiamo 4 volte l'operazione di passaggio al numero successivo: da 2 a 3, da 3 a 4, da 4 a 5, da 5 a 6. Il numero 6 è il risultato richiesto.

Per ottenere il risultato della somma proposta, dobbiamo seguire questi passaggi:

 
individuare un numero (quello di partenza)
passare al numero immediatamente successivo
ripetere un'operazione (quella di passaggio al numero successivo)
controllare se si è raggiunto il numero di ripetizioni previste (4, in questo caso)

Questo è dunque l'algoritmo della somma di due numeri.
La sequenza di operazioni esaminata, si presta anche per eseguire moltiplicazioni. Per esempio, 2 x 3; in quanto si tratta di addizionare 3 volte il numero 2: 2 + 2 + 2

Per ottenere il risultato della moltiplicazione proposta, dobbiamo seguire questi passaggi:

 
individuare un numero (quello di partenza)
passare al numero immediatamente successivo
ripetere un'operazione (quella di passaggio al numero successivo)
controllare se si è raggiunto il numero di ripetizioni previste per il primo ciclo (2, in questo caso)
controllare se si è raggiunto il numero di ripetizioni previste per il secondo ciclo (3, in questo caso)

Come si vede, si è aggiunto un secondo controllo. Con analogo procedimento, è possibile anche l'elevazione a potenza. Per esempio, 23 = 2 x 2 ripetuta 3 volte. In questo caso, si dovrà aggiungere un terzo contatore.

Si potrebbe vedere facilmente (ma la questione è irrilevante per questa discussione) che il procedimento utilizzato per addizioni, moltiplicazioni ed elevazione a potenza, vale anche per le operazioni inverse: sottrazione, divisione (una successione di sottrazioni: 17/5 = 17 - 5 - 5 - 5 = 3 con il riporto di 2), estrazione di radice.

Dimostrata l'esistenza di algoritmi per effettuare le operazione matematiche fondamentali, la seconda questione da risolvere consisteva nel precisare l'occorrente per sviluppare la sequenza di operazioni previste... naturalmente non ci riferiamo a carta e penna, ma a qualcosa di più complesso. Non molto, però.

Come primo passo, occorre definire i simboli con i quali rappresentiamo i numeri su cui operiamo, le operazioni da effettuare e la sequenza di operazioni impostate.
La scrittura dei numeri è molto semplice, rappresenteremo lo zero con I, il numero uno con II, il numero due con III, il numero tre con IIII, e così via. Con questo simbolismo, per passare da un numero al successivo, si aggiunge una barretta; per passare al precedente, si elimina una barretta.
Ovviamente, occorre anche un supporto sul quale riportare i simboli: adotteremo un nastro di carta supposto di lunghezza adeguata per contenere qualsiasi algoritmo.

macchina di Turing

Il nastro è diviso in celle, ognuna delle quali contiene un solo simbolo: per scrivere il numero 3, occorreranno quindi tre celle.
Ovviamente, il nastro deve essere collegato ad un meccanismo che gli permetta di scorrere per esaminare il contenuto di ogni cella, e per portarsi in una zona di celle nella quale annoteremo i risultati parziali ottenuti, o altri simboli eventualmente necessari: quelli per eseguire operazioni di somma o sottrazione e per contare le ripetizioni.

La "macchina di Turing" può operare sulla striscia in diversi modi:

 
può leggere il simbolo scritto in una cella
può sosvrascrivere il simbolo scritto in una cella, sostituendo il precedente
può far scorrere il nastro cella dopo cella, verso destra o verso sinistra
può non fare alcuna operazione

La macchina, a seconda dello stato in cui si trova e del simbolo che legge sul nastro, esegue una delle azioni possibili e passa ad un nuovo stato o rimane nel suo stato iniziale. L'automa si ferma quando, in corrispondenza dello stato in cui si trova e del carattere che legge, non trova ulteriori istruzioni.
Con la macchina di Turing (che, per quanto possa sembrare strano, riassume la struttura funzionale di un computer) è possibile risolvere anche problemi non numerici; infatti basta associare ad i simboli un significato alfabetico o alfanumerico.

 

Tratto dall'articolo realizzato da Marcello Guidotti, 1999

 torna su