Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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.
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)
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.
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.