Está en la página 1de 8

AUTOMATAS DE PILA Definicin:

Un autmata de pila es formalmente una sxtupla de la forma (Z,V,P,delta,0,F), donde Z Conjunto finito de estados. V Alfabeto de la mquina. P Conjunto finito de smbolos de pila. delta Coleccin finita de transiciones. 0 Estado inicial. F Conjunto de estados de aceptacin.

Esquemticamente:

El autmata de pila analiza cadenas de la misma manera que los autmatas finitos. La diferencia con aquellos es que el smbolo ledo, x , tenia en cuenta el estado de la mquina A, donde se encontraba y la funcin de transicin ubicada en el par ordenado (A,x) nos daba el destino del nuevo estado B. Utilizando el correspondiente grafo esta transicin se manifestaba como

Las transiciones en los autmatas de pila se representan en cambio

A es el estado origen donde se encuentra la mquina. Si la tira en la celda seala por la cabeza lectora tiene el smbolo al x, lee lo que tiene la pila en su cabeza si es c. Lo saca y graba en la cabeza de la pila el elemento d. Debemos agregar que al comienzo La primera celda de la cinta se coloca sobre la cabeza lectora con la pila vaca. Lo importante es el agregado a los autmatas finitos de un sistema de memoria interna en forma de pila con lo que se incrementa considerablemente el potencial de procesamiento de lenguaje del autmata. Consideremos algunas caractersticas que se presentan

# es un smbolo de pila que suele usarse como elemento de control para detectar el fin de la pila. La palabra vaca & juega de distinta manera segn las tres posiciones que puede ocupar en la flecha de la transicin. En primer lugar sobre la flecha significa que no se lee nada de la tira y la misma no avanza una posicin, En segundo lugar no extraemos nada de la pila En tercer lugar no ponemos nada en la pila.

Vamos a dar un ejemplo de un autmata a pila que justamente reconoce las palabras del lenguaje (xnyn/n es N) para el cual no existe autmata finito que lo reconociera.

El estado 0 es el de inicio. El 3 es el de aceptacin. Al comenzar, asumiendo que la pila se encuentra vaca,la mquina se encuentra apuntando al primer smbolo de la tira. La transicin &, &, # indica que no lee nada de la tira y no avanza a la segunda celda, la segunda & seala que no se saca nada de la pila, y # en tercer lugar nos dice que colocamos este smbolo en la pila en la parte superior y que la misma por estar vaca, va a ser el nico smbolo que lo ocupar. Finalmente pasa la maquina al estado 1. En este estado comenzamos a leer desde la primera celda hacia la derecha .Por cada x que se lee de la celda no sacamos nada de la pila pero si colocamos la x en la pila en cada caso, y se pasa a la derecha con la cabeza lectora. Este proceso continua hasta que se lee una y. En ese momento tenemos la pila con un smbolo # en el fondo y encima de ella tantas x como las que tenia la cinta en la primera parte. Al leerse la primera y, se extrae la x que esta en la parte superior de la pila. A continuacin, en estado 2, por cada y que se lee de la tira, se retira una x de la pila, continuando con su desplazamiento a la derecha, Esto continua hasta que se terminan los smbolos de la tira. Pero como en la pila, si hubo tantas y como x, quedo el smbolo # en la cabeza de la pila. Por lo tanto de realiza la transicin &, #, & con lo que no se lee nada de la tira, quedando la cabeza lectora en esa posicin, se extrae el smbolo # de la pila (la pila queda vaca) y no coloca nada en la pila. Pasamos al estado 3, de aceptacin, sobre el que no hay transicin. De esta manera termina el proceso y como conclusin se tiene que se reconocern como vlidas aquellas tiras que tienen una cantidad inicial de x a la izquierda, seguidas con la misma cantidad de y. La palabra vaca no es aceptada. Eso podra ocurrir si el estado 0 fuese tambin de aceptacin.

AUTOMATAS DE PILA COMO ACEPTADORES DE LENGUAJES


