Corso 2 - Introduzione all'intelligenza artificiale

  Learning
  Autori
  Scrivi
Indice
  Altre sezioni
Enciclopedia
Educazione al multimediale
Download
Indice tematico
Modulo 1: L'intelligenza artificiale: i fondamenti teorici
Modulo 2: Alcuni settori dell'intelligenza artificiale
Modulo 3: I limiti e le applicazioni pratiche dell'intelligenza artificiale
Modulo 4: Un nuovo paradigma: reti neurali e vita artificiale

Introduzione all'intelligenza artificiale
di Fabio Ciotti

 

Prima dispensa

L'intelligenza artificiale: i fondamenti teorici

Sommario degli argomenti

  • Introduzione (1)

  • Cosa è l'intelligenza artificiale (2)

  • I fondamenti teorici dell'Intelligenza artificiale (3)

  • Il concetto di rappresentazione e di simbolo (4)

  • Il calcolo come manipolazione di simboli e i sistemi formali (5)

  • La macchina di Turing e la teoria rappresentazionale della mente (6)

 
Video

Fate clik qui sopra per collegarvi al video di questa dispensa; potete anche semplicemente ascoltare la lezione mentre scorrete il testo, riducendo ad icona la finestra del player.

Se avete problemi a visualizzare il video controllate di aver installato il player sul vostro computer.

Il testo di questa dispensa è disponibile in formato RTF (Rich Text Format) nell'area Download del sito; potrete scaricarlo per leggerlo con calma o per stamparlo.

 

Introduzione

Talvolta, quando ci mettiamo di fronte ad un computer e lo osserviamo mentre esegue i suoi compiti, può accadere di avere l'impressione che esso sia dotato di una specie di intelligenza. Tuttavia sappiamo che questa impressione è sbagliata. Un computer, infatti, non fa altro che eseguire una sequenza di istruzioni, esplicitate in un programma, in maniera meccanica. Senza dubbio esistono programmi che possono eseguire operazioni molto complicate. Persino un comune programma di videoscrittura può avere centinaia o migliaia di comandi, alcuni dei quali possono apparire, specialmente all'occhio di un utente inesperto, incomprensibili. Ma appena si acquista un po' di confidenza qualsiasi programma, per quanto complicato, perde tutta la sua aurea di mistero. Non a caso il computer viene considerato dalla maggior parte della gente solo un utile strumento. E sicuramente nessuno riterrebbe che uno strumento, per quanto complesso, sia dotato di intelligenza. D'altra parte nella considerazione generale nemmeno gli esseri viventi più vicini a noi, come i cani, i gatti o le scimmie, vengono ritenuti in possesso di vere e proprie capacità intellettive. 

