Está en la página 1de 5

darthtrooper

www.wuolah.com/student/darthtrooper

403

tema 7.pdf
resumen tema 7: autómatas a pila

1º Autómatas, Gramáticas y Lenguajes

Grado en Ingeniería Informática

UNED - Universidad Nacional de Educación a Distancia


Universidad Nacional de Educación a Distancia

Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1319415

7. AUTÓMATAS A PILA

7. AUTÓMATAS A PILA 7.2 DEFINICIÓN FORMAL DE UN AUTÓMATA A PILA

La definición es igual que la de un autómata finito, pero en este caso incluyendo en la definición
7.1 INTRODUCCIÓN A LOS AUTÓMATAS A PILA la memoria tipo pila:

Un autómata a pila es una máquina de estados compuesta por un control de estados y una cinta 𝑃 = (𝑄, Σ, Γ, 𝛿, 𝑞0 , 𝑍0 , 𝐹)
de entrada con un puntero al símbolo actual, esto es, el símbolo de la cadena de entrada a Q Conjunto finito de estados
analizar. Estos autómatas poseen también una memoria tipo pila (LIFO), en el que el único Alfabeto
Σ
elemento accesible es el último que se ha introducido en la pila. Por lo tanto, la única
Conjunto finito de símbolos de pila
diferencia con un autómata finito es la presencia de la memoria tipo pila.
𝚪 𝚪 = 𝚺 ∪ 𝑻, donde T es un conjunto
de símbolos especiales de pila
Función de transición definida 𝜹(𝒑, 𝒂, 𝑿) = (𝒒, 𝜸)
p – estado de partida
𝑎 ∈ Σ − símbolo que se lee de la entrada
𝛿
𝑋 ∈ Γ – símbolo de la pila
𝑞 ∈ 𝑄 – estado de destino de la transición
𝛾 ∈ Γ – símbolo/símbolos que se introducirán en la cima de la pila

Dependiendo del valor de 𝛾, hay diversas posibilidades:


𝛾=𝜖 Se extrae el símbolo de la cima de la pila
𝛾=𝑌 Se reemplaza X por Y
𝛾 = 𝑌𝑍 Se reemplaza X por Z y se introduce Y en la cima de la pila

Dado que cada transición puede devolver como salida un conjunto


de pares, se trata de una función no determinista.

Como hemos visto en la tabla, cuando se introduce más de un


símbolo a la vez en la pila, el símbolo más a la izquierda será el
La ventaja de los autómatas a pila respecto a los autómatas finitos es que éstos pueden utilizar elemento de la cima de la pila.
su memoria para poder llevar la cuenta de los símbolos leídos hasta un determinado momento.
Otros datos de importancia son:
Por ejemplo, dado el lenguaje 𝐿 = {𝑥 𝑛 𝑦 𝑛 ; 𝑛 > 0}, por cada x que lea la entrada, se introduce
𝑞0 Estado inicial
un símbolo en la pila, que actuará como contador, mientras que por cada y extraería uno de los
Símbolo especial de pila vacía o símbolo de fondo de pila. Indica
símbolos introducidos anteriormente. De esta manera, la pila quedará vacía si se han 𝑍0
que bajo la cima de la pila no quedan símbolos por analizar
introducido el mismo número de x que de y. Por lo tanto, cada transición supone una lectura
F Conjunto de estados de aceptación
de un símbolo en la cinta de entrada y una operación en la pila.

1
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1319415

7. AUTÓMATAS A PILA

La función de transición de un autómata a pila puede representarse mediante un diagrama de En el libro hay dos ejemplos más, repasar.
transiciones, donde los nodos representan estados y los arcos transiciones entre estados. Las
transiciones deben representar el símbolo que se lee de la entrada, el símbolo que se lee de la Aunque los estados destino de dos transiciones sean los mismos, el contenido de la pila es
cima de la pila y el símbolo que se introduce en la pila. Así, en un diagrama de transiciones de importante, porque puede determinar el comportamiento futuro del autómata.
un autómata a pila, las transiciones se etiquetan con la tríada 𝒂, 𝑿; 𝒀.
7.3 LENGUAJES ACEPTADOS POR LOS AUTÓMATAS A PILA
Veamos un ejemplo:
Dado el alfabeto Σ = {𝑥, 𝑦} y el autómata a pila 𝑀 = ({𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 }, Σ, Γ, 𝛿, 𝑞0 , 𝑍0 , {𝑞3 }),
Se dice que un autómata a pila acepta una cadena cuando, al terminar de procesar la cadena,
donde el conjunto de símbolos de pila se define Γ = {𝑎, 𝑍0 } y la función de transición tal que
el autómata se encuentra en estado de aceptación. Dicho criterio será similar al criterio de
𝛿(𝑞0 , 𝜖, 𝜖) = (𝑞1 , 𝑍0 ) 𝛿(𝑞1 , 𝑥, 𝜖) = (𝑞1 , 𝑎) 𝛿(𝑞1 , 𝑦, 𝑎) = (𝑞2 , 𝜖)
aceptación de los autómatas finitos independientemente del contexto.
𝛿(𝑞2 , 𝑦, 𝑎) = (𝑞2 , 𝜖) 𝛿(𝑞2 , 𝜖, 𝑍0 ) = (𝑞3 , 𝜖)

