Definizioni equivalenti di costruibilità temporale


13

Diciamo che una funzione f:NN è costruibile nel tempo , se esiste una macchina di Turing multi-nastro deterministica M che su tutti gli input di lunghezza n fa al massimo f(n) passi e per ogni n esiste un input di lunghezza n su cui M esegue esattamente f(n) passi.

Diciamo che una funzione f:NN è completamente costruibile nel tempo , se esiste una macchina di Turing multi-nastro deterministica M che su tutti gli input di lunghezza n fa esattamente f(n) passi.

Q1: esiste una funzione che è costruibile nel tempo e non completamente costruibile nel tempo?

La risposta è sì (vedi questa risposta ), se EXPTIMENEXPTIME . È possibile rafforzare la condizione per "sì" a PNP ? "Sì" può essere provato?

D2: La classe di funzioni (completamente) temporizzabili cambia se nella definizione consentiamo solo macchine di Turing a 2 nastri?

D3: Quali sono le ragioni "dimostrabili" per ritenere che tutte le belle funzioni siano completamente costruibili nel tempo?

L'articolo
Kojiro Kobayashi: sulla dimostrazione della costruibilità delle funzioni nel tempo. Theor. Comput. Sci. 35: 215-225 (1985)
risponde parzialmente al terzo trimestre. Il riepilogo parziale e l'aggiornamento sono in questa risposta . Prendo Q3 come risposta.

Storicamente, è stata usata la nozione di funzione numerabile in tempo reale anziché (completamente) costruibile nel tempo. Vedere questa domanda per di più.


Curioso: potresti indicarmi un riferimento per queste definizioni? Non ho familiarità con le funzioni costruibili, e non riesco a trovare queste definizioni in linea (non è anche ovvio per me se sono equivalenti a esempio le wikipedia quelli).
usul

@usul Il riferimento è: JE Hopcroft, JD Ullman. Introduzione alla teoria, ai linguaggi e al calcolo degli automi. Addison-Wesley Series in Computer Science, 1979 La stessa definizione può essere trovata qui: cse.ohio-state.edu/~gurari/theory-bk/theory-bk-fivese2.html
David G

Risposte:


5

Negli ultimi giorni ho pensato molto alle funzioni (completamente) costruibili nel tempo e presenterò ciò che ho scoperto rispondendo a Q1 e Q3. Q2 sembra troppo difficile.

Q3:

Kobayashi nel suo articolo (il riferimento è nella domanda) ha dimostrato che una funzione , per la quale esiste un ϵ > 0 st f ( n ) ( 1 + ϵ ) n , è completamente costruibile nel tempo se lo è calcolabile in tempo O ( f ( n ) ) . (si noti che è irrilevante se l'input o l'output è in unario / binario poiché possiamo trasformare tra queste due rappresentazioni in tempo lineare). Ciò rende le seguenti funzioni completamente costruibili nel tempo: 2 n ,f:NNϵ>0f(n)(1+ϵ)nO(f(n))2n ,n! ,nlogn, tutti i polinomipsuNstp(n)(1+ϵ)n... Kobayashi ha anche dimostrato la completa costruibilità temporale per alcune funzioni che crescono più lentamente di(1+ϵ)n, comen+lognqperq Q +22nn!nlognpNp(n)(1+ϵ)n(1+ϵ)nn+lognqqQ+ ...

Per continuare con esempi di funzioni completamente costruibili nel tempo, si può dimostrare che se e f 2 sono completamente costruibili nel tempo, allora f 1 + f 2 , f 1 ff1f2f1+f2 , f f 2 1 e f 1f 2f1f2f1f2f1f2 sono anche completamente costruibile nel tempo (il seguito segue direttamente dal Teorema 3.1 di Kobayashi). Questo mi convince del tutto che molte belle funzioni sono davvero completamente costruibili nel tempo.

È sorprendente che Kobayashi non abbia visto un modo per dimostrare completamente la costruibilità nel tempo della (bella) funzione nlogn (e nemmeno io).

Commentiamo anche la definizione dell'articolo di Wikipedia : Una funzione è costruibile nel tempo, se esiste una macchina di Turing M che, data una stringa 1 n , genera f ( n ) infM1nf(n) tempo. O(f(n)) Vediamo che questa definizione è equivalente alla nostra definizione di costruibilità completa nel tempo per le funzioni .f(n)(1+ϵ)n

Q1:

Questa domanda ha una risposta davvero interessante. Sostengo che se tutte le funzioni orarie costruibile sono completamente tempo-costruibile, quindi . Per dimostrarlo, prendiamo un problema arbitrario L N E X P - T I M può essere risolto da un NDTM M in 2 n k - 1 passi. Possiamo presumere che ad ogni passo MEXPTIME=NEXPTIME , L { 0 , 1 } . Quindi esiste un k N , st LLNEXPTIMEL{0,1}kNLM2nk1M entri al massimo in due diversi stati per semplicità. Ora definisci la funzione

f(n)={8n+2if (first logn+1k bits of bin(n))L8n+1else

Sostengo che sia costruibile nel tempo. Considerare la seguente Turing deterministica T :fT

  • sull'ingresso di lunghezza n calcola ( prima k wnaO(n)tempo(first logn+1k bits of bin(n))O(n)
  • quindi simula su questi bit, in cui i bit di w determinano quali scelte (precedentemente non deterministiche) prendere.Mw
  • accetta iff .(M accepts using choices given by w)

Si noti che la lunghezza di ( = n ) è sufficiente per determinare tutte le scelte non deterministiche, poiché M sull'input ( prima k w=nMesegue al massimonpassaggi.(first logn+1k bits of bin(n))n

Possiamo far funzionare al massimo 8 n + 1 passaggi. Ora la seguente macchina di Turing dimostra che f è costruibile nel tempo:T8n+1f

  • sull'ingresso di lunghezza n eseguire T e contare i passi in parallelo in modo da eseguire esattamente 8 n passi.wnT8n
  • se rifiutato o rifiuta nel passaggio successivo, passa a uno stato di arresto nel passaggio successivo. Altrimenti, fai un altro passo e poi vai in uno stato di arresto.T

Supponiamo ora che sia completamente costruibile nel tempo. Noi dimostreremo che questo porta a E X P - T I M E = N E X P - T I M E .fEXPTIME=NEXPTIME

Il seguente algoritmo risolve :L

  • sull'input , sia n il numero con rappresentazione binaria x 00 0 ( | x | k - 1 zeri). Ne segue che x = ( prima k xnx000|x|k1.x=(first logn+1k bits of bin(n))
  • calcola nel tempo f ( n ) e controlla se è divisibile per 2.f(n)f(n)

Questo algoritmo viene eseguito in tempo esponenziale e risolve . Poiché L N E X P - T I M E arbitraria, e X P - T I M E = N E X P - T I M E .LLNEXPTIMEEXPTIME=NEXPTIME


4
Molto bella! [imbottitura per rendere felice la casella dei commenti]
Emil Jeřábek 3.0

1
Un'idea molto simile a quella presentata nella risposta alla domanda Q1 è anche usata qui .
David G
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.