Sie sind auf Seite 1von 16

1

Autmatas de pila
(Pushdown automata)

2
Autmata de conteo
Autmata finito determinista con un contador de
enteros o bolsa en la que se colocan o extraen
cuentas o piedras en respuesta a un smbolo de
entrada. En otras palabras, en cada transicin el
autmata no slo selecciona un nuevo estado sino que
tambin decide, independientemente del estado de la
bolsa, si aade otra cuenta a la bolsa o saca una cuenta
de la bolsa o la deja igual. La bolsa inicia con una
cuenta y el autmata contina operando mientras haya
smbolos de entrada y la bolsa no est vaca. Si se
consumen todos los smbolos de la palabra de entrada
al mismo tiempo que se vaca la bolsa, entonces se
acepta la palabra.

3
Ejemplo: {a
n
b
n
| n > 1}
a
a
b
b
q
0

q
1
q
2


4
Autmatas de pila
Desafortunadamente los autmatas de conteo no son
suficientemente poderosos para reconocer todos los LLC.
En ocasiones se requiere ms de un tipo de cuenta o roca o en
lugar de una bolsa.
Se utiliza un stack o pila LIFO (Last In First Out) en el cual el
orden es importante. La accin que lleva a cabo el autmata slo
es influenciada no slo por el estado en que se encuentra y por el
smbolo que lee, sino tambin por el tipo de piedra u objeto que
se encuentra arriba en la pila.
a b a b b a
q
0

q
1

q
2

q
4

q
3

q
i

q
n

Cinta de
entrada
Cabeza
lectora
Control
o
|
Pila

5
Definicin formal
Un autmata de pila (pushdown automata) es una sexteta
(K, E, I, o, s
0
, F) donde:
K es un conjunto no vaco de estados.
E es el alfabeto de entrada, no vaco.
I es el alfabeto de la pila, no vaco.
s
0
e K es el estado inicial.
F c K es el conjunto de estados finales.
o c (K (E {}) (I {})) (K I
*
) es la relacin de transicin.
(p, u, |) (q, ) e o significa que el autmata est en el estado p, lee el smbolo
u, saca | de la pila, pasa al estado q e introduce a la pila.
La operacin push (slo meter a la pila) se logra tomando | como la palabra
vaca. La operacin pop (slo sacar de la pila) se logra tomando como la
palabra vaca.
Ya que o es una relacin y no necesariamente una funcin, un autmata 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 vaca. Debido al no-determinismo del autmata es
posible que al terminar de procesar la palabra, varios estados estn 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.

6
Representacin grfica de un AP
La transicin ((p, u, |), (q, )), o(p, u, |) = (q, ),
se representa grficamente por






y significa que cuando estamos en el estado p,
leemos de la palabra de entrada el smbolo u y
sacamos del stack el smbolo |, entonces pasamos
al estado q y ponemos en la pila la cadena .
p
q
u, | /

7
Ejemplo
Autmata de pila que acepte {a
i
b
i
| i 0}





K = {q
0
, q
1
}
E = {a, b}
I = {A}
s
0
= q
0

F = {q
0
, q
1
}
o(q
0
, a, ) = (q
0
, A)
o(q
0
, b, A) = (q
1
, )
o(q
1
, b, A) = (q
1
, )

a, / A
b, A /
b, A /
q
0
q
1


8
Ejemplo: palndromos de longitud impar
Autmata de pila que acepte {wcw
R
| w e {a, b}
*
}. w
R
es
la palabra w al revs, por ejemplo, anita
R
= atina.





K = {q
0
, q
1
}
E = {a, b, c}
I = {A, B}
s
0
= q
0

F = {q
1
}
o(q
0
, a, ) = (q
0
, A) o(q
1
, a, A) = (q
1
, )
o(q
0
, b, ) = (q
0
, B) o(q
1
, b, B) = (q
1
, )
o(q
0
, c, ) = (q
1
, )

a, / A
b, / B
b, B /
a, A /
c, /
q
0
q
1


9
Ejemplo: palndromos de longitud par
Autmata de pila que acepte {ww
R
| w e {a, b}
*
}. w
R
es la
palabra w al revs, por ejemplo, anita
R
= atina.





K = {q
0
, q
1
}
E = {a, b}
I = {A, B}
s
0
= q
0

F = {q
1
}
o(q
0
, a, ) = (q
0
, A) o(q
1
, a, A) = (q
1
, )
o(q
0
, b, ) = (q
0
, B) o(q
1
, b, B) = (q
1
, )
o(q
0
, , ) = (q
1
, )

a, / A
b, / B
b, B /
a, A /
, /
q
0
q
1


