Definizioni equivalenti di costruibilità temporale


13

Diciamo che una funzione f:N→N è 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:N→N è 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 EXP−TIME≠NEXP−TIME . È possibile rafforzare la condizione per "sì" a P≠NP ? "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:N→Nϵ>0f(n)≥(1+ϵ)nO(f(n))2n ,n! ,n⌊logn⌋, 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+⌊⌊logn⌋q⌋perq∈ Q +22nn!n⌊log⁡n⌋pNp(n)≥(1+ϵ)n(1+ϵ)nn+⌊⌊log⁡n⌋q⌋q∈Q+ ...

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 1 ∘ f 2f1f2f1f2f1∘f2 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 ⌊nlog⁡n⌋ (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 MEXP−TIME=NEXP−TIME , L ⊆ { 0 , 1 } ∗ . Quindi esiste un k ∈ N , st LL∈NEXP−TIMEL⊆{0,1}∗k∈NLM2nk−1M entri al massimo in due diversi stati per semplicità. Ora definisci la funzione

f(n)={8n+2if (first ⌊⌊log⁡n⌋+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 ⌊⌊log⁡n⌋+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 ⌊⌊log⁡n⌋+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 .fEXP−TIME=NEXP−TIME

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 √xnx00…0|x|k−1.x=(first ⌊⌊log⁡n⌋+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 .LL∈NEXP−TIMEEXP−TIME=NEXP−TIME


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.