- Autómata con pila
-
Autómata con pila
Un autómata con pila o autómata de pila o autómata a pila o autómata apilador 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 a pila pertenece al grupo de los lenguajes de contexto libre 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 M = (S,Σ,Γ,δ,s,Z,F) donde:
- Σ y Γ son alfabetos de entrada, de la cadena y de la pila respectivamente;
- S un conjunto de estados;
- 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 es la siguiente:
Cuando el estado del autómata es s, el símbolo que la cabeza lectora está inspeccionando en ese momento es a, y en la cima de la pila nos encontramos el símbolo Z, se realizan las siguientes acciones:
- Si , es decir no es la palabra vacía, se avanza una posición la cabeza lectora para inspeccionar el siguiente símbolo.
- Se elimina el símbolo Z de la pila del autómata.
- Se selecciona un par (pi,γi) de entre los existentes en la definición de δ(s,A,Z), la función de transición del autómata.
- Se apila la cadena en la pila del autómata, quedando el símbolo A1 en la cima de la pila.
- Se cambia el control del autómata al estado pi.
Ejemplo
Sea el siguiente lenguaje libre del contexto ; formado por las cadenas
Dicho lenguaje puede ser reconocido por el siguiente autómata con pila:
donde las transiciones son:
para cualquier (q,θ,ρ)
El significado de las transiciones puede ser explicado analizando la primera transición:
donde q0 es el estado actual, a es el símbolo en la entrada y ε se extrae de la cima de la pila. Entonces, el estado del automata cambia a q1 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.
Autómata determinista
Nótese que, a diferencia de un autómata finito o una máquina de Turing, la definición básica de un autómata con pila es de naturaleza no determinista, pues la clase de los autómatas con pila deterministas, a diferencia de lo que ocurría con aquellos modelos, tiene una potencia descriptiva estrictamente menor. Para calificar a un autómata con pila como determinista deben darse dos circunstancias; en primer lugar, por supuesto, que en la definición de cada componente de la función de transición existan un único elemento lo que da la naturaleza determinista. Pero eso no es suficiente, pues además puede darse la circunstancia de que el autómata esté en el estado s y en la pila aparezca el símbolo sZ, entonces, si existe una definición de transición posible para algún símbolo cualquiera a del alfabeto de entrada, pero, además existe otra alternativa para la palabra vacía ε, también esto es una forma de no determinismo, pues podemos optar entre leer un símbolo o no hacerlo. Por eso, en autómata determinista no debe existir transición posible con lectura de símbolo si puede hacerse sin ella, ni al contrario.
Para cada , se dé que: , para cada
Categoría: Lenguajes formales
Wikimedia foundation. 2010.