A questo punto dobbiamo affrontare un piccolo excursus filosofico (non sarà l'unico, ma il tema lo richiede). Nella considerazione comune l'intelligenza umana rientra tra quei fenomeni che trascendono il mondo fisico e le sue leggi. Anche coloro che non professano alcuna credenza religiosa raramente sono disposti ad accettare l'idea che il pensiero, la coscienza, il ragionamento possano essere spiegati mediante qualche tipo di teoria scientifica. La formulazione più esplicita (e famosa) di questa credenza la dobbiamo al filosofo Cartesio, vissuto nel '600. Egli infatti, pur essendo stato uno dei fondatori del moderno pensiero scientifico, quando arrivò a trattare il problema della ragione umana non volle estendere anche ad essa la sua concezione meccanicista. Sostenne così che la mente e la realtà materiale sono fatti di due sostanze diverse, e che rispondono a leggi del tutto diverse. 

Questa visione, che prende il nome di dualismo, esercita tuttora un fascino notevole e, come abbiamo rilevato, è condivisa anche a livello di senso comune. Essa tuttavia va incontro ad una grossa difficoltà: se la mente è irriducibilmente separata dalla materia (e dunque dal corpo), come è possibile che queste due entità interagiscano? Il fatto che l'interazione esista è innegabile: quando io penso di avere fame e decido di voler mangiare il mio corpo si alza, va in cucina e mangia. La causa del movimento del mio corpo, dunque, è un mio pensiero. Ma come può una sostanza immateriale esercitare una azione causale su una sostanza materiale? Lo stesso Cartesio si rese conto di questa difficoltà, e cercò di trovare una spiegazione, senza molto successo. 

A questo punto non restava che accettare un atto di fede (mente e corpo interagiscono, pur essendo distinti, in virtù di un processo misterioso e inspiegabile) o risolvere il dualismo in un senso o nell'altro. Alcuni filosofi scelsero di negare (in vari modi) l'esistenza autonoma (o l'attingibilità) della realtà, dando vita alla tradizione filosofica che prende il nome di idealismo. Altri pensatori invece, cercarono di elaborare una teoria della mente che fosse compatibile con le leggi della realtà materiale. Non possiamo soffermarci sulla evoluzione di questa complessa vicenda intellettuale, durata oltre quattrocento anni. Tuttavia su una cosa ci preme attirare l'attenzione dei nostri pazienti lettori: una delle idee ricorrenti in molti pensatori della tradizione meccanicista è che il pensiero (per la precisione il ragionamento, ma ai nostri fini non fa differenza) sia in ultima analisi una forma di calcolo che la mente effettua manipolando qualche tipo di simboli, o idee. 

Questa idea (che abbiamo espresso in una forma assai semplificata) pur non essendo immune da problemi teorici e aporie, ha attraversato la tradizione culturale occidentale fino alla metà del nostro secolo, quando si è incontrata con la nascente scienza dei calcolatori. Un incontro decisivo: i computer infatti dimostravano che una macchina materiale era in grado di effettuare calcoli, anche molto complessi, senza fare appello a nessuna sostanza o influenza misteriosa o spirituale. Possiamo dunque chiudere questa nostra (prima) parentesi filosofica e ritornare al nostro argomento iniziale. 

Abbiamo detto che quando attribuiamo intelligenza ad un computer che esegue un comune programma, in realtà siamo preda di un abbaglio. Ma se fosse corretto identificare il pensiero con una qualche forma di calcolo, non vi sarebbe alcuna ragione di principio che impedirebbe di sviluppare programmi tanto complessi e potenti da dotare veramente la macchina di un comportamento 'intelligente'. Anzi potremmo anche spingerci oltre: non esiste nessuna ragione di principio per cui un computer non possa avere una mente intelligente in tutto e per tutto uguale a quella di un essere umano. Per conseguire tale obiettivo 'basterebbe', per così dire, capire che genere di calcoli sono alla base della nostra mente, e trasformarli in programmi per un computer. A partire dagli anni 50, con l'emergere della nuova disciplina chiamata intelligenza artificiale, alcuni scienziati e ricercatori si sono posti esattamente questo obiettivo.

Cosa è l'intelligenza artificiale

Prima di procedere con la nostra trattazione riteniamo opportuno fissare (nei limiti del possibile) alcuni termini di base. Cominciamo proprio con 'intelligenza artificiale'. Di norma questo termine (che viene comunemente contratto nell'acronimo 'IA') viene utilizzato per designare una disciplina scientifica (talvolta considerata una branca della più generale scienza dei calcolatori) il cui obiettivo può essere definito l'indagine sui meccanismi soggiacenti alle facoltà cognitive degli esseri umani (come il linguaggio, il ragionamento, la capacità di risolvere problemi, la percezione) e la loro riproduzione mediante computer opportunamente programmati (in realtà la limitazione allo studio delle facoltà cognitive degli esseri umani non è condivisa da tutti i ricercatori di questa area. Sono anzi sempre più numerosi gli studiosi che si occupano di studiare le facoltà cognitive di varie specie animali). Il primo ad usare l'espressione 'artificial intelligence' per indicare questo genere di ricerche è stato John McCarty, durante uno storico convegno che si tenne nella città statunitense di Dartmouth nel 1956. Non di rado lo stesso termine viene usato per indicare la capacità di un computer o di un programma di eseguire compiti intelligenti, o per qualificare un programma dotato di tali capacità (ed esempio nell'espressione 'programma di intelligenza artificiale'). 

Con il passare degli anni la disciplina designata come 'intelligenza artificiale' ha subito una divisione in due aree, che si distinguono in relazione al senso del termine 'riproduzione' che abbiamo usato nella precedente definizione.

La prima area è la cosiddetta 'intelligenza artificiale forte', la quale ritiene che un computer opportunamente programmato possa veramente essere dotato di una genuina intelligenza, non distinguibile in nessun senso importante dall'intelligenza umana. Come scrive John Haugeland: "La "IA" vuole solo originali: macchine dotate di mente in senso pieno e letterale" (J. Haugeland, Intelligenza Artificiale, Bollati Boringhieri 1988, p. 9). Alla base di questa concezione vi è la teoria che anche la mente umana sia il prodotto di un complesso insieme di procedimenti di calcolo, eseguiti dal cervello. Resta naturalmente da stabilire rispetto a quale livello di descrizione cervelli e computer possano essere considerati la stessa cosa (escludendo, almeno per ora, il livello dell'hardware!); nondimeno i sostenitori dell'IA forte sono convinti che un tale livello debba esistere. Questa area dell'IA è l'erede diretta della tradizione filosofica cui accennavamo nella premessa. 

La seconda area, per contro, viene chiamata 'intelligenza artificiale debole'. Essa sostiene che un computer opportunamente programmato possa solamente simulare i processi cognitivi umani (o alcuni di essi), nello stesso senso in cui un computer può simulare il comportamento di un evento atmosferico, o di una fissione nucleare (nessuno direbbe che un computer che simula una tempesta è una tempesta!). In questo caso dunque l'accento viene posto su ciò che un programma è in grado di fare, senza fare assunzioni sul fatto che il modo in cui lo fa coincida ad un qualche livello con i processi mentali umani. E d'altra parte non si pretende che un programma, per quanto complesso ed efficiente, possa veramente dirsi un esempio di 'mente'. Ovviamente i sostenitori di questa forma di IA sono interessati anche alle molte applicazioni pratiche delle tecnologie che vengono sviluppate nella loro disciplina. 

Le due declinazioni dell'intelligenza artificiale, pur differenziandosi profondamente rispetto agli assunti filosofici di base e alle finalità, condividono metodologie, strumentazioni e tecnologie. In particolare entrambe sostengono che per riprodurre e/o simulare un comportamento intelligente al computer sia necessario elaborare informazione (rappresentata da simboli discreti) mediante un programma . In questo senso esse costituiscono quella che viene chiamata 'intelligenza artificiale classica' (o più scherzosamente 'Good Old Artificial Intelligence', cioè 'Buona vecchia intelligenza artificiale'). 

Ad essa si oppone una scuola più recente, che parte da presupposti teorici affatto diversi: per ottenere un comportamento intelligente mediante una macchina occorre riprodurre e/o simulare il funzionamento del cervello a livello cellulare. Questa area di ricerca è conosciuta come connessionismo, poiché cerca di ricostruire con strumenti informatici la fitta rete di connessioni che legano le cellule neuronali. 

Vale la pena, infine, accennare ad un'altra disciplina: la scienza cognitiva. Si tratta di una area di studi che si è venuta costituendo negli ultimi venti o trenta anni grazie alla convergenza di esponenti di varie discipline (intelligenza artificiale, linguistica, filosofia del linguaggio e delle mente, psicologia cognitiva, neuroscienze), e il cui oggetto è lo studio dei sistemi intelligenti, naturali o artificiali che siano. In un certo senso la scienza cognitiva rappresenta l'erede della IA forte, soprattutto per la concezione che i sistemi intelligenti (qualunque essi siano) siano fondamentalmente sistemi di elaborazione dell'informazione che interagiscono con un ambiente complesso. D'altra parte la compresenza di diverse tradizioni disciplinari ha fatto si che in questa nuova area si riconoscessero anche molti studiosi fortemente critici verso i fondamenti dell'IA. 

In queste e nelle successive dispense del corso ci soffermeremo su alcuni aspetti più strettamente legati alla intelligenza artificiale propriamente detta. Tuttavia i lettori che fossero interessati ad approfondire i temi qui trattati, troveranno nella bibliografia spunti relativi a tutte le aree di ricerca che abbiamo fin qui menzionato.

I fondamenti teorici dell'Intelligenza artificiale

La prima formulazione esplicita del fondamento teorico dell’intelligenza artificiale si può forse rintracciare nel filosofo empirista inglese Thomas Hobbes (vissuto nel 600), che nel Leviatano, il suo libro più famoso, scrisse: “Ragionare non è nient’altro che calcolare” (T. Hobbes, The Leviathan, Cap. V; tr. it T. Hobbes, Il Leviatano, Editori Riuniti 1982). Con questa affermazione Hobbes intendeva dire che il ragionamento è una specie di operazione interna condotta mediante la manipolazione di quelle che egli stesso chiamò ‘particelle mentali’. Questa manipolazione, per Hobbes, era molto simile alle operazioni che si effettuavano quando si calcolavano numeri mediante un abaco. Si trattava, insomma di una serie di spostamenti delle particelle mentali eseguiti in base a regole ben precise. Le particelle mentali, infatti, erano concepite da Hobbes come dei minuscoli corpi fisici. Ma, a differenza delle palline di un abaco, non si limitavano a rappresentare numeri: potevano rappresentare molte altre cose.

Non seguiremo oltre quello che è stato definito ‘il nonno dell’intelligenza artificiale’ nelle sue riflessioni, e nelle difficoltà in cui incorse. Infatti già da questa semplice sinossi possiamo enucleare i fondamenti teorici che sono alla base della moderna IA:

  •  l’idea che il ragionamento, e in generale ogni tipo di attività della mente, sia un calcolo

  • il concetto di simbolo o rappresentazione

  • il concetto di calcolo inteso come manipolazione di simboli in base a regole

  • l’idea (implicita in Hobbes) che possa esistere qualcosa come un manipolatore automatico di simboli

Se ci pensate, alcuni dei concetti che compaiono in queste proposizioni teoriche fanno parte del bagaglio di concetti del senso comune: calcolo, rappresentazione o simbolo sono parole che si usano abitualmente. Tuttavia in questo contesto essi assumono dei sensi ben precisi, che non sono coincidenti con l’uso comune. Varrà dunque la pena soffermarci su di essi per considerarli sotto una nuova luce.

Il concetto di rappresentazione e di simbolo

 Cominciamo con l’analisi del concetto importantissimo di ‘rappresentazione’. Intuitivamente, tutti siamo in grado di indicare esempi di rappresentazione:

  • un quadro è una rappresentazione

  • una foto è una rappresentazione

  • una cartina stradale è una rappresentazione

Che cosa hanno in comune questi esempi? Il fatto di essere delle cose che ci mostrano (in vario modo) altre cose, persone o luoghi. Un ritratto, ad esempio, ci mostra l’aspetto di una persona. Una cartina stradale, invece, ci mostra la disposizione delle strade in una città o in una porzione di territorio. Generalizzando possiamo dire che una rappresentazione è un oggetto che sta per, o raffigura un altro oggetto. Una proprietà interessante delle rappresentazioni è che esse non sono delle copie esatte dei loro oggetti. Tornando ai nostri esempi, un ritratto rappresenta l’aspetto di una persona, ma non il suo tono di voce, la morbidezza della pelle, o il profumo dei capelli, per non parlare del suo carattere. Una rappresentazione dunque è sempre il prodotto di un processo di selezione tra le molte (infinite) caratteristiche dell’oggetto da raffigurare, ovvero di un processo di astrazione.

Le rappresentazioni si dividono in due classi in base al rapporto che esiste tra oggetto rappresentante e oggetto rappresentato. In alcuni casi, come per le foto, esiste una relazione fisica che determina il modo in cui l’oggetto viene rappresentato. La luce emessa dall’oggetto, ad esempio una casa, impressiona la pellicola imprimendovi sopra l’immagine. In altri casi, come per il disegno siamo noi che scegliamo come rappresentare la casa, usando delle linee verticali, orizzontali o oblique. Tuttavia tanto il disegno quanto la fotografia mantengono un rapporto di somiglianza o analogia con il loro oggetto. Questo tipo di rappresentazioni sono appunto definite analogiche.

Ora, prendiamo il disegno di una casetta, uno di quelli fatti dai bambini. Se analizziamo il disegno ci accorgiamo che la sua forma può essere descritta come un quadrato a cui viene sovrapposto un triangolo. Chiaramente abbiamo ancora a che fare con qualcosa che assomiglia vagamente alla casa reale. Tuttavia arrivati a questo punto possiamo fare un vero e proprio salto nel processo di astrazione. Infatti grazie alla geometria analitica (inventata da Cartesio!) le figure geometriche sul piano possono essere rappresentate mediante insiemi di equazioni. E quando consideriamo queste equazioni, costruite utilizzando i simboli algebrici e matematici, ci troviamo di fronte ad una rappresentazione della casa che fisicamente non ha nulla a che fare con la casa stessa, ma che in qualche modo continua a raffigurare alcune sue caratteristiche. Questo tipo di rappresentazioni sono denominate analitiche.



Figura 1 - La rappresentazione di una casa mediante equazioni

La rappresentazione della casa fatta mediante formule matematiche ha alcune interessanti caratteristiche. In primo luogo essa si basa su un insieme di segni ben definiti e distinti, cioè discreti (i segni dell'algebra lineare): possiamo indicare questi segni con il termine di simboli e possiamo dire che abbiamo una rappresentazione simbolica della casa. In secondo luogo questi simboli non hanno nulla a che fare con ciò che rappresentano: il fatto che siano usati per rappresentare una certa figura geometrica, che assomiglia a una casa, è frutto delle convenzioni e stipulazioni del sistema algebrico che utilizziamo, ed è da questo punto di vista arbitrario. Infine, ci accorgiamo facilmente che questi stessi simboli possono essere usati per rappresentare altri oggetti: ad esempio una scatola o un televisore. Basta che ci mettiamo d'accordo prima su che cosa vogliamo rappresentare, e sul significato dei simboli utilizzati. 

Se ci pensiamo bene, anche le parole di una lingua possono essere considerate rappresentazioni simboliche in questo senso. Se prendiamo una parola, ad esempio "gatto", ci accorgiamo che è composta da una sequenza di elementi distinti chiaramente l'uno dall'altro: i singoli caratteri dell'alfabeto. (In realtà il nostro esempio si riferisce alle parole scritte delle lingua. A essere precisi dunque ci troviamo in presenza di un duplice livello di rappresentazione: il primo è quello della scrittura che rappresenta la lingua parlata, ed il secondo quello della lingua che rappresenta oggetti o situazioni del mondo. Tuttavia i linguisti hanno dimostrato che anche il linguaggio parlato è costituito da elementi di base discreti, i fonemi, e dunque l'argomento varrebbe egualmente. Tenere conto di queste distinzioni, e delle molte considerazioni e punti di vista che potrebbero suggerire formulazioni alternative o più precise di quelle qui utilizzate, renderebbe tuttavia più complicata l'esposizione; abbiamo quindi preferito… essere un po' generici.) Possiamo dire che si tratta di un simbolo composto. Noi usiamo questo simbolo per parlare e scrivere sui gatti e ci capiamo perfettamente. Ma la parola "gatto", per quanto ci mettiamo a guardare, non mostra alcuna somiglianza con alcun gatto reale. Come i simboli matematici, anche i simboli della lingua rappresentano ciò che rappresentano in virtù di una convenzione.

Il calcolo come manipolazione di simboli e i sistemi formali

Torniamo a considerare la rappresentazione di una casa per mezzo di equazioni lineari. Molti di voi sapranno che grazie alle regole dell'algebra possiamo usare queste equazioni per calcolare ad esempio l'altezza della casa o la sua superficie. O meglio, per calcolare l'altezza o la superficie delle figure geometriche che rappresentano la casa. Ma che cosa facciamo quando effettuiamo questi calcoli? Di norma scriviamo su un pezzo di carta delle formule iniziali (le nostre equazioni), poi iniziamo a riscriverle trasformando i simboli che le compongono in base a regole ben precise. Che tipo di trasformazioni applichiamo? Spostiamo un simbolo da una parte ad un'altra della formula; introduciamo nuovi simboli o ne cancelliamo di esistenti. Tutto questo finché arriviamo a scrivere una formula che costituisce il risultato dei nostri calcoli. Quando si calcola dunque non si fa altro che manipolare, nel senso che abbiamo visto, simboli (eventualmente raccolti in formule) in base a regole esplicite. A ben vedere, potremmo anche non sapere niente dell'algebra, della risoluzione delle equazioni o dei sistemi di equazioni: basterebbe disporre di un manuale che ci dicesse che tipo di trasformazioni possiamo applicare in una determinata situazione, e saremmo in grado di calcolare. 

Questo modo di considerare il calcolo, che potrebbe sembrare piuttosto limitativo, si dimostra invece una estensione notevole della nozione di calcolo del senso comune. Essa infatti ci consente di far rientrare nel dominio dei calcoli una serie di fenomeni che normalmente non vengono considerati tali. Per capire che cosa intendiamo con questa affermazione prendiamo, ad esempio, un gioco banale come il tris. Come ognuno di voi saprà, nel tris due giocatori scrivono a turno uno dei due simboli (di norma una crocetta e un pallino) su una scacchiera composta da nove caselle. Per ogni turno di gioco ciascun giocatore può scrivere il suo simbolo in una qualunque delle caselle, purché sia libera. Lo scopo del gioco è allineare tre simboli eguali sulla scacchiera in verticale, orizzontale o diagonale; in alternativa il gioco finisce quando tutte le caselle sono state riempite. Se analizziamo questo gioco ci accorgiamo che abbiamo:

  • due simboli che si distinguono per la loro forma

  • una posizione iniziale del gioco: nel nostro caso, la scacchiera vuota

  • una regola precisa che ci dice per ogni singolo turno del gioco quali sono le mosse consentite;la regola è semplicissima: è possibile scrivere il proprio simbolo su ogni casella che non sia occupata

  • un insieme di posizioni finali che dicono quand'è che una partita finisce, e chi ha vinto

Giocare un gioco come il tris, dunque, corrisponde ad effettuare un processo di calcolo nel senso che abbiamo visto sopra. Per verificarlo proviamo a trasformare il gioco del tris in questo modo: rappresentiamo le caselle della scacchiera usando le nove cifre della numerazione decimale; la prima casella in alto a sinistra diventa '1', la seconda '2' e così via. Per i caratteri che vanno scritti nella scacchiera potremo usare i simboli 'X' e 'Y'. Infine, per indicare in quale casella è stato inserito un carattere scriveremo prima il simbolo del carattere poi la cifra della casella, in questo modo: 'X1' significa che la X è stata scritta nella prima casella in altro a sinistra.



Figura 2 - La traduzione del tris in un sistema formale

Il gioco consiste nello scrivere per passi successivi una sequenza di coppie simbolo/cifra con il vincolo che ogni cifra può essere usata solo un volta, e in due coppie adiacenti simbolo/cifra non deve comparire due volte lo stesso simbolo (quest'ultima condizione corrisponde al fatto che i due giocatori devono alternarsi nell'effettuare le loro 'mosse'). La partita finisce quando si verifica una di queste due condizioni:

  • nella sequenza di coppie uno dei due simboli di carattere compare, in qualsiasi ordine, insieme alle cifre delle seguenti terne: (1 - 2 - 3), (4 - 5 - 6), (7 - 8 - 9), (1 - 4 - 7), (2 - 5 - 8), (3 - 6 - 9), (1 - 5 - 9), (3 - 5 - 7);

  • la sequenza è costituita da nove coppie

Cominciamo a giocare. Al primo passo scriviamo X1. Al secondo passo introduciamo Y9, ottenendo X1Y9. Al terzo passo introduciamo X5, ottenendo X1Y9X5. Andando avanti per sei passi possiamo trovare questa sequenza: X1Y9X5Y8X6Y7. Bene, il gioco è finito: infatti il simbolo Y in questa sequenza si trova associato ai numeri di una delle terne che avevamo elencato sopra. Se volete potete trasformare questa sequenza nella corrispondente situazione della scacchiera: verificherete che ci saranno tre Y in sequenza nell'ultima riga! 

L'esempio che abbiamo fatto è piuttosto banale, ma ci permette di capire in che senso la nozione di calcolo, intesa come manipolazione di simboli in base a regole è una nozione molto vasta. Essa infatti descrive il funzionamento di tutti quei sistemi che operano in base ad un insieme (finito) di elementi di base formalmente distinti e ad un insieme (finito) di regole che specificano le possibili trasformazioni di quei simboli. I sistemi di questo tipo sono denominati sistemi formali. Un'altra conseguenza che possiamo trarre dal nostro esempio è che i sistemi formali (tra cui il tris) per funzionare non dipendono da nessuna caratteristica del mezzo con cui sono costruiti. Per giocare a tris non ha alcuna importanza di che materiale siano fatti la scacchiera e i simboli: possiamo disegnare la scacchiera su un foglio di carta; possiamo immaginare di costruire il tutto in legno come una piccola dama cinese; o possiamo trasformare il gioco come abbiamo visto, nella scrittura di una sequenza di formule. 

La classe dei sistemi formali è molto vasta. Giochi come la dama, gli scacchi, i giochi di carte, sono sistemi formali. Ma anche l'aritmetica e la logica sono sistemi formali. Secondo i teorici dell'intelligenza artificiale, infine, anche il pensiero può essere descritto come un sistema formale.

La macchina di Turing e la teoria rappresentazionale della mente

Se osserviamo il sistema formale che abbiamo costruito nel paragrafo precedente, notiamo che il suo funzionamento è completamente determinato dalla forma dei simboli e dalle regole di manipolazione. Non bisogna sapere nient'altro per farlo funzionare; soprattutto, non è richiesto nessun intervento creativo o intelligente. Questo vale per tutti i sistemi formali, per quanto complessi e articolati essi possano essere. Ma allora, nulla ci vieta di costruire una macchina che sia in grado di funzionare come un sistema formale. 

Naturalmente questa macchina deve essere una macchina particolare: un'automobile, ad esempio, non farebbe al caso nostro. Le caratteristiche di una macchina in grado di eseguire questo genere di compiti sono state definite in modo rigoroso dal logico e matematico Alan Turing in saggio pubblicato nel 1936 dal titolo Sui numeri computabili con una applicazione al "problema della decisione". L'obiettivo di Turing quando scrisse questo saggio era quello di risolvere alcuni complicati problemi logici che erano di grande interesse a quei tempi. 

Ma l'interesse di questo breve scritto non consiste solo in questo. Ciò che veramente è interessante è il metodo utilizzato da Turing. In tale metodo, infatti, troviamo per la prima volta molte delle idee alla base della moderna scienza dei calcolatori da un lato e della intelligenza artificiale dall'altro. Nel suo saggio infatti, Turing immagina una specie di macchina teorica, molto semplice, che facendo delle banali operazioni doveva essere in grado compiere qualunque tipo di calcolo, di qualsiasi genere. Oggi questa macchina viene comunemente denominata macchina di Turing. 

Una macchina di Turing è costituita da un dispositivo, una specie di testina, che può scrivere e leggere simboli, ad esempio 0 e 1, su un nastro. Il nastro è diviso in celle, ognuna della quali contiene un solo simbolo, e può avere una lunghezza potenzialmente infinita. La testina, oltre a scrivere, può spostarsi a destra o a sinistra, una cella alla volta. Inoltre può assumere un certo numero di stati interni distinti.



Figura 3 - La macchina di Turing simulata da un applet Java (disponibile all'indirizzo
http://www.bvu.edu/faculty/schweller/tmachine.html)

Il funzionamento della macchina avviene per passi successivi. Il suo comportamento ad ogni passo è determinato da regole, che tengono conto del simbolo che la testina legge sul nastro e del suo stato interno. Ad esempio: se la testina legge il simbolo 0 e si trova nello stato A, la regola potrà dirle di scrivere 1 al posto dello '0' e di spostarsi a destra, passando allo stato B. Specificando opportunamente una serie di regole come questa, la macchina di Turing è in grado di calcolare moltissime cose. Di più: è in grado di svolgere tutti i calcoli che sappiamo eseguire con altri metodi. Ma non basta. Non c'è alcuna ragione per cui i simboli di una Macchina di Turing debbano rappresentare numeri. Anzi, come sappiamo, di per sé un simbolo può rappresentare qualsiasi cosa. E se esistono delle regole che ci dicono come manipolare tali simboli in modo sensato, ebbene, una macchina di Turing può farlo. 

In effetti si può dimostrare che una macchina di Turing, dotata delle opportune istruzioni, è in grado di simulare il funzionamento di qualsiasi sistema formale. Anzi, la classe dei sistemi formali corrisponde esattamente alla classe delle funzioni che una macchina di Turing può calcolare. Potremmo anche dire che una macchina di Turing è una specie di sistema formale automatico. Inoltre, sappiamo anche che tutti i moderni calcolatori digitali sono equivalenti a una macchina di Turing, nel senso che un computer può fare tutto quello che una macchina di Turing può fare. Di conseguenza possiamo dire che un computer digitale è in grado di far funzionare (o di funzionare come) qualsiasi sistema formale. 

Non ci possiamo soffermare ulteriormente su queste considerazioni, poiché si tratta di argomenti di notevole complessità che richiederebbero una competenza specialistica. Ma quanto abbiamo detto ci è sufficiente per tornare al nostro discorso sui fondamenti dell'intelligenza artificiale. 

Infatti, se ipotizziamo che i processi che avvengono nella nostra testa quando pensiamo, ragioniamo, parliamo e capiamo possono essere descritti come sistemi formali, potremmo concludere che anche il cervello è una specie di macchina equivalente a una macchina di Turing e inter alia a un computer digitale. Questo non vuol dire che nel nostro cervello ci deve essere una testina che scrive simboli su un nastro infinito, o una CPU. Stiamo soltanto dicendo che - se partiamo da questa prospettiva - le operazioni che avvengono nel nostro cervello quando pensiamo sono manipolazioni di simboli, fisicamente rappresentati, secondo regole; detto in altri termini, sono una specie di programmi. (I simboli mentali, naturalmente, sarebbero diversi da quelli usati dai computer, ma per quel che concerne la loro utilizzazione nell'ambito dei processi di calcolo ciò che conta è solo la loro forma. Abbiamo visto infatti che il mezzo con cui viene costruito un sistema formale non ha alcuna influenza sul suo funzionamento.) 

Questa teoria sulla natura del pensiero viene comunemente indicata come teoria rappresentazionale della mente, e costituisce uno dei fondamenti teorici di molta parte dell'intelligenza artificiale. Infatti, se la suddetta teoria è vera, il problema di riprodurre su un computer digitale le capacità cognitive degli esseri umani si 'ridurrebbe' a quello di trovare le regole con cui il nostro cervello elabora i simboli mentali, e trasformarle in programmi.