Los autmatas de pila se pueden utilizar para analizar cadenas en forma similar a como se usan los autmatas finitos. Colocamos la cinta sobre la mquina Desde su posicin inicial, con la pila vaca, y declaramos que la cadena se aceptara si es posible que la mquina llegue a un estado de aceptacin despus de leer toda la cinta. No quiere decir que la mquina deba encontrarse en un estado de aceptacin inmediatamente despus de leer el ltimo smbolo de la cadena de entrada. Puede ocurrir que despus de leer el ltimo smbolo la mquina pueda ejecutar varias transiciones de la forma &, x, y antes de aceptar la cadena. Usamos posible, ya que estos autmatas que estamos considerando son no deterministas. Por esto deberan llamarse tcnicamente autmatas de pila no deterministas. De igual manera como hicimos con los autmatas del cap 1, llamaremos a todas las cadenas aceptadas por el autmata de pila M como el lenguaje aceptado por la maquina, representado por L(M). Remarquemos como lo hicimos antes, que el lenguaje L(M) no es cualquier coleccin de cadenas aceptadas por M, sino la coleccin de todas las cadenas que acepta M. Es fcil obtener una clase importante de mquinas restringiendo las transiciones a las del tipo x,&,&. De esta manera se ignora la participacin de la pila, y pasa a depender exclusivamente del estado y del smbolo de entrada. En otras palabras estas mquinas, construidas de esta manera son los autmatas finitos. Por lo tanto, los lenguajes aceptados por los autmatas de pila incluyen los lenguajes regulares. Recordemos que el criterio de aceptacin que se proporcion antes permite que un autmata de pila declare la aceptacin de una cadena sin que se tenga que vaciar antes la pila. En el siguiente ejemplo un autmata de pila basado en el siguiente diagrama aceptar el lenguaje (xm y n/m,n es N y m>=n), pues se aceptarn aquellas cadenas con ms x que y, aunque queden x en la pila (No aceptara cadenas con ms y que x, pues no podra leer todos los smbolos de dicha cadena.

Habilitar esta posibilidad puede provocar inconvenientes en la programacin de los autmatas de pila. Por so es preferible evitar la presencia de estos residuos, por lo que se eligen autmatas de pila que vacen su pilas antes de llegar al estado se aceptacin. Teorema 2.1 Para cada autmata de pila que acepte cadenas sin vaciar su pila, existe un autmata que acepta el mismo lenguaje pero que vace su pila antes de de llegar a un estado de aceptacin. Supongamos que tenemos un autmata de pila M que acepte cadenas sin tener que vaciar necesariamente su pila. Vamos a modificar M de la siguiente manera. 1- Elimine la designacin inicial del estado inicial de M. Aada un nuevo estado inicial y una transicin que permita a M pasar del nuevo estado inicial al anterior a la vez que inserta en la pila un smbolo especial # (que no se encontraba anteriormente en T) 2- Elimine la caracterstica de aceptacin de cada estado de aceptacin de M .Luego aada un estado p junto con las transiciones que permitan a la maquina pasa de cada uno de los antiguos estados de aceptacin a p sin leer, extraer o insertar un smbolo. 3- Para cada x de T(sin incluir #), del estado p al q, introduzca la transicin &, x, & 4- Aada un nuevo estado de aceptacin q y del estado p al q la transicin &, #, &

Observe que la versin modificada de M solo marca el fondo de su pila antes de efectuar algn clculo. Y luego simula los clculos de la mquina original hasta el punto donde la mquina original habra declarado la aceptacin de la entrada. Aqu la mquina modificada pasa al estado p , vaca su pila y luego pasa a su estado de aceptacin q quitando la marca de fin de pila. As tanto la mquina original como la modificada aceptan las mismas cadenas, aunque la versin modificada llega a su estado de aceptacin nicamente cuando su pila esta vaca La figura siguiente muestra el resultado de aplicar la tcnica presentada al diagrama anterior. Un autmata de pila basado en este nuevo diagrama aceptar exactamente las mismas cadenas que el original, pero no puede aceptar una cadena a menos que su pila se encuentre vaca.

Recordemos que los autmatas que aqu consideramos son no deterministas .El proceso de modificacin descripto puede introducir varios puntos de no determinismo por medio de las transiciones que conducen de los antiguos estados de aceptaron al nuevo estado p.

Ejercicios 1 Disee el autmata de pila M tal que L(M)= (x n ym x n/m,n es N ) 2 Cual es el lenguaje que acepta el automata de pila cuyo diagrama de transicin se presenta a continiacion

3 Modifique el diagrama de transicin del ejercicio 2 para que el autmata de pila acepte el mismo conjunto de cadenas pero con pila vacia

4 Muestre como puede combinarse 2 autmatas de pilas M1 y M2 para formar un solo autmata de pila que acepte el lenguaje L(m1) U L(M2)

2.2 Gramticas independientes de Contexto


Comenzamos en captulo anterior analizando el concepto de gramtica. En ese momento mostramos, en forma particular, las gramticas regulares. Mostramos de ellas las caractersticas que presentaban las producciones, su parte izquierda es un smbolo no Terminal, mientras que la derecha poda ser Terminal, Terminal no Terminal o palabra vaca. Ahora caracterizaremos las Gramticas independientes de contexto. Las producciones tendrn al igual que las regulares, un smbolo no Terminal a la izquierda mientras que la parte derecha es menos restrictiva, ya que solo tiene que ser un tira de smbolo terminales concatenados con no terminales en cualquier orden.

Ej S M M N N zMNz aMa z bNb z

Las minsculas son terminales y la mayculas no terminales. Esta es una gramatica libre de contexto y el lenguaje que genera L(G) es que genera cadenas de la forma zaNzaNbMzbMz donde m,n pertenecen a Lo de libre de contexto viene por que no intereza en que contexto se encuentra el no Terminal al aplicar cualquier produccin. En un rbol de derivacin en su proceso de generar palabras puede presentarse dudas sobre cual es el no Terminal que debera reemplasarse En un paso especifico de la derivacin.La regla rutinaria que se utiliza es sustituir el no Terminal que se encuentra ms a la izquierda de la cadena a sustituir.(tambien podria usarse regla por la derecha lo cual dria una derivacin por la derecha.Tambien se podrian usar otros criterios combinatorios y obtener otras derivaciones). Los lenguajes generados por gramticas libre de contexto se denominan lenguajes libres de contexto.

Gramtica libre de contexto y autmata de pila


Trataremos de ver ahora la relacin entre los autmatas de pila y las gramticas libre de contexto. Lo que hay es que los lenguajes generados por gramaticas indepenientes de contextos son exactamente los mismos lenguajes que acepten los autmatas de pila.

Teorema 2.2 Para cada gramtica G libre de contexto, existe un autmata de pila M tal que L(G)=L(M) Para su demostracin dado G, libre de contexto, se construye un autmata de pila M que acepta el mismo lenguaje que genera la gramtica. Teorema 2.3 Por cada autmata de pila existe una gramtica G independiente de contexto tal que L(M)=L(G). La idea sigue siendo la misma, dado un autmata de pila M nuestra tarea ed producir una gramtica G libre de contexto que genere el lenguaje L(M). En resumen contamos ahora con dos caracterizaciones para los lenguajes independientes de contexto; son los lenguajes aceptados por autmatas de pila, as como los lenguajes generados por gramticas independientes de contexto.

Lmites de los autmatas de pila Hasta ahora hemos concluido que los lenguajes independientes de contexto como aquellos generados por gramticas libre de contexto Y como aquellos aceptados por los automtas de pila..Sin embargo no hemos considerado el acance de estos lenguajes, no nos hemos preguntado si existen lenguajes que no son librea de contextos.Ademas los autmatas de pila que hemos considerados hasta ahora son no deterministicos. Existe la consecuencia de un teorema que no demostraremos que N N N El lenguaje (x y z /N es entero positivo) no es libre de contexto.