Giustificazione del log f nel teorema della gerarchia DTIME


30

Se guardiamo al teorema della gerarchia DTIME, abbiamo un registro a causa del sovraccarico nella simulazione di una Turing Machine deterministica da parte di una macchina universale:

DTIME(flogf)DTIME(f)

Non abbiamo questo tipo di overhead per NTIME di DSPACE. Una giustificazione di base deriva dai dettagli della dimostrazione considerando la differenza tra i simulatori.

La mia domanda è la seguente: senza considerare i dettagli della dimostrazione del teorema della gerarchia DTIME, esiste una giustificazione di questo registro o potrebbe essere solo una conseguenza della dimostrazione e sarebbe ragionevole immaginare che se poif=o(g)

DTIME(f)DTIME(g)

A mio avviso, considerando che la spiegazione della simulazione è una buona giustificazione dovrebbe essere essa stessa giustificata dimostrando che se avessimo un risultato migliore, potremmo creare una simulazione migliore.


5
Penso che ciò che hai scritto nell'ultimo paragrafo sia meno probabile del suo contrario. Vale a dire, non penso che attualmente possiamo escludere la possibilità che un'affermazione più forte possa essere dimostrata con un metodo diverso dalla simulazione. D'altra parte, potremmo essere in grado di escludere la possibilità che un'affermazione più forte possa essere dimostrata mediante simulazione costruendo un mondo relativizzato in cui l'affermazione più forte fallisce.
Tsuyoshi Ito,

Per quanto ho capito, ridurre il sovraccarico di simulazione nel teorema della gerarchia temporale deterministica sarebbe un risultato rivoluzionario. Per prima cosa, diversi risultati potrebbero essere immediatamente rafforzati. Ω(logn)
András Salamon,

4
Questo è in qualche modo pedante, ma a meno che tu non abbia ulteriori restrizioni aggiuntive su f (g quello standard sarebbe f e g essendo costruibile nel tempo), esistono f e g tali che f = o (g) e DTIME (f) = DTIME (g). Per vedere questo, basta considerare l'insieme non numerabile di tutte le funzioni x ^ i, con i real, 0 <i <= 1. Se il Teorema della Gerarchia del tempo fosse vero per tutte le coppie di tali funzioni, otterremmo un insieme non numerabile di lingue, tutte decidibili dalle macchine di Turing. Ciò contraddice il fatto che l'insieme delle macchine di Turing è numerabile.
Abel Molina

1
@abel Presumo ovviamente che feg siano costruibili nel tempo, come nel teorema della gerarchia temporale attuale.
Ludovic Patey l'

sì, c'è una giustificazione guardando la prova attuale, ma una risposta completa a questo problema / domanda si dimostrerebbe necessaria e non semplicemente sufficiente. vale a dire come AS commenti sopra, un limite più stretto è un problema aperto. in hopcroft / ullman 1976 sottolineano che il fattore log (n) è dovuto alla riduzione di una multitape TM in una TM a 2 nastri e ha anche le prove pertinenti per tale riduzione. (insieme a questa domanda, tuttavia, mi sono sempre chiesto come la gerarchia sarebbe diversa per una teoria della complessità basata su TM a nastro singolo anziché su una che consente TM multitape. sembra correlata a questa domanda)
vzn

Risposte:


5

Il teorema della gerarchia temporale è il soggetto del mio progetto di diploma, forse vuoi vedere i commenti sulla mia domanda Limiti inferiori e separazione delle classi .

Guardando indietro a questa domanda e al modo in cui si riferisce a ciò che stai chiedendo, ho avuto un'idea che potrebbe mostrare che il sovraccarico di simulazione da multitape a single tape TM necessario per la dimostrazione del teorema non può essere migliorato. Pertanto, è necessario un altro approccio se vogliamo migliorare questo risultato.

EDIT: questa prova non è corretta, vedi i commenti qui sotto per il motivo esatto. Attualmente sto modificando la risposta per riflettere ciò.

Sia la lingua .{ 0 k 1 k | k 0 }A{0k1k|k0}

