5. Aut´ omatas con pila 143
6.7. Aut´ omatas con dos pilas (AF2P) !
En esta secci´on mostraremos que el modelo de aut´omata con dos pilas (AF2P) es tambi´en equivalente a la m´aquina de Turing. Un aut´omata con dos pilas es esencialmente un AFPD, tal como se defini´o en el cap´ıtulo 5, con la adici´on de una pila m´as. Las pilas tienen la misma restricci´on que antes: el aut´omata s´olo tiene acceso al s´ımbolo que est´a en el tope de cada pila. Un paso computacional depende del estado actual de la unidad de control, del s´ımbolo escaneado en la cinta y de los dos topes de pila, como se muestra en la siguiente gr´afica:
6.7. AUT ´OMATAS CON DOS PILAS (AF2P)! 189
· · · ·
...
...
q s1
s2
≡
≡
...
...
a
Podr´ıamos tambi´en definir aut´omatas conk pilas, k ≥1, pero tal modelo no aumenta la capacidad computacional que se consigue con dos pilas. Para limitarnos al modelo determinista debemos dotar al aut´omata de una faceta m´as: un s´ımbolo auxiliar, $, llamadomarcador final de entrada, que se escribe al final de cada entrada y le sirve al aut´omata para saber cu´ando ha consumido completamente la cadena de entrada. El s´ımbolo $ no forma parte del alfabeto de entradaΣ.
Una transici´on en un AF2P tiene la forma
∆(q, a, s1, s2) = (q′,γ1,γ2),
la cual tiene el siguiente significado: en presencia del s´ımboloaen la cinta de entrada, la unidad de control pasa del estado q al estadoq′ y se mueve a la derecha. Adem´as, borra el s´ımbolos1 que est´a en el tope de la primera pila y lo sobre-escribe por la cadenaγ1, y borra el s´ımbolos2 que est´a en el tope de la segunda pila y lo sobre-escribe porγ2. La unidad de control pasa a escanear los nuevos topes de cada pila. Las cadenasγ1 yγ2 pertenecen a Γ∗, siendoΓ el alfabeto de pila.
Tambi´en se permiten transiciones λo transiciones espont´aneas,
∆(q,λ, s1, s2) = (q′,γ1,γ2).
Con esta transici´on, el s´ımbolo sobre la cinta de entrada no se procesa y la unidad de control no se mueve a la derecha, pero los topes de pila s1 y s2 son reemplazados por las cadenas γ1 y γ2, respectivamente. Para garantizar el determinismo, ∆(q, a, s1, s2) y ∆(q,λ, s1, s2), con a ∈ Σ, no pueden estar simult´aneamente definidos. Las transiciones λ en un AF2P permiten que el aut´omata cambie el contenido de las pilas sin procesar (o consumir) s´ımbolos sobre la cinta de entrada.
Inicialmente cada pila contiene ´unicamente el marcador z0 en el fondo, y la cadena de entrada se coloca en la cinta de entrada, en la forma usual.
N´otese que s´olo es necesario exigir que la cinta de entrada sea infinita en una direcci´on ya que la unidad de control no puede nunca retornar a la izquierda.
✞
✝
☎
Ejemplo✆Dise˜nar un AF2P que acepte el lenguajeL={0i12i0i :i≥0}.
Seg´un el ejercicio➂de la secci´on 4.13, este lenguaje no es LIC y, por lo tanto, no puede ser aceptado por un aut´omata con una sola pila.
Soluci´on. La idea es copiar los ceros iniciales de la cadena de entrada en la primera pila y el doble de ellos en la segunda. Al aparecer los unos en la cadena de entrada, se van borrando los ceros de la segunda pila, sin alterar el contenido de la primera pila. Al aparecer la ´ultima cadena de ceros en la entrada, se borran los ceros acumulados en la primera pila. Si la entrada tiene la forma 0i12i0i, se detectar´a el marcador inicial de entrada
$ simult´aneamente con los marcadores de fondo z0 en ambas pilas. Para implementar esta idea utilizamos cuatro estados;q0 es el estado inicial y q3
el ´unico estado de aceptaci´on.
En detalle, si la entrada tieneiceros iniciales, se acumulaniceros en la primera pila y 2iceros en la segunda, por medio de las dos instrucciones
∆(q0,0, z0, z0) = (q0,0z0,00z0),
∆(q0,0,0,0) = (q0,00,000).
Se borra luego un 0 en la segunda pila por cada 1 le´ıdo en la cinta, por medio de las transiciones
∆(q0,1,0,0) = (q1,0,λ),
∆(q1,1,0,0) = (q1,0,λ).
Al vaciar as´ı la segunda pila, el contenido de la primera no se altera. Fi- nalmente, se borra un 0 en la primera pila por cada 0 le´ıdo en la cinta, con
6.7. AUT ´OMATAS CON DOS PILAS (AF2P)! 191 las transiciones
∆(q1,0,0, z0) = (q2,λ, z0),
∆(q2,0,0, z0) = (q2,λ, z0).
Al encontrar $ en la cinta de entrada yz0en el fondo de cada pila, se ingresa al estado de aceptaci´on q3:
∆(q2,$, z0, z0) = (q3, z0, z0).
Hay que a˜nadir tambi´en la transici´on∆(q0,$, z0, z0) = (q3, z0, z0) para acep- tar la cadena vac´ıa.
El siguiente teorema establece que una MT est´andar se puede simular con un AF2P.
6.7.1 Teorema. Dada una m´aquina de Turing M, se puede construir un aut´omata con dos pilasM′ que acepte el mismo lenguaje queM.
Demostraci´on. SeaM una MT est´andar dada, con funci´on de transici´onδ.
La idea b´asica de la simulaci´on es hacer que, en cada momento, la primera pila deM′ contenga la parte ubicada a la izquierda de la unidad de control de M, y la segunda pila contenga la parte ubicada encima y a la derecha.
La siguiente gr´afica muestra la cinta deM y las dos pilas de la simulaci´on.
En cada momento las pilas contienen solo un n´umero finito de casillas no vac´ıas.
# $! "
# $! "
· · ·
· · ·
q↑
↓
↓
2da. pila1ra. pila
tope tope
Inicialmente,M′ copia la cadena de entradawen la primera pila y luego la traslada de ´esta a la segunda pila (el marcador final de entrada $ le permite al aut´omata saber cu´ando ha terminado de copiar toda la entrada en la primera pila). Al terminar esta operaci´on, la primera pila queda vac´ıa, excepto por el marcador de fondo z0, y la segunda pila contiene toda la cadena de entrada. La unidad de control de M′ est´a escaneando el tope
de la segunda pila que es exactamente el primer s´ımbolo dew. N´otese que para hacer este doble traslado se necesita solamente un n´umero finito de estados, n´umero que depende del alfabeto de entrada pero no de la longitud de w.
El resto de la simulaci´on lo realizaM′ por medio de transicionesλmien- tras escanea el marcador final de entrada $ sobre la cinta. A continuaci´on indicamos c´omo simula M′ las transiciones de M.
Desplazamiento a la derecha: la transici´on δ(q, a) = (p, b,→) de M es simulada por M′ con transiciones de la forma ∆(q,λ, s, a) = (p, sb,λ), por cada s´ımbolo s (s es el s´ımbolo ubicado a la izquierda de a). La siguiente gr´afica ilustra la situaci´on:
s a s b
q
↑
p
↑ δ(q, a) = (p, b,→)
Hay dos excepciones por considerar:
1. Si M realiza la transici´on δ(q, a) = (p,¯b,→) y la primera pila s´olo contiene el marcador de fondoz0,M′ejecuta la acci´on∆(q,λ, z0, a) = (p, z0,λ).
2. SiM′ est´a escaneando el marcador de fondo z0 en la segunda pila, lo que significa que M est´a leyendo una casilla en blanco y usando la transici´onδ(q,¯b) = (p, b,→),M′debe ejecutar la acci´on∆(q,λ, s, z0) = (p, sb, z0).
Desplazamiento a la izquierda: la transici´on δ(q, a) = (p, b,←) de M es simulada por M′ con transiciones de la forma ∆(q,λ, s, a) = (p,λ, sb), por cada s´ımbolo s (s es el s´ımbolo ubicado a la izquierda de a). La siguiente gr´afica ilustra la situaci´on: