Sei sulla pagina 1di 18

Universit` a degli Studi di Messina

T IROCINIO F ORMATIVO ATTIVO

Tesina per il corso di : D IDATTICA E L ABORATORIO DI M ATEMATICA D ISCRETA D OCENTE : PROF. G IORGIO N ORDO

` AD A LAN T URING : D ALLA LOGICA DELL ANTICHIT A IL PROBLEMA DELLA FERMATA

T IROCINANTE :
Zurzolo Antonella

C LASSE A042

A NNO A CCADEMICO 2011-2012

Indice
1 La logica 1.1 Le tre vie della logica . . . . . . . . . . 1.2 I periodi della logica . . . . . . . . . . 1.2.1 La logica nellantichit` a . . . . . 1.2.2 La logica nellera moderna . . 1.2.3 la logica nellera contempornea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 3 3 5 6 9 9 11 12 13 15 15 16

Macchine di Turing 2.1 Macchine di Turing a nastro singolo . . . . . . . . . . . . . . 2.1.1 Congurazioni e transizioni delle Macchine di Turing 2.1.2 Computazioni di Macchine di Turing . . . . . . . . . 2.2 Il Problema della Terminazione . . . . . . . . . . . . . . . . .

A Approfondimento: il Papiro di Rhind A.1 Problemi aritmetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Problemi geometrici . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Elenco delle gure


1 2 3 4 5 Macchina di turing . . . . . . . . . . . . . . . . . . . . . . . . . Esempio di transizione . . . . . . . . . . . . . . . . . . . . . . . Esempio di congurazione istantanea . . . . . . . . . . . . . . Un modo alternativo per calcolare larea del triangolo isoscele Un modo approssimato per calcolare larea del cerchio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 10 11 16 16

La logica

Nasce spontanea la domanda: che cos` e la logica? ` denire in tanti molti, ma io sceglierei questo:la logica e ` sempliLa logica si puo cemente la scienza del ragionamento. Ci sono due termini in questa denizione, ed essi sono scienza e ragionamento! Bisogna dunque soffermarsi per un momento e spiegarli meglio: ragionamento signica che stiamo cercando di costruire una teoria; questa teoria nel ` tangibile, non si riferisce ad esempio a come e ` fatto il mondo, nostro caso non e ` fatto il cervello o tante altre cose; a noi interessa studiare come luomo come e ragiona, luomo inteso ovviamente come essere umano. scienza signica che cercheremo di usare il metodo scientico, che poi nel caso della logica sar` a in particolare il metodo matematico. Quindi affermiamo innanzitutto, e molto brevemente, quale sar` a largomento del nostro discorso, cio` e il ragionamento e quale sar` a il metodo con cui noi affronteremo questo discorso, cio` e il metodo scientico. Come mai si parla di logica matematica? Per distinguerla dalla logica in generale, che era invece una scienza, o meglio un argomento, che veniva studiato gi` a dai tempi ` discorsiva, piu ` losoca, dei greci ma in un modo forse un po diverso, in maniera piu ` intuitiva e quindi non in maniera scientica, anche per un ovvio motivo, perch piu e allepoca la scienza non era ancora nata. ` la scienza del ragionamento, si puo ` immaginare per analogia che la loSe la logica e gica matematica sar` a la scienza del ragionamento matematico. Ed ecco che allora qui il matematico interviene in una maniera diversa, non soltanto come nella prima denizione, come metodo di studio del ragionamento, ma anche come oggetto del ragionamento stesso, cio` e ci interesseranno non soltanto i ragionamenti in generale, ma ` il ragionamento matematico: si e ` su un particolare aspetto del ragionamento, che e sempre pensato no dallantichit` a, n dai tempi di Pitagora, che il ragionamento ma` perfetta, piu ` astratta, piu ` sviluppata di ragionamento. Ed tematico fosse la forma piu ecco che allora si va a studiare matematicamente il ragionamento che viene fatto nella matematica. Dunque la matematica interviene in due maniere contrapposte, in parte come oggetto dello studio ed in parte come metodo di studio.

1.1

Le tre vie della logica

` pensato in certi periodi storici di studiaCome si arriva a studiare la logica, perch e si e re la logica, cio` e di studiare in maniera scientica, e poi successivamente in maniera matematica, il ragionamento? Le tre vie che si possono individuare sono: la dialettica i paradossi

