Macchine di Turing deterministiche

Una macchina di Turing è sostanzialmente un automa a stati finiti arricchito di una memoria esterna che — a differenza della memoria dei PDA — ha una politica di accesso estremamente liberale (equivalente all’accesso casuale). Più nel dettaglio, una macchina di Turing può essere vista come un controllo a stati finiti che comanda una testina di lettura e scrittura, la quale scorre su un nastro bi-infinito (infinito sia verso sinistra che verso destra). Tale nastro è diviso in celle, ciascuna delle quali contiene un simbolo, e il simbolo presente sotto alla testina contribuisce a determinare le mosse della macchina, insieme allo stato interno del controllo a stati finiti.

Untitled

Formalmente, una macchina di Turing (MdT) deterministica è una settupla

$$ M = \lang Q, \Sigma, \Gamma, \delta, q_0, B, F\rang $$

in cui:

Per semplificare il modello, si assume che la funzione di transizione sia indefinita sugli stati accettanti. Come si vedrà dopo, ciò farà sì che la computazione della macchina si arresti quando questa arriva in uno stato finale.

Interpretazione della funzione di transizione

La funzione di transizione $\delta$ determina l’evoluzione della macchina in base allo stato interno attuale $q\in Q$ e al simbolo $X \in \Gamma$ letto dalla testina (quello presente nela cella del nastro attualmente visitata dalla testina):

Osservazione: Esistono tante diverse varianti delle macchine di Turing, che non comportano un cambiamento nella classe di linguaggi riconosciuti. Ad esempio, ci sono formalizzazioni in cui la testina può rimanere ferma, o può spostarsi di più di una posizione alla volta, o ancora ci possono essere più nastri di lavoro, ecc.

Esempio di descrizione