10
AF c AP
Todo lenguaje aceptado por un autmata finito es
tambin aceptado por un autmata de pila.
Si M = (K, E, o, s
0
, F) es un autmata finito,
entonces (K, E, I, o, s
0
, F) con
I = C
o = {((p, u, ), (q, )) | (p, u, q) e o}
acepta el mismo lenguaje que M.
Los lenguajes libres de contexto son aceptados por
los autmatas de pila y los lenguajes generados
por los autmatas de pila son los lenguajes libres
de contexto.

11
LLC AP
Sea G = (V, E, R, S) una gramtica libre de contexto.
Entonces el autmata de pila M = ({p, q}, E, V, o, p, {q})
donde la relacin de transicin se define de la siguiente
manera acepta exactamente el mismo lenguaje que G.
1) o(p, , ) = (q, S)
2) o(q, , A) = (q, x) para cada regla A x e R
3) o(q, o, o) = (q, ) para cada o e E
El autmata de pila contiene slo dos estados. El primero
se utiliza slo en la primera transicin por lo que los
estados no sirven para recordar las caractersticas de la
palabra de entrada, este recordatorio se hace en la pila.
Las transiciones tipo 2) lo que hacen es derivar en la pila
la palabra de entrada sin consumir ningn carcter de
entrada. Las transiciones tipo 3) comparan la palabra en la
pila con la palabra de entrada.

12
Ejemplo
Obtener un AP que acepte el lenguaje generado por la
gramtica libre de contexto cuyas reglas son:
S aSa S bSb S c
Transiciones del AP
Tipo 1): o(p, , ) = (q, S)
Tipo 2): o(q, , S) = (q, aSa) o(q, , S) = (q, bSb)
o(q, , S) = (q, c)
Tipo 3): o(q, a, a) = (q, ) o(q, b, b) = (q, )
o(q, c, c) = (q, )

13
...Ejemplo: analizar abcba
Estado Falta leer Pila
p abcba
q abcba S
q abcba aSa
q bcba Sa
q bcba bSba
q cba Sba
q cba cba
q ba ba
q a a
q

14
Cerradura de los LLC
Dadas dos gramticas G
1
= (V
1
, E
1
, R
1
, S
1
) y G
1
= (V
2
, E
2
, R
2
, S
2
)
entonces (se asume, sin perder generalidad, que los smbolos no
terminales de G
1
y G
2
son disjuntos):
La gramtica libre de contexto que genera L(G
1
) L(G
2
) es
G = (V
1
V
2
{S}, E
1
E
2
, R
1
R
2
{S S
1
, S S
2
}, S)
La gramtica libre de contexto que genera L(G
1
) L(G
2
) es
G = (V
1
V
2
{S}, E
1
E
2
, R
1
R
2
{S S
1
S
2
}, S)
La gramtica libre de contexto que genera L(G
1
)*es
G = (V
1
, E
1
, R
1
{S , S S
1
S
1
}, S}
Si M
1
= (K
1
, E
1
, I
1
, o
1
, s
1
, F
1
) y M
2
= (K
2
, E
2
, I
2
, o
2
, s
2
, F
2
) son dos
autmatas de pila que aceptan los lenguajes L
1
y L
2
,
respectivamente, entonces un autmata de pila que acepta el
lenguaje L
1
L
2
es
M
1 2
= (K
1
K
2
{s}, E
1
E
2
, I
1
I
2
,
{((s, , ),(s
1
, )), (s, , ),(s
2
, ))} o
1
o
2
, s, F
1
F
2
)

15
Ejemplos
Obtener una GLC para el lenguaje {a
n
b
m
| n = m}.
{a
n
b
m
| n = m} = {a
n
b
m
| n < m} {a
n
b
m
| n > m}
{a
n
b
m
| n < m} es generado por S aSb, S Sb, S
b.
{a
n
b
m
| n > m} es generado por ........

16
Tarea 5. Primera parte
Fecha lmite de entrega: 06/Mayo/2004
Problema 1.
Obtener un autmata de pila que acepte el lenguaje
L = {a
i
b
j
c
k
| (i = j = k)}
Utilice el hecho
L = {a
i
b
j
c
k
| (i = j = k)} = {a
i
b
j
c
k
| i = j} {a
i
b
j
c
k
| j = k}
Sugerencia: para obtener el AP que acepte el primer lenguaje,
primero almacenara las as en la pila para luego ir descontando
una b por cada a en la pila; las as deben acabarse antes de
terminar las bs o deben sobrar as al terminar con las bs; las cs
no modifican la pila y simplemente se verifica que no haya a
despus de la primera b ni que haya a o b despus de la primera
c.
La segunda parte de esta Tarea 5 est en la lmina 35 del
TLarchivo09.ppt

Das könnte Ihnen auch gefallen