Complessità temporale delle simulazioni della macchina di Turing universale e teorema della gerarchia temporale


8

Ho un piccolo problema a comprendere la dimostrazione del Teorema della Gerarchia del Tempo (Hennie e Stearns, 1966) che garantisce l'esistenza di una lingua accettabile in ma non accettabile in per qualsiasi funzione , tale che è costruibile nel tempo eU(n)T(n)T(n),U(n)U(n)

nT(n)=o(U(n)logT(n)).

Questa dimostrazione si basa sull'esistenza della macchina di Turing universale che simula qualsiasi macchina di Turing con complessità temporale nel tempo .T(n)T(n)logT(n)

Comprendo (e credo) la prova che ogni macchina di Turing -tape può essere simulata da una macchina di Turing a due nastri con un sovraccarico logaritmico. Tuttavia, capisco questa costruzione solo se la macchina di Turing simulata è fissa, non nel caso della simulazione Universal TM.k

Vedo un "problema" nel ragionamento fornito nel documento citato (e anche in diversi libri standard sulla complessità computazionale) relativo alla costruzione della macchina universale. Questo "problema" è che nella simulazione della macchina universale, un passaggio computazionale di una macchina simulata dovrebbe essere eseguito in tempo costante dalla macchina universale. In altre parole, la lunghezza della descrizione della macchina simulata dovrebbe essere costante.

Ma va bene? Poiché nella dimostrazione del Teorema della Gerarchia del Tempo, l'input dato alla macchina di Turing simulata è esattamente questa descrizione, e quindi la descrizione dipende in qualche modo da . Sono consapevole che la descrizione può essere allungata da una sequenza di bit iniziali, ma questo non sembra risolvere questo problema.n

Cioè, non riesco a capire perché la fase di calcolo di una macchina simulata possa essere eseguita in un tempo costante dalla macchina Universale. Il documento di Hennie e Stearns non presta molta attenzione a questo, afferma semplicemente che questa volta è qualcosa che si presume implicitamente essere una costante. Allo stesso modo nei libri di testo ho letto sull'argomento.

Semplicemente non riesco a capire perché la complessità temporale della simulazione sia , e non .T(n)logT(n)nT(n)logT(n)

Sono quasi sicuro che mi manchi qualcosa. Tuttavia, sto cercando di capirlo per un tempo relativamente lungo e in qualche modo non riesco a capirlo.

Risposte:


7

Mi riferisco qui alla dimostrazione del teorema della gerarchia quando ne ho familiarità, in cui non vedo il problema menzionato.

Definiamo la lingua non accetta all'interno di (dove è la funzione temporale su cui stiamo lavorando).L={(M,w):M(M,w)t(n)|M|3+|M|logt(n),n=|(M,w)|}t

Mostriamo che è decidibile in usando la macchina universale, e nella macchina universale ogni passaggio dipende effettivamente dalle dimensioni della macchina, motivo per cui abbiamo nel denominatore ( il 3 è solo un limite superiore per i calcoli necessari per simulare un passaggio).LO(t(n))|M|3

Per completezza della risposta: quando cerchiamo di raggiungere una contraddizione, quindi diamo per scontato che esista una macchina che decide . Dopo questa ipotesi, la codifica di è fisso, e quindi una simulazione di un singolo passo veramente vuole tempo costante, e si può raggiungere una contraddizione prendendo una lunga abbastanza per aumentare la lunghezza dell'input senza cambiare .TLTwT


1
Penso di aver capito - finalmente ... Questo è fantastico. ;) Molte grazie!
042

1
A proposito, questa non è affatto una domanda stupida. Questo è un teorema difficile anche senza tutti quei piccoli dettagli!
Scafo
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.