| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

  • Get control of your email attachments. Connect all your Gmail accounts and in less than 2 minutes, Dokkio will automatically organize your file attachments. You can also connect Dokkio to Drive, Dropbox, and Slack. Sign up for free.

View
 

Corso di Informatica - Alan Turing

Page history last edited by Trapani Marco 11 years, 6 months ago

Alan Mathison Turing

 

A cura di Guido Pecchioli

 

La vita

 

Alan Mathison Turing nacque a Paddington, Londra, il 23 giugno 1912 da genitori impiegati statali nell'

"Indian civil service"

, questi all'età di un anno lo lasciarono in Inghilterra da alcuni amici e se ne tornarono in India. Frequentò varie scuole senza particolari meriti, si distinse nella corsa dove raggiunse livelli olimpici ma, nonostante lo scarso profitto scolastico, Turing si interessò ancora adolescente alla matematica superiore di Einstein e alla meccanica quantistica di Eddington.

Viene descritto come un ragazzo "particolare" con poche amicizie: nel 1928 perse il miglior amico del liceo dal quale ereditò l'interesse per la scienza; fu sempre un ragazzo con uno stile di vita trasandato e un carattere insofferente nei confronti dell'autorità costituita, cosa che contraddistinse la sua carriera e gli impedì nonostante il suo genio di ottenere posti di rilievo nella struttura universitaria inglese. Infatti nel 1935 al King's College di Cambridge ottenne solamente il titolo di "fellow" e nel 1936 portò a punto il suo concetto più famoso esposto ne:

 

"On Computable Numbers, with an application to the Entscheidungsproblem"

 