Su una singola macchina a nastro, esiste un algoritmo (puoi trovare i dettagli di questo algoritmo nel capitolo 7.1.2 del libro di Sipser "Introduzione alla teoria del calcolo). Nello stesso riferimento, puoi vedere che una lingua è in o (n \ log n) se e solo se è normale. Kaveh fornisce anche i documenti originali per questa affermazione nella domanda sopra collegata.O(nlogn)

Nei commenti della mia domanda, Ryan Williams illustra un algoritmo per lo stesso problema, usando una TM a 2 nastri.O(n)

Supponiamo ora che esista una tecnica per simulare una TM multitape in un singolo nastro TM che ha un tempo di esecuzione di , dove è il tempo di esecuzione della TM simulata . Applicandolo alla macchina illustrata da Ryan, otterremmo un singolo nastro TM che verrebbe eseguito in . Pertanto, è regolare, il che è una contraddizione. Quindi, concludiamo che un overhead di è il migliore che possiamo fare quando simuliamo macchine multi-nastro con macchine a nastro singolo.T ( n ) o ( n log n ) A log T ( n )o(T(n)logT(n))T(n)o(nlogn)AlogT(n)

Mi rendo conto che questa è un'affermazione forte, quindi potrei sbagliarmi nell'interpretazione.

Anche se esiste una tecnica che consente di migliorare questo risultato, credo che non sia possibile abbinare il risultato per o . La mia intuizione deriva dal fatto seguente:S P A C ENTIMESPACE

Esiste un risultato molto noto che indica . Partendo dal presupposto che credo che questo risultato sia migliorato in , per qualsiasi . Quindi, una classe non deterministica molto piccola è molto più potente di qualsiasi deterministica . Quindi, data la potenza di un tempo non deterministico delle risorse, mi aspetterei che sarebbe necessaria una maggiore quantità di tempo deterministico per rendere una MT più potente per compensare il potere del non determinismo.P N P D T I M E ( n k ) N T I M E ( n ) kDTIME(n)NTIME(n)PNPDTIME(nk)NTIME(n)k


9
Ci vuole tempo quadratico per simulare una macchina Turing multi-nastro su una macchina a nastro singolo. Il linguaggio dei palindromi mostra che ciò è necessario: i palindromi possono essere riconosciuti in tempo su macchine a due nastri, ma ci vuole tempo su macchine a nastro singoloΩ ( n 2 )O(n)Ω(n2)
Luca Trevisan

Luca ha ovviamente ragione (mi aspettavo un errore a causa della forza della dichiarazione). Colpa mia: ho confuso frettolosamente il TM a nastro singolo standard con il singolo nastro di lavoro (con diverso nastro di input non di scrittura e forse un nastro di output separato). Quando ho capito l'errore, ho provato a vedere se la regolarità porta a quel modello, ma mostra che non è vero. Sto modificando la risposta per riflettere questo fatto, spero che il richiedente @Monoid l'abbia accettata per la parte dell'intuizione. o(nlogn)PALINDROMES
Chazisop,

L'esempio menzionato da Luca è per un caso in cui il tempo è . Questo caso particolare è preoccupante in generale a causa del comportamento non robusto delle macchine a nastro singolo in classi così piccole. Quindi non è un ostacolo se il tempo è . È interessante notare che la dimostrazione della versione forte del teorema della gerarchia per non usa la simulazione ma un argomento diretto (vedi Hartmanis 1968). o(n2)Ω(n2)o(n2)
Kaveh,

8

Per N-tape TM un risultato di gerarchia temporale stretto simile al teorema della gerarchia spaziale è dimostrato da Furer nel 1982. Il fattore non è necessario.lg

Il fattore per il teorema della gerarchia temporale indicato nel tuo post è solo per TM a nastro singolo. A meno che non ti impegni molto sul modello a nastro singolo per qualche motivo, non vi è alcuna differenza tra spazio e tempo per quanto riguarda i teoremi della gerarchia.lg

Vi sono alcuni motivi e argomenti per l'utilizzo di TM a nastro singolo per la definizione di classi di complessità temporale, ma l'uso di TM a nastro singolo per la definizione di classi di complessità non è universale, ad esempio vedere Lance Fortnow e Rahul Santhanam [2007] dove usano il multiplo TM.

Il riferimento originale per il teorema della gerarchia temporale è Hennie e Stearns [1966]. Dimostrano il teorema per le macchine a due nastri. La teoria della ricorsione classica di Odifreddi cita loro e Hartmanis [1968] e descrive una prova simile a quella del libro di Sipser.

Tuttavia, la prova per TM a nastro singolo nel documento di Hartmanis non utilizza semplicemente la simulazione. Si distingueva tra due casi: 1. tempo di esecuzione e 2. tempo di esecuzione .Ω(n2)o(n2)

  1. Nel primo caso utilizza una simulazione e sembra che si possa eliminare il fattore se le simulazioni possono essere eseguite in modo più efficiente.lg

  2. Nel secondo caso, il documento fornisce direttamente un linguaggio per la separazione e non usa affatto la simulazione. Questo utilizza proprietà particolari di TM a nastro singolo con tempo di esecuzione sub-quadratico.

Si noti che le TM a nastro singolo con tempo non sono così robuste e che ci sono limiti inferiori quadratici (ad esempio per Palindroms) sulle TM a nastro singolo mentre una TM a nastro doppio può risolvere tali problemi in tempo lineare.o(n2)

Come ho detto sopra, a meno che non ti impegni per il modello TM a nastro singolo per qualche motivo, anche quando il tempo è sub-quadratico, non c'è spazio da colmare, il teorema della gerarchia temporale è il più stretto possibile.

PS: se utilizziamo TM a più nastri, vale a dire che una macchina Turing della classe può avere un numero fisso ma arbitrario di nastri, il risultato di Fürer non si applica.

  1. Martin Fürer, " La stretta gerarchia temporale deterministica ", 1982
  2. Piergiorgio Odifreddi, "Teoria della ricorsione classica", vol. II, 1999 (pagina 84)
  3. Juris Hartmanis, " Complessità computazionale dei calcoli della macchina di Turing a nastro singolo ", 1968
  4. FC Hennie e RE Stearns, " Simulazione a due nastri di macchine multitape Turing ", 1966
  5. L'articolo di Lance Fortnow e Rahul Santhanam " Time Hierarchies: A Survey ", 2007

4
Il risultato di Fürer non si applica al caso in cui è fissato il numero di nastri delle macchine di Turing in esame, ovvero parla delle classi , è il numero di nastri. DTIMEk(f)k
Markus Bläser,

@Markus, sì, è corretto, è simile alla custodia a nastro singolo. L'unica differenza è che il numero di nastri è più di uno, ma è ancora fisso, ad esempio 2 nastri.
Kaveh,

Vedi anche Krzysztof Loryś, " Risultati della nuova gerarchia temporale per TM deterministiche ", 1992. Un altro riferimento è Kazuo Iwama, Chuzo Iwamoto, " Gerarchie temporali e spaziali migliorate di TM off-line a nastro ", 1998, che migliora il fattore log in log log per TM a nastro singolo.
Kaveh,

5

Per un numero fisso di nastri maggiore di uno, ) per il tempo costruibile . Il sovraccarico logaritmico deriva dal teorema di riduzione del nastro, in cui qualsiasi numero di nastri può essere convertito in due nastri (o anche solo un singolo nastro e una pila e con un semplice movimento inconsapevole).fTime(o(f))Time(O(f)f

Se il numero di nastri non è fisso, in realtà non abbiamo una tecnica per dimostrare in modo costruttivo senza passare attraverso il teorema di riduzione del nastro. È plausibile che per ogni , le macchine a tavola non possano essere simulate da macchine a senza una testa logaritmica.k k + 1 kDTime(g)DTime(f)kk+1k

Tuttavia, ciò non significa che il teorema della gerarchia temporale non possa essere migliorato o che fallisca.DTime(o(f))DTime(O(f))

In effetti, abbiamo già quanto segue.

Teorema: per ogni e ogni della forma ( e razionale; o ), .ε>0fna(logn)baba>1a=1b0DTime(O(f/(logf)ε)DTime(O(f))

Prova: se ogni lingua con un algoritmo di decisione può essere decisa in tempo , riempiendo l'input, ogni lingua con un algoritmo di decisione può essere deciso in tempo (dove è fisso ) e così per ogni costante , , contraddicendo il teorema della gerarchia temporale.O(f)O(f/(logf)ε)O(f(n)(logf(n))kε)O(f(n)(logf(n))(k1)ε)k0c0DTime(O(f(n)(logf(n))c))=DTime(O(f(n)))

Tuttavia, questa dimostrazione non costruttiva presenta tre limiti:
* La dimostrazione richiede che sia ben educato (non solo costruibile nel tempo, ma anche in un certo senso continuo). * Non conosciamo un linguaggio particolare che sia in ma non in . Per un sufficientemente grande , la simulazione di -tape Le macchine di Turing non sono in , ma non abbiamo escluso che anche per e , il minimo è> BB (BB (1000)) dove BB è la funzione di castoro occupato. * Non sappiamo che l'inclusione è solida.f
DTime(O(f))DTime(O(f/(logf)ε)kkDTime(O(f/(logf)ε)ε=1f(n)=n2k
DTime(O(f/(logf)ε) fallirà per alcuni input, ma non abbiamo dimostrato che fallisca per alcuni input per tutti ma finitamente molte dimensioni di input (anche se sarebbe molto sorprendente in caso contrario).


Risposta fantastica !! :)
Michael Wehar,
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.