Estaba jugando con la muy interesante y abierta pregunta " Alfabeto de la máquina de Turing de una sola cinta " (por Emanuele Viola) y se me ocurrió el siguiente idioma:
donde es el número de s en la cadena x.1
Por ejemplo, si x = 01101111 entonces n = 8, m = 3, k = 2; entonces
¿Puede L ser reconocido por una máquina de Turing con una sola cinta y un alfabeto de 3 símbolos en pasos? O ( n log n )
Si usamos 4 símbolos, la respuesta es sí:
- compruebe si reemplaza s con y s con y al mismo tiempo almacene s a la derecha; 0 ϵ 1 2 m 1
- luego cuente el número de s módulo en .m O ( n log n )
Por ejemplo:
....01101111....... input x (|x| = 8 = 2^3)
000.021.1212.0001.. div 2, first sweep (000. can safely be used as a delimiter)
000.022.1222.00011. div 2, second sweep
000.022.2222.000111 div 2, third sweep --> m = 3 (= log(n) )
000..22.2222....111 cleanup (original 1s are preserved as 2)
000..22.2221102.... start modulo m=3 calculation
000..22.2210022.... mod 3 = 2
000..22.2000222.... mod 3 = 0
000..22.0012222.... mod 3 = 1
000..20112.2222.... mod 3 = 2
000..11122.2222.... ACCEPT
cc.complexity-theory
turing-machines
time-complexity
Marzio De Biasi
fuente
fuente
Respuestas:
¿No puede usar la misma idea que tiene para el caso de 4 símbolos , con las siguientes modificaciones:
En general, puede exprimir una cantidad arbitrariamente grande de información de contabilidad con la ayuda del tercer símbolo procesando los símbolos a la vez.O(1)
fuente