Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Macchine di Turing Modulo 4
la classe di tutti gli algoritmi? Scopo del modulo 4 Tenteremo di rispondere alla seguente domanda: Si può caratterizzare in maniera rigorosa la classe di tutti gli algoritmi? A questa domanda presenteremo la risposta del logico-matematico inglese Alan Turing (1912-1954).
Intuizioni Turing tentò di fornire una caratterizzazione rigorosa del concetto intuitivo di algoritmo analizzando l’attività di un essere umano che sta eseguendo un calcolo di tipo algoritmico La sua caratterizzazione è in termini di un tipo particolare di macchina astratta, chiamata Macchina di Turing (MT). Astratta significa che è interamente descritta nei termini delle relazioni funzionali tra input e output, indipendentemente dalla loro realizzazione fisica (cioè, dall’hardware utilizzato).
Elementi di base di una MT Nastro di una MT: risolvere un calcolo richiede di scrivere un certo numero di simboli su un supporto fisico (per esempio, un foglio di carta). Il nastro della MT è un’astrazione di qualsiasi supporto fisico: è mono-dimensionale (senza perdita di generalità); è virtualmente infinito in entrambe le direzioni (ma solo una parte finita è utilizzabile in ogni fase del calcolo); è diviso in celle che possono ospitare solo un simbolo alla volta.
Elementi di base - II Alfabeto di una MT: quanto ai simboli, essi costituiscono un alfabeto finito =s1, s2, …, sn da cui è possibile ottenere un numero infinito di simboli combinando i simboli di . Una cella del nastro può contenere uno di questi simboli o, in alternativa, restare vuota (indichiamo con s0 la cella vuota).
Elementi di base - III Testina di lettura/scrittura: partendo dall’osservazione che un essere umano può osservare solo un numero finito di simboli senza spostare lo sguardo, così la MT assume che si possa osservare al più un solo simbolo alla volta. Questo è fatto da una testina che, in ogni momento del calcolo, è collocata su una singola cella del nastro (che chiamiamo ). Per poter osservare altre celle, la testina deve spostarsi a destra o a sinistra, una cella alla volta. Si assume che la testina sia in grado non solo di leggere, ma anche di scrivere nuovi simboli o cancellare quelli presenti in una cella.
Elementi di base - IV Stati interni di una MT: in ogni momento di un calcolo, un essere umano si trova in uno stato mentale che dipende (almeno) da quanto fatto in precedenza. Così una MT può assumere uno stato interno q0, q1, …, qn (uno e solo uno alla volta), anche se il numero dei possibili stati interni è finito.
Elementi di base - V Configurazioni di una MT: a ogni passo di un calcolo, definiamo configurazione di una MT la coppia ordinata costituita dallo stato interno che essa presenta in quel momento e dal simbolo osservato dalla testina. nastro sj nastro qi
Operazioni atomiche di una MT Le operazioni atomiche che una MT può eseguire sono: Sostituzione del simbolo osservato con un altro simbolo (eventualmente s0, nel qual caso si parla di cancellazione) Spostamento della testina su una delle celle immediatamente attigue del nastro Cambiamento dello stato interno della macchina
Pertanto ogni operazione può essere descritta mediante una terna ordinata si M qj dove: si è il simbolo che la macchina deve scrivere sulla cella corrente M è il movimento che la testina deve compiere (uno tra S – sinistra, D – destra, o C – centro) qj è lo stato che la macchina deve assumere al termine dell’operazione.
Istruzioni di una MT Un calcolo è una sequenza di istruzioni da eseguire. In un calcolo algoritmico, ogni passo deve essere completamente determinato solo dalla situazione precedente: per un essere umano: memoria delle operazioni eseguite e simboli che può osservare; per una MT: dalla sua configurazione corrente (simbolo osservato + stato interno)
<configurazione> <operazione> Pertanto le istruzioni una MT avranno in generale la seguente forma: <configurazione> <operazione> Un esempio di istruzione sarà: qi,sj sk D qp Che significa: qualora la macchina si trovi nello stato qi e osservi il simbolo sj, allora il simbolo sk deve essere scritto al posto di sj, la testina deve spostarsi sulla cella immediatamente a destra di quella corrente e la macchina deve assumere lo stato qp
Tavola di una MT L’insieme di istruzioni di cui una MT dispone per eseguire un certo calcolo si chiama tavola di quella MT. E’ un insieme finito di istruzioni (quintuple) che soddisfa la seguente condizione: a partire da una singola configurazione, non devono essere applicabili istruzioni diverse.
Configurazioni finali Perché il calcolo termini, è necessario che ad alcune configurazioni non corrisponda alcuna istruzione. Tali configurazioni si chiamano configurazioni finali. Indichiamo con q0 lo stato interno di una macchina che corrisponde a tutte e sole le configurazioni finali.
Input, output e posizione standard I dati (input) vengono forniti come una serie di simboli sul nastro di una MT. Il risultato (output) è tutto quello che è scritto sul nastro quando la macchina raggiunge la configurazione finale q0 Per convenzione, si assume che all’inizio del calcolo la testina della macchina si trovi sul primo simbolo a sinistra dell’input e che lo stato iniziale sia sempre q1
Esempio 1
Esempio 2: