Está en la página 1de 17

06/05/2013

Teora de la
Computacin

M. en I. Jorge Carlos Reyes Magaa

Pila
ltimo en entrar primero en salir

Solamente se puede introducir


por el tope de la pila

06/05/2013

Recordemos que los Autmatas Finitos no


son lo suficientemente poderosos para
aceptar los Lenguajes libres de contexto.
Autmatas de pila
Tienen la estructura de un AF: estados y
transiciones.
q0

q1

Los elementos en las transiciones cambian

Transiciones en Autmatas de Pila.

Se registran los caracteres de entrada y los movimientos de la pila.


//
q1

Ahora las transiciones tienen 3 partes:


1. = Entrada (elemento de la cadena a ser parseado)
2. = Sale de la pila
3. = Entra a la pila
Primero se ejecuta la operacin de sacar de la pila y luego de meter

06/05/2013

Para disear un AP se tiene que repartir lo


que se requiere ser recordado entre los
estados y la pila.

Distintos diseos para un mismo problema


pueden tomar decisiones diferentes en
cuanto a qu recuerda cada cual.

Ejemplo: Disear un AP que acepte


exactamente el lenguaje con palabras de la
forma anbn, para cualquier nmero natural.
Ejemplo usando un contador

a//a
b/a/
q

06/05/2013

cadena/ Saca/ Entra

Traza de ejecucin para w = aabb


Estado
q
q
q
q
q

Por leer
aabb
abb
bb
b

Pila
Vaca
a
aa
a
Vaca

a/ /a
b/a/
q

Problema!!!
El AP tambin acepta palabras como abab
(corroborar con la traza de ejecucin).
El AP no tiene la forma deseada: anbn
No se ha recordado cuando se terminan las as e
inician las bs.

Solucin
Utilizar los estados para memorizar las situaciones
de estar consumiendo as o estar consumiendo bs.

06/05/2013

anbn

cadena/ Saca/ Entra

b/a/

a//a
b/ a/

q0

q1

Ejemplo:

aaabbb

aaabbb

aaabbb

aaabbb

aaabbb

La pila esta vaca


y se llega a un
estado aceptado
(q1), por lo tanto
la palabra se
acepta
aaabbb

a
a

q0

q0

q0

q1

q1

q1

Ejemplo: Proponer un AP para el lenguaje de


los palndromos con nmero par de smbolos
en {a,b}, esto es, palabras que se leen igual de
izquierda a derecha y viceversa, y por lo tanto
tienen la forma wwR donde wR es el reverso de
w (invertir el orden).
Ejemplos:

Cual sera la estrategia a seguir?

abba, aa, bbbbbb


aab, aabaa

(correctos)
(incorrectos)

10

06/05/2013

cadena/ Saca/ Entra

Estrategia:
Almacenar en la pila la primera mitad de la
palabra y luego ir comparndola letra por
letra contra la segunda mitad.

a/ /a

b/ /b

//

b/b/

a/a/
f

11

Consideraciones:
La presencia de una transicin de s a f, en que ni se
consumen caracteres de la entrada, ni se manipula
la pila.
Se puede llegar a un estado final sin recorrer la
mitad de la palabra?
Cmo saber que ya llegamos exactamente a la
mitad de la palabra?

12

06/05/2013

En un AFN una palabra es aceptada cuando


existe un clculo que permite aceptarla,
independientemente de que un clculo en
particular se vaya por el camino errneo.
Lo importante es que exista un clculo que
acepte la palabra en cuestin.

13

cadena/ Saca/ Entra

a/ /a
s

b/b/

b/ /b
//

a/a/
f

Traza de ejecucin para w = abba


Estado
s
s
s
f
f
F

Por leer

Pila

abba
bba
ba
ba
a

Pila vaca
a
ba
ba
a
Pila vaca
14

06/05/2013

Se pueden aplicar mtodos de combinacin


modular de autmatas, como se realizaron
con los AF.
Dados dos AP M1 y M2 y que aceptan los
lenguajes L1 y L2 respectivamente, se puede
obtener un AP que acepte la unin L1 U L2
introduciendo un nuevo estado inicial s0 con
transiciones / / a los dos antiguos
estados iniciales de M1 y M2.

15

Un AP es un sxtuplo (K, , , , s,
F) donde:

K es un conjunto de estados
es el alfabeto de entrada
es el alfabeto de la pila
. ( K x* x * ) x( K x * )
s K es el estado inicial
. F K

16

06/05/2013

Si se tiene una transicin de la forma


((p,u,),(q,)) :

Estando en el estado p, consume u de la entrada;


Saca a de la pila;
Llega a un estado q;
Mete a en la pila.

Si slo se quiere meter la cadena a la pila, la


transicin es: ((p,u, ),(q,)): Push
Si slo se quiere sacar caracteres de la pila la
transicin es: ((p,u, ),(q, )): Pop

17

La formalizacin del funcionamiento de los


AP reposa en la nocin de configuracin visto
en los AF.
Definicin: Una configuracin es un elemento
de K X * X *
Las transiciones se definen como una relacin
y no como una funcin, por lo que la entrada
se les formaliza como AFN.

18

06/05/2013

Definicin: Sea M=(K, , , , s, F) un AP,


entonces [[p, ux, ]] |-M [[q, x, ]] ssi
existe ((p,u,), (q, )) .

Definicin: Un AP M=(K, , , , s, F) acepta


una palabra w * ssi [[s, w, ]] |-*M [[p, ,
]] donde p F. L(M) es el conjunto de
palabras aceptadas por M.

19

a/ /a

b/ /b
s

//

b/b/

a/a/
f

Ejemplo: Formalizar el AP de las palabras


palndromas {wwR}, w {a,b}.
Solucin: El AP es: M=(K, , , , s, F), donde:
K = {s,f}, F = {f}, = {a, b}, = {a, b}
se representa con:

(s, a, )
(s, b, )
(s, , )
(f, a, a)
(f, b, b)

(s, a)
(s, b)
(f, )
(f, )
(f, )
20

10

06/05/2013

Todo lenguaje aceptado por un AF es tambin


aceptado por un AP.
Cmo construirlo?
Autmata de pila

Autmata finito
a

b//

b
r1

r0

a//
r1

r0
a//

b//

Cadenas que terminan en aaa


Autmata de Pila

Autmata Finito

a//

a,b
q0

aaa

q1

q0

aaa / /

q1

b//

11

06/05/2013

Los autmatas de pila aceptan los lenguajes


LLC.
Si L es un Lenguaje Libre de Contexto,
entonces hay un Autmata de Pila M tal que
L(M) = L

Procedimiento para hacer la conversin


Partimos de una Gramtica Libre de Contexto,
asociada al lenguaje Libre de Contexto.
Sea G = (V, , R, S) una gramtica. Entonces un AP
M que acepta exactamente el lenguaje generado
por G se define como:

M = ({p, q}, , V U , , p, {q})


Estados

Alfabeto

Alfabeto de la
pila

Transiciones

Edo. Inicial

Edo. Final

12

06/05/2013

La funcin est definida:

cadena/ Saca/ Entra

1.
p

//S

2. Para cada Ax R

3. Para cada a

/A/ x

a/a/

Ejemplo
Obtener un AP que acepte el LLC generado
por la gramtica siguiente:
1. S aSa
2. S bSb
3. S c

/ S / aSa
/S/c
p

//S

/ S / bSb
q

a/a/

c/c/

b/b/

13

06/05/2013

/ S / aSa

cadena/ Saca/ Entra

/S/c
p

//S

/ S / bSb

S aSa
S bSb
S c

q
a/a/

c/c/

b/b/

Dada aca veamos como funciona el AP

aca

aca

aca

ca

ca

pila vaca

pila vaca

//S

/ S / aSa

a/a/

/S/c

c/ c/

a/a/

La pila esta vaca y se llega a un estado


aceptado (q), por lo tanto la palabra se acepta

/ S / aSa

cadena/ Saca/ Entra

/S/c
p

//S

/ S / bSb

S aSa
S bSb
S c

q
a/a/

c/c/

b/b/

Dada abcba veamos como funciona el AP

abcba

abcba abcba

bcba

bcba

cba

cba

ba

b
pila vaca

pila vaca

b/b/

/S/c

/ / S / S / aSa

a/a/

/ S / bSb

c/ c/

b/b/

a/a/

La pila esta vaca y se llega a un estado


aceptado (q), por lo tanto la palabra se acepta

14

06/05/2013

2. / S / aSa

cadena/ Saca/ Entra

4. / S / c
p

1. / / S

3. / S / bSb
q

5. a / a /

S aSa
S bSb
S c

7. c / c /

6. b / b /
Estado

Falta Leer

p
q
q
q
q
q
q
q
q
q

abcba
abcba
abcba
bcba
bcba
cba
cba
ba
a

Pila
vaca
S
aSa
Sa
bSba
Sba
cba
ba
a
vaca

Transicin
1
2
5
3
6
4
6
5

1. Los ejercicios con retroalimentacin, estn disponibles en el curso


en lnea.

15

06/05/2013

Existe una relacin entre los Autmatas


finitos y los Autmatas de pila.
Los Autmatas de pila reconocen Lenguajes
Libres de Contexto.
Usan pilas como elementos auxiliares para el
reconocimiento.
Es posible construir un AP partiendo de una GLC.

16

06/05/2013

Brena, Ramn, Lenguajes Formales y


Autmatas. Centro de Inteligencia Artificial,
Instituto Tecnolgico y de Estudios
Superiores de Monterrey, Campus Monterrey,
1997
http://www.cosc.canterbury.ac.nz/mukundan
/thco/PDA0.html

17

También podría gustarte