le dimostrazioni Vediamo brevemente le motivazioni di queste tre vie. ` nata, probabilmente, in Occidente dalla Scuola greca dei sosti1 , che La dialettica e ha visto grandi personaggi, fra i quali Protagora e Gorgia, ai quali interessati in particolare larte della parola, del discorso; di conseguenza per cercare di catturare latten` incisiva possibile, zione del pubblico, per cercare di fare il discorso in una maniera piu ecco che i sosti incominciarono anzitutto a studiare quali erano le regole che stavano dietro, che soggiacevano al discorso, per cercare di usarle ai propri ni. ` la via meno scientica per la logica, ma e ` quella che poi tutto sommato noi Questa e usiamo, quando cerchiamo di convincere un avversario o un pubblico, qualcuno che cerchiamo di convincere di qualche cosa, usando le arti del discorso e larte del discorso per antonomasia era per lappunto la dialettica: per usare larte del discorso bisogna conoscerne le regole. ` tutI paradossi sono dei ragionamenti che apparentemente sono corretti e che, pero to sommato, dovrebbero essere sbagliati, perch e le loro conclusioni sono per lappunto paradossali; i paradossi ebbero unorigine antichissima, non soltanto in Grecia, ma ` usato per indicare una dimostrazione che, addirittura in Cina. Il termine paradosso e partendo da presupposti ritenuti validi, giunge a conclusioni che contrastano con il senso comune o che sembrano smentite dallevidenza empirica . Quindi il paradosso ` una affermazione solo apparentemente contraddittoria. Famoso e ` il paradosso del e mentitore: se affermo IO STO MENTENDO sto dicendo il vero o il falso? Analizziamo 1. Se laffermazione fosse vera direi la verita e quindi laffermazione e falsa 2. Se laffermazione fosse falsa direi la verita e quindi laffermazione e vera ` possibile affermare se sia Comunque io la giri questa frase non ha senso perch` e non e vera oppure falsa! In pratica abbiamo un sistema autorefente, cioe un qualcosa che si rifa a se stesso, e quindi abbiamo un risultato che non possiamo dire se sia vero o falso. La via dei paradossi, cerca di studiare quali sono i problemi che stanno dietro a questi tipi di ragionamenti, cerca di andar a vedere dove sia lerrore, se c` e un errore, e qual ` il modo di riformularli. e
1

` un aggettivo non particolarmente piacevole, perch` Sosta oggi e e quando si d` a a qualcuno del sosta questo lo si fa in genere maniera negativa, signica che questo qualcuno sta facendo un discorso capzioso, sta cercando di menare il can per laria, sta usando parole spesse volte senza signicato, giocando pure sullequivoco e cos` via.

Le dimostrazioni Ci avviciniamo pian piano alla logica matematica; il ragionamen` la terza via, la via delle dimostrazioni. Come mai? Agli inizi la to matematico e ` nata senza dimostrazioni; qualcuno intuiva che cerano dei risultati che matematica e si potevano ottenere, li scriveva, per esempio il famoso papiro di Rhind2 , che riporta al` Ebbene questi risultati cuni dei risultati egiziani che risalgono a 2000 anni a.C. e piu. venivano semplicemente scritti, trascritti senza nessuna giusticazione, senza nessun motivo per il quale noi avremmo dovuto credere. Ci fu un momento nella storia della ` fare cos` Grecia, verso il 600 a.C., in cui i greci capirono che non si doveva piu , anche 3 perch e non cera modo di sapere se un risultato era giusto o sbagliato . Allora come si fa a decidere di fronte ad unintuizione, a quello che ci sembra vero, se questa cosa ` effettivamente vera oppure no? Bisogna dimostrare. I greci furono stimolati allo e studio delle dimostrazioni da due famosi risultati che sono collegati fra di loro: ` riportata negli elementi di 1. la prima dimostrazione del Teorema di Pitagora, che e Euclide ` un numero irrazionale4 , non si puo ` scrivere come 2. la diagonale del quadrato e un rapporto di numeri interi ` quindi un nuovo motivo per cercare di capire che cosa sta dietro alle dimoQuesto e strazioni, quali sono le leggi che le regolano, e dunque ecco una nuova via, un altro modo di arrivare alla logica matematica.

1.2

I periodi della logica

Ci sono stati tre periodi principali della storia della logica: 1. lantichit` a 2. lera moderna 3. lera contemporanea 1.2.1 La logica nellantichit` a

