Está en la página 1de 22

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

El Autmata con Pila


Una Generalizacin del Autmata Finito

Universidad de Cantabria

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Esquema

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Introduccin

Los autmatas son abstracciones de maquinas de calcular, como hemos visto. Los ms sencillos no tienen acceso a memoria y por ello tienen sus limitaciones.

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Introduccin

Si aadimos acceso a una cantidad nita de memoria, no hay ninguna ganancia, ya que se puede utilizar los autmatas nitos tambin para simular estos procesos.

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Introduccin

Por lo tanto autmatas ms generales tienen que tener memoria innita, pero las diferencias estn en como se accede a los contenidos de esa memoria. Esta leccin estar dedicada a los autmatas que tienen una memoria que funciona como un stack o una pila.

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Stacks

Podemos identicar las pilas con ciertos lenguajes y ciertas funciones sobre un alfabeto del modo siguiente. Comenzaremos aadiendo un nuevo smbolo Z0 que no est en . Las pilas (stacks) son elementos del lenguaje: Z0 . El smbolo Z0 se identicar con el signicado Fondo de la Pila.

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Stacks

El fondo de la pila es un elemento que se puede leer, se puede sacar pero no se puede volver a introducir. Los elementos de la pila se colocaran de izquierda a la derecha, esto es los elementos del fondo son los los que estn ms a la izquierda. Como anticipo diremos que los elementos se irn introduciendo uno a uno, colocandolos a la izquierda.

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Funciones sobre las Pilas

empty: Denimos la aplicacin empty : Z0 {0, 1}, dada mediante: empty ( ) := 1, si = 0, en otro caso

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Funciones sobre las Pilas

top: Denimos la aplicacin top : Z0 {}, mediante la regla siguiente: Dada una pila Z0 Z0 (con = w1 wn ), top(Z0 w ) := wn , si = w1 wn , Z0 = , en caso contrario

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Funciones sobre las Pilas

push: Apilar (empujar) una pila encima de otra. Denimos la aplicacin push : Z0 Z0 , mediante la regla siguiente: Dada una pila Z0 Z0 (con = w1 wn ), y una palabra a , dada mediante: a := a1 ar , denimos push(Z0 , a) := Z0 w1 wn a1 ar Z0 .

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Funciones sobre las Pilas


pop (Pull Out the toP): Denimos la aplicacin pop : Z0 Z0 , mediante la regla siguiente: Dada una pila Z0 Z0 , denimos pop(Z0 ) como el resultado de eliminar top(Z0 ), esto es pop(Z0 ) := Z0 w1 wn1 Z0 , si w1 wn + , Z0 , en caso contrario

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Propiedad Bsica

Una de las propiedades bsicas de las operaciones es, obviamente, la siguiente: push(pop(Z0 ), top(Z0 )) = Z0 .

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Denicin
Denicin (NonDeterministic Pushdown Automata) Un autmata con pila (o pushdown autmata) indeterminista es una lista A := (Q , , , Q0 , F , Z0 , ) donde: Q es el conjunto de estados y que suele denominarse espacio de estados, y Q0 es el estado inicial, y son conjuntos nitos donde Z0 y es llamado el fondo de la pila, F es el subconjunto de Q de estados nales aceptadores, es una correspondencia: : Q ( {}) () P (Q ), que se denomina funcin de transicin.
Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Propiedad Adicional

La funcin de transicin debe vericar la propiedad siguiente para cada lista (q , x , A) Q ( {}) ( {Z0 }): {(p, ) Q : (p, ) (q , x , A)} < . Es decir, slo un nmero nito de elementos de Q estarn relacionados con cada elemento (q , x , A) mediante la funcin de transicin.

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Propiedad Adicional

Ntese que hemos supuesto que la funcin de transicin tiene su rango (el conjunto hacia el que va a parar) en Q . Esta condicin nos dir (ms adelante) que no podemos escribir en la pila el smbolo de fondo de pila nada ms que cuando se escriba en la conguracin inicial. Podremos, sin embargo, leerlo. No estar, en ningn caso, en medio de la pila.

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Determinismo

El determinismo en autmatas con pila diere del caso de autmatas nitos. No vamos a exigir que sea aplicacin sino algo ms delicado.

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Determinismo

Esto es porque el autmata tiene que leer de la pila y de la cinta de lectura.

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Determinismo

La imagen de cualquier lectura contiene a lo sumo 1 elemento. Es decir, para cualesquiera (q , x , A) Q ( {}) ( {Z0 }), el conjunto de los elementos relacionados con l a travs de tiene, a lo sumo, 1 elemento: ({(p, ) Q : (p, ) (q , x , A) = (p, )}) 1.

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Determinismo
Si dados q Q y A , existieran (p, ) Q tales que (q , , A) = (q , ), entonces, ninguno de los elementos de Q ( {Z0 }) tiene imagen por . Es decir, si {(p, ) Q : (p, ) (q , , A)} = 1, entonces {(p, ) Q : (p, ) (q , x , A)} = 0.
x

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Ejemplo de Autmata Determinista

Dar un autmata determinista que acepte el siguiente lenguaje: L := {an bm c n : n, m 1}

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Determinismo

No es cierto, en el caso de autmatas con pila, que todo autmata con pila indeterminista sea equivalente a un autmata con pila determinista. As, el siguiente lenguaje es aceptado por un autmata con pila indeterminista, pero no puede ser aceptado por un autmata con pila determinista: L := {an bm c n : n, m 1} {an bm c m : n, m 1} {a, b, c } .

Autmatas con Pila

Introduccin Repaso a Stacks Autmatas con Pila Determinismo

Determinismo

No todos los autmatas deterministas acaban en un tiempo nito. Son mucho ms complejos que los nitos, ya que estos pueden entrar en ciclos.

Autmatas con Pila