Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autómatas de Pila PDF
Autómatas de Pila PDF
Contenido
Introducción
Definición
Ejemplos
Ejercicios
Introducción
Cualquier lenguaje generado por una GIC puede ser reconocido por
un Autómata de Pila (AP)
Un AP es un Autómata Finito al que se le ha incorporado memoria que
se gestiona como una pila, con lo que se aumenta su poder funcional.
En la pila se almacenan símbolos de la cadena de entrada y de la
gramática, así como caracteres especiales (#) para indicar el estado
de pila vacía.
Las transiciones son de la forma: (p, x, s; q, t)
• p= estado inicial
• q= estado al que pasa o llega
• x= símbolo de la cadena de entrada
• s= símbolo que extraemos de la pila
• t= símbolo que ingresamos en la pila
Autómata de Pila – Definición
formal
Definimos formalmente un AP de la siguiente forma:
AP = { Q, ∑, Γ, f, q0, z0, F }
donde :
Q es el conjunto finito de estados
∑ es el alfabeto de la cinta de entrada
f es la función de transferencia
Γ es el alfabeto de la pila
q0 ԑ Q es el estado inicial
z0 ԑ Γ es el símbolo inicial de la pila
F с Q es el conjunto de estados finales
Autómata de Pila – Definición
formal
Definimos formalmente un AP de la siguiente forma:
AP = { Q, ∑, f, Γ, q0, z0, F }
donde :
f : Q x (∑ U λ ) x Γ → P (Q x Γ* )
f(q, a, z) = { (p1, Ψ1), (p2, Ψ2), . . . , (pn, Ψn)}
Estas transiciones indican que si el AP se encuentra en el estado q,
recibe como entrada el símbolo a y z es el símbolo que se encuentra
en la cima de la pila, el Autómata puede pasar al estado p1 y
reemplazar en la pila el carácter z por la cadena Ψ1, o bien elegir
cualquiera de las otras posibilidades.
AP – Concepto gráfico
Cinta de entrada
a1 a2 a3 … an
Cima
AP q0 zn
q1 zn-1
q2 Control …
… z2
qm z1
Estados Pila
Aceptada/No aceptada
Movimientos en un AP.
Dos tipos de transiciones:
1) Cuando hay un símbolo de la entrada, a ԑ ∑, si está en el estado q ԑ Q,
hay un símbolo en la cima de la pila Z ԑ Γ, y la función de transición para
esta terna es:
f(q, a, Z) = { (q1, z1), (q2, z2),…, (qn, zn)}, (qi ԑ Q, zi ԑ Γ*)
Entonces:
o transita a uno de los estados q (q ԑ Q)(determinista o no determinista),
o se quita de la pila el símbolo Z,
o se introducen en la cima de la pila los símbolos que formen parte del zi
correspondiente,
o y se sitúa la cabeza de lectura en el siguiente símbolo de la entrada,
La introducción de la palabra zi = Z1Z2 … Zn (Z1 ԑ Γ ) correspondiente, se
realiza de forma inversa: primero Zn, luego Zn-1, hasta llegar a Z1.
Movimientos en un AP.
Dos tipos de transiciones:
2) Cuando no se lee ningún símbolo de la entrada, si está en el estado q ԑ
Q, hay un símbolo en la cima de la pila Z ԑ Γ, y la función de transición
para la terna es:
f(q, λ, Z) = { (q1, z1), (q2, z2),…, (qn, zn)}, (qi ԑ Q, zi ԑ Γ*)
Entonces:
o transita a uno de los estados qi (q ԑ Q) (determinista o no determinista),
o se quita de la pila el símbolo Z,
o se introducen en la cima de la pila los símbolos que formen parte del zi
correspondiente,
o y no se mueve la cabeza de lectura de la entrada.
Ejemplo de AP. El AP1 reconoce el lenguaje formado
por n unos seguidos de n ceros, n>=1
AP1 = ( { 0, 1 }, { A, 1, 0 }, { q0, q1}, A, q0, f, )
Donde f se define como:
f(q0,1,A) = { (q0, 1A)}
f(q0,1,1) = { (q0, 11)}
f(q0,0,1) = { (q1, λ)}
f(q1,0,1) = { (q1, λ)}
f(q1, λ, A) = { (q1, λ)}
Control A 1
Pila A
Estados
Pila
No aceptada No aceptada
Figura 1 Figura 2
Se lee el siguiente símbolo de la entrada (1) y, con la cima de la pila (1), la función
de transición es f(q0,1,1) = { (q0, 11)} . Por tanto se transita al estado q0, se elimina
el 1 de la cima de la pila y se añaden dos unos, con lo que queda 11A, (fig 3). Al
leer el siguiente 0 de la entrada, se aplica la función de transición f(q0,0,1) = {
(q1,λ)} , que transita al estado q 1 , elimina el primer 1 de la pila y no añade nada a
la pila, queda entonces 1A, ver figura 4.
Control 1 Control 1
1 A
Estados A Estados
Pila
Pila
No aceptada No aceptada
Figura 3 Figura 4
A continuación, se lee el último 0 y con la función de transición, f(q1,0,1) = { (q1, λ)}
se sigue en el estado q1, se elimina el 1 de la cima de la pila, que queda sólo con
A, y no se añade nada nuevo a la pila (figura 5). Por último, sin leer nada de la
entrada, estando en el estado q1, y en la cima de la pila A, se transita con f(q1,λ,A)
= { (q1, λ)} al estado q1, se elimina la A de la pila, quedándose la pila vacía como
se muestra en la figura 6. La pila vacía significa que la palabra es aceptada.
Control A Control λ
Pila Pila
Estados Estados
No aceptada Aceptada
Figura 5 Figura 6
Descripción instantánea
L2 = { ai b ck | i, k ≥ 1 y i < k }
L3 = { ai b ck | i, k ≥ 1 y i ≤ k }
L4 = { ai b ck | i, k ≥ 1 y i > k }
L5 = { ai b ck | i, k ≥ 1 y i ≥ k }
L6 = { 0i 1i+k 2k 3n+1 | i, k, n ≥ 0 }
L7 = { hn gj e2n d3i | i, j, n ≥ 0 }
Autómata de pila no determinista
(APND) Ejemplo:
Ejemplo 1. Dibujar el diagrama de transición del
APND que reconoce al lenguaje L8.
∑1 = {a, b, c} Γ = { A, B, Z0} Q = {q0,q1,q2,q3,q4,q5,q6,q7,q8} F = {q8}
L8 = { am bp cp+m | m, p ≥ 1} U {a2i bi | i ≥ 1}
APL1 = ( Q, ∑1 , Γ, f, q0, Z0, F )
a, A / AA b, B / BB c, B / ԑ c, A / ԑ
b, A / BA c, B / ԑ c, A / ԑ
a, Z0 / AZ0 q1 q2 q3 q4
a, A / A b, A / ԑ ԑ, Z0 / Z0
q0
b, A / ԑ ԑ, Z0 / Z0
a, Z0 / AZ0 q7 q8
q5 q6
a, A / AA
Ejercicio. Dibujar el diagrama de transición del APND
que reconoce al lenguaje L9. Definir APL9