Una macchina Turing può decidere la lingua di macchine con una lingua vuota?


11

Sia Esiste una macchina di Turing R che decide (non intendo riconosce) la lingua ?

L={MM is a Turing Machine and L(M)=}.

L

Sembra che la stessa tecnica usata per mostrare che dovrebbe funzionare anche qui.{AA is a DFA and L(A)=}


1
Che cosa hai provato? Ad esempio, riesci a pensare a un DFA per la lingua vuota? Ricorda che i DFA possono essere considerati TM molto limitati.
Shaull

1
Sicuro. Dallo stato iniziale, passare allo stato "arresto rifiuto", indipendentemente da ciò che si trova sul nastro di input. Questo accetta esplicitamente ogni stringa nella lingua e rifiuta ogni stringa non nella lingua.
Patrick87

8
@mahdisaeedi: Quest'ultima è una domanda completamente diversa! Stai chiedendo se è decidibile decidere se una determinata TM riconosce la lingua vuota - e la risposta è no, vedi Teorema di Rice
Shaull

Risposte:


9

Contrassegnando, probabilmente intendi l'analisi di raggiungibilità, cercando un percorso dallo stato iniziale a uno stato accettante. In effetti, la lingua di un DFA è vuota se non esiste tale percorso.

Cominciamo con un esempio del perché ciò non riesce nelle TM. Considera una TM che, in , ignora il suo input, ma scrive sul suo nastro, sposta la testa a destra e passa allo stato , quindi in ignora di nuovo l'input, scrive , sposta la testa a sinistra e passa a . In , se legge , quindi scrive , sposta la testa a destra e torna a . a q 1 q 1 a q 2 q 2 a a q 1q0aq1q1aq2q2aaq1

Cioè, la macchina scrive solo e si alterna tra due stati ( e ) e ha sempre due ' adiacenti sul nastro.aq1q2a

Aggiungiamo ora una transizione da che quando la lettura passa a uno stato accettante e si interrompe.q2b

La lingua di questa macchina è vuota. In effetti, la corsa rimane sempre bloccata nel ciclo e non arriverà mai allo stato di accettazione. Tuttavia, esiste un percorso statale verso uno stato accettante. Quindi cosa è andato storto?q1q2

Bene, intuitivamente, lo `` stato '' di una TM non è abbastanza informativo per descrivere la continuazione della corsa. Per avere tutte le informazioni, è necessaria la configurazione della TM, che include lo stato, la posizione della testina e il contenuto del nastro. Se trovi un percorso di configurazione (che si chiama run ) per una configurazione accettante, allora la lingua non è vuota ed è una condizione iff.

Il problema con l'utilizzo dell'analisi di raggiungibilità sul grafico di configurazione è che potrebbe essere infinito. Questo è il motivo per cui decidere il vuoto linguistico è indecidibile.

Questo è anche il motivo per cui la non vacuità del linguaggio è riconoscibile: è possibile eseguire un BFS sul grafico di configurazione infinita. Se esiste un percorso verso uno stato accettante, alla fine lo troverai. Se non c'è, tuttavia, potresti rimanere bloccato in una ricerca infinita.


La funzione di transizione di una TM è così: F (Q T) -> (Q T * {L, R}). Potresti scrivere la funzione per ignorare l'input?
ms

