Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Partimos de un estado q0 que representa una suposicin de que todava no hemos visto el centro; es
decir, que no hemos visto el final de la cadena w que va seguida de su cadena refleja. Mientras estemos en
el estado q0, leeremos smbolos y los almacenaremos en la pila, introduciendo una copia de cada smbolo
de entrada en la pila.
2. En cualquier instante, podemos suponer que hemos visto el centro; es decir, el final de w. En dicho
instante, w estar en la pila estando su extremo derecho en la cima de la pila y el izquierdo en la parte
inferior.
Marcamos esto pasando espontneamente al estado q1. Puesto que el autmata no es determinista,
realmente hacemos dos suposiciones: suponemos que hemos visto el final de w, pero tambin
permanecemos en el estado q0 y continuamos leyendo entradas y almacenndolas en la pila.
3. Una vez en el estado q1, comparamos los smbolos de entrada con el smbolo de la cima de la pila. Si
son iguales, consumimos el smbolo de entrada, extraemos un smbolo de la pila y continuamos. Si no son
iguales, hemos hecho una suposicin errnea; a la cadena w no le sigue la cadena wR. Esta rama muere,
aunque otras ramas del autmata no determinista pueden sobrevivir y finalmente llevar a un estado de
aceptacin.
4. Si vaciamos la pila, entonces quiere decir que hemos encontrado la cadena w de entrada seguida de wR.
Aceptamos la entrada que habamos leido hasta ese momento.
Definicin formal:
La notacin formal de un autmata a pila P incluye siete componentes de la forma siguiente:
P = (Q, , ,,q0,Z0,F)
El significado de cada uno de los componentes es el siguiente:
Q: Un conjunto finito de estados, como los estados de un autmata finito.
: Un conjunto finito de smbolos de entrada, tambin anlogo al componente correspondiente de un
autmata finito.
: Un alfabeto de pila finito. Este componente, que no tiene anlogo en los autmatas finitos, es el
conjunto de smbolos que pueden introducirse en la pila.
: La funcin de transicin. Como en el autmata finito, controla el comportamiento del autmata.
Formalmente, toma como argumento (q,a,X), donde:
1. q es un estado de Q.
2. a es cualquier smbolo de entrada de o a=, la cadena vaca, que se supone que no es un
smbolo de entrada.
3. X es un smbolo de la pila, es decir, pertenece a .
La salida de es un conjunto finito de pares (p, ), donde p es el nuevo estado y es la cadena de
smbolos de la pila que reemplaza X en la parte superior de la pila. Por ejemplo, si = , entonces se
extrae un elemento de la pila, si = X, entonces la pila no cambia y si =YZ, entonces X se reemplaza
por Z e Y se introduce en la pila.
q0: El estado inicial. El autmata a pila se encuentra en este estado antes de realizar ninguna transicin.
Z0: El smbolo inicial. Inicialmente, la pila del autmata a pila consta de una instancia de este smbolo y
de nada ms.
F: El conjunto de estados de aceptacin o estados finales.
Ni mezcla ni emparejado
En ciertas situaciones, un autmata a pila puede elegir entre varios pares. Por ejemplo, supongamos que
(q,a,X) = {(p,YZ), (r,)}. Cuando el autmata a pila hace un movimiento, tenemos que elegir un
par completo; no podemos elegir un estado de uno y una cadena de sustitucin de la pila del otro. Por
tanto, en el estado q, con X en la parte superior de la pila, al leer la entrada a, podramos pasar al estado p
y reemplazar X por YZ o podramos pasar al estado r y extraer X de la pila. Sin embargo, no podemos
pasar al estado p y extraer X, ni podemos pasar al estado r y reemplazar X por YZ.
Ejemplo:
Diseemos un PDA P para aceptar el lenguaje Lwwr anterior. En primer lugar, en dicho ejemplo faltan
algunos detalles que necesitamos para comprender cmo se gestiona correctamente la pila. Utilizaremos
un smbolo de pila Z0 para marcar el fondo de la pila. Necesitamos disponer de este smbolo para que,
despus de extraer w de la pila y darnos cuenta de que hemos visto wwR en la entrada, tendremos algo en
la pila que nos permita hacer una transicin al estado de aceptacin, q2. Por tanto, nuestro autmata a pila
para Lwwr se puede describir como:
P = ({q0,q1,q2},{0,1},{0,1,Z0},,q0,Z0,{q2})
donde se define de acuerdo con las siguientes reglas:
1. (q0,0,Z0) = {(q0,0Z0)} y (q0,1,Z0) = {(q0,1Z0)}. Inicialmente se aplica una de estas reglas,
si estamos en el estado q0 y vemos el smbolo inicial Z0 en la parte superior de la pila. Leemos la primera
entrada y la introducimos en la pila, dejando Z0 abajo para marcar la parte inferior.
2. (q0,0,0)={(q0,00)}, (q0,0,1)= {(q0,01)}, (q0,1,0)={(q0,10)} y (q0,1,1)={(q0,11)}.
Estas cuatro reglas similares nos permiten permanecer en el estado q0 y leer las entradas,
introducindolas por la parte superior de la pila y dejando el smbolo de la cima de la pila anterior.
3. (q0,,Z0) = {(q1,Z0)}, (q0,,0) = {(q1,0)} y (q0,,1) = {(q1,1)}. Estas tres reglas
permiten a P pasar del estado q0 al estado q1 de forma espontnea (para la entrada ), dejando intacto
cualquier smbolo que est en la parte superior de la pila.
4. (q1,0,0) = {(q1,)} y (q1,1,1) = {(q1,)}. Ahora, en el estado q1, podemos emparejar
smbolos de entrada con los smbolos de la cima de la pila y extraerlos cuando se correspondan.
5. (q1,,Z0) = {(q2,Z0)}. Por ltimo, si exponemos el marcador de la parte inferior de la pila Z0 y
estamos en el estado q1, entonces hemos encontrado una entrada de la forma wwR. Pasamos al estado q2
y aceptamos.
Grafica de un autmata a pila:
La lista de hechos no es demasiado fcil de seguir. En ocasiones, un diagrama, que generaliza el diagrama
de transiciones de un autmata finito, mostrar ms claramente aspectos del comportamiento de un
determinado autmata a pila. Por tanto, vamos a ver y a utilizar un diagrama de transiciones de un
autmata a pila en el que:
a) Los nodos se corresponden con los estados del autmata a pila.
b) Una flecha etiquetada como Inicio indica el estado inicial y los estados con un crculo doble se
corresponden con los estados de aceptacin, al igual que en los autmatas finitos.
c) Los arcos corresponden a las transiciones del autmata a pila de la forma siguiente: un arco
etiquetado con a,X/del estado q al estado p quiere decir que (q,a,X) contiene el par (p,), quiz
entre otros pares. Es decir, la etiqueta del arco nos indica qu entrada se utiliza y tambin proporciona
los elementos situados en la cima de la pila nuevo y antiguo.
Lo nico que el diagrama no proporciona es el smbolo inicial. Por convenio, es Z0, a menos que se
indique otra cosa.
descripciones instantneas a travs de las que se mueve un autmata finito, dado que el ID de un autmata
finito es slo su estado. Sin embargo, para los autmatas a pila necesitamos una notacin que describa los
cambios en el estado, la entrada y la pila. Por tanto, adoptamos la notacin torniquete para conectar
pares de descripciones instantneas (ID) que representan uno o ms movimientos de un PDA.
Sea P =(Q, , ,,q0,Z0,F) un autmata a pila. Definimos
p
, o simplemente
cuando
P se sobreentiende, como sigue. Supongamos que (q,a,X) contiene (p,), entonces para todas las
cadenas w de
y de :
(q,aw,X)
(p,w,)
Este movimiento refleja la idea de que, consumiendo a (que puede ser ) de la entrada y reemplazando X
en la cima de la pila por , podemos ir del estado q al estado p. Observe que lo que queda de la entrada,
w, y lo que est bajo la cima de la pila, , no influye en la accin del autmata a pila; simplemente son
arrastrados para quiz tener influencia en sucesos posteriores.
,o
cuando se sobreentiende el autmata a pila P, para
BASE. I
I para cualquier descripcin instantnea I.
PASO INDUCTIVO. I
J si existe alguna descripcin instantnea K tal que I K y K
J.
Es decir, I
J si existe una secuencia de descripciones instantneas K1,K2, . . . ,Kn, tales que I =
El autmata a pila tambin puede suponer que ha visto el centro despus de leer un 1; es decir, cuando
est en la ID (q0,111,1Z0). Esta suposicin tambin falla, ya que la entrada completa no puede haberse
consumido.
La suposicin correcta, que el centro se ha alcanzado despus de leer dos unos, nos proporciona la
secuencia
de descripciones ID (q0,1111,Z0) (q0,111,1Z0) (q0,11,11Z0)
(q1,11,11Z0)
(q1,1,1Z0)
(q2,,Z0).
(q1,,Z0)
Es preciso conocer tres importantes principios acerca de las descripciones ID y de sus transiciones para
poder razonar sobre los autmatas a pila:
1. Si una secuencia de descripciones ID (una (computacin) es vlida para un autmata a pila P,
entonces la computacin que se forma aadiendo la misma cadena de entrada al final de la
entrada (segundo componente) en cada ID tambin es vlida.
2. Si una computacin es vlida para un autmata a pila P, entonces la computacin que se forma
aadiendo los mismos smbolos de pila a la parte inferior de la pila de cada ID tambin es vlida.
3. Si una computacin es vlida para un autmata a pila P, y parte del extremo final de la entrada
no se consume, entonces podemos eliminar dicho final de la entrada de cada descripcin ID, y la
computacin resultante tambin ser vlida.
Intuitivamente, los datos que P nunca llega a ver no pueden afectar a su funcionamiento. Formalizamos
los puntos (1) y (2) en el siguiente teorema.
TEOREMA:
p
Si P =(Q, , ,,q0,Z0,F) es un autmata a pila y (q,x,)
cadena w de
y de
(p,yw,)
Observe que si = , entonces tenemos una proposicin formal del anterior principio (1) y si w = ,
tenemos el segundo principio.
DEMOSTRACIN. La demostracin se realiza por induccin sobre el nmero de pasos de la secuencia
de las descripciones instantneas que llevan de (q,xw,) a (p,yw,). Cada uno de los movimientos de
p
la secuencia (q,x,)
manera. Por tanto, cada movimiento se justifica cuando estas cadenas aparecen en la entrada y en la pila.
Observe que el inverso de este teorema es falso. Hay cosas que un autmata a pila puede hacer
extrayendo elementos de su pila, utilizando algunos smbolos de y reemplazndolos despus en la pila,
que no podra realizar si nunca mirara . Sin embargo, como establece el principio (3), podemos eliminar
la entrada no utilizada, ya que no es posible que el autmata a pila consuma smbolos de entrada y luego
restaure dichos smbolos en la entrada. Podemos enunciar el principio (3) formalmente como sigue:
TEOREMA 1:
p
Si P =(Q, , ,,q0,Z0,F) es un autmata a pila y (q,xw,)
p
cumple que (q,x,)
(p,y,).
p
{w | (q0,w,Z0)
(q,,)}
para un estado q de F y cualquier cadena de pila . Es decir, partiendo de la ID inicial con w esperando
en la entrada, P consume w a partir de la entrada y pasa a un estado de aceptacin. El contenido de la pila
en dicho instante es irrelevante.
EJEMPLO:
Hemos establecido que el autmata a pila del Ejemplo anterior acepta el lenguaje Lwwr, el lenguaje de las
cadenas pertenecientes a {0,1} que tienen la forma w w
verdadera. Se trata de la demostracin de una proposicin si-y-slo-si: el autmata a pila P del Ejemplo
acepta la cadena x por estado final si y slo si x es de la forma w w
Parte Si. Esta parte es fcil; slo tenemos que demostrar que P realiza una computacin que acepta. Si
x=w w
(q0,w w
,Z0)
(q0, w
, w
Z0)
(q1, w
, w
Z0)
(q1,,Z0)
(q2,,Z0)
Es decir, una opcin del autmata a pila es leer w de su entrada y almacenarla en su pila, en orden
inverso. A continuacin, pasa espontneamente al estado q1 y empareja
misma cadena de su pila, y finalmente pasa de forma espontnea al estado q2.
wR
de la entrada con la
Parte Slo-si. Esta parte es algo ms complicada. En primer lugar, observamos que la nica forma de
entrar en el estado de aceptacin q2 es estando en el estado q1 y teniendo Z0 en la cima de la pila.
Adems, cualquier computacin de aceptacin de P comenzar en el estado q0, har una transicin a q1 y
nunca volver a q0.
Por tanto, basta con determinar las condiciones que tiene que cumplir x tal que (q0,x,Z0)
(q1,,Z0); stas sern exactamente las cadenas x que P acepta por estado final. Demostraremos por
induccin sobre |x| la proposicin algo ms general:
R
Si (q0,x,)
(q1,,), entonces x es de la forma w w .
por lo que la proposicin tambin lo es. Observe que no tenemos que argumentar que la hiptesis (q0,,
)
PASO INDUCTIVO. Supongamos que x = a1a2 an para n > 0. Existen dos movimientos que P
puede realizar a partir de la descripcin instantnea (q0,x,):
1. (q0,x,) (q1,x,). Ahora P slo puede extraer elementos de la pila cuando se encuentra en el
estado
q1. P tiene que extraer un elemento de la pila con cada smbolo de entrada que lee, y |x| > 0. Por tanto, si
(q1,x,)
2. (q0,a1a2 an,)
(q1,an,a1)
(q1,,)
En dicho caso, tiene que ser que a1 = an. Tambin sabemos que,
(q0,a2 an,a1)
(q1,an, a1)
De acuerdo con el Teorema 1, podemos eliminar el smbolo an del final de la entrada, ya que no se utiliza.
Por tanto,
(q0,a2 an1,a1)
(q1,,a1)
Puesto que la entrada para esta secuencia es ms corta que n, podemos aplicar la hiptesis inductiva y
concluir que a2 an1 es de la forma y y
sabemos que
a1 = an, concluimos que x es de la forma w w
; en concreto, w = a1y.
an y que
Esto es en esencia lo fundamental de la demostracin de que la nica forma de aceptar x es que sea igual a
w w
para cierta w. Por tanto, tenemos la parte slo-si de la demostracin, la cual, junto con la parte
si demostrada anteriormente, nos dice que P acepta slo aquellas cadenas que pertenecen a Lwwr.
Aceptacin por pila vaca
Para todo autmata a pila P =(Q, , ,,q0,Z0,F), definimos tambin:
N(P) = {w | (q0,w,Z0)
(q,,)}
para cualquier estado q. Es decir, N(P) es el conjunto de entradas w que P puede consumir vaciando al
mismo tiempo su pila.
EJEMPLO:
El autmata a pila P del anterior ejemplo nunca vaca su pila, por lo que N(P) = . Sin embargo, una
pequea modificacin permitir a P aceptar Lwwr por pila vaca, as como por estado final. En lugar de la
transicin (q1,,Z0) = {(q2,Z0)}, utilizamos (q1,,Z0) = {(q2,
Un autmata a pila que acepta los errores if/else por pila vaca.
Introduciremos otro smbolo Z cuando veamos una i y extraeremos una Z cuando veamos una e. Dado que
comenzamos con una Z en la pila, realmente seguimos la regla de que si la pila es
Z n , entonces
existen n-1 ms letras i que e. En particular, si la pila est vaca, quiere decir que hemos visto una e ms
que i, y la entrada leda hasta el momento pasa a ser no vlida por primera vez. Estas cadenas son las que
acepta el autmata a pila por pila vaca. La especificacin formal de PN es:
PN = ({q},{i,e},{Z},N,q,Z) donde N se define como sigue:
1. N(q, i,Z) = {(q,ZZ)}. Esta regla introduce una Z cuando vemos una i.
2. N(q,e,Z) = {(q,)}. Esta regla extrae un Z cuando vemos una e.
Ahora construimos a partir de PN un autmata a pila PF que acepta el mismo lenguaje por estado final; el
diagrama de transiciones para PF se muestra en la Figura siguiente.
Construccin de un autmata a pila que acepta por estado final a partir del autmata a pila de la figura
anterior.
Aadimos un nuevo estado inicial p y un estado de aceptacin r. Utilizaremos X0 como marcador de
fondo de la pila. PF se define formalmente como sigue:
PF = ({p,q, r},{i,e},{Z,X0},F, p,X0,{r}) donde F consta de:
1. F(p,,X0) = {(q,ZX0)}. Esta regla inicia PF simulando PN, con X0 como marcador de fondo de la
pila.
2. F(q, i,Z) = {(q,ZZ)}. Esta regla introduce una Z cuando se ve una i; simula PN.
3. F(q,e,Z) = {(q,)}. Esta regla extrae una Z cuando se ve una e; tambin simula PN.
4. F(q,,X0) = {(r,)}. Es decir, PF acepta cuando el PN simulado haya vaciado su pila.
Del estado final a la pila vaca
Ahora vamos a ver el proceso inverso: partiendo de un autmata a pila PF que acepta un lenguaje L por
estado final, construimos otro autmata a pila PN que acepta L por pila vaca. La construccin es sencilla
y se muestra en la Figura siguiente. A partir de cada estado de aceptacin de PF, aadimos una transicin
sobre a un nuevo estado p. En el estado p, PN extrae de la pila y no consume ninguna entrada. As,
cuando PF pasa a un estado de aceptacin despus de consumir la entrada w, PN vaciar su pila despus
de consumir w.
Con el fin de evitar simular una situacin en la que, accidentalmente, PF vace su pila sin aceptar, PN
tambin tiene que utilizar un marcador X0 para el fondo de su pila. El marcador es el smbolo inicial de
PN, y al igual que en la construccin del Teorema 2, PN tiene que partir de un nuevo estado p0, cuya
nica funcin es introducir el smbolo inicial de PF en la pila y pasar al estado inicial de PF .
1.