` un qualche cosa che parte dalla matematica, e ` una delle grandi aree La logica oggi e ` stato sempre stato cos` della matematica moderna, ma non e .I tre personaggi che han` per la logica moderna sono Platone, Aristotele e Crisippo. I primi due no fatto di piu ` famosi loso dellantichit` sono i due piu a, coloro che ancora oggi, con le loro teorie, in qualche modo fondano la losoa moderna. ` alla logica, e ` quello che oggi viene chiamato Il risultato maggiore che Platone porto ` impunemente il principio di non contraddizione, il quale afferma che non si puo
Vedi approfondimento A volte gli egiziani effettivamente intuivano il risultato corretto, altre volte invece si sbagliavano e intuivano, per modo di dire, quello sbagliato. 4 Si parla equivalentemente dellirrazionalit` a della 2.
3 2

` dire oggi piove e dire dire una cosa e il suo contrario allo stesso tempo. Non si puo oggi non piove e poi pretendere che la gente creda a tutte le due cose, se ci stiamo ` stato un grosso risultato, riferendo allo stesso momento e allo stesso giorno; questo e ` il primo tentativo di isolare una delle grandi leggi della logica. e Aristotele, invece, viene considerato in realt` a il padre fondatore della logica moder` il piu ` grande logico mai vissuto. Qual e ` stato lapporto na e a dire il vero, forse e ` stato lo studio dei quanticatori, cio` fondamentale di Aristotele alla logica? Beh, e e lo studio delle leggi che regolano il funzionamento e luso di particelle come nessuno, qualcuno e tutti.Nessuno e tutti sono ovviamente contrapposti fra di loro, qualcuno ` nessuno n sta a met` a, non e e tutti.I quanticatori solo una delle parti fondamentali della logica moderna. ` meno noto, ma mentre Aristotele studio ` le regole delluso dei quanticatoCrisippo e ` cio ` che oggi viene chiamata la logica proposizionale o meglio ri, Crisippo invece studio quelle particelle linguistiche che servono a mettere insieme delle frasi semplici per ` complicate: queste particelle vengono dette connettivi. Si chiamano costruirne di piu connettivi perch e connettono, mettono insieme per lappunto parti diverse. Questi connettivi sono: 1. la negazione (il non) 2. la congiunzione ( le) 3. disgiunzione ( lo) 4. limplicazione (il se ... allora) ` il piu ` importante di tutti dal punto di vista matematico e Questultimo connettivo e dal punto di vista del ragionamento. Vediamo alcuni esempi: 1. esempio con non: se avete la frase oggi piove, potete negarla, potete ottenere una frase che dice il contrario di questa, dicendo oggi non piove oppure ` vero che oggi piove. non e 2. esempio con e: se voi avete due frasi: oggi piove ed io ho lombrello, ` la potete metterle insieme dicendo: oggi piove e io ho lombrello, questa e congiunzione. ` il connettivo che si usa quando si ha 3. esempio con o : poich e la disgiunzione e ` oggi la possibilit` a di scegliere fra due cose, quando si ha unalternativa , percio ` lalternativa, la disgiunzione. mangio una pastasciutta o una bistecca, questa e ` il connettivo tipico dei ragionamenti matematici: 4. esempio con se... allora: e ` vero, allora anche questaltro vero, cio` ` vera, allora se questo e e se lipotesi e `. anche la conclusione lo e

1.2.2

La logica nellera moderna

Avviciniamoci allera moderna: dopo lunghi secoli 5 , ecco che abbiamo unaltra triade, costituita da Leibniz Boole Frege ` stato un grandissimo giurista, diplomatico, ambasciatore, losofo, maLeibniz e ` ` stato anche un grande logico. E tematico e cos` via; fra le tante cose che ha fatto e stato colui che verso la ne del 1600, ebbe la visione losoca, cio` e precorse i tempi ` con il suo pensiero quella che poi sarebbe diventata la logica e praticamente formo moderna. Il suo grande merito fu il pensare a quella che lui chiamava in latino la ccaracteristica universalis, cio` e di riuscire a costruire un linguaggio formale, una lingua che fosse adatta a poter esprimere tutti i contenuti delle scienze, un qualche cosa che non fosse come la lingua naturale, che usiamo tutti i giorni, che ha le sue imperfezioni, che ha anche i suoi problemi, tipo i paradossi che abbiamo visto, come quella del mentitore, eccetera, ma una lingua costruita a tavolino in qualche modo e che fosse ` formalmente perfetta. Si potrebbe affermare che lintuizione di Leibniz oggi si e ` pero ` diventata la lingua dei calcolatori elettronici. concretizzato in quella che e