Así pues, sea 𝑃 = (𝑄, Σ, Γ, 𝛿, 𝑞0 , 𝑍0 , 𝐹) un autómata a pila. Entonces 𝐿(𝑃), el lenguaje aceptado
Y el diagrama de transiciones tal que:
por P (estado final) será:

𝐿(𝑃) = {𝑤|(𝑞0 , 𝑤, 𝜖) ⊢∗𝑃 (𝑞, 𝜖, 𝛼)


𝑞 Estado de aceptación
𝛼 Contenido final de la pila
Indica que se han ejecutado todas las transiciones posibles
⊢∗𝑃
- En la desde el estado inicial
transición 𝛿(𝑞0 , 𝜖, 𝜖) = (𝑞1 , 𝑍0 ), el autómata marca en primer lugar la pila con el
Dado el no determinismo de los autómatas a pila definidos de esta manera, un autómata acepta
símbolo de pila vacía
una cadena cuando, al menos, haya un camino desde el estado inicial que lleva a un estado de
- En el bucle 𝛿(𝑞1 , 𝑥, 𝜖) = (𝑞1 , 𝑎), cada vez que lee una x de la entrada, no lee ningún
aceptación. El conjunto de lenguajes que aceptan los autómatas a pila es el conjunto de
símbolo de la pila (pues el tercer término de la transición es 𝜖) e introduce un símbolo
lenguajes independientes del contexto.
a en la pila a modo de contador
- En la transición 𝛿(𝑞1 , 𝑦, 𝑎) = (𝑞2 , 𝜖), el autómata pasa a estado 𝑞2 si lee un símbolo y
Dado el ejemplo anterior, veremos que, efectivamente, el lenguaje que acepta dicho autómata
en la entrada. Además, ésta sólo se podrá ejecutar si en la cima de la pila se encuentra
puede definirse tal que 𝐿 = {𝑥 𝑛 𝑦 𝑛 ∶ 𝑛 > 0}. Como concepto extra, hay que añadir que éste es
un símbolo a y, dado que el último término de la transición es 𝜖, el autómata en esta
un autómata a pila determinista, puesto que no tiene ningún punto de no determinismo.
transición no introduce ningún símbolo en la pila
- En el bucle 𝛿(𝑞2 , 𝑦, 𝑎) = (𝑞2 , 𝜖), cada vez que lee una y de la entrada, comprueba si
En el libro hay tres ejemplos más: repasar.
hay un símbolo a en la pila, y no introduce ningún símbolo en la pila
- La transición 𝛿(𝑞2 , 𝜖, 𝑍0 ) = (𝑞3 , 𝜖) indica que el autómata llegará al estado de
Una propiedad importante de los autómatas a pila no deterministas es que siempre es posible
aceptación si en la cima de la pila se encuentra el símbolo de pila vacía 𝑍0 .
modificar su diagrama de transiciones para que antes de aceptar las cadenas de su lenguaje,
vacíen su pila. Veamos un ejemplo de ello:
El hecho de que en la transición de 𝒒𝟏 a 𝒒𝟐 se lea un símbolo a de la entrada, implica que para
leer al menos un símbolo y de la entrada debe haber leído al menos un símbolo x previamente.

2
Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1319415

7. AUTÓMATAS A PILA

Dado el alfabeto Σ = {𝑥, 𝑦} y el autómata a pila definido por 𝑀= Veamos un ejemplo:


({𝑞0 , 𝑞1 , 𝑞2 , 𝑞3, 𝑞4 }, Σ, {a, Z0 }, 𝛿, 𝑞0 , 𝑍0 , {𝑞4 }) Dada la gramática G definida tal que 𝐺 = ({𝑆, 𝐴}, {𝑥, 𝑦}, 𝑆, 𝑃), con P tal que S xAy
Y la función de transición definida por el diagrama A xAy
A xx

Este autómata se corresponde al lenguaje 𝐿 = {𝑥 𝑛 𝑦 𝑚 ∶ 𝑛 ≥ 𝑚} y, como vemos, se ha


construido el autómata de manera que se llegue al estado de aceptación con la pila vacía.

7.4 AUTÓMATAS A PILA Y GRAMÁTICAS INDEPENDIENTES DE Un ejemplo de una cadena de entrada, con sus pasos de ejecución del autómata sería:
CONTEXTO

El conjunto de lenguajes que aceptan los autómatas a pila coincide con el conjunto de lenguajes
que aceptan las gramáticas independientes del contexto. Para obtener el autómata a pila
equivalente a una gramática independiente dada, al igual que ocurría con los autómatas finitos,
se trata de simular mediante un autómata a pila las posibles derivaciones de la gramática.

Así pues, dada una gramática 𝐺 = (𝑉, 𝑇, 𝑆, 𝑃), el autómata a pila equivalente se define como:

𝑀 = (𝑄, Σ, Γ, 𝛿, , 𝑍0 , {𝑓})
𝑄 = {𝑖, 𝑝, 𝑞, 𝑓} El conjunto de estados siempre será el mismo independientemente de la gramática
Σ=T El conjunto de símbolos terminales constituyen el alfabeto del autómata
El conjunto de símbolos pila está formado por la unión de símbolos no terminales y
Γ = 𝑉 ∪ 𝑇 ∪ {𝑍0 }
terminales de la gramática, junto con el símbolo especial de pila vacía
𝛿(𝑖, 𝜖, 𝜖) = (𝑝, 𝑍0 ) Se marca la pila con el símbolo de pila vacía
𝛿(𝑝, 𝜖, 𝜖) = (𝑝, 𝑆) Se introduce el símbolo inicial de la gramática
No terminal A 𝛿(𝑞, 𝜖, 𝐴) = {(𝑞, 𝛽)|𝑆𝑖 𝐴 → 𝛽 es una producción de P}
𝛿
𝛿(𝑞, 𝑎, 𝑎) = {𝑞, 𝜖)} se leen los símbolos de entrada y se equiparan al resto de
Terminal a
producciones
𝛿(𝑞, 𝜖, 𝑍𝑜 ) = (𝑝, 𝜖)

