Prova la Macchina di Turing!

HomePage :: Alan Turing :: Macchina di Turing :: Gara Nazionale

Macchina di Turing


Online

La macchina


Alan Turing, nel progettare il suo esecutore, pensava alle capacità minime che tutti gli esseri umani possiedono

L'esecutore deve rispettare alcune regole

In pratica

Le quintuple


Come rappresentare le istruzioni per la macchina di Turing?

Quadruple


Le regole (le istruzioni...) si possono scrivere, nella forma più semplice, come quadruple

(STATOattuale, CARATTEREinput, STATOfuturo, AZIONE)

dove

STATOattuale
stato attuale dell'esecutore
CARATTEREinput
carattere letto dalla testina
STATOfuturo
prossimo stato dell'esecutore
AZIONE
scrivere un certo carattere oppure spostarsi a destra/sinistra.

Quintuple


Per rendere più semplice la stesura dei programmi si preferisce utilizzare le quintuple, specificando contemporaneamente il carattere e la direzione dello spostamento

(STATOattuale, CARATTEREinput, STATOfuturo, CARATTEREoutput, DIREZIONE)

Oppure in notazione funzionale

(STATOattuale, CARATTEREinput) => (STATOfuturo, CARATTEREoutput, DIREZIONE)

Dati
lo stato attuale
e il carattere letto dalla testina
allora
cambia stato
scrivi un certo carattere
e sposta la testina.
Nota
Se il carattere attuale deve rimanere inalterato basta riscrivere lo stesso carattere.

I programmi


Come rappresentare i programmi per la macchina di Turing?

Soluzione #1


Ogni linea del programma contiene una quintupla come sequenza di 5 caratteri concatenati:
SCSCD
Con
S: i nomi per lo stato attuale e il prossimo stato sono singoli caratteri
C: il carattere letto e il carattere scritto
D: un carattere predefinito per lo spostamento a destra/sinistra

Soluzione #2


... sequenza di 5 informazioni separate tramite un carattere predefinito:
StatoAttuale,C,StatoFuturo,C,D
Con
StatoAttuale
StatoFuturo: il carattere separatore permette di utilizzare stringhe!
C
D
: caratteri singoli...

Soluzione #3


Una tabella delle transizioni di stato che per ogni entrata (stato, carattere) prevede una tripla (stato, carattere, direzione)

carattere1carattere2...caratterem
stato1(s11, c11, d11)(s12, c12, d12)...(s1m, c1m, d1m)
stato2(s21, c21, d21)(s22, c22, d22)...(s2m, c2m, d2m)
...............
staton(sn1, cn1, dn1)(sn2, cn2, dn2)...(snm, cnm, dnm)

Soluzione #4


Un grafo, diagramma di stato, dove

Esempio
I_02_01

Osserva che

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
La pagina è sta generata in 0.0488 secondi