Linformatica, meglio i linguaggi di programmazione, sono versioni di quello che Leibniz sognava si potesse fare di questa caratteristica universale, questo linguaggio perfetto e puramente formale. Boole introdusse la cosiddetta algebra booleana, che prende il nome appunto da Boole. Questalgebra nasce semplicemente dallidea di usare lo zero e luno, cio` e i primi due numeri interi, come se fossero lanalogo, dal punto di vista matematico, di ` che nella logica, nel linguaggio, sono il vero e il falso. Luno corrisponde al vero, cio lo zero corrisponde al falso: la scoperta di Boole fu che le leggi logiche, che regolano il comportamento di vero e falso, sono praticamente le stesse leggi che regolano matematicamente o algebricamente il comportamento dello zero e delluno. Ed ecco che allora algebra booleana signica precisamente questo, cio` e comportarsi, lavorare, fare operazioni sullo zero e sulluno, come se in realt` a questi zero e uno stessero l` ` una grande scoperta e fu veramente in ad indicare il vero e il falso. Ebbene questa e qualche modo il punto nale, dellevoluzione della logica. Come mai il punto nale? Perch e in realt` a con lalgebra booleana si poteva descrivere da una parte la logica aristotelica, il comportamento di quei quanticatori di
Naturalmente nella logica ci furono altri personaggi che si interessarono di logica nei secoli, in particolare con la Scolastica, durante il Medioevo
5

cui abbiamo parlato prima, perlomeno nel modo in cui li usava Aristotele, dallaltra il comportamento dei connettivi come veniva usato da Crisippo; quindi lalgebra ` un unico mezzo che permette di parlare e di prendere sotto lo stesso tetbooleana e to due cose apparentemente diverse, come la logica aristotelica e la logica di Crisippo.