Recordatorio de Wuolah: HOY SI QUE ERES UN CRACK #KeepCalm y #estudiaUnPoquito


Reservados todos los derechos. No se permite la explotación económica ni la transformación de esta obra. Queda permitida la impresión en su totalidad.
a64b0469ff35958ef4ab887a898bd50bdfbbe91a-1319415

7. AUTÓMATAS A PILA

7.5 AUTÓMATAS A PILA DETERMINISTAS

Informalmente, un autómata a pula determinista es el que no permite que se pueda ejecutar


más de una transición dados un estado, un símbolo de la entrada y un símbolo de la cima de la
pila. Formalmente, se dice que un autómata a pila 𝑃 = (𝑄, Σ, Γ, 𝛿, 𝑞0 , 𝑍0 , 𝐹) es determinista si y
solo si se cumplen las siguientes condiciones:
1) 𝛿(𝑞, 𝑎, 𝑋) tiene como máximo un elemento para cualquier 𝑞 ∈ 𝑄, 𝑎 ∈ Σ, 𝑎 = 𝜖 o 𝑋 ∈ Γ.
2) Si 𝛿(𝑞, 𝑎, 𝑋) no está vacía para algún a de Σ, entonces 𝛿(𝑞, 𝜖, 𝑋) tiene que estar vacía.
Es decir, si en un autómata a pila determinista se encuentra definida la función
𝛿(𝑞1 , 𝑦, 𝑎), no puede existir otra de la forma 𝛿(𝑞1 , 𝜖, 𝑎).

En un primer momento pensaríamos que los autómatas a pila deterministas reconocen el


mismo conjunto de lenguajes que los autómatas a pila no deterministas, pero existen lenguajes
independientes del contexto para los que no es posible construir un autómata a pila
determinista que los reconozca.

Además, en los autómatas a pila deterministas, no siempre es posible vaciar la pila antes de
aceptar la cadena.

En el libro encontramos un par de ejercicios de esto último. Repasar.

Recordatorio de Wuolah: HOY SI QUE ERES UN CRACK #KeepCalm y #estudiaUnPoquito

También podría gustarte