Il problema dell'arresto limitato è decidibile. Perché questo conflitto con il teorema di Rice?


9

Un'affermazione del teorema di Rice è riportata a pagina 35 di "Complessità computazionale: un approccio moderno" (Arora-Barak):

Una funzione parziale da a è una funzione che non è necessariamente definita su tutti i suoi input. Diciamo che una TM calcola una funzione parziale se per ogni in cui è definito, e per ogni in cui non è definito entra in un ciclo infinito quando eseguito su input . Se è un insieme di funzioni parziali, definiamo come la funzione booleana che su input output 1 iff { 0 , 1 } M f x f M ( x ) = f ( x ) x f M x S f S α M α S S f S{0,1}{0,1}MfxfM(x)=f(x)xfMxSfSαMαcalcola una funzione parziale . Il teorema di Rice dice che per ogni non banale , la funzione non è calcolabile.SSfS

Wikipedia afferma che le lingue delle macchine del tempo limitate sono EXPTIME complete. Mi aspetto che questa lingua assomigli a accetta in meno di passaggi . Quindi lascia che sia un DTM che decide questa lingua limitata in tempo esponenziale. Sembra che questo DTM stia decidendo alcune proprietà per TUTTE le macchine da turismo, quindi la mia intuizione mi dice che il teorema di Rice preclude una tale decisione. Ma ovviamente calcola una funzione totale. x n } M M{(α,x,n):Mαxn}MM

Cosa mi manca della relazione tra questa lingua e il teorema di Rice?

Risposte:


13

La lingua

{(α,x,n):Mα accepts x in less than n steps}

non è un set di indici, ovvero non è del modulo

LP={MM is TM, fP. fM=f}

per un insieme di funzioni (ricorsive parziale) , con la funzione (parziale) calcolato dal TM . Il teorema di Rice fa affermazioni solo su tale ; molte riformulazioni "intuitive" non sono utili. Vedi anche qui .f MPfMMLP

Si noti che questo non è solo un dettaglio tecnico qui. Il teorema di Rice non si applica a

L={MM accepts M in less than M steps} ,

o. Capisci perché?

Per ogni macchina in si può facilmente costruire molte macchine che accettano la stessa lingua, ma si sviluppano per oltre passi, e quindi non sono in . Pertanto, non è un insieme di indici.LMLL

L è decidibile, usando lo stesso argomento della lingua originale di cui stiamo discutendo.


+1. Soprattutto per il collegamento ipertestuale che probabilmente si applica anche qui. Tuttavia, ho comunque cercato di contribuire con un'analisi "intuitiva" come risposta alternativa.
Jirka Hanika,

6

Il teorema di Rice dice che non puoi dire nulla sul comportamento finale di un programma quando viene lasciato andare all'infinito - indipendentemente da come classifichi i programmi, ci saranno due programmi che convergeranno allo stesso comportamento finale (funzione calcolata ) anche se li hai classificati in modo diverso.

Ma lasciare che i programmi funzionino all'infinito è essenziale. Per scoprire cosa fanno nei primi passaggi, puoi semplicemente simularli per i primi passaggi e poi terminare dando il tuo verdetto su come si è comportato il programma. La simulazione simile fino all'infinito non funziona perché se il programma simulato non termina mai su un input simulato, anche il classificatore divergerà, anziché fornire una classificazione.nnn


5

Innanzitutto, le parole nella tua lingua non sono codifiche di macchine, contengono più informazioni, quindi non puoi applicare direttamente il teorema di Rice. Detto questo, il teorema di Rice parla dell'impossibilità di ragionare sulla funzione calcolata da una macchina di Turing (vale a dire, se si trova in qualche set ). Questo non è il caso qui, poiché, come menzionato Raphael, esistono due macchine che calcolano la stessa funzione, ma una risiede nella tua lingua e l'altra no (qui sto ignorando il problema sintattico, e dimentica il fatto che facciano parte dell'input). Il punto è che la proprietà che stai osservando qui è meccanica e non semantica (le macchine possono calcolare la stessa funzione, ma in modo diverso).M , M x , nSM,Mx,n


Il primo argomento è formalistico ma corretto. Il secondo argomento mi confonde (non sono sicuro di poter definire rigorosamente località / globalità; e non so cosa significhi calcolare una funzione "da un insieme di funzioni").
Jirka Hanika il

Il primo argomento è in effetti meramente sintattico, come menzionato da Raffaello nella sua risposta. Il problema locale / globale doveva indicare la differenza tra il ragionamento sul risultato su un singolo input rispetto a tutti gli input (non lo intendevo in senso formale, potrebbe significare qualcos'altro in un contesto diverso). Calcolo di una funzione da un dato insieme significa semplicemente che si chiede se la funzione calcolata dal è in . SMαS
Ariel,

Il teorema di Rice NON richiede di ragionare sul comportamento della macchina su tutti gli ingressi. Ad esempio, è impossibile classificare i programmi in base al fatto che alla fine accetteranno se eseguiti sull'input "5". O meglio, puoi definire una tale classificazione che ignora bene il comportamento sulla maggior parte degli input, ma la classificazione non è ancora ricorsiva.
Jirka Hanika,

Questo era davvero confuso, dal momento che si può definire come l'insieme di funzioni che producono su un input fisso. Grazie per aver sollevato il problema. 1S1
Ariel,

3

Il teorema di Rice dice che, per qualsiasi insieme non banale di lingue , l'insieme di macchine di Turing che riconoscono una lingua in  è indecidibile. Wikipedia afferma che una lingua specifica è decidibile. Quindi non c'è contraddizione.LLL

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.