Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
La MdT come modello di calcolo è stata introdotta nel 1936 da Alan Turing per dare risposta all'Entscheidungsproblem (problema di
decisione) proposto daHilbert nel suo programma di fondazione formalista dellamatematica.
Indice
Caratteristiche
Definizione
Introduzione informale
Impostazione formale
Ampiezza della portata e congettura di Church-T
uring
Il problema dell'arresto e la sua indecidibilità
Varianti della macchina di Turing
Macchina di Turing multinastro
Macchina di Turing con memoria bidimensionale
Macchina di Turing non deterministica
Definizione
Equivalenza con la MdT classica
Macchine di Turing semplificate
Macchina di Turing universale
Come nacque la macchina di Turing
Note
Bibliografia
Libri
Articoli
Voci correlate
Altri progetti
Collegamenti esterni
Simulatori
Caratteristiche
Essa ha la particolarità di essere retta da regole di natura molto semplice, ovvero di potersi descrivere come costituita da meccanismi
elementari molto semplici; inoltre è possibile presentare a livello sintetico le sue evoluzioni mediante descrizioni meccaniche
piuttosto intuitive. D'altra parte, essa ha la portata computazionale (potere computazionale) che si presume essere la massima: si
dimostra, infatti, che essa è in grado di effettuare tutte le elaborazioni effettuabili dagli altri modelli di calcolo noti all'uomo. Tra
questi modelli di calcolo ricordiamo le funzioni ricorsive di Jacques Herbrand e Kurt Gödel, il lambda calcolo di Alonzo Church e
Stephen Kleene, la logica combinatoria di Moses Schönfinkel e Haskell Curry, gli algoritmi di Markov, i sistemi di Thue, i sistemi di
Post, le macchine di Hao Wang e le macchine a registri elementari o RAM astratte di Marvin Minsky. Di conseguenza si è
consolidata la convinzione che per ogni problema calcolabile esista una MdT in grado di risolverlo: questa è la cosiddetta congettura
di Church-Turing, la quale postula in sostanza che per ogni funzione calcolabile esista una macchina di Turing equivalente, ossia che
l'insieme delle funzioni calcolabili coincida con quello delle funzioni ricorsive.
Gli algoritmi che possono essere implementati da una MdT si dicono "algoritmi uring-computabili".
T
Definizione
Della MdT vengono considerate molteplici varianti (models) che si dimostrano avere la stessa portata. Qui partiamo da una variante
piuttosto semplice che possiamo chiamare macchina di Turing deterministica a un nastro e con istruzioni a cinque campi. Altre
varianti sono presentate più avanti.
Introduzione informale
La macchina può agire sopra un nastro che si presenta come una sequenza di caselle nelle quali possono essere registrati simboli di
un ben determinato alfabeto finito; essa è dotata di una testina di lettura e scrittura (I/O) con cui è in grado di effettuare operazioni di
lettura e scrittura su una casella del nastro. La macchina si evolve nel tempo e ad ogni istante si può trovare in uno stato interno ben
determinato facente parte di un insieme finito di stati. Inizialmente sul nastro viene posta una stringa che rappresenta i dati che
caratterizzano il problema che viene sottoposto alla macchina. La macchina è dotata anche di un repertorio finito di istruzioni che
determinano la sua evoluzione in conseguenza dei dati iniziali. L'evoluzione si sviluppa per passi successivi che corrispondono a una
sequenza discreta di istanti successivi. Le proprietà precedenti sono comuni a molte macchine formali (automa a stati finiti, automa a
pila, ...). Caratteristica delle MdT è quella di disporre di un nastro potenzialmente infinito, cioè estendibile quanto si vuole qualora
questo si renda necessario.
Ogni passo dell'evoluzione viene determinato dallo stato attuale s nel quale la macchina si trova e dal carattere c che la testina di I/O
trova sulla casella del nastro su cui è posizionata e si concretizza nell'eventuale modifica del contenuto della casella, nell'eventuale
spostamento della testina di una posizione verso destra o verso sinistra e nell'eventuale cambiamento dello stato. Quali azioni
vengono effettuate ad ogni passo viene determinato dalla istruzione, che supponiamo unica, che ha come prime due componenti s e c;
le altre tre componenti dell'istruzione forniscono nell'ordine il nuovo stato, il nuovo carattere e una richiesta di spostamento verso
sinistra, nullo o verso destra.
Una evoluzione della macchina consiste in una sequenza di sue possibili "configurazioni", ogni configurazione essendo costituita
dallo stato interno attuale, dal contenuto del nastro (una stringa di lunghezza finita) e dalla posizione sul nastro della testina di I/O.
Nei casi più semplici l'evoluzione ad un certo punto si arresta in quanto non si trova nessuna istruzione in grado di farla proseguire. Si
può avere un arresto in una configurazione "utile" dal punto di vista del problema che si vuole risolvere; in tal caso quello che si trova
registrato sul nastro all'atto dell'arresto rappresenta il risultato dell'elaborazione. Si può avere però anche un arresto "inutile" che va
considerato come una conclusione erronea dell'elaborazione. aVsubito detto che può anche accadere che un'evoluzione non abbia mai
fine (Vedi la successiva sezione eProblema della fermata).
Impostazione formale
Si definisce macchina di Turing deterministica a un nastro e istruzioni a cinque campi, termine che abbreviamo con MdT1n5i, una
macchina formale della seguente forma:
Se , la corrispondente quintupla può considerarsi come l'istruzione che viene eseguita quando la
macchina si trova nello statos e la testina di I/O legge a sulla casella sulla quale è posizionata; essa comporta la transizione allo stato
t, la scrittura del carattereb e:
Infatti, tutte le macchine che si conoscono possono essere ricondotte al modello estremamente semplice diuring.
T Ad esempio, anche
i più complessi computer odierni possono essere ricondotti a questo modello:
Innanzitutto, si individuano macchine relativamente semplici che ef fettuino le operazioni aritmetiche di base, e
schemi di composizione di queste macchine che permettono di calcolare tutte le funzioni che hanno in ingresso
numeri naturali. Queste funzioni corrispondono alle espressioni ottenute combinando come si vuole le suddette
operazioni.
Quindi, si individuano versioni della MdT più ricche di risorse, che consentano di descrivere più agevolmente
operazioni via via più complesse e che riguardino entità discrete dei generi più vari (numeri razionali, grafi, stringhe,
espressioni simboliche di varia natura, ...), ma tutte riconducibili a numeri naturali; le elaborazioni e le entità dei tipi
più vari devono essere prese in considerazione per sostenere la congettura di Church-T uring.
Proseguendo in questa direzione, si introducono MdT dotate di memorie complesse, come sequenze di nastri e
memorie bidimensionali e tridimensionali, assimilabili ai dischi e alle pile di dischi; macchine che sono dotate della
capacità di organizzare le istruzioni in un modo assimilabile al richiamo di un sottoprogramma come richiesto dai
linguaggi di programmazionein uso.
Ulteriori arricchimenti possono includere calcoli simbolici ed elaborazioni parallele.
A questo punto si deve anche aggiungere che della MdT risulta opportuno anche considerare varianti non
deterministiche, macchine formali che sono in grado di portare avanti contemporaneamente diverse elaborazioni, in
numero illimitato. Queste macchine formali, a prima vista lontane da modelli di meccanismi concretamente
realizzabili, possono considerarsi idealizzazioni di sistemi di computer che operano in parallelo, sistemi che la
odierna tecnologia consente di realizzare abbastanza comunemente (i cosiddetti cluster).
Con questo ragionamento si ottengono macchine formali che, in linea di principio, si possono ricondurre alla MdT introdotta
inizialmente, ma che possono essere programmate molto più agevolmente, e soprattutto che possono essere realizzate con le
tecnologie disponibili oggi. Dimostrare che una di queste macchine può risolvere un certo problema vuol dire dimostrare che anche la
MdT può risolverlo. La conclusione è che tutte le computazioni effettuabili dalle macchine a noi note sono effettuabili anche dalla
MdT.
Una macchina che permetta di risolvere tutti i problemi risolvibili anche dalla MdT si dice "Turing-equivalente". La conclusione è
che tutte le computazioni effettuabili dalla MdT sono effettuabili anche da tutte le macchine di cui si è in grado di dimostrare
l'equivalenza con la MdT.
Quindi, l'importanza della MdT è duplice: non solo è il modello teorico di macchina più "potente" che si conosca, ma può essere
usato anche per verificare la potenza di nuovi modelli teorici. È possibile dimostrare l'equivalenza con la MdT anche servendosi di un
modello più semplice e che si sa già essere Turing-equivalente. Ciò permette di riutilizzare facilmente, per un certo modello di
macchina, i risultati teorici ottenuti per altri modelli di macchina.
Inoltre, la MdT e gli altri modelli possono essere usati per dimostrare le capacità computazionali dei
linguaggi di programmazione(in
quanto vengono dimostrate le capacità delle rispettivemacchine astratte).
Tutte queste considerazioni rendono ragionevole sostenere la congettura di Church-Turing. Tuttavia, esse riguardano la calcolabilità
degli algoritmi, e non la loro trattabilità: macchine equivalenti sono realizzate in modo diverso, e quindi possono eseguire la stessa
computazione con un diverso numero di passi o dispendio di risorse (memoria, tempo, e altre). Ad esempio, un calcolo che un
odierno computer esegue in pochi secondi richiederebbe un numero enorme di passi se eseguito su un meccanismo dotato di
dispositivi operativi estremamente semplici come quelli della MdT. In sintesi, macchine diverse possono risolvere gli stessi problemi
con programmi che hanno una diversacomplessità computazionale.
È dunque importante poter stabilire se una MdT, o un altro sistema formale equivalente ("lambda-calcolo" di Church, ad es.), quando
le si sottopone una stringa (di dati) si arresti o meno. Questo è detto problema della fermata o problema dell'arresto della macchina
di Turing. Si trovano casi nei quali si dimostra o si verifica che si ha l'arresto, casi per i quali si dimostra che l'evoluzione non si
arresta ma potrebbe procedere all'infinito e casi per i quali non si sa dare risposta.
Sembra ragionevole cercare un procedimento generale per decidere uno di questi problemi. Dato che le MdT si rivelano in grado di
risolvere tutti i problemi che si sanno risolvere con gli altri procedimenti noti, è sensato chiedersi se esiste una macchina di Turing in
grado di decidere per una qualsiasi coppia (M, d) costituita da una MdT M e da una stringa di dati d se, quando si fornisce d a M,
questa si evolve fino ad arrestarsi o meno. Questa richiesta è resa ancor più significativa dall'esistenza, dimostrata dallo stessouring,
T
di una cosiddetta macchina di Turing universale, macchina in grado di simulare qualsiasi evoluzione di qualsiasi MdT (anche le
evoluzioni di se stessa!). Ebbene Turing ha dimostrato che la macchina di Turing universale non è in grado di decidere in ogni caso il
problema dell'arresto. Quindi nessuna macchina di Turing può farlo. Questo risultato negativo si esprime dicendo che il problema
dell'arresto è Turing-indecidibile. Se si accetta la congettura di Church-Turing sulla portata della macchina di Turing, si conclude che
il problema dell'arresto della macchina di Turing è indecidibile.
Questo risultato negativo costituisce un limite per tutti i meccanismi computazionali; esso costituisce un risultato limitativo di grande
importanza generale e per lo studio degli algoritmi. L'importanza generale dipende dal fatto che ogni procedimento dimostrativo
automatico si trova equivalente a una computazione che può ef
fettuarsi con una macchina di Turing. Va posto in rilievo che la Turing-
indecidibilità del problema dell'arresto si dimostra equivalente al teorema di incompletezza di Gödel, il primo fondamentale risultato
limitativo per la matematica. Si trova inoltre nello studio degli algoritmi e della loro complessità che dalla indecidibilità dell'arresto si
deducono abbastanza agevolmente molti altri risultati limitativi.
Questa funzione si fa dipendere dalla transizione da quanto viene letto sulle caselle su cui si trovano le testine relative ai diversi nastri
e stabilisce quali caratteri devono essere modificati sui vari nastri e come si devono eventualmente spostare le testine.
È abbastanza evidente come questa macchina sia più semplice da usare della classica. Ad es. con essa si possono agevolmente
copiare stringhe da un nastro all'altro e con porzioni di nastro si possono rendere disponibili sequenze di memorie indirizzabili
abbastanza agevolmente. Con una macchina a tre nastri si può implementare molto facilmente una operazione aritmetica come la
somma di due numeri espressi mediante cifre decimali. Similmente e con gli opportuni accorgimenti e con l'uso di altri opportuni
registri, lo si può intuire, si riescono a implementare altre operazioni aritmetiche o su entità discrete.
Per dimostrare che una macchina a più nastri P ha la stessa portata di quelle ad un solo nastro si tratta di individuare una di queste,
denotiamola M che consente di simularne le evoluzioni. Questa simulazione viene effettuata simulando su un solo nastro della M i
molti nastri della P. Si possono avere configurazioni della M che simulano configurazioni della P utilizzando scritture particolari che
separano le aree nelle quali sono riprodotti i diversi nastri della P e segnalano le posizioni sulle quali si trovano le varie testine di I/O.
A ciascun passo della P si fa corrispondere una serie di passi della M con i quali si sistemano i vari nastri e le posizioni delle relative
testine. Si può capire come con un gran numero di spostamenti e di cambiamenti di stato si possono simulare le mosse della
. P
Definizione
Una macchina di Turing non deterministica T, con grado di non determinismo n, è così definita:
dove le sole differenze rispetto alla definizione iniziale riguardano la presenza dell'interon e il genere della funzione di transizione:
Le sue configurazioni consistono quindi di insiemi finiti di configurazioni deterministiche, la cui cardinalità potrebbe crescere
illimitatamente con il procedere di una evoluzione.
Le computazioni che essa è in grado di svolgere sono descrivibili come insiemi di computazioni sviluppati da repliche della MdT
deterministica, repliche che potrebbero rendersi necessarie ad ogni passo dell'evoluzione. Si osserva che questa richiesta oggi non
dovrebbe affatto stupire, in quanto realizzabile con le tecniche dei computer collegati in rete ed effettivamente realizzata nella prassi
delle elaborazioni distribuite.
In questo modo si vede come la macchina M possa simulare la N. Si osserva che alcuni singoli passi della macchina non
deterministica richiedono un gran numero di passi e di appositi stati della deterministica.
La capacità computazionale di una MdT non dipende dal numero di nastri che essa utilizza; questo è possibile dimostrarlo attraverso
la simulazione.Indichiamo con Tk la macchina di Turing a k nastri e con T quella ad un nastro. Scriviamo l'input della macchina Tk
sulla macchina T ovviamente un simbolo per ogni cella, quando la macchina T leggerà il primo simbolo essa per eseguire una
quintupla della macchina Tk avrà bisogno di leggere k caratteri ricordando ogni volta il k-esimo carattere letto; verificato che la
quintupla può essere eseguita a questo punto riporterà indietro la testina di k celle e può procedere all'esecuzione della quintupla
sovrascrivendo i k caratteri; a questo punto la testina si troverà sulla cella contenente l'ultimo carattere scritto. Gli ultimi passaggi da
eseguire sono il cambio di stato interno e il movimento della testina. È facile notare come l'insieme degli stati di T ha cardinalità
maggiore rispetto all'insieme degli stati di Tk.
Un ulteriore modello semplificato di MdT è quello di avere tre MdT che compiono operazioni elementari (scrittura del carattere 1,
scrittura del simbolo blank, spostamento della testina a destra, spostamento a sinistra, nessuna operazione) e ottenere da queste una
nuova MdT tramite composizione per diramazione.
[1].
"Un giovane sconosciuto di nomeAlan Turing risolse il quesito quasi per gioco. Con una macchina immaginaria."
La soluzione proposta da Turing consiste nell'utilizzo di un modello matematico capace di simulare il processo di calcolo umano,
scomponendolo nei suoi passi ultimi.
La macchina è formata da una testina di lettura e scrittura con cui è in grado di leggere e scrivere su un nastro potenzialmente infinito
partizionato, in maniera discreta, in caselle. Ad ogni istante di tempo t1, la macchina si trova in uno stato interno s1 ben determinato,
risultato dell'elaborazione compiuta sui dati letti.
Lo stato interno, o configurazione, di un sistema è la condizione in cui si trovano le componenti della macchina ad un determinato
istante di tempo t. Le componenti da considerare sono:
Note
1. ^ TecaLibri: Yurij Castelfranchi: Macchine come noi(http://tecalibri.altervista.org/C/CASTELFRANCHI-Y_macchine.ht
m)
Bibliografia
Libri
J. Hopcroft, J. Ullman (1979), Introduction to Automata Theory, Languages and Computation, Addison-Wesley ISBN
0-201-02988-X
Versione italiana: J. Hopcroft, R. Motwani, J.Ullman, Automi, linguaggi e calcolabilità, Pearson, 2003,ISBN 978-
88-7192-552-3
Douglas Hofstadter (1979), Gödel, Escher, Bach: an Eternal Golden Braid
Versione italiana: Godel, Escher, Bach: un'eterna ghirlanda brillante, Adelphi, Milano, 1990,ISBN 88-459-0755-4
Arto Salomaa, Computation and automata, Cambridge University Press, 1985,ISBN 0-521-30245-5
Ivor Grattan-Guiness, The search for Mathematical Roots, 1870-1940 , Princeton University Press, 2000,ISBN 0-
691-05858-X
Martin Davis, Il calcolatore universale. Da Leibniz a T
uring, Adelphi, Milano 2003,ISBN 88-459-1792-4
Articoli
Alan Turing (1936): On computable numbers, with an application to the Entscheidungsproblem
, Proc. London Math.
Soc., 42 pp. 230–265 Accessibile anche in linea
Voci correlate
Alacre castoro
Filosofia della matematica
Informatica quantistica
Macchina di Turing probabilistica
Macchina RAM
Macchina RASP
Formica di Langton
Gioco della vita
Altri progetti
Wikimedia Commons contiene immagini o altri file suMacchina di Turing
Collegamenti esterni
(EN ) Turing Machine in MathWorld
(EN ) Turing Machine nella Stanford Encyclopedia of Philosophy
Andrea de Prisco, Algoritmi e Macchine di Turing, in MCmicrocomputer, nº 59, Roma, Technimedia, gennaio 1988,
p. 120, ISSN 1123-2714.
Simulatori
Scritto in Python qui
Scritto in JavaScript: JSTMSimulator (codice su GitHub)
Scritto in Java: l'applet e il codice
Scritto in Objective C per iPad: [1]
Controllo di autoritàGND (DE ) 4203525-9
Estratto da "https://it.wikipedia.org/w/index.php?title=Macchina_di_T
uring&oldid=94582991"
Questa pagina è stata modificata per l'ultima volta l'11 feb 2018 alle 11:04.
Il testo è disponibile secondo lalicenza Creative Commons Attribuzione-Condividi allo stesso modo
; possono applicarsi
condizioni ulteriori. Vedi le condizioni d'uso per i dettagli.