Autómatas de Pilas
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.
Los autómatas finitos reconocen lenguajes regulares. En cambio, los autómatas con pila sirven para reconocer lenguajes incontextuales.
Un autómata con pila (AP) puede recordar cantidad de información sin límite pero no puede acceder a ella en cualquier orden.
AFN-
pila auxiliar (información potencialmente infinita)
Lenguaje aceptado por un autómata con pila
Hay dos tipos de AP:
- Aceptación por estado final
: se puede llegar a través de P con 0 o más pasos.
Siendo
el lenguaje aceptado por P por estado final es
- Aceptación por pila vacíaSiendo
el lenguaje acpetado por P por pila vacía es
: se puede llegar a través de P con 0 o más pasos.
el lenguaje aceptado por P por estado final es
el lenguaje acpetado por P por pila vacía es
Observaciones
- Al reconocer por pila vacía, la pila se queda vacía del todo, sin
.
. Antes de diseñar un AP, hay que decir si queremos que acepte por estado final o por pila vacía, pues el AP deberá ser distinto.
Ejemplo
, con AP por pila vacía
Aceptación por estado final es "equivalente" a aceptación por pila vacía
Th Si existe un AP
que reconoce un lenguaje por estado final, entonces existe otro AP
' que reconoce el mismo lenguaje por pila vacía:
En general,
En general,
Th Si existe un AP
que reconoce un lenguaje por pila vacía, entonces existe otro AP
que reconoce el mismo lenguaje por estado final:
Traducción pila vacía
estado final
Sea
un AP que acepta por pila vacía
entonces diseñamos
que acepta por estado final las mismas cadenas que
por pila vacía
- Nuevo estado inicial: añadir un nuevo símbolo a la pila
- Procesar como si estuviéramos en

- Si llegamos a tener
en la cima:
ha vaciado su pila
debemos aceptar
transición a 
Traducción estado final
pila vacía
Sea
un AP que acepta por estado final
entonces diseñamos
que acepta el mismo lenguaje pero por pila vacía, donde
extiende a
con las transiciones



- Nuevo estado inicial: Meter nuevo símbolo inicial objetivo, para que la pila no se vacíe accidentalmente
- Nuevo estado "vaciador"
: Vacía la pila sin consumir entradas
- Desde cada estado de aceptación: Transición al estado "vaciador"
- Si
aceptaba en
vaciamos la pila y también aceptamos.
Equivalencia entre GI y AP
Th Dada una GI
, existe un AP
que reconoce por pila vacía el mismo lenguaje que genera
.
Th Dado un AP P, existe una GI G que genera el mismo lenguaje que reconoce P por pila vacía.
Lógicamente, ambos teoremas también se cumplen para los AP que aceptan por estado final
pila vacía
estado final
De GI a AP
Sea
una GI, entonces el lenguaje que genera es el mismo que reconoce por pila vacía el siguiente AP
donde
De AP a GI
- Definir el conjunto de variables con símbolos de la forma
: "desde el estado
se puede ir al estado
consumiendo
en la pila, con
".
- Por cada transición
introducimos producciones
para toda secuencia posible de
estados
.
- Para todo estado
del AP creamos la regla
donde
es el símbolo inicial de la gramática.
para toda secuencia posible de
Autómatas con pila deterministas (APD)
Los autómatas con pila deterministas son un subconjunto estricto de los autómatas con pila. Nos interesan porque los analizadores sintácticos suelen ser autómatas con pila deterministas.
Def (Autómata con pila determinista) Un AP es determinista si en cada situación es posible realizar una única transición y no más.
es determinista si y sólo si

- Si
y
entonces 
es determinista si y sólo si
- Si
y
entonces
No hay comentarios:
Publicar un comentario