Sì. In questo caso, , , e (ma quest'ultimo non viene mai raggiunto). F ( q 1 , a ) = F ( q 1 , b ) = ( q 2 , a , L ) F ( q 2 , a ) = ( q 1 , aF(q0,a)=F(q0,b)=(q1,a,R)F(q1,a)=F(q1,b)=(q2,a,L)F(q2,a)=(q1,a,R)F(q2,b)=(qacc,a,L)
Shaull

9

A è indecidibile a causa del teorema di Rice , che afferma che le proprietà non banali delle funzioni parziali non sono decidibili.

  1. C'è una TM che non accetta alcuna stringa. (Che passa direttamente allo stato di rifiuto).
  2. C'è una TM che accetta ogni stringa. (Che passa direttamente allo stato di accettazione).

Ciò significa che le funzioni calcolate dagli elementi di hanno una proprietà non banale. Quindi non è decidibile.AA

E è decidibile solo supponendo che i DFA siano codificati in un modo speciale come la tabella di transizione di stato o ecc. (Non possiamo decidere se una TM accetta solo lingue regolari, a causa del teorema di Rice!). In questo caso Teorema di Rice non è applicabile in quanto la particolare codifica di un elemento è richiesto per decidere . Quindi non decidiamo solo su funzioni parziali.E

(Vale a dire se il problema fosse, decidendo se una determinata TM è un DFA - o DFA calcolabile - e la lingua accettata da essa è vuota, sarebbe indecidibile attraverso il Teorema di Rice. Si noti che in questo caso .)EA=E


6

Un altro suggerimento: prova a ridurre il problema di arresto a .L

(Il suggerimento originale è usare il teorema di Rice, ma in questo caso una dimostrazione diretta è anche piuttosto semplice.)


@Yuval_Filmus È corretto dire che questa lingua non è nemmeno riconoscibile da Turing?
sashas,

1
Cosa ne pensi? Puoi provare la tua richiesta? In tal caso, non è necessario porre la domanda.
Yuval Filmus,

1

Lemma 1 : Se L è indecidibile, allora lo è anche il complemento di L.

Sappiamo che il problema dell'arresto, HTM è indecidibile. Pertanto, secondo il complemento Lemma 1 del problema di arresto, anche HTMc è indecidibile.

HTM ={M,x M is a TM and M halts on input x }

HTMc ={M,x M is a TM and M loops on input x }

ETM ={M M is a TM and L(M) = }

Supponiamo che ETM sia decidibile. Sarà possibile ridurre HTMc a ETM - in altre parole mostreremo come costruire una macchina di Turing MHTMc che decide HTMc usando l'TM, METM che decide ETM . Questo ci dà una contraddizione, perché sappiamo che HTMc è indecidibile, e quindi MHTMcnon può esistere. La parola "ridurre" significa semplicemente risolvere un determinato problema convertendolo in un altro problema che già sappiamo risolvere. Quindi, la Turing Machine per HTMc può essere costruita come segue:

MHTMc = “sull'ingressoM,x

1. Costruisci il codice per una TM, M1 che procede come segue:

M1 = "sull'ingressow

1. Simula M su x .

2. Accetta se M ferma. "

2. Eseguire METM su M1

3. Accetta se METM accetta, rifiuta altrimenti. "

È fondamentale capire che la TM M1 non è mai realmente simulata - tale simulazione potrebbe andare in un ciclo infinito. Tutto quello che stiamo facendo è costruire il codice per M1 .

M1 è costruito in modo tale che su qualsiasi inputw dato ad esso, simuleràM con inputx . M può fermarsi o scorrere sux e quindi possono esserci due casi:

1. M1 accetta tutti gli input w se M ferma su x . METM rifiuterà M1 come L(M1) .

2. Se M passanti su x , M1 anche ciclo per ogni ingresso w dato ad essa. Comunque, come METM è unil decisore rifiuterà e si fermerà sull'ingresso M1 come L(M1)= .

Correctness : poichéMETM si ferma sempre (secondo la nostra ipotesi), ancheMHTMc si ferma sempre. MHTMc accetta seMETM accetta, cioè seL(M1)= che accade seM scorre sux .
MHTMc rifiuta seMETM rifiuta che èL(M1) che accade seM ferma sux . Pertanto,MHTMc decideHTMc che è una contraddizione in quantoHTMc è indecidibile.


NB:

Lasciare R sia la riduzione da HTMc a ETM .

La riduzione dà:

i) M,XHTMcR(M,X)ETM

M passanti su ingresso x sse linguaggio riconosciuto da R(M,x) accetta nulla

ii) M,xHTMcR(M,x)ETM

M ferma sull'ingresso x se e solo se il linguaggio riconosciuto da R(M,x) accetta qualcosa


0

La prova contraddicendo , (che come sappiamo è indecidibile).ATM={M,wM is a Turing Machine which accepts w}

Supponiamo l'esistenza di , una TM che decide L RTML

L'utilizzo può quindi utilizzare nella costruzione di una TM S T M , che è un fattore decisivo per A T MRTMSTMATM

"su ingressoM , w , dove M è la codifica di una MT e w è una stringa:STM=definitionM,wMw

  1. Modifica , tenendo conto dell'input w , in modo tale che la nuova M (chiamala M 1 ) rifiuti tutto l'input che non è uguale a w , dove w è incorporato nella sua descrizione. Se l'ingresso è uguale a w , allora M 1 esegue M su w ed emette qualunque uscita M.MwMM1wwwM1MwM

  2. Esegui con l'ingresso M 1 , w RTMM1,w

  3. Emette l'opposto dell'uscita di ".RTM

Il presupposto che esista un deicer di Turing Machine per , ci consente di costruire un decisore per A T M , che è una contraddizione.LATM


L'input di TM (senza extra w )? Come si esegue R T M su M 1 , w ? RTMwRTMM1,w
xskxzr,

-2

E = {| M è una TM e L (M) = Φ}. E Turing è riconoscibile?

E è una lingua, per accettare la lingua E costruiamo una macchina di Turing. Supponiamo di creare un EM Turing per la lingua E.

EM verrà fornito come input per la codifica di un'altra macchina di Turing, se quella macchina immessa M accetta una lingua vuota, allora sarà un membro della lingua E, altrimenti non sarà un membro della lingua.

Supponiamo di avere una Turing Machine M, dobbiamo verificare se accetta una lingua vuota. Turing Machine EM ha M e stringhe eps, a, b, aa, bb, ..... EM verificherà se M può raggiungere uno stato finale almeno su un singolo input e se accetta almeno un singolo input verrà scartato e non incluso nella lingua E. Ora, vedi la possibilità che TM M entri in un ciclo in modo che M continui a funzionare e non possiamo decidere se può accettare o non accettare nulla. Quindi, questa data lingua E NON è RE.

PS: Penso che il complemento di questa data Lingua E sarà RE.


Sfortunatamente, questo argomento intuitivo non costituisce una prova. Potrebbe esserci un modo diverso di decidere E, e questo non è escluso dal tuo argomento.
Yuval Filmus,

si corretto, ma il modo in cui ho spiegato qualcuno può capire in linguaggio laico.
Manu Thakur,

Questo sito non è per i laici. È per l'informatica teorica a livello accademico.
Yuval Filmus,

2
Tutto quello che hai fatto è fornire un argomento intuitivo sul perché una particolare tecnica computazionale sembra non riuscire a risolvere questo problema. Ma la domanda è provare che nessuna tecnica possibile funziona.
David Richerby,
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.