En los últimos días pensé mucho en las funciones (totalmente) construibles en el tiempo y presentaré lo que descubrí respondiendo Q1 y Q3. Q2 parece demasiado difícil.
Q3:
Kobayashi en su artículo (la referencia está en la pregunta) demostró que una función , para la cual existe un ϵ > 0 st f ( n ) ≥ ( 1 + ϵ ) n , es completamente construible en el tiempo si es computable en O ( f ( n ) ) tiempo. (tenga en cuenta que es irrelevante si la entrada o salida está en unario / binario ya que podemos transformar entre estas dos representaciones en tiempo lineal). Esto hace que las siguientes funciones sean completamente construibles en el tiempo: 2 n ,f:N→Nϵ>0f(n)≥(1+ϵ)nO(f(n))2n , n ! , n ⌊ log n ⌋ , todos los polinomios p sobre N st p ( n ) ≥ ( 1 + ϵ ) n ... Kobayashi también demostró una completa constructibilidad temporal para algunas funciones que crecen más lentamente que ( 1 + ϵ ) n , como n + ⌊ ⌊ log n ⌋ q ⌋ para q ∈ Q + ...22nn!n⌊logn⌋pNp(n)≥(1+ϵ)n(1+ϵ)nn+⌊⌊logn⌋q⌋q∈Q+
Para continuar con ejemplos de funciones completamente construibles en el tiempo, se puede demostrar que si y f 2 son completamente construibles en el tiempo, entonces f 1 + f 2 , f 1 f 2 , f f 2 1 y f 1 ∘ f 2 son también completamente construible en el tiempo (lo que sigue más adelante directamente del Teorema 3.1 en Kobayashi) Esto me convence por completo de que muchas funciones agradables son completamente construibles en el tiempo.f1f2f1+f2f1f2ff21f1∘f2
Es sorprendente que Kobayashi no haya visto una manera de demostrar la capacidad de construcción de la función (agradable) (y yo tampoco).⌊nlogn⌋
Comentemos también la definición del artículo de Wikipedia : una función es construible en el tiempo, si existe una máquina de Turing M que, dada una cadena 1 n , genera f ( n ) en el tiempo O ( f ( n ) ) . fM1nf(n)O(f(n)) Vemos que esta definición es equivalente a nuestra definición de total constructibilidad en el tiempo para las funciones .f(n)≥(1+ϵ)n
Q1:
Esta pregunta tiene una respuesta realmente interesante. REIVINDICACIONES que si todas las funciones de tiempo de construible son completamente tiempo-construible, entonces . Para probar eso, tomemos un problema arbitrario L ∈ N E X P - T I M E , L ⊆ { 0 , 1 } ∗ . Entonces existe una k ∈ N , st LEXP−TIME=NEXP−TIMEL∈NEXP−TIMEL⊆{0,1}∗k∈NLpuede resolverse con un NDTM en 2 n k - 1 pasos. Podemos suponer que en cada paso M entra como máximo en dos estados diferentes por simplicidad. Ahora defina la función
f ( n ) = { 8 n + 2 if ( primero ⌊ k √M2nk−1M
f(n)={8n+28n+1if (first ⌊⌊logn⌋+1−−−−−−−−−√k⌋ bits of bin(n))∈Lelse
Afirmo que es construible en el tiempo. Considere la siguiente máquina determinista de Turing T :fT
- en la entrada de longitud n calcula ( primero ⌊ k √wnenO(n)tiempo(first ⌊⌊logn⌋+1−−−−−−−−−√k⌋ bits of bin(n))O(n)
- entonces simula en estos bits, donde los bits de w determinan qué opciones (anteriormente no deterministas) tomar.Mw
- aceptar iff .(M accepts using choices given by w)
Tenga en cuenta que la longitud de ( = n ) es suficiente para determinar todas las opciones no deterministas, ya que M en la entrada ( primero ⌊ k √w=nMrealiza como máximonpasos.(first ⌊⌊logn⌋+1−−−−−−−−−√k⌋ bits of bin(n))n
Podemos hacer que ejecute a lo sumo 8 n + 1 pasos. Ahora la siguiente máquina de Turing demuestra que f es construible en el tiempo:T8n+1f
- en la entrada de longitud n ejecute T y cuente los pasos en paralelo para que se realicen exactamente 8 n pasos.wnT8n
- si rechazó o rechazaría en el siguiente paso, vaya a un estado de detención en el siguiente paso. De lo contrario, da un paso más y luego ve a un estado de detención.T
fEXP−TIME=NEXP−TIME
L
- xnx00…0|x|k−1x=(first ⌊⌊logn⌋+1−−−−−−−−−√k⌋ bits of bin(n)).
- compute f(n) in time f(n) and check whether it is divisible by 2.
This algorithm runs in exponential time and solves L. Since L∈NEXP−TIME was arbitrary, EXP−TIME=NEXP−TIME.