Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Download
Standard view
Full view
of .
Look up keyword
Like this
2Activity
0 of .
Results for:
No results containing your search query
P. 1
La Macchina di Turing (esposizione semplice + link ad applet java)

La Macchina di Turing (esposizione semplice + link ad applet java)

Ratings: (0)|Views: 208|Likes:
Published by api-19623993

More info:

Published by: api-19623993 on Nov 25, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as RTF, PDF, TXT or read online from Scribd
See more
See less

01/23/2015

pdf

text

original

La macchina di Turing

Presentiamo una semplice macchina astratta capace di elaborare informazione
in formato digitale sulla base di un programma composto da regole: la
cosiddetta macchina di Turing (MdT). La MdT prende il nome dal logico e
matematico inglese Alan Turing ed \u00e8 solo una costruzione concettuale. Ma si
tratta di una costruzione concettuale di grande fascino: semplicissima (come
vedremo, gli 'ingredienti di base' di una MdT sono pochi e di facile
comprensione) ed estremamente potente. La definizione di macchina formale
diTuring \u00e8 uno degli strumenti pi\u00f9 affascinanti tra quelli che hanno posto le
basi per l'evoluzione dell'informatica

moderna e dei concetti legati alla struttura di un programma e degli
algoritmi ad essi collegati. Questa macchina puramente teorica \u00e8 nata
come sussidio allo studio degli algoritmi e della possibilit\u00e0 di risolvere
alcuni particolari problemi di elaborazione. In altre parole si tratta di un
"banco di prova" teorico per verificare se un problema \u00e8 risolvibile
mediante computer.

L'unit\u00e0 esterna di memorizzazione della MdT \u00e8 un nastro di lunghezza
potenzialmente infinita (la premessa di Turing era che la macchina fosse
concettualmente semplice, non che fosse anche facile da realizzare!), esso \u00e8 in

grado di memorizzare tutti i dati relativi ad ogni particolare elaborazione indipendentemente dalla loro quantit\u00e0. Il nastro \u00e8 sezionabile in singole celle e in ciascuna di esse pu\u00f2 essere scritto un simbolo. L'alfabeto dei simboli che possono essere scritti nelle caselle del nastro sar\u00e0 finito; per semplificare, visto che \u00e8 sempre possibile 'tradurre' in formato binario alfabeti finiti pi\u00f9 complessi (come le dieci cifre della notazione decimale o le lettere che usiamo per scrivere), assumiamo che su ogni casella del nastro si possano scrivere solo i simboli '0' o '1'.

Oltre al nastro con le sue cellette, la nostra MdT comprender\u00e0 una testina di lettura/scrittura (pensiamo a qualcosa di simile alla testina di un registratore) che sia in grado dilegg ere il simbolo che si trova nella celletta sopra la quale \u00e8 posizionata, e discrivere su tale celletta in modo da potere - volendo - modificare il simbolo che ha letto. Il dispositivo di lettura e scrittura, al pari del supporto di memorizzazione, deve essere in grado di trasferire i simboli desiderati sul nastro stesso e, al contempo, deve possedere la capacit\u00e0 di deciderne la direzione di movimento mediante una unit\u00e0 di controllo. Quest'ultima inoltre contiene naturalmente il programma da eseguire. Infatti la MdT potr\u00e0 assumere una serie finita distati distinti ed \u00e8 attraverso la distinzione di questi stati che potremo specificare le istruzioni delprogramma da fare eseguire alla macchina.

Questoprogramma far\u00e0 s\u00ec che la testina si sposti sulnastro facendocambiare

stato alla macchina stessa in dipendenza dallo stato in cui la macchina si trovava in precedenza e dal simbolo sul quale la testina si trova posizionata. Ad esempio, potremmo stabilire che, se la macchina si trova nello statoa e

legge un 1 nella casella su cui \u00e8 posizionata la testina, la testina si dovr\u00e0 spostare a destra di una casella e la macchina dovr\u00e0 passare nello statob (a questo punto, dovremo ulteriormente specificare le istruzioni che la macchina deve eseguire quando si trova nello statob, in dipendenza da quello che la testina legge sul nastro, e cos\u00ec via). Insomma:

