Introduzione alla macchina di Turing

Pubblicità

Una macchina di Turing è un dispositivo accettante che accetta i linguaggi (insieme ricorsivamente enumerabile) generati da grammatiche di tipo 0. È stata inventata nel 1936 da Alan Turing.

Definizione

Una Macchina di Turing (TM) è un modello matematico che consiste in un nastro di lunghezza infinita diviso in celle su cui viene dato l’input. Consiste in una testa che legge il nastro di input. Un registro di stato memorizza lo stato della macchina di Turing. Dopo aver letto un simbolo di input, questo viene sostituito con un altro simbolo, il suo stato interno viene cambiato, e si sposta da una cella a destra o a sinistra. Se la TM raggiunge lo stato finale, la stringa in ingresso viene accettata, altrimenti rifiutata.

Una TM può essere formalmente descritta come una 7-tupla (Q, X, ∑, δ, q0, B, F) dove –

  • Q è un insieme finito di stati

  • X è l’alfabeto del nastro

  • ∑ è l’alfabeto di ingresso

  • δ è una funzione di transizione; δ : Q × X → Q × X × {Left_shift, Right_shift}.

  • q0 è lo stato iniziale

  • B è il simbolo vuoto

  • F è l’insieme degli stati finali

Confronto con l’automa precedente

La seguente tabella mostra un confronto di come una macchina di Turing differisce dall’automa finito e dall’automa Pushdown.

Macchina Struttura dati stack Deterministico?
Automatico finito N.A
Automatismo di spegnimento Last In First Out(LIFO) No
Macchina di Turing Nastro infinito

Esempio di macchina di Turing

Macchina di Turing M = (Q, X, ∑, δ, q0, B, F) con

  • Q = {q0, q1, q2, qf}
  • X = {a, b}
  • ∑ = {1}
  • q0 = {q0}
  • B = simbolo vuoto
  • F = {qf }

δ è dato da –

Simbolo dell’alfabeto del nastro Stato presente ‘q0’ Presente Stato ‘q1’ Presente Stato ‘q2’
a 1Rq1 1Lq0 1Lqf
b 1Lq2 1Rq1 1Rqf

Qui la transizione 1Rq1 implica che il simbolo di scrittura è 1, il nastro si sposta a destra e lo stato successivo è q1. Allo stesso modo, la transizione 1Lq2 implica che il simbolo di scrittura è 1, il nastro si muove a sinistra, e lo stato successivo è q2.

Complessità temporale e spaziale di una macchina di Turing

Per una macchina di Turing, la complessità temporale si riferisce alla misura del numero di volte che il nastro si muove quando la macchina è inizializzata per alcuni simboli di input e la complessità spaziale è il numero di celle del nastro scritto.

Complessità temporale tutte le funzioni ragionevoli –

T(n) = O(n log n)

La complessità spaziale diTM –

S(n) = O(n)

Pubblicità

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *