Alfabeto de la máquina de Turing de una sola cinta


40

¿Se pueden calcular todas las funciones que es computable en el tiempo en una máquina Turing de una sola cinta usando un alfabeto de tamaño tiempo en una máquina de Turing de una sola cinta usando un alfabeto de tamaño (digamos, y en blanco)?t k = O ( 1 ) O ( t ) 3 0 , 1 ,f:{0,1}{0,1}tk=O(1)O(t)30,1,

(De los comentarios a continuación del OP) Tenga en cuenta que la entrada se escribe usando , pero la máquina Turing que usa un alfabeto de tamaño puede sobrescribir los símbolos de entrada con símbolos del alfabeto más grande. No veo cómo codificar símbolos en el alfabeto más grande en el alfabeto más pequeño sin tener que cambiar la entrada, lo que costaría tiempo .k n 20,1kn2


8
Tenga en cuenta que la entrada se escribe usando , pero la máquina de Turing que usa un alfabeto de tamaño puede sobrescribir los símbolos de entrada con símbolos del alfabeto más grande. No veo cómo codificar símbolos en el alfabeto más grande en el alfabeto más pequeño sin tener que cambiar la entrada, lo que costaría tiempo . k n 20,1kn2
Manu

44
@Emanuele: Debes editar la pregunta y enfatizar este aspecto; de lo contrario, suena exactamente como un ejercicio de libro de texto estándar ...
Jukka Suomela

3
@ Tsuyoshi, creo que entendiste mal la pregunta.
Suresh Venkat

44
@ Jukka: En una máquina de Turing de una sola cinta, todo lo que se puede calcular a tiempo son, de hecho, lenguajes regulares. o(nlogn)
Kristoffer Arnsfelt Hansen

66
@Abel: El resultado que usted cita de Arora y Barak resuelve el problema principal aquí porque en su modelo (que es bastante estándar para TM de cintas múltiples), tienen una cinta de entrada de solo lectura separada.
Joshua Grochow

Respuestas:


5

Una respuesta parcial si TM se ejecuta en o(|x|log|x|)

Si TM4 es un TM de 4 símbolos (con alfabeto ) que calcula f : { 0 , 1 } { 0 , 1 } , es decir, decide el idioma L = { x | f ( x ) = 1 } en ( o ( | x | log | x | ) )Σ4={ϵ,0,1,2}f:{0,1}{0,1}L={x|f(x)=1}(o(|x|log|x|))

Una complejidad de tiempo lineal determinista de cinta es 1DLIN=1DTime(O(n))

  • Hennie demostró (1) que REG=1DLIN
  • Kobayashi demostró (2) que REG=1DTime(o(nlogn))

Entonces es regular, y obviamente sigue siendo regular sobre el alfabeto Σ 3 = { ϵ , 0 , 1 }LΣ3={ϵ,0,1}

Entonces, hay un DFA que decide L y usa solo símbolos en . Se puede construir un TM3 de una cinta y 3 símbolos directamente desde el DFA y decide L usando la misma entrada sin relleno del TM4 original .Σ3

... no puede compilarlo directamente desde TM4, pero TM3 existe.

Si TM4 funciona en , puede cambiar la entrada y realizar una conversión directa de TM4 a TM3.Ω(n2)

Como se observó en los comentarios, el caso difícil es cuando TM4 se ejecuta en .Ω(nlogn)o(n2)


(1) Hennie, cálculos de máquina de Turing fuera de línea , una cinta (1965)

(2) Kobayashi, Sobre la estructura de la jerarquía de tiempo de máquina de Turing no determinista de una cinta (1985)


1
Kristoffer Arnsfelt Hansen ya señaló el punto sobre en los comentarios debajo de la pregunta. El caso realmente interesante es Ω ( n log n ) o ( n 2 ) . o(nlogn)Ω(nlogn)o(n2)
Kaveh

Tienes razón, no noté el comentario de Kristoffer. Expresé mal el caso interesante (no sé cómo probarlo), así que actualicé la respuesta.
Marzio De Biasi

1
@Kaveh: ¿Qué pasa con las máquinas -time para problemas prometedores? ¿Ya sabemos cómo convertir, por ejemplo, cualquier máquina que resuelva un problema prometedor en O ( n ) tiempo? No veo cómo hacerlo, y la conexión a los idiomas normales ya no se mantiene (a menos que esté muy equivocado). o(nlogn)O(n)
Jukka Suomela

1
@Kaveh: ¿No puede simplemente tomar un problema que no es un lenguaje normal pero puede resolverse con una máquina Turing en, por ejemplo, rondas O ( n 2 ) , y definir un problema prometedor de la siguiente manera: sí, las instancias consisten en una cadena x L seguida de | x | 2 pedazos de relleno; las no instancias consisten en una cadena x L seguida de | x | 2 pedazos de relleno. El problema de la promesa se puede resolver en O ( n )LO(n2)xL|x|2xL|x|2O(n)tiempo, y no se puede resolver con una máquina de estados finitos.
Jukka Suomela

1
@Kaveh: Supongo que el argumento intuitivo falla debido a la siguiente razón: Sí, hay un problema no prometedor que es resuelto por la misma máquina. Sin embargo, el tiempo de funcionamiento de la máquina puede ser tan alto como para ciertas entradas. (Intuitivamente, la máquina no puede verificar que haya suficiente relleno y, por lo tanto, "para jugar con seguridad" debe suponer que hay suficiente relleno después del prefijo x . Luego desperdicia Θ ( | x | 2 ) tiempo para determinar si x L , y esto es demasiado si, por ejemplo, solo tuviéramos Θ ( | x | )Θ(n2)xΘ(|x|2)xLΘ(|x|)pedazos de relleno.)
Jukka Suomela

-4

Para todos los tamaños de alfabeto mayores que , los tiempos de ejecución solo cambian por un factor constante ya que log k ( x ) Θ ( log l ( x ) ) para todos k , l > 1 .1logk(x)Θ(logl(x))k,l>1

ttk{0,1,,k1}log2(k)log2(k){0,1}(los espacios en blanco están reservados para marcar celdas no utilizadas). Tenga en cuenta que esto es esencialmente dígitos codificados en binario.

log2(k)tO(t)

{0,1}O(n2)O(n2)+log2(k)t

t(n)Ω(n2)Ω(n2)


3
Hasta que me convenza de por qué se supone que este es el caso, mantendré ese voto negativo.
Andrej Bauer

1
Me gustaría escuchar algunas pruebas de su reclamo. Todo esto, es solo un reclamo.
Andrej Bauer

2
Oh, veo a qué te refieres. OK lo siento. Sin embargo, la pregunta no es sobre eso . Es una ligera variación.
Andrej Bauer

66
Creo que el caso con t = Ω (n ^ 2) es el caso fácil porque puede darse el tiempo para cambiar la cadena de entrada. El caso esencial es cuando t = o (n ^ 2). No sé lo importante que es considerar TM de una sola cinta con o (n ^ 2) tiempo, pero la pregunta es sobre eso.
Tsuyoshi Ito

3
Ω(n2)
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.