Turing machine - nastro infinito in una o due direzioni


11

Ho visto le macchine turing essere rappresentate con nastri infiniti in una e in due direzioni. C'è qualche differenza nella potenza di tali macchine da turismo o sono sostanzialmente equivalenti? Nella mia testa penso che siano equivalenti, dal momento che immagino che ci debba essere un modo per rappresentare il nastro infinito a due vie come un nastro infinito a senso unico, ma non riesco a trovare una prova o un esempio.


1
Duplica gli stati e i simboli del nastro, in modo da avere una versione per la parte destra e un'altra per la parte sinistra. Sul nastro, si memorizzano coppie di simboli, uno a sinistra e uno a destra. Regoli la funzione di transizione in modo che cambi solo la parte della coppia corrispondente al mezzo nastro con cui stai attualmente lavorando. E aggiungi un po 'di gestione quando devi cambiare il mezzo nastro che stai considerando. Non dimenticare che se pieghi il mezzo nastro destro a sinistra, i movimenti della testa vengono invertiti. Quindi cambia di conseguenza le tue transizioni per gli stati giusti.
babou,

@babou Trasformati in una risposta a tutti gli effetti?
Yuval Filmus,

Risposte:


12

Sono equivalenti in potenza computazionale. Qualsiasi cosa calcolabile da uno di questi due tipi di macchine di Turing, è calcolabile dall'altro tipo. Diamo un'occhiata a come simulare una macchina Turing con un nastro doppiamente infinito, su una macchina Turing con un nastro singolarmente infinito.

L'idea è di tagliare il nastro doppiamente infinito in due, in modo da avere due nastri singolarmente infiniti, uno a sinistra e uno a destra, che alla fine unirete. È possibile contrassegnare le estremità con una posizione del nastro contenente uno speciale simbolo EOF. Duplica anche il tuo controllo finito, in modo da avere due controlli identici allo stato finito. Supponi di avere un dispositivo di controllo (vedi sotto), in modo che, quando la macchina sinistra tenta di andare oltre l'estremità destra del suo nastro, passa il controllo alla macchina destra, nella sua posizione più a sinistra del nastro (appena prima del estremità sinistra del nastro destro). E viceversa, quando si tenta di passare l'estremità sinistra del nastro destro.

RL

Ora siamo pronti per unire i due semi-nastri, ad esempio piegando quello destro su quello sinistro. Per questo, capovolgi il mezzo nastro destro e stai attento a modificare di conseguenza le transizioni, scambiando destra con sinistra e sinistra con destra. Quindi si fondono i due mezzi nastri in un unico nastro contenente coppie di simboli, uno a sinistra e uno a destra, ogni componente potrebbe essere vuoto.

Modificate nuovamente le transizioni di entrambe le macchine, in modo che le transizioni sinistra (rispettivamente destra) utilizzino e modifichino solo le parti sinistra (rispettivamente destra) delle coppie sul nastro. Quindi unisci il controllo delle due macchine mediante una semplice unione di insieme rispettivamente per gli stati e per le transizioni.

Aggiungete una serie di transizioni per ogni stato esistente, in modo che quando il simbolo del nastro è EOF, ritorni alla posizione precedente del nastro (la prima posizione non EOF) e lo stato cambia nella sua controparte chirale: se è una sinistra (resp. right), cambia nella sua controparte destra (resp. left). Questo è il dispositivo di controllo.

Potrei aver dimenticato un dettaglio, ma questa è l'idea generale della costruzione. La prova è lasciata come una esecuzione.

Naturalmente, il nastro iniziale (input) deve essere modificato di conseguenza. Ma ciò può essere semplificato posizionando l'input (se finito) completamente sul lato sinistro (quello che non viene capovolto) del taglio del nastro.

Quindi metti via il cacciavite perché potrebbe essere pericoloso per i bambini.

PS Ho solo dimostrato che il nastro doppiamente infinito può essere simulato con un nastro singolarmente infinito. Il contrario sembra troppo ovvio.


@DW Grazie per la modifica. Avrei dovuto pensare di farlo. Come ricordo, ho inserito l'ultima riga come ripensamento durante il periodo di tolleranza di 5 minuti dopo la modifica. Date le regole esistenti sul numero di modifiche, di solito aspetto di raccogliere le modifiche necessarie, prima di una nuova sessione di modifica.
babou,

Ah, sì, le regole di modifica! Non sono un fan delle regole che limitano il numero di modifiche; ogni volta che rende le persone riluttanti a migliorare la loro risposta sembra una perdita per il sito, ma vabbè, cosa farai? Mi dispiace di aver aumentato il tuo conteggio delle modifiche di uno - non volevo disturbarti dato la quantità di lavoro che hai già fatto, ma forse avrei dovuto chiedere prima. Grazie per la magnifica risposta!
DW

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.