Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Autómatas de Pila
Definición 1
Un autómata de pila determinista (AFPD) es una 7-upla,
P = (Q, Σ, Γ, 4, q0, T, Z) donde:
1. Q es un conjunto finito de estados.
2. Σ es el alfabeto de entrada.
3. Γ es el alfabeto de la pila.
4. q0 ∈ Q es el estado inicial.
5. Z ∈ Γ sı́mbolo inicial de la pila.
Autómatas de Pila 2
4 : Q × (Σ ∪ {}) × Γ → (Q × Γ∗)
Observación 1
4(q, a, s) = (q 0, γ)
Este paso computacional representa: La unidad de control
pasa a q 0 y se mueve a la derecha en la cinta de entrada,
borra el sı́mbolo s del tope, escribe la cadena γ y pasa a
escanear el nuevo tope.
Autómatas de Pila 3
Definición 2
Casos especiales de transiciones.
1. 4(q, a, s) = (q 0, s). El contenido de la pila no se altera.
2. 4(q, a, s) = (q 0, ) el sı́mbolo s en el tope de la pila se
borra, y el control finito pasa a escanear el nuevo tope de
la pila, que es el sı́mbolo colocado inmediatamente debajo
de s.
3. 4(q, , s) = (q 0, γ) Ésta es una transición o transición
espontánea. El sı́mbolo sobre la cinta no se procesa y la
unidad de control no se mueve a la derecha, pero el tope
s de la pila es reemplazado por la cadena γ.
Observación 2
a) Para garantizar el determinismo,
4(q, a, s) y 4(q, , s) con a ∈ Σ, q ∈ Q y s ∈ Γ
no pueden estar simultáneamente definidos ( de lo
Autómatas de Pila 4
Ejemplo 1
Sea w = aabbb
(q0, aabbb, Z) ` (q0, abbb, AZ) ` (q0, bbb, AAZ)
` (q1, bb, AZ) ` (q1, b, Z)
` (q2, b, Z)
La cadena no se ha proceado completamente y 4(q2, b, Z) no
es una configuración de aceptación, por tanto w no es acep-
tada.
La última transición realizada:
Sea w = aaabb
(q0, aaabb, Z) ` (q0, aabb, AZ) ` (q0, abb, AAZ)
` (q0, bb, AAAZ) ` (q1, b, AAZ)
` (q1, , AZ)
A pesar que la cadena se proceso completamente (q1, , AZ)
no es una configuración de aceptación, por tanto w no es acep-
tada.
4(q0, , Z) = (q1, Z)
4(q1, x, ) = (q1, x)
4(q1, y, x) = (q2, )
4(q2, y, x) = (q2, )
4(q2, , Z) = (q3, Z)
Sea w = xxx
(q0, xxx, Z) ` (q1, xxx, Z) ` (q1, xx, xZ)
` (q1, x, xxZ) ` (q1, , xxxZ)
La pila quedó llena xxxZ y el autómata en el estado q1 re-
conció por completo la cadena.
Autómatas de Pila 9
Sea w = xxy
(q0, xxy, Z) ` (q1, xxy, Z) ` (q1, xy, xZ)
` (q1, y, xxZ) ` (q2, , xZ)
Aunque la pila no quedo del todo vacı́a (quedó xZ) se reco-
noció toda la cadena completa y el autómata quedó en un
estado de aceptación q2.
Sea w = xxyy
(q0, xxyy, Z) ` (q1, xxyy, Z) ` (q1, xyy, xZ)
` (q1, yy, xxZ) ` (q2, y, xZ) ` (q2, , Z)
` (q3, , Z)
La cadena es procesada por completo, en la pila queda el
sı́mbolo inicial de pila y por tanto la cadena es aceptada.
Sea w = xyy
(q0, xyy, Z) ` (q1, xyy, Z) ` (q1, yy, xZ)
` (q2, y, Z)
A pesar de que se está en un estado de aceptación la cadena no
se terminó de escanear, la transición (q2, y, Z) no esta definida
en este autómata. Por tanto la cadena no es reconocida por
el autómata.
Observación 3
El lenguaje:
L = {wwI | w ∈ {a, b}∗}
Autómatas de Pila 10
Definición 3
Un lenguaje L se dice que es independiente de contexto
determinista si y sólo si es aceptado por un autómata
de pila determinista por el criterio de estados finales.
Teorema 1
Si L es un lenguaje aceptado por un AFPD P por el
criterio de pila vacı́a, entonces existe otro AFPD
P 0 que acepta el lenguaje por el criterio de estados
finales.
Observación 4
El resultado inverso no es cierto, hay lenguajes que son acep-
tados por AFPD por el criterio de estado final que no pueden
ser aceptados por el criterio de pila vacı́a.
Ejemplo 4
Sea el siguiente AFPD sobre Σ = {a, b} que reconoce el mis-
mo número de aes que de bes, T = {q1}.
4(q0, a, A) = (q0, AA)
4(q0, b, B) = (q0, BB)
4(q0, a, B) = (q0, )
4(q0, b, A) = (q0, )
4(q0, , Z) = (q1, Z)
4(q1, a, Z) = (q0, AZ)
4(q1, b, Z) = (q0, BZ)
Autómatas de Pila 13
Sea w = aabbab
(q0, aabbab, Z) ` (q1, aabbab, ) ` (q0, abbab, A)
` (q0, bbab, AA) ` (q0, bab, A)
` (q0, ab, )
la pila se quedarı́a vacı́a y no podrı́a seguir funcionando, por
tanto no reconoe w = aabbab
Teorema 2
Si L es un lenguaje regular, entonces L = L(P )
para algún AFDP.
Observación 6
Si queremos que un AFDP acepte por pila vacı́a. Su capacidad
de reconocimiento de lenguajes resulta bastante limitada.
Definición 4
Un lenguaje L se dice que tiene la propiedad del prefijo
si no hay dos cadenas diferentes x, y ∈ L tales que x es un
prefijo de y.
Ejemplo 5
El lenguaje {wcwI } tiene la propiedad del prefijo, es decir no
es posible que existan dos cadenas wcwI y xcxI , una de las
cuales es prefijo de la otra, a menos que sea la misma cadena.
Ejemplo 6
El lenguaje {0∗} no tiene la propiedad del prefijo, existen
pares de cadenas en este lenguaje una de las cuales es prefijo
de la otra.
Teorema 3
Un lenguaje L es N (P ) para algún AFDP P si y sólo
si L tiene la propiedad del prefijo y L es L(P 0)
para algún AFDP P 0.
Observación 7
Si tenenemos un lenguaje L, independiente del contexto
determinista que no cumple la propiedad del prefijo es
fácil transformarlo en otro lenguaje similar que cumple la
propiedad del prefijo y puede ser aceptado por un autóma-
ta con pila determinista por el criterio de pila vacı́a.
Autómatas de Pila 16
Observación 8
Definición 5
4 : Q × (Σ ∪ {}) × Γ → Pf (Q × Γ∗)
Observación 9
Sea w = aabb
(q0, aabb, Z) ` (q0, abb, AZ) ` (q0, bb, AAZ)
` (q1, b, AZ) ` (q1, , Z)
` (q2, , )
Ejemplo 9
Se puede construir un AFPN que reconozca:
{wwR : w ∈ Σ∗}
para Σ = {a, b}
Teorema 4
Si L = L(P ) para algún autómata con pila AFPN P ,
entonces L = N (P 0) para algún AFPN P 0. Es decir,
P 0 acepta por pila vacı́a lo que P acepta por estado
final.
Demostración:
Sea P = (Q, Σ, Γ, 4, q0, T, Z), P 0 se diseña modificando P
de tal manera que vacı́e su pila cuando P haya aceptado una
cadena de entrada.
P 0 = {Q ∪ {p0, p}, p0, Σ, Γ ∪ {Z0}, Z0, δ}
1) Se añaden p0 estado inicial y p.
2) También se añade Z0 es el nuevo sı́mbolo de pila.
3)Se mantienen todas las transiciones de P y se añaden las
siguientes:
δ(p0, , Z0) = {(q0, ZZ0}
δ(q, , Y ) = {(p, Y }, ∀q ∈ T, Y ∈ Γ ∪ {Z0}
δ(p, , Y ) = {(p, Y }, ∀Y ∈ Γ ∪ {Z0}
Ejemplo 10
Sea el AFNP por el criterio de estado final que reconoce todas
las cadenas sobre Σ = {a, b} que tienen igual número de aes
Autómatas de Pila 22
La transformación
1) Agregamos p0, p y Z0
2) Las mismas transiciones de P
4(p0, , Z0) = (q0, ZZ0)
4(q0, a, Z) = (q0, AZ)
4(q0, b, B) = (q0, BZ)
4(q0, a, A) = (q0, AA)
4(q0, b, B) = (q0, BB)
4(q0, a, B) = (q0, )
4(q0, b, A) = (q0, )
4(q0, , Z) = (q1, Z)
4(q1, , a) = (p, a)
4(q1, , b) = (p, b)
4(q1, , Z) = (p, Z)
4(q1, , Z0) = (p, Z0)
4(p, , a) = (p, )
4(p, , b) = (p, )
4(p, , Z) = (p, )
4(p, , Z0) = (p, )
Autómatas de Pila 24
Demostración.
Sea
P = (Q, Σ, Γ, 4, q0, Z)
Autómatas de Pila 25
entonces el autómata
P 0 = (Q ∪ {p0, qf }, Σ, Γ ∪ {Z0}, p0, Z0, {qf }, δ)
Se construye a partir de P siguiendo los siguientes pasos:
4.
4(q1, , Z) = {(q2, Z)}
P ingresa al estado de aceptación q2 cuando detecta el
marcador de fondo Z.
Ejemplo 11
Sea w = abbcbba
(q0, abbcbba, Z) = (q1, abbcbba, SZ)
= (q1, abbcbba, aSaZ)
= (q1, bbcbba, SaZ)
= (q1, bbcbba, bSbaZ)
= (q1, bcbba, SbaZ)
= (q1, bcbba, bSbbaZ)
= (q1, cbba, SbbaZ)
= (q1, cbba, cbbaZ)
= (q1, bba, bbaZ)
= (q1, ba, baZ)
= (q1, a, aZ)
= (q1, , Z)
= (q2, , )
Definición 6
Ejemplo 12
Autómatas de Pila 29
S → xAz | yBz |
A → xAz | B |
B → yBz |
Sea C = z y reemplazamos:
S → xAC | yBC |
A → xAC | B |
B → yBC |
C → z
Quitamos la regla de redenominación para obtener la FNG de
A
S → xAC | yBC |
A → xAC | yBC |
B → yBC |
C → z
Autómatas de Pila 30
Construimos el AFPN
4(q, x, S) = {(q, AC)}
4(q, y, S) = {(q, BC)}
4(q, , S) = {(q, )}
4(q, x, A) = {(q, AC)}
4(q, y, A) = {(q, BC)}
4(q, , A) = {(q, )}
4(q, y, B) = {(q, BC)}
4(q, , B) = {(q, )}
4(q, z, C) = {(q, )}
Sea w = xxyzzz
(q, xxyzzz, S) ` (q, xyzzz, AC) ` (q, yzzz, ACC)
` (q, zzz, BCCC) ` (q, zzz, CCC)
` (q, , )
Por tanto w es reconocida
Sea w = xxyzz
(q, xxyzz, S) ` (q, xyzz, AC) ` (q, yzz, ACC)
` (q, zz, BCCC) ` (q, zz, CCC)
` (q, , C)
Se leyó la cadena por completo pero la pila no quedó vacı́a,
por tanto w no es reconocida.