Lenguajes unarios reconocidos por los autómatas deterministas bidireccionales

17

2dca (autómata determinista bidireccional de un contador) (Petersen, 1994) puede reconocer el siguiente lenguaje unario:

POWER={02nn0}.

¿Hay algún otro lenguaje unario no trivial reconocido por 2dca?

Observe que todavía se desconoce si 2dca puede reconocer ?SQUARE={0n2n0}


DEFINICIÓN: Un 2dca es un autómata finito determinista de dos vías con un contador. Un 2dca puede probar si el valor del contador es cero o no, e incrementar o disminuir el valor del contador en 1 en cada paso.

Abuzer Yakaryilmaz
fuente
3
¿Podría agregar un enlace a una definición de 2DCA?
Suresh Venkat
3
@SureshVenkat: agregué una referencia y también una definición.
Abuzer Yakaryilmaz
1
@AbuzerYakaryilmaz: por cada fija puede reconocer{ 0 k n : n 0 }k{0kn:n0}
Marzio De Biasi
@MarzioDeBiasi: el algoritmo para se puede generalizar fácilmente a , donde . Por lo tanto, estos idiomas son bastante triviales para mí. P O W E R k = { 0 k nn 0 } k 3POWERPOWERk={0knn0}k3
Abuzer Yakaryilmaz
1
Hm, de hecho creo que de esta manera termino en la misma observación que Marzio ya hizo, así que nada nuevo en lo que dije. Sin embargo, todavía estoy interesado en saber si necesitamos leer el marcador final más de un número limitado de veces.
domotorp

Respuestas:

6

Esta es solo una idea que se me ocurrió mientras leía a Marvin L. Minsky, "La indisolución recursiva del problema de la etiqueta de Post y otros temas en la teoría de las máquinas de Turing"; en particular el famoso teorema Ia:

Teorema Ia: podemos representar cualquier función recursiva parcial mediante un programa que opera en dos enterosS 1f(n)S1 y utilizando las instrucciones I j de las formas: (i) AGREGAR 1 a S j , y pasar a I j 1 (ii ) SUSTRATO 1 de S j , si S j0 y va a I j 1 , de lo contrario vaya a I j 2 Es decir, podemos construir un programa que comience con S 1 = 2 nS2Ij
SjIj1
SjSj0Ij1Ij2
S1=2ny y finalmente se detiene con S 1 = 2 f ( n ) y S 2 = 0S2=0S1=2f(n)S2=0

Si tiene un DFA bidireccional con un contador sobre una cinta (semi) infinita donde la entrada se da en unario: entonces el DFA puede:$12n000...

  1. lea la entrada unaria (y guárdela en el contador);
  2. trabaje en la parte de la cinta y use la distancia desde 1 s como el segundo contador.01

para que pueda simular una máquina Turing completa de dos contadores.

Ahora, si tiene una función recursiva que se ejecuta en el tiempo T ( n ) en una máquina Turing estándar, un DFA bidireccional con un contador que comienza en la cinta finita $ 1 m $f(n)T(n) $1m$(donde y T ( n ) T ( n ) ) pueden:m=2n3T(n)T(n)T(n)

  1. lea la entrada unaria (y guárdela en el contador);
  2. volver al símbolo más a la izquierda;
  3. divida el contador entre 3 hasta que el contador contenga de esta manera: vaya a la derecha en bucle desde los estados q z 0 , q z 1 , q z 2 y reste 1; si el contador alcanza 0 en el estado q z 0, vaya al símbolo más a la izquierda agregando +1 y continúe el ciclo de división; de lo contrario, agregue 1 (si está en el estado q z 1 ) o 2 (si está en el estado q z 2 ) y vaya al símbolo a la izquierda agregando + 3 (es decir, recuperar el valor anterior del contador no divisible por 3) y continuar con el paso 4 .;2nqz0,qz1,qz2qz0qz1qz2
  4. en este punto el contador contiene ;2n
  5. calcule usando el espacio T ' ( n ) disponible a la derecha como el segundo contador (el valor del segundo contador es la distancia desde el símbolo más a la izquierda $ ).2f(n)T(n)$

Entonces, con la codificación de entrada especial descrita anteriormente que le da suficiente espacio en la cinta finita, un DFA bidireccional con un contador y un alfabeto unario puede calcular cada función recursiva.

Si el enfoque es correcto, sería interesante razonar sobre cómo elegir o cuándo es suficiente elegir un gran impar k 2 y codificar la entrada como 1 m , m = 2 n k nT(n)T(n)k21mm=2nkn

Marzio De Biasi
fuente
-1

Por no trivial, supongo que te refieres a un lenguaje L que no puede ser aceptado por 1dca. Aquí parece ser ese lenguaje:

CENTRO = {w | w está por encima de {0,1} * y w = x1y para alguna x, y tal que | x | = | y |}

1dca no puede aceptar este idioma, pero 1nca PUEDE aceptarlo. Puede ser aceptado por un 2dca. Los detalles se dejan como ejercicio.

usuario14004
fuente
2
El OP solicita idiomas unarios (la entrada se da como )$1n$
Marzio De Biasi