Questo era in qualche modo la chiusura, il completamento, la ne di unepoca. ` la logica moderna, perch Frege fu colui che veramente inizio e, come gi` a detto, Boo` che altro un completatore. La logica che Frege introdusse per la prima le era piu volta, fu qualche cosa che andava oltre la logica che avevano gi` a studiato i greci, in ` la logica dei particolare Aristotele e Crisippo. Si chiama oggi logica predicativa ed e ` quello che veramente serve nella matematica, perch predicati, la logica delle relazioni, e e in matematica non si parla soltanto di cose tipo soggetto e predicato alle quali si interessava Aristotele, ma si parla di relazioni in cui c` e non soltanto un soggetto, ma ci ` soggetti, piu ` complementi anche, quindi una struttura molto piu ` possono essere piu complicata. Tanto per fare un esempio, la relazione duguaglianza o disuguaglianza fra numeri, che coinvolge due numeri e non soltanto uno, la relazione di maggiore oppure di minore e cosi via, sono relazioni che coinvolgono per lappunto due cose o ` e non soltanto una. puiu, Senza una logica che permettesse di parlare di queste relazioni multiple, invece che univoche, unarie come quelle di Aristotele, non si sarebbe potuto concretizzare il sogno di Leibniz di avere una lingua per le scienze . 1.2.3 la logica nellera contempornea

Arriviamo inne allera contemporanea,cio` e al 900, a coloro che hanno stravolto il modo di pensare la logica. Questi personaggi sono : Post Wittgenstein Goedel Turing Post e Wittgenstein Post, nel 1920, scopre che la logica di Crisippo, la cosiddetta logica proposizionale, era completa. Non si poteva andare oltre, lanalisi che aveva fatto Crisippo, bench e lavesse fatta 2200 anni prima, in realt` a era unanalisi conclusiva. Boole laveva riformulata in termini algebrici, ma oltre Crisippo, se si rimaneva nellambito dei connettivi, non si poteva andare. Questo fu un grande risultato che fu scoperto non solo da Post, ma in qualche modo fu intravisto anche da Wittgenstein in

` certamente piu ` famoso come losofo del linquegli stessi anni, il 1921. Wittgentein e ` stato minimale, guaggio, che non come logico matematico, perch e il suo contributo e ma qualche cosa rimane, e rimangono in particolare le tavole di verit` a, che sono dei ` il valore di verit` mezzi utili per cercare di capire qual e a, cio` e il vero e il falso di una proposizione composta, riducendola in base ai valori di verit` a delle proposizioni che la compongono, cio` e sapendo che se le proposizioni semplici che costituiscono una proposizione composta sono vere o false, allora possiamo dedurre, con questo mezzo, ` vera o falsa, quindi ha formalizzato qualcosa di tecnicamente se lintera proposizione e utile. Le tavole di verit` a di Wittgenstein sono praticamente un metodo di decisione della logica proposizionale, cio` e se si ha a che fare con una formula della logica proposizionale, fatta attraverso i connettivi (praticamente la logica di Crisippo) gli assiomi della logica proposizionale sono sufcienti a dimostrare tutte le verit` a 6 logiche, e sapere se una formula e ` una tautologia oppure no! ` la completezza della logica predicativa, cio` ` Goedel nel 1930 dimostro e lanalogo di cio che Post aveva fatto per la logica proposizionale. Post aveva dimostrato che lanalisi di ` Crisippo era stata completa per quanto riguardava quei connettivi; Goedel dimostro che lanalisi di Frege per quanto riguarda invece la logica predicativa anchessa era stata completa, oltre Frege non si poteva andare, se si voleva rimanere allinterno di quellambito. ` il suo piu ` famoso teorema, il cosiddetto teorema di inNel 1931, Goedel dimostro completezza dellaritmetica: mentre sia la logica proposizionale che quella predicativa sono complete, e quindi in qualche modo siamo arrivati alla ne della storia della logica, a meno di non scoprire, inventare altre logiche nuove, in matematica le cose ` instanno diversamente. Il teorema di Goedel dice per lappunto che laritmetica e completa, non nel senso che oggi non si sono ancora trovati tutti i suoi assiomi, tutte le sue propriet` a e dunque bisogna aspettare qualche altro genio che lo faccia, ma lo dice nel senso che qualunque sistema di assiomi per laritmetica sar` a sempre incom` completare! Il teorema di incompletezza puo ` essere pleto, laritmetica non si puo parafrasato nel seguente enunciato: Tutte le assiomatizzazioni coerenti dellaritmetica contengono proposizioni indecidibili. Riutando lipotesi di incoerenza, che scardinerebbe tutto il castello della logica, si potrebbe assumere la proposizione indecidibile come assioma e costruire cos` un ` ampio e complesso; ma dato che, in virtu ` del teorema nuovo impianto logico piu di Godel, tutti i sistemi assiomatici contengono proposizioni indecidibili, anche il
` unaffermazione vera per qualsiasi valore di verit` Una tautologia e a degli elementi che la compongono. Per esempio, laffermazione Tutti i corvi sono neri, oppure c` e almeno un corvo che non lo `, e ` una tautologia, perch ` vera sia nel caso in cui i corvi siano neri, sia nel caso in cui non tutti lo e ee ` la seguente denizione: tautologia e ` cio ` che e ` tautologico siano. Un ironico ma ben chiaro esempio e ` tautologica). (La quale denizione, evidentemente, e
6

nuovo sistema ampliato presenter` a gli stessi problemi di incompletezza o incoerenza. I tentativi di costruire una logica assiomatica completa e al tempo stesso coerente possono proseguire allinnito senza ottenere alcun risultato, e di essi ci resta solo la conclusione che non e ` possibile realizzare un sistema di assiomi coerente e completo. Turing ebb` e lidea di creare una macchina, la cosiddetta macchina di Turing, studiando i teoremi di Goedel, cercando di affrontare un problema diverso, che era appunto il problema della decibilit` a della logica predicativa. Mentre le tavole di verit` a di Wittgenstein sono qualche cosa che permette di decidere per le proposizioni della logica ` che non c` proposizionale di Crisippo, se sono vere o false, Turing dimostro e un metodo analogo per la logica predicativa, quindi bench e la logica predicativa sia completa, come ha dimostrato Goedel, in realt` a qualche problema ce lha, e non c` e nessun ` che e ` vero o falso in generale per la logica premetodo che permetta di decidere cio dicativa. Dunque il teorema di Godel, sebbene riferito alla matematica pura, trova uno straordinario corrispettivo nel campo dellinformatica. Stabilire se un processo, il cui calcolo e ` afdato ad un computer, prima o poi termina (non importa quando, potrebbe nire anche tra 10.000 anni, ma in linea teorica esso ha termine) costituisce il problema della terminazione di Turing. In perfetta analogia con il teorema di Godel, esistono in ` impossibile stabilire se informatica dei processi indecidibili, cio` e processi per cui e hanno termine o meno. Di conseguenza non esiste (n e potr` a mai esistere) alcun programma in grado di stabilire se un altro processo generico abbia termine o no. ` questo: il fatto che Uno dei motivi che rendono la logica matematica interessante e sia una materia che non soltanto serve, ma che sta in qualche modo nellintersezione di tre aree cos` diverse, da una parte la losoa, dallaltra parte la matematica e ` essere interessante, per lapdallaltra ancora linformatica; la logica matematica puo ` interessante per i matematici, perch punto, per coloro che si interessano di losoa, e e ` parte della matematica e al contempo la studia, studia il ragionamento matematico e ` interessante anche per gli informatici perch con metodi matematici ed e e linformatica e ` nata precisamente da problematiche logiche, e ` stata creata da uno dei logici ed e ` parte di quella che e ` la logica matematica moderna.

Macchine di Turing

Le Macchine di Turing (MT) sono il modello di calcolo di riferimento fondamentale sia nellambito della teoria della calcolabilit` a sia in quello della teoria della complessit` a computazionale. Quando il logico inglese A. M. Turing ha introdotto questo modello, si poneva lobiettivo di formalizzare il concetto di calcolo allo scopo di stabilire lesistenza di metodi algoritmici per il riconoscimento dei teoremi nellambito ` accadesse in un periodo in cui i primi eladellAritmetica. Nonostante il fatto che cio boratori elettronici non erano ancora stati progettati, il modello denito da Turing ha assunto un ruolo molto importante per lo studio dei fondamenti teorici dellinformatica perch` e in tale modello si associa una elevata semplicit` a di struttura e di funzio` , no ad oggi, ritenuto il massimo potere namento ad un potere computazionale che e computazionale realizzabile da un dispositivo di calcolo automatico. Cos` come gli automi a stati niti e gli automi a pila, di cui rappresenta unestensione in termini ` denita come un dispositivo operandi capacit` a operative, la macchina di Turing e te su stringhe contenute su una memoria esterna (nastro) mediante passi elementari, deniti da una opportuna funzione di transizione.

2.1

Macchine di Turing a nastro singolo

` tradizionale una macchina di Turing si presenta come un diNella sua versione piu spositivo che accede ad un nastro potenzialmente illimitato diviso in celle contenenti ciascuna un simbolo appartenente ad un dato alfabeto dato, ampliato con il carattere speciale (blank) che rappresenta la situazione di cella non contenente caratteri. ` scorrere La macchina di Turing opera su tale nastro tramite una testina, la quale puo su di esso in entrambe le direzioni, come illustrato in Figura 1. Su ogni cella la testina ` leggere o scrivere caratteri appartenenti allalfabeto oppure il simbolo . puo Ad ogni istante la macchina si trova in uno stato appartenente ad un insieme nito ` una funzione Q ed il meccanismo che fa evolvere la computazione della macchina e di transizione la quale, a partire da uno stato e da un carattere osservato sulla cella ` attualmente posizionata la testina, porta la macchina in un altro del nastro su cui e stato, determinando inoltre la scrittura di un carattere su tale cella ed eventualmente lo spostamento della testina stessa. Diamo la seguente denizione formale: ` una sestupla Una macchina di Turing deterministica (MTD) e M = , , Q, q0 , F, (1)

` l alfabeto dei simboli di nastro, e ` un carattere speciale dove e ` un insieme nito e non vuoto di stati, q0 Q e ` lo denominato blank, Q e ` linsieme degli stati nali e e ` la funzione (parziale) stato iniziale, F Q e di transizione, denita come : (Q F ) ( { }) Q ( { }) {d, s, i} (2)

Figura 1: Macchina di turing

in cui d, s e i indicano, rispettivamente, lo spostamento a destra, lo spostamento a sinistra e lassenza di spostamento della testina. Ad esempio, la Figura 2 illustra la transizione denita da (q3 , b) = (q4 , a, d)

Figura 2: Esempio di transizione

Le macchine di Turing deterministiche possono venire utilizzate sia come strumenti per il calcolo di funzioni, sia per riconoscere o accettare stringhe su un alfabeto di

10

Figura 3: Esempio di congurazione istantanea

input , cio` e per stabilire se esse appartengano ad un certo linguaggio oppure ` essere visto come il calcolo di una no. Si noti che, in realt` a, questo secondo caso puo particolare funzione, la funzione caratteristica del linguaggio. 2.1.1 Congurazioni e transizioni delle Macchine di Turing

` semplicemente congurazione) di una macchina di La congurazione istantanea (o piu ` linsieme delle informazioni costituito dal contenuto del nastro, dalla posiTuring e zione della testina e dallo stato corrente. ` data da una stringa di lunUna possibile rappresentazione di una congurazione e ghezza nita contenente tutti i caratteri presenti sul nastro, oltre a un simbolo speciale corrispondente allo stato interno, posto immediatamente prima del carattere individuato dalla posizione della testina. ` denita come un dispositivo operante su di Infatti, anche se la macchina di Turing e ` detto, in ogni momento solo una porzione nita di taun nastro innito, come si e le nastro contiene simboli diversi da . Per tale ragione, si conviene di rappresentare ` piccola porzione (nita) di nastro contenente tutti i simbonella congurazione la piu ` posizionata la testina, - come li non - includendo obbligatoriamente la cella su cui e illustrato in Figura 3. ` che xy rappresenti il contenuto della Linterpretazione data ad una stringa xqy e sezione non vuota del nastro, che lo stato attuale sia q e che la testina sia posizionata sul primo carattere di y. Nel caso di gura 3 x=abb b e y=ab bb . Nel caso in cui x = abbiamo che a sinistra della testina compaiono solo simboli , mentre se y = , vuol dire che sulla cella attuale e a destra della testina compaiono soltanto simboli . ` rappresentato dalla congurazione iniziaUn particolare tipo di congurazione e le. Indichiamo con tale termine una congurazione che, data una qualunque stringa x 7 , rappresenti stato e posizione della testina allinizio di una computazione su input x. Per quanto riguarda lo stato, ricordiamo che per denizione esso dovr` a ` opportuno stabilire essere q0 , mentre, prima di denire la posizione della testina, e una convenzione sulla maniera di specicare linput x su cui la macchina deve
7

={ }

11

operare. La convenzione universalmente adottata prevede che allinizio della computazione la macchina abbia il nastro contenente tale input su una sequenza di | x | celle contigue, che tutte le altre celle siano poste a e che la testina sia inizialmente posizionata sul primo carattere di x. Inne, una macchina di Turing si trova in una congurazione nale se il suo stato at` uno stato nale, indipendentemente dal contenuto del nastro e dalla posizione tuale e della testina (per denizione della funzione di transizione, una macchina di Turing ` effettuare ulteriori passi di comche si trovi in una congurazione nale non puo putazione). Chiaramente, una congurazione descrive in modo statico la situazione in cui una macchina di Turing si trova in un certo istante. Per caratterizzare il comportamento dinamico di una macchina di Turing, che determina il suo passaggio da congurazione a congurazione, dobbiamo fare riferimento alla relativa funzione ` essere rappresentata mediante matrici di transizione e gra di di transizione, che puo transizione. Nel caso della macchina di Turing, le colonne della matrice di transizione 8 ai possibili stati corrispondono ai caratteri osservabili sotto la testina (elementi di interni della macchina (elementi di Q), mentre gli elementi della matrice (nel caso di macchina di Turing deterministica) sono triple che rappresentano il nuovo stato, il carattere che viene scritto e lo spostamento della testina. 2.1.2 Computazioni di Macchine di Turing

Le macchine di Turing deterministiche rappresentano uno strumento teorico potente e generale per affrontare in maniera adeguata il problema del riconoscimento di linguaggi. In tale contesto si parla delle macchine di Turing come di dispositivi rico` noscitori. Si noti che, dato un alfabeto di input una macchina di Turing puo essere vista come un dispositivo che classica le stringhe in in funzione del tipo di ` accadere che per essa non esista alcuna computaziocomputazione indotta. Ma puo ne massimale, e che quindi la computazione di M su input x non termini. Si osservi ` possibile vericare in tempo nito (semplicemente inoltre che, mentre per ipotesi e osservando la computazione eseguita) se M accetta o riuta una stringa x, la verica di questo terzo caso si presenta di soluzione meno immediata. Infatti, in tal caso los` di aiuto, in quanto, dopo una qualunque computazione non servazione di M non ci e massimale di lunghezza nita, non possiamo sapere se tale computazione terminer` a in un qualche istante futuro o meno. In effetti, per risolvere tale problema sarebbe necessario avere a disposizione una diversa macchina di Turing M la quale sia in grado di determinare in un tempo nito, date M e x, se la computazione eseguita da M su input x termina o meno. Tale ` risolubile, nel senso che non problema, detto problema della terminazione, non e esiste alcuna macchina di Turing con questa capacit` a.

= { }

12

2.2

Il Problema della Terminazione

` indecidibile dire se una macchina di Dimostriamo ora il seguente Teormema: E Turing termina la sua computazione La dimostrazione si fa per assurdo. Sia H una Macchina di Turing che risolve il ` signica che: problema, cio ` costituito dalla stringa w e dalla Macchina di Turing M 9 1. Linput di H e ` accettata da H se la computazione di M termina, altrimenti e ` 2. Una stringa e riutata

A partire da H si costruisce la macchina H, che effettua le stesse computazioni di H eccetto che H cicla indenitivamente se H termina in uno stato di accettazione. Lidea per la costruzione di H e ` quella di creare una macchina che si ferma se la macchina di input non si ferma e non si ferma se la macchina di input si ferma. ` si puo ` facilmente ottenere se ad esempio si addizionano ad H transizioni che Cio muovono la testina indenitivamente a destra se H raggiunge lo stato di accettazione.

` quello di combinare la macchina H con una macchina Copia Il passo successivo e che sia capace di replicare il suo input. La macchina D accetta in input una matrice funzionale, ne crea una copia e fornisce la coppia M M in ingresso ad H la cui esecuzione da parte di H produce la stringa M(M) ovvero il risultato della M ap` possibile codicare ogni macchina di Turing come stringa plicata a se stessa. Poich ee ` essere codicata e data in input a D stessa. binaria, anche la macchina D puo
9

M rappresenta una macchina di Turing che si ferma con input w

13

Si ha contraddizione in quanto la macchina D si ferma se si verica la condizione che D non si ferma sullinput D. Oppure D non si ferma se D si ferma sullinput D.

Lindecidibilit` a del problema della terminazione ha delle importanti conseguenze nellambito della teoria della programmazione. In particolare, esso indica chiaramente che non e ` possibile costruire un perfetto sistema di debugging che sia in grado di determinare se un programma termini o meno sullinput dato!

14

Approfondimento: il Papiro di Rhind

` il piu ` esteso papiro egizio di argomento matematico giunto no Il papiro di Rhind e ` nel 1858 a noi. Deve il suo nome allantiquario scozzese Henry Rhind che lo acquisto ` anche noto come Papiro di Ahmes dal nome dello scriba che a Luxor in Egitto. E lo trascrisse verso il 1650 a.C. durante il regno di Aphophis traendolo da un papiro precedente composto fra il 2000 a.C. e il 1800 a.C. ` scritto in ieratico ed e ` alto 33 cm e lungo 3 m. E Contiene tabelle di frazioni e 84 problemi aritmetici, algebrici e geometrici con le rela` interessante vedere come venivano risolti alcuni problemi aritmetici, tive soluzioni. E quali la moltiplicazione e laddizione:usavano una successione di raddoppiamenti.

A.1

Problemi aritmetici

Moltiplicazione Per moltiplicare addizionavano il moltiplicando a s e stesso, duplicavano ancora il risultato ottenuto e cos` via, nch e (usando il linguaggio moderno) la potenza di due impiegata rimaneva minore del moltiplicatore. Ad esempio supponiamo di voler moltiplicare 25 per 11. Prima calcoliamo: 1 x 25 25 2 x 25 50 4 x 25 2 x 50 100 8 x 25 2 x 100 200 (Non si esegue la moltiplicazione 16x 25 perch e 1611). Si decompone poi il moltiplicatore in una somma di potenza di due (in questo caso 11 = 8 + 2 + 1 ) e si sommano i prodotti corrispondenti alle potenze di due presenti nella decomposizione. In questo caso baster` a sommare 200 + 50 + 25 per ottenere 25 x 11 = 275 Divisione Per dividere si utilizzava lo stesso procedimento sul divisore. Ad esempio volendo dividere 60 per 12 si calcolava: 1 x 12 12 2 x 12 24 4 x 12 2 x 24 48 Poich e 48 + 12 = 60, 60 : 12 = 4 + 1 = 5 Con questo sistema e utilizzando le tabelle di ` detto prima, Ahmes e ` in grado di moltiplicare e dividere frazioni. Alcuni procui si e blemi infatti richiedono di ripartire pagnotte o birra fra un certo numero di persone e in proporzioni denite.

15

A.2

Problemi geometrici

I problemi geometrici riguardano il calcolo di alcune aree. Larea del triangolo isoscele viene calcolata dividendolo in due triangoli rettangoli e ruotandone uno in modo da ottenere un rettangolo. Si trova il risultato, quindi, moltiplicando la met` a della base per laltezza.

Figura 4: Un modo alternativo per calcolare larea del triangolo isoscele

Con lo stesso metodo si calcola larea del trapezio isoscele: met` a della somma delle basi per laltezza. Viene calcolata larea di un cerchio di diametro uguale a 9 unit` a ponendola uguale a quella di un quadrato di lato 8 unit` a.

Figura 5: Un modo approssimato per calcolare larea del cerchio

Applicando le conoscenze odierne: Aquadrato = 82 = 64 Acerchio = (9/2) 2 20.25 ` signica porre cio = 64 : 20.25 3.16 ` unapprossimazione abbastanza vicina al pi greco pi che e

3.14.

16

Potrebbero piacerti anche