Sia Esiste una macchina di Turing R che decide (non intendo riconosce) la lingua ?
Sembra che la stessa tecnica usata per mostrare che dovrebbe funzionare anche qui.
Sia Esiste una macchina di Turing R che decide (non intendo riconosce) la lingua ?
Sembra che la stessa tecnica usata per mostrare che dovrebbe funzionare anche qui.
Risposte:
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 1
Cioè, la macchina scrive solo e si alterna tra due stati ( e ) e ha sempre due ' adiacenti sul nastro.
Aggiungiamo ora una transizione da che quando la lettura passa a uno stato accettante e si interrompe.
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?
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.
è indecidibile a causa del teorema di Rice , che afferma che le proprietà non banali delle funzioni parziali non sono decidibili.
Ciò significa che le funzioni calcolate dagli elementi di hanno una proprietà non banale. Quindi non è decidibile.
è 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.
(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 .)
Un altro suggerimento: prova a ridurre il problema di arresto a .
(Il suggerimento originale è usare il teorema di Rice, ma in questo caso una dimostrazione diretta è anche piuttosto semplice.)
Lemma 1 : Se L è indecidibile, allora lo è anche il complemento di L.
Sappiamo che il problema dell'arresto, è indecidibile. Pertanto, secondo il complemento Lemma 1 del problema di arresto, anche è indecidibile.
=
=
=
Supponiamo che sia decidibile. Sarà possibile ridurre a - in altre parole mostreremo come costruire una macchina di Turing che decide usando l'TM, che decide . Questo ci dà una contraddizione, perché sappiamo che è indecidibile, e quindi non 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 può essere costruita come segue:
= “sull'ingresso
1. Costruisci il codice per una TM, che procede come segue:
= "sull'ingresso
1. Simula su .
2. Accetta se ferma. "
2. Eseguire su
3. Accetta se accetta, rifiuta altrimenti. "
È fondamentale capire che la TM non è mai realmente simulata - tale simulazione potrebbe andare in un ciclo infinito. Tutto quello che stiamo facendo è costruire il codice per .
è costruito in modo tale che su qualsiasi input dato ad esso, simulerà con input . può fermarsi o scorrere su e quindi possono esserci due casi:
1. accetta tutti gli input se ferma su . rifiuterà come .
2. Se passanti su , anche ciclo per ogni ingresso dato ad essa. Comunque, come è unil decisore rifiuterà e si fermerà sull'ingresso come .
: poiché si ferma sempre (secondo la nostra ipotesi), anche si ferma sempre. accetta se accetta, cioè se che accade se scorre su .
rifiuta se rifiuta che è che accade se ferma su . Pertanto, decide che è una contraddizione in quanto è indecidibile.
Lasciare R sia la riduzione da a .
La riduzione dà:
i)
M passanti su ingresso x sse linguaggio riconosciuto da accetta nulla
ii)
M ferma sull'ingresso x se e solo se il linguaggio riconosciuto da accetta qualcosa
La prova contraddicendo , (che come sappiamo è indecidibile).
Supponiamo l'esistenza di , una TM che decide L ∅
L'utilizzo può quindi utilizzare nella costruzione di una TM S T M , che è un fattore decisivo per A T M
"su ingresso ⟨ M , w ⟩ , dove M è la codifica di una MT e w è una stringa:
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.
Esegui con l'ingresso ⟨ M 1 , w ⟩
Emette l'opposto dell'uscita di ".
Il presupposto che esista un deicer di Turing Machine per , ci consente di costruire un decisore per A T M , che è una contraddizione.
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.