È determinabile se una TM raggiunge una posizione sul nastro?


14

Ho queste domande da un vecchio esame che sto cercando di risolvere. Per ogni problema, l'ingresso è una codifica di qualche macchina di Turing M .

Per un numero intero c>1 e i seguenti tre problemi:

  1. È vero che per ogni input x , M non passa il |x|+c posizione c quando si esegue su x ?

  2. È vero che per ogni input x , M non passa il max{|x|c,1} posizione quando si esegue su x ?

  3. È vero che per ogni input x , M non passa la posizione (|x|+1)/c quando si esegue su x ?

Quanti problemi sono decidibili?

Il numero del problema (1), secondo me, è in coRER se ho capito bene da allora, posso eseguire tutti gli input in parallelo e fermarmi se alcuni input hanno raggiunto questa posizione e per mostrare che non è in R posso ridurre il complemento di Atm ad esso. Costruisco una macchina di Turing M come segue: per un input y controllo se y è una storia di calcolo, se lo è, allora M funziona a destra e non si ferma, se non lo è, quindi si ferma.

Per (3), credo che sia decidibile poiché per sono tutte le macchine di Turing che rimangono sempre sulla prima cella della striscia, poiché per una stringa di un carattere può passare la prima cella, quindi ho bisogno di per simulare tutte le stringhe di lunghezza 1 per | Q | + 1 passaggi (è corretto?) E vedi se sto usando solo la prima cella in tutti.c2|Q|+1

Non so davvero cosa fare con (2).


1) Assumi un nastro infinito unilaterale? 2) Cos'è Atm?
Raffaello

1) Sì, 2) Il problema di accettazione.
Jozef,

Risposte:


9

Qualsiasi situazione che chiede se una Turing Machine è confinata in una sezione finita del nastro (diciamo della lunghezza ) su un dato input è decidibile.n

L'argomento funziona come segue. Considerare la Turing Machine, il nastro e la posizione della Turing Machine sul nastro. Tutti insieme hanno un numero finito di configurazioni. Per essere precisi, ci sono solo possibili configurazioni. Γ è l'insieme dei simboli del nastro e Q è l'insieme degli stati. Continuerò a usare la parola "configurazione" per descrivere lo stato della macchina di Turing combinato con lo stato del nastro e la sua posizione sul nastro per il resto di questa risposta, ma non è un vocabolario standard.t=n|Γ|n|Q|ΓQ

Avvia la macchina, tenendo traccia di tutte le sue configurazioni passate. Se mai supera il punto , restituisce "sì, M supera la posizione n ". Altrimenti, la macchina si trova tra 0 e n . Se la macchina ripete mai una configurazione - il suo stato, i simboli sul nastro e la sua posizione sul nastro sono identici a quelli che erano prima - restituisce "no, M non passa mai la posizione n ."nMnnMn

Secondo il principio pidgeonhole, ciò deve avvenire in non più di passi. Quindi tutto quanto sopra è decidibile; dopo al massimo t + 1 passaggi simulati si ottiene una risposta.t+1t+1

Una breve nota del perché funziona: quando la macchina, il nastro e la sua posizione sul nastro si ripetono, deve esserci stata una sequenza di configurazioni tra queste ripetizioni. Questa sequenza avverrà di nuovo, portando alla stessa configurazione ancora una volta: la macchina si trova in un ciclo infinito. Questo perché stiamo tenendo traccia di ogni aspetto della Turing Machine; nulla al di fuori della configurazione può avere un impatto su ciò che è accaduto. Quindi, quando una configurazione si ripete, si ripeterà di nuovo, con una serie identica di configurazioni in mezzo.

Pertanto, limitare il nastro a una parte finita della stringa è decidibile. Pertanto, eseguendo l'iterazione su tutte le possibili stringhe di input, il problema è in coRE per tutte e tre le domande. Potresti averlo già capito (tra le tue idee per 1 e 3 e la risposta di Ran G per 2 sembra comunque risolta completamente) ma ho pensato che valesse la pena pubblicare comunque.


"Se la macchina ripete mai una configurazione [...] restituisce 'no'" - è sbagliato. Una macchina non deterministica potrebbe eseguire un ciclo un paio di volte e poi andare avanti.
Raffaello

1
Qui stiamo parlando di macchine turing che non sono ritenute non deterministiche. Se fosse non deterministico, simula la versione deterministica.
SamM,

Bella spiegazione. Vedi anche la prima versione della mia risposta (che rivedo una volta che mi sono reso conto che l'OP non me lo ha mai chiesto ..)
Ran G.

@ Sam: Funziona al contrario: a meno che non si ipotizzi diversamente, una macchina di Turing può essere non deterministica. Che cos'è una "versione deterministica"? Se intendi uno sviluppo completo delle scelte, una configurazione ripetuta perde significato in quanto potrebbero verificarsi in diversi rami.
Raffaello

2
@Raphael il modo standard per farlo è un grafico di configurazione: i vertici sono le stesse configurazioni che Sam ha definito, e c'è un fronte diretto dalla configurazione A a B se l'NTM può spostarsi da A a B in un unico passaggio. Il grafico è finito e se la macchina si ferma è una semplice domanda di raggiungibilità del grafico. Ciò dimostra anche che è un sottoinsieme di D T I M E ( 2 O ( s ) )NSPACE(s)DTIME(2O(s))
Sasho Nikolov

4

(2) è molto simile a (3) e lo stesso ragionamento che hai avuto per (3) si applica anche qui: nota che le macchine che in hanno una strana proprietà - non leggono l'intero input (non raggiungono mai ultimi bit c .) E questo vale per ogni input.L2c

Ok, quindi ora consideriamo solo input fino alla lunghezza . Per ognuna di esse, ci sono solo due opzioni: la macchina si arresta / si arresta senza muovere la testa, o muove la testa. Se sposta la testa su qualche x (con | x |c ), quella macchina non è in L 2 a causa di quell'ingresso x . Altrimenti, pretendo che la macchina sia in L 2 . Dal momento che non muove mai la testa - non ha idea di quale sia la dimensione dell'input! questo significa che si comporta allo stesso modo per tutti gli input di lunghezza | x | > c . Pertanto, L 2 è decidibile.cx|x|cL2xL2|x|>cL2


Come consideri le macchine non deterministiche?
Raffaello

Non ho preso in considerazione le NTM, ma dovrebbe essere abbastanza la stessa. Per tutte le parole di lunghezza fino a il numero di configurazioni in cui NTM può trovarsi senza muovere la testa è finita. c
Ran G.

Sì, ma la tua discussione si rompe. Non è possibile determinare in tempo finito (mediante una semplice simulazione) se un NTM lascia una determinata posizione.
Raffaello

@Raphael perché no? non puoi simulare l'intero albero delle configurazioni (di profondità ) in un tempo finito e x p ( | x | ) ? |x|exp(|x|)
Ran G.

Perché approfondire essere abbastanza? | Q | avrebbe più senso. A quel punto, la simulazione ha trovato un ramo in cui M lascia la prima posizione, se presente. |x||Q|M
Raffaello
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.