Está en la página 1de 2

AUTOMATA DE PILA

Debido a que no existe un Autómata Finito (AF) que


pueda reconocer un lenguaje del tipo ‘x^n y^n: para
n={1,2,3,...}’, para reconocer este tipo de Lenguajes
Independientes de contexto (LIC), se tuvo que optar por
otra alternativa. Si para un AF, una entrada fue 100 veces
‘x’, no tengo forma de controlar que la ‘y’ siguiente que
pueda introducirse en la entrada, se repita sólo por 50
veces, resultando de esta forma una palabra aceptada
pero no perteneciente al lenguaje. Entonces, para estos
casos se utilizan los AP.

Los AP se pueden utilizar para analizar cadenas en forma


similar a como se usan los AF pero la diferencia es que
los AP son no determinísticos (en caso que los
comparemos con un AFD) y además cuentan con una pila
donde pueden almacenar información para poder
recuperarla más tarde.

Esta pila está formada por un subconjunto finito de


elementos que pueden pertenecer al conjunto de
símbolos del alfabeto del lenguaje a reconocer, o por
algunos símbolos adicionales que el autámata utilizará
como marcas de control. Se suele utilizar un carácter ‘#’
especial como indicador de que la pila está vacía.

El proceso ‘pasar a un nuevo estado’ equivalente a los


AFs se denota de la siguiente forma: (p, x, s, q, y), donde:
‘p’ es estado actual, ‘x’ es el símbolo del alfabeto que se
lee de la entrada, ‘s’ es el símbolo que se extrae de la
pila, ‘q’ es el nuevo estado e ‘y’ es el símbolo que se
inserta a la pila.

Pero en la forma gráfica se utiliza la terna (x, y, z) para


indicar las transiciones, donde ‘x’ es el símbolo del
alfabeto que se lee de la entrada, ‘y’ es el símbolo que se
extrae de la pila y ‘z’ es el símbolo que se inserta en la
pila.
Cabe aclarar que los lenguajes aceptados por los AP
incluyen a los lenguajes regulares (LR) cuando las
restringimos sus transiciones a la forma (p, x, q ya que
con indicamos que no nos interesa que hay en la pila y
nada insertamos en ella.

Un autómata de pila (pushdown automata) es una sexteta


(K, Σ, Γ, δ, s0, F) donde: – K es un conjunto no vacío de
estados. Σ es el alfabeto de entrada, no vacío. Γ es el
alfabeto de la pila, no vacío. – s0 ∈ K es el estado inicial.
– F ⊂ K es el conjunto de estados finales. δ ⊂ (K × (Σ ∪
{λ}) × (Γ ∪ {λ})) × (K × Γ* ) es la relación de transición. (p,
u, β) × (q, γ) ∈ δ significa que el autómata está en el
estado p, lee el símbolo u, saca β de la pila, pasa al
estado q e introduce γ a la pila. La operación “push” (sólo
meter a la pila) se logra tomando β como la palabra vacía.
La operación “pop” (sólo sacar de la pila) se logra
tomando γ como la palabra vacía. Ya que δ es una
relación y no necesariamente una función, un autómata
de pila es no determinista. • Una palabra es aceptada por
un AP si al “procesarla” completamente, se llega a un
estado final y la pila queda vacía. Debido al no-
determinismo del autómata es posible que al terminar de
procesar la palabra, varios estados estén activos. Es
suficiente que uno de estos estados sea final para que la
palabra se acepte. L(M) denota al lenguaje formado por
las palabras aceptadas por M.

También podría gustarte