Autómata con pila
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
editarFormalmente, 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
editarLos 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
editarUna máquina de este tipo se representa de la siguiente forma
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
editarSea 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.
Autómata con pila deterministico
editarNó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 deterministicos, 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 deterministico 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 y en la pila aparezca el símbolo , entonces, si existe una definición de transición posible para algún símbolo cualquiera 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 deterministico 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
Definición
editarUn autómata de pila deterministico (AFPD) es una 7-upla,
P = (Q, Σ, Г,Δ, q0, T,Z) donde:
- Q es un conjunto finito de estados.
- Σ es el alfabeto de entrada.
- Г es el alfabeto de la pila.
- q0 є Q es el estado inicial.
- Z є Г símbolo inicial de la pila.
- T es subconjunto de Q (conjunto de estados finales).
- Δ es la función de transición tal que:
Δ: Q × (Σ U { ε }) × Г → (Q × Г *)
Observación
En un momento, la unidad de control del autómata escanea un símbolo ‘a’ sobre la cinta de entrada y el símbolo ‘s’ en el tope de la pila.
Este paso computacional representa: La unidad de control pasa a ‘q0’ y se mueve a la derecha en la cinta de entrada, borra el símbolo ‘s’ del tope, escribe en la cadena y pasa a escanear el nuevo tope.[3]
Autómata con pila no determinista
editarUn autómata finito con pila no determinista (AFPN) consta de los mismos parámetros de un AFPD.
P = (Q, Σ, Г, Δ, q0, T,Z):
Donde la función de transición Δ es de la forma:
Δ: Q × (Σ U { ε }) × Г→ Pf(Q × Г*)
Donde Pf (Q× Г *) es un conjunto de subconjuntos finitos de Q × Г*
Para q є Q, a є Σ U {ε} y s є Г
Δ (q, a, s) = {(q1, γ1), (q2, γ 2), . . . , (qn, γ n)}
Donde γi є Г*
Ejemplo
editarDiseñar un AFPN que acepte el lenguaje [4]
Sobre:
Σ = {a, b}
- Δ (q0, a, Z) = (q0, AZ)
- Δ (q0, ε, Z) = (q2, Z) (acepta ε)
- Δ (q0, a, A) = (q0, AA)
- Δ (q0, b, A) = (q1, ε)
- Δ (q1, b, A) = (q1, ε)
- Δ (q1, ε, Z) = (q2, Z)
El no determinismo se da por la presencia simultánea de:
Δ (q0, a, Z) y Δ (q0, ε, Z)
Véase también
editarReferencias
editar- ↑ Libro Teoría de autómatas y lenguajes Formales, páginas 210-211
- ↑ Curso universidad de Guadalajara [1]
- ↑ Universidad del Valle, Cursos dictados e información «Copia archivada». Archivado desde el original el 26 de junio de 2007. Consultado el 15 de julio de 2010.
- ↑ Universidad del Valle, Ejemplos «Copia archivada». Archivado desde el original el 1 de octubre de 2015. Consultado el 15 de julio de 2010.
Bibliográfica
editar- Teoría de autómatas y lenguajes formales.
Autómatas y complejidad. Kelly Dean Editorial Prentice Hall
- Introducción a la teoría de autómatas, lenguajes y computación
John E. Hopcroft; Jeffrey D. Ullman Editorial Cecsa
- Teoría de la computación
J. Gleuu Brokshear Editorial Addison Wesley Iberoamericana