La particolare successione di '0' e di '1' scritta sul nastro prima dell'avvio della macchina rappresenta l'input della macchina - i dati sui quali vogliamo farla lavorare. La particolare successione di '0' e di '1' scritta sul nastro nel momento in cui la macchina si ferma (se si ferma - come vedremo potrebbe anche non farlo) rappresenta invece l'output della macchina, il risultato del suo processo di elaborazione.

La MdT risulta sostanzialmente "dedicata" ad ogni unica applicazione che si intenda simulare: infatti essa non \u00e8 dotata di un dispositivo di memoria di massa sul quale far risiedere o poter leggere il programma stesso.

La logica di controllo della macchina \u00e8 composta dafrasi os tringhe composte da cinque campi o istruzioni (dette "quintette"). L'esecuzione di ogniquintetta \u00e8 vincolata sostanzialmente sia dal simbolo presente al momento nell'unit\u00e0 di lettura e scrittura che dallos tato della macchina. Lo stato della macchina \u00e8 una condizione essenzialmente arbitraria. In linea di principio potremo definire uno stato arbitrarioSi di avvio, nel quale la macchina inizia l'esecuzione della procedura di calcolo, fino a raggiungere la speciale condizioneH (Halt) che corrisponde al termine dell'esecuzione. Tra questi due stati possono naturalmente essercin stati differenti che riflettono appunto il risultato dell'elaborazione in corso e stabiliscono qualequintetta eseguire di conseguenza.

Ogni quintetta \u00e8 composta dai seguenti cinque elementi:
1. L'attuale stato della macchina
2. Il simbolo contenuto nella cella correntemente in corso di lettura

3. Il simbolo da scrivere nella medesima cella se non avviene alcun
modifica del dato
4.Lo stato della macchina a seguito delle precedenti operazioni (2 e3)
5.La direzione di scorrimento del nastro (avanti oindietro)

Ad esempio, la quintetta (S1,7,9,S2,R) viene eseguita ogni qualvolta la macchina si trova nello statoS1 e la testina di lettura legge un7. A quel punto, il7 viene sostituito da un9, la macchina viene posta nello statoS2 ed il nastro viene fatto scorrere di una posizione verso destra (R =right = destra).

Con queste premesse, la progettazione di una MdT per la soluzione di un determinato problema significa definire il formato dei dati immessi mediante il sistema di lettura, quello dei dati prodotti durante l'elaborazione e che poi, di conseguenza, verranno riprodotti sul nastro magnetico quando ad elaborazione terminata si raggiunger\u00e0 lo statoH, e, infine, il numero diquintette necessarie per l'implementazione dell'intero algoritmo.

Sembra complicato? Per capire meglio, fate un po' di esperimenti con il
programma di simulazione (vedi immagine sotto) di una MdT della Buena Vista
University

Una MdT \u00e8 in grado di effettuare moltissime operazioni anche molto complesse: in effetti, \u00e8 in grado di effettuare tutte le operazioni che pu\u00f2 compiere il pi\u00f9 potente dei computer a noi noti, ovvero, per parlare in forma pi\u00f9 tecnica, \u00e8 in grado di calcolare il valore di qualsiasi funzione per la quale disponiamo di procedure effettive di computazione.

Le MdT sono strumenti potenti: non si limitano a trovare la soluzione di semplici problemi di aritmetica, come l'addizione, ma permettono di computare un ambito estremamente ampio di funzioni matematiche: in effetti, per quanto ne sappiamo,tutte le funzioni computabili attraverso un metodo definito e un numero finito (anche se magari enormemente grande) di passi. Naturalmente, le MdT capaci di computare funzioni particolarmente complicate lavoreranno a loro volta su lunghi insiemi di regole, e arriveranno alla soluzione svolgendo un gran numero di passi.

Ma veramente le MdT sono in grado di computare tutte le funzioni computabili? E' difficile dare con sicurezza una risposta affermativa a questo interrogativo: pu\u00f2 ben darsi che un giorno qualcuno scopra dei metodi effettivi di computazione in grado di computare funzioni che una normale MdT non \u00e8 in grado di affrontare. Tuttavia, per ora non abbiamo trovato metodi simili: fino ad ora ogni funzione computabile attraverso metodi che da un punto di vista intuitivo possiamo considerare effettivi risulta anche computabile da una

Activity (2)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->