(Riguardo i numeri computabili con un'applicazione al problema della decisione) nel quale esponeva la teoria della cosiddetta "macchina di Turing": una "macchina pratica universale" cioè una macchina a stati discreti che poteva, utilizzando le quattro operazioni fondamentali, calcolare infiniti numeri. Turing ideò inizialmente questa macchina con l'unico scopo di conoscere il limite del computabile, di apprendere ciò che potesse essere computabile e ciò che non potesse esserlo, cercava una macchina impostabile secondo un "programma memorizzato universale" che potesse essere manipolata secondo le proprie esigenze, una macchina "libera" di essere impostata sia nei dati che nelle istruzioni: aveva già in mente un'idea di Computer, in contrasto con l'idea di Babbage dove le istruzioni erano "fisse". Finalmente dal 1936 al 1938 fu nominato professore in Logica, matematica e teoria dei numeri alla Princeton University in America, centro mondiale della ricerca matematica.

 

Il ruolo di Turing nella II guerra mondiale

 

Rimasto pressochè neutrale nei confronti della situazione bellica europea, venne tuttavia richiamato in qualità di esperto dai servizi segreti inglesi che nel 1938-1939 lo fecero tornare a Cambridge. Qui lavorò a Bletchley Park, il laboratorio dove dirigeva un'equipe di matematici col compito di svelare il codice della macchina ENIGMA in uso alle forze naziste. Tale apparecchiatura permetteva ai sottomarini tedeschi, i famigerati U-boat, di spadroneggiare nei mari indisturbati, in quanto ciò che le radio inglesi captavano dalla costiera di Dover, non poteva essere decriptato senza l'ausilio di una telescrivente automatica in dote ad ogni sottomarino. Le forze navali naziste erano riuscite a coprire la loro invenzione e gli alleati all'inizio della guerra avevano nettamente perso la battaglia dei mari vedendo affondate sia le loro navi da guerra, che venivano colte di sorpresa, sia i loro rinforzi e rifornimenti, che dall'America arrivavano in Inghilterra su navi merci. L'influenza che Turing ebbe sul corso della guerra fu notevole: nel 1939 riuscì a trovare la soluzione del codice.

Per il modello della macchina decrittatrice (chiamata "the Bomb"), centrale nell'analisi del torrente di dati nel quale si nascondeva il messaggio per i sottomarini, Turing si ispirò ad un'idea della logica che dipendeva dal susseguirsi di una serie di implicazioni logiche a partire da un'ipotesi errata (questa teoria fu ispirata dal carteggio che Turing aveva avuto anni prima con il filosofo L. Wittengstein).

 

Come spesso succede la guerra è una spinta tecno-economica enorme, infatti se Turing prima della guerra aveva visto le sue teorie di meccanica applicate solo all'ingegneria di piccola scala, durante il periodo a Bletchley Park le sue teorie sulla commutabilitò e soprattutto sull'incredibile velocità del calcolatore elettronico portarono alla progettazione su larga scala di macchine elettroniche: i Colossus che facevano da antagonisti all'altra cifratrice meccanica tedesca: la

Lorenz.

Finita la guerra Turing venne nominato capo del gabinetto anglo-americano di consulenti di crittografia, e nel 1945 venne invitato al National Physical Laboratory, a Londra, per progettare un computer automatico

(in quanto col solo termine "computer" si intendeva la persona che fisicamente dirigeva l'operato della macchina).

 

Al N.P.L. progettò nel 1946 A.C.E. ("automatic calcolate engine") che oltre all'originalità del progetto Hardware (basato su un nastro di carta che ipoteticamente poteva essere infinito) era innovativo perchè era stato concepito come macchina universale e non solo utilizzabile in campo aritmetico diversamente dalla macchina di Von Neumann dell'anno prima. Era cioè possibile modificare le istruzioni al pari dei dati. Era la prima macchina di Turing, una macchina in cui la parte ingegneristica era fissa e i nuovi problemi potevano essere risolti "a tavolino" cambiando le istruzioni. A questo punto Turing cominciò a pensare che l'estensione del computabile di una macchina fosse sufficiente per includere il comportamento intelligente, ad esempio si poteva programmare una macchina a giocare in modo scadente una partita a scacchi, cosa che solo una mente "superiore" si poteva permettere: la macchina calcolava le mosse vincenti da una data posizione, trovava quella con una probabilità media di fallimento e anche in base al comportamento dell'avversario la metteva in pratica (secondo quanto si legge da un suo pensiero).

Nel periodo dal 1947 al 1948 Turing avanzò nelle sue teorie e progettò un moderno centro computeristico, con una biblioteca di sequenze d'istruzione e con un controllo da terminali remoti, (giudicato troppo ambizioso per l'epoca: avrebbe dovuto avere una memoria di 32 kbyte), studiò anche sistemi complessi basandosi sulle reti neurali (programmi connessionistici) e focalizzò l'attenzione sull'intelligenza artificiale, formulando ipotesi che confluiranno nella famosa teoria del "Test di Turing" (v. sotto). Nel 1948 diventò professore di Matematica all'università di Manchester, dove nel 1949 usò per la prima volta un computer, progettato da Newman (chiamato "il cervello") in un problema di matematica pura. Nel 1950 ipotizzò il "Test" per stabilire se una macchina fosse o no "intelligente". Nel 1951 venne nominato membro della Royal society of London, ed elaborò progetti sulle teorie non-lineari della crescita biologica, molto importanti per la definizione di intelligenza e per il funzionamento del computer/cervello.

 

Nel 1952 Turing fu arrestato per omosessualità e fu "curato" con forti dosi di ormoni estrogeni che lo distrussero nell'animo e nel corpo; scrisse di biologia e fisica fino alla fine, sopraggiunta il 7 giugno del 1954 quando si suicidò mangiando una mela intinta nel cianuro. La sua morte misteriosa può trovare spiegazione sapendo che Turing amava sperimentare su se stesso alcuni esperimenti di chimica e biologia e può darsi che quella fatidica volta avesse sbagliato qualcosa nei suoi precisi calcoli

 

La Macchina di Turing

 

La Macchina di Turing (MdT) è fondamentalmente un modello di calcolo, un dispositivo immaginario inventato da Alan Turing prima dell'invenzione dei calcolatori. Essa consiste essenzialmente di un nastro, di una testina di lettura e scrittura e di un programma. L' Hardware della macchina è fisso, il Software può essere adattato ad ogni situazione. Questo modello di calcolo fu introdotto nel 1936, ispirato dall'analisi dell'esecuzione di un algoritmo da parte di un agente umano, usando carta e penna:

"Possiamo paragonare un uomo impegnato nel calcolo di un numero reale a una macchina che è capace soltanto di un numero finito di condizioni [�] che chiameremo "configurazioni". La macchina che è provvista di un nastro (l''equivalente di un nastro di carta), che scorre al suo interno ed è suddiviso in sezioni (chiamate "caselle"), ciascuna in grado di ospitare un "simbolo". In ogni istante, c'è soltanto una casella [�] che è presente "nella macchina". Chiameremo questa casella, la "casella letta". Chiameremo il "simbolo letto" il simbolo contenuto nella casella letta. Il  "simbolo letto" è tutto di cui la macchina è, per così dire, "direttamente cosciente" [�]"

"

A.M.Turing -1936-

 

Una MdT è un dispositivo finito che esegue operazioni su di un nastro monodimensionale infinito (in entrambe le direzioni) diviso in celle, ciascuna contenente un simbolo di un alfabeto finito, ha una testina che scorre sul nastro e che individua una particolare cella, la MdT è perciò una macchina a stati discreti dove in ogni istante la macchina "lavora" su una singola casella.

 

La MdT può compiere due operazioni:

 

1. cambiare il simbolo nella cella sotto la testina con un altro simbolo dell'alfabeto (perciò può scrivere o cancellare).

 

2. muovere la testina di una cella a destra o a sinistra (può muovere "l'attenzione" da un punto ad un altro del nastro).

 

In ogni istante la MdT si trova in uno stato, appartenente ad un insieme finito (stato discreto). In funzione dello stato in cui essa si trova e del simbolo sotto la testina, la MdT esegue una delle operazioni possibili ed aggiorna lo stato. Il comportamento della MdT è programmato da un insieme di regole e simboli. Questo funzionamento è descritto formalmente da una tabella di transizione, in cui in corrispondenza a una coppia (stato,simbolo) viene specificata una coppia (operazione,stato). La tabella non è necessariamente piena: ci possono essere coppie (stato,simbolo) per cui non è definita la coppia (operazione,stato).

In questo caso la MdT si arresta (in alcuni casi, come hanno dimostrato Turing e il logico Kurt Godel, vi sono delle funzioni matematiche che non sono computabili in un numero finito di passi. Questo vuol dire che in certi casi particolari la macchina di Turing può non fermarsi, può andare avanti all'infinito).

Per specificare correttamente la computazione di una MdT è necessario stabilire lo stato iniziale e la posizione della testina.

 

Componenti della macchina risultano:

Il NASTRO: illimitato in lunghezza. Monodimensionale e diviso in una sequenza di celle. Ogni cella contiene al più un simbolo o uno spazio bianco (blank). Sebbene infinito in lunghezza, il nastro della MdT contiene un numero limitato di celle non vuote, mentre tutte le celle restanti sono presupposte vuote. Ovviamente, il numero di celle non vuote può cambiare durante l'esecuzione d'un programma. Il nastro è utilizzato per l'input e l'output.

La TESTINA DI LETTURA E SCRITTURA: un dispositivo che in ogni certo istante punta una singola cella del nastro ed esegue una data istruzione del programma. Ha un numero limitato di condizioni. Può leggere i simboli dal nastro e basandosi su quel simbolo e sullo stato attuale, può scrivere un altro simbolo sopra il simbolo corrente, cambiare lo stato attuale e spostarsi a sinistra o a destra di una cella sul nastro. Inizialmente, la testina punta alla prima cella vuota immediatamente a sinistra di una sequenza di celle non vuote.

Il PROGRAMMA: una sequenza di istruzioni limitata. Il programma indica alla testina di lettura e scrittura cosa scrivere e come muoversi, basandosi sul simbolo puntato nel nastro ed sulle condizioni del programma. La MdT esegue normalmente le istruzioni nell' ordine in cui vengono inserite. La sequenza potrebbe essere interrotta tramite un' istruzione che richiede un salto ad un' altra posizione. La macchina termina l'esecuzione del programma quando raggiunge lo stato h (HALT). Una volta programmata correttamente, una Macchina di Turing (MdT) è così potente da poter simulare tutto il funzionamento di un calcolatore contemporaneo.

Nel 1949 Turing ottenne un posto come accademico all'Università di Manchester col compito di elaborare programmi per l'archetipo del computer costruito lì da Newmann (matematico) e Williams (ingegnere elettronico) chiamato "il cervello" che fu uno dei prototipi di computer applicato alle scienze non-aritmetiche (biologia, meteorologia, geologia)

 

Il Test di Turing

Nel 1950 Turing scrisse il saggio: "Le macchine calcolatrici e l'intelligenza" , dove esponeva il quesito se le macchine potessero realmente pensare. Rispondendo affermativamente, Turing pose anche un'altra questione: quella riguardante la nostra capacità di riuscire a capire quando una macchina fosse realmente intelligente, cercò cioè un sistema di parametri per stabilire che cosa sia realmente l'intelligenza umana e che cosa la contraddistingua. Per questo motivo ideò il cosiddetto "gioco dell'imitazione" dove, qualora una macchina fosse riuscita ad "ingannare" un interrogante, quella macchina avrebbe potuto essere chiamata a tutti gli effetti intelligente.

 

 

Così Turing scrive nel suo saggio: "Le macchine calcolatrici e l'intelligenza":

"Il nuovo interrogativo può essere esemplificato attraverso un gioco che chiameremo il "gioco dell'imitazione". I giocatori sono tre, un uomo (a), una donna (b) e un interrogante (c) il cui sesso non è rilevante. L'interrogante si trova in una stanza diversa da quella in cui sono gli altri due giocatori. Lo scopo del gioco è quello di far in modo che l'interrogante capisca chi dei due è l'uomo e chi la donna. La domanda ora è: cosa succede se una macchina prende il posto di (a)? Il numero delle risposte errate dell'interrogante quando il giuoco si svolge così sarà lo stesso di quando il gioco si svolge tra un uomo e una donna?

[A]

Ad esempio:

D: Per favore, scrivimi un sonetto sul tema del ponte Forth.

R: Passo. La poesia non è mai stata il mio forte.

D: Somma 34957 a 70764.

R: (Aspetta 30 secondi e poi da la risposta) 105621.

D: Gioca a scacchi?

R: S'

D: Io ho K in K1, e nessun altro pezzo. Tu hai soltanto K in K6 e R in R1. Sta a te giocare, qual è la tua mossa?

R: (Dopo una pausa di 15 secondi) R in R8, scacco.

[B]

Da queste risposte non è possibile trarre alcuna indicazione riguardo il sesso dei due interlocutori: l'obiettivo è quello di misurare l'intelligenza umana (errore di addizione incluso, un sottile trabocchetto). Lo scopo del gioco è perciò il seguente: se, date queste condizioni, non è possibile distinguere una macchina da un essere umano, dobbiamo ammettere in essa un certo grado di intelligenza umana".

 

Turing vuole affermare con questo gioco che un'imitazione ben riuscita dell'intelligenza umana è intelligenza essa stessa. Questa teoria è stata oggetto in seguito di molte discussioni in quanto l'autore esclude a priori che ci possa essere un "altro" tipo di intelligenza che non rispetti i canoni del linguaggio, mezzo mediante il quale l'interrogante "dialoga" appunto con i giocatori. Turing però limita le potenzialità dell'intelligenza artificiale elencando in una lista tutte quelle cose che una macchina anche se intelligente non potrà mai fare: "essere amichevole, avere iniziativa, dire il giusto partendo dallo sbagliato, innamorarsi, fare cose nuove, apprezzare fragole e crema, fare errori". Finora nessun programma ha superato il test di Turing. Il primo ad aver ottenuto un certo successo, è Eliza , un programma scritto nel 1966 da Joseph Weizenbaum.

 

Eliza

una psicoterapeuta che simula una conversazione tra lei (il medico), e voi (il paziente).

 

Esempio:

paziente : gli uomini sono tutti uguali

 

computer: in che senso

paziente : ci fregano sempre in qualche modo

 

computer: puoi fare un esempio specifico

paziente : un mio amico mi ha fatto venire qui

 

computer: un tuo amico ti ha fatto venire qui

paziente : dice che sono quasi sempre depressa

 

computer: mi dispiace sentire che sei depressa

paziente : è vero sono infelice

 

computer: credi che venire qui ti aiuterà a non essere infelice

paziente : ho bisogno di aiuto, questo è sicuro

 

computer: cosa intendi come aiuto

paziente : forse potrei riuscire ad andare d'accordo con mia madre

 

computer: parlami di tua madre

 

 

 

Una conversazione di questo tipo porta a domandarsi se si può realmente ritenere se è il computer che pensa veramente, o piuttosto sono le persone che possono sostenere una conversazione senza bisogno di pensare.

 

D'altra parte, il test di Turing non prevedeva l'ingenuità della persona incaricata di saggiare la macchina: doveva essere un operatore esperto.

 

Dopo Eliza sono stati realizzati molti programmi per simulare l'intelligenza; sebbene alcuni siano progettati per argomenti ben definiti (per es. teatro di Shakespeare), nessuno è stato in grado di ingannare un giudice esperto. Oggi esistono vari programmi più complessi di Eliza che gareggiano ogni anno per il Loebner Prize , competizione che ha una medaglia d'oro con un premio in denaro del valore di $100,000 per il primo computer che ingannerà un interrogante umano sulla base del Test di Turing, e un premio annuale di $2000 e una medaglia di bronzo per il computer che ogni anno si dimostra più umano. La medaglia d'oro e relativo premio ancora non sono stati vinti (-v. link-)

 

 

Un programma moderno che si basa sulle teorie turinghiane : A.L.I.C.E. (Artificial Linguistic Internet Computer Entity).

 

Dalle tesi di Turing si possono quindi estrapolare molte similitudine tra una "macchina complessa" e un organismo umano. Ad esempio, il cervello dell'uomo può essere visto come una sofisticatissima macchina complessa a stati discreti che riesce a gestire molteplici "nastri" sensoriali: riceve informazioni dalla periferia sensoriale, un "cavo-nastro" le trasferisce ad una "testina" che le legge e agisce di conseguenza cambiando qualcosa sul nastro. Questo processo porta ad avere una risposta ad uno stimolo. Il cervello dell'uomo e di molteplici organismi eucariotici superiori, ha una memoria ampia che gli permette addirittura di agire "senza coscienza" cioè tramite il sistema nervoso simpatico, che è il sistema più veloce che un essere vivente eucariotico di grandi dimensioni possa avere. Questo a dimostrazione che solo con una grande memoria si può provare ad avere un automatismo nel sistema stimolo-risposta, aprendo con ciò problematiche inerenti la definizione di intelligenza e di memoria ed i loro rapporti. La macchina di Turing la possiamo ritrovare in una forma ancora più evidente nel nucleo di tutte le cellule in duplicazione o in attività trascrizionale. Il complesso proteico che agisce sul DNA (O SULL'RNA) è un complesso multienzimatico che "legge" una sequenza di simboli -le basi azotate puriniche e pirimidiniche-, su queste può lavorare -le può correggere, sostituire, modificare e copiare- e infine può modificare se stessa secondo le informazioni presenti sul nastro. E' perciò continuamente programmabile; ad esempio nel caso del tumore, dove un errore a vari livelli di lettura può provocare ,se non corretto, un ordine mitogeno errato che porta ad una proliferazione incontrollata.

 

Concludendo, in una visione meccanicistica, sono molteplici le applicazioni del modello della mdT nel macrosistema e nel microsistema per spiegare il funzionamento ed i comportamenti dell'uomo.

Per ogni approfondimento comunque rimandiamo

 

www.abelard.org/turpap/turpap.htm      - è riportato l'articolo originale in cui Turing scrisse del suo "test".

 

www.turing.org.uk      - home page di Turing fatta da uno dei suoi biografi.

 

www.turingarchive.org      - archivio delle opere di Turing del King's College di Cambridge.

 

www.alicebot.org/manchester.html      -pagina di commemorazione da cui si hanno link per altre su Turing.

 

http://www.loebner.net/Prizef/loebner-prize.html      -la home page del premio Loebner.

 

http://www.nemesi.net/turing.htm      -pagina che approfondisce il meccanismo di funzionamento di una macchina di Turing.

 

http://web.unife.it/altro/tesi/A.Montanari/indice.htm      -sito sulla storia dell'informatica in generale.

 

http://riemann.unica.it/~antoniog/download/software/simulatori.html      -si possono scaricare due simulatori della macchina di Turing.

 

http://frode.home.cern.ch/frode/crypto/Turing/      -altra pagina da cui si può accedere a testi autografi.

 

http://www.nmt.edu/~prcm/turing/ -simulatore di MdT on-line.

 

http://cogsci.ucsd.edu/~asaygin/tt/ttest.html#hi      -home page del test di Turing.

Bibliografia

:

 

Turing, di Andrew Hodges, Sansoni

 

Alan Turing: the Enigma, di Andrew Hodges, Sansoni

 

Alant Turng, Intelligenza meccanica, Bollati Boringhieri

 

Simon Singh, Codici e Segreti, BUR

Comments (0)

You don't have permission to comment on this page.