Autómata con pila

Sistema combinacional Autómata finito Autómata con pila Máquina de Turing Teoría de autómatasTeoría de autómatas.svg
Acerca de esta imagen


Un autómata con pila, autómata a pila o autómata de pila es un modelo matemático de un sistema que recibe una cadena constituida por símbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autómata reconoce. El lenguaje que reconoce un autómata con pila pertenece al grupo de los lenguajes libres de contexto en la clasificación de la Jerarquía de Chomsky.

Definición formal

Formalmente, un autómata con pila puede ser descrito como una séptupla donde:

  • es un conjunto finito de estados;
  • y son alfabetos (símbolos de entrada y de la pila respectivamente);
  • es el estado inicial;
  • es el símbolo inicial de la pila;
  • es un conjunto de estados de aceptación o finales;


La interpretación de , con , y es la siguiente:

Cuando el estado del autómata es , el símbolo que la cabeza lectora está inspeccionando en ese momento es , y en la cima de la pila nos encontramos el símbolo , se realizan las siguientes acciones:

  • Si , es decir no es la cadena vacía, la cabeza lectora avanza una posición para inspeccionar el siguiente símbolo.
  • Se elimina el símbolo de la pila del autómata.
  • Se selecciona un par de entre los existentes en la definición de , la función de transición del autómata.
  • Se apila la cadena , con en la pila del autómata, quedando el símbolo en la cima de la pila.
  • Se cambia el control del autómata al estado .


Funcionamiento

Los autómatas de pila, en forma similar a como se usan los autómatas finitos, también se pueden utilizar para aceptar cadenas de un lenguaje definido sobre un alfabeto A. Los autómatas de pila pueden aceptar lenguajes que no pueden aceptar los autómatas finitos. Un autómata de pila cuenta con una cinta de entrada y un mecanismo de control que puede encontrarse en uno de entre un número finito de estados. Uno de estos estados se designa como estado inicial, y además algunos estados se llaman de aceptación o finales. A diferencia de los autómatas finitos, los autómatas de pila cuentan con una memoria auxiliar llamada pila. Los símbolos (llamados símbolos de pila) pueden ser insertados o extraídos de la pila, de acuerdo con el manejo last-in-first-out (LIFO). Las transiciones entre los estados que ejecutan los autómatas de pila dependen de los símbolos de entrada y de los símbolos de la pila. El autómata acepta una cadena x si la secuencia de transiciones, comenzando en estado inicial y con pila vacía, conduce a un estado final, después de leer toda la cadena x.[1]

Representación

Una máquina de este tipo se representa de la siguiente forma

Representacion.gif

Al igual que un autómata finito un autómata de pila cuenta con un flujo de entrada y un flujo de control que puede encontrarse en uno de entre un número finito de estados. Uno de estos estados se designa como el inicial y por lo menos un estado es de aceptación.

La principal diferencia es que los autómatas de pila cuentan con una pila en donde pueden almacenar información para recuperarla más tarde.

Los símbolos que pueden almacenarse en esta pila se conocen como símbolos de pila de la máquina, constituyen un conjunto finito que puede incluir algunos símbolos definiendo el alfabeto de la máquina y quizá algunos símbolos adicionales que se utilizan como marcas internas. Si una máquina inserta un símbolo especial en la pila antes de efectuar algún otro cálculo, entonces ese símbolo en la cima de la pila puede usarse como indicador de pila vacía para cálculos posteriores, dicho símbolo es #.[2]

Ejemplo

Sea el siguiente LLC ; formado por las cadenas

Dicho lenguaje puede ser reconocido por el siguiente autómata con pila:

donde las transiciones son:

para cualquier

El significado de las transiciones puede ser explicado analizando la primera transición:

donde es el estado actual, es el símbolo en la entrada y se extrae de la cima de la pila. Entonces, el estado del autómata cambia a y el símbolo se coloca en la cima de la pila.

La idea del funcionamiento del autómata es que al ir leyendo los diferentes símbolos a, estos pasan a la pila en forma de símbolos A. Al aparecer el primer símbolo b en la entrada, se comienza el proceso de desapilado, de forma que coincida el número de símbolos b leídos con el número de símbolos A que aparecen en la pila.

Other Languages