Anda di halaman 1dari 17

06/05/2013

Teoría de la
Computación

M. en I. Jorge Carlos Reyes Magaña

 Pila
◦ Último en entrar primero en salir

Solamente se puede introducir


por el tope de la pila

1
06/05/2013

 Recordemos que los Autómatas Finitos no


son lo suficientemente poderosos para
aceptar los Lenguajes libres de contexto.
 Autómatas de pila
◦ Tienen la estructura de un AF: estados y
transiciones.

q0 q1

Los elementos en las transiciones cambian

 Transiciones en Autómatas 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 operación de sacar de la pila y luego de meter

2
06/05/2013

 Para diseñar un AP se tiene que repartir lo


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

 Distintos diseños para un mismo problema


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

 Ejemplo: Diseñar un AP que acepte


exactamente el lenguaje con palabras de la
forma anbn, para cualquier número natural.
◦ Ejemplo usando un contador

a//a
b/a/ 
q

3
06/05/2013

cadena/ Saca/ Entra

 Traza de ejecución para w = aabb

Estado Por leer Pila


a/  /a
q aabb Vacía
b/a/ 
q abb a q
q bb aa
q b a
q ε Vacía

 Problema!!!
◦ El AP también acepta palabras como abab
(corroborar con la traza de ejecución).
◦ El AP no tiene la forma deseada: anbn
◦ No se ha recordado cuando se terminan las a’s e
inician las b’s.
 Solución
◦ Utilizar los estados para memorizar las situaciones
de estar consumiendo a’s o estar consumiendo b’s.

4
06/05/2013

 anbn cadena/ Saca/ Entra

a//a b/a/  La pila esta vacía


y se llega a un
b/ a/  estado aceptado
q0 q1 (q1), por lo tanto
la palabra se
 Ejemplo: acepta
aaabbb aaabbb aaabbb aaabbb aaabbb aaabbb

a
a a a
a a a a a

q0 q0 q0 q1 q1 q1

 Ejemplo: Proponer un AP para el lenguaje de


los palíndromos con número par de símbolos
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:
◦ abba, aa, bbbbbb (correctos)
◦ aab, aabaa (incorrectos)
 ¿Cual sería la estrategia a seguir?

10

5
06/05/2013

cadena/ Saca/ Entra

 Estrategia:
◦ Almacenar en la pila la primera mitad de la
palabra y luego ir comparándola letra por
letra contra la segunda mitad.

b/b/  a/a/ 
a/  /a b/  /b

//
s f

11

 Consideraciones:
◦ La presencia de una transición 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?
◦ ¿Cómo saber que ya llegamos exactamente a la
mitad de la palabra?

12

6
06/05/2013

 En un AFN una palabra es aceptada cuando


existe un cálculo que permite aceptarla,
independientemente de que un cálculo en
particular se vaya por el camino erróneo.

 Lo importante es que exista un cálculo que


acepte la palabra en cuestión.

13

cadena/ Saca/ Entra

b/b/  a/a/ 
a/  /a b/  /b

//
s f

 Traza de ejecución para w = abba

Estado Por leer Pila

s abba Pila vacía


s bba a
s ba ba
f ba ba
f a a
F  Pila vacía
14

7
06/05/2013

 Se pueden aplicar métodos de combinación


modular de autómatas, 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 unión 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 séxtuplo (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

8
06/05/2013

 Si se tiene una transición 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 sólo se quiere meter la cadena γ a la pila, la
transición es: ((p,u, ),(q,γ)): Push
 Si sólo se quiere sacar caracteres de la pila la
transición es: ((p,u, β),(q, )): Pop

17

 La formalización del funcionamiento de los


AP reposa en la noción de configuración visto
en los AF.
 Definición: Una configuración es un elemento
de K X Σ* X Γ*
 Las transiciones se definen como una relación
y no como una función, por lo que la entrada
se les formaliza como AFN.

18

9
06/05/2013

 Definición: Sea M=(K, Σ, Γ, Δ, s, F) un AP,


entonces [[p, ux, βα]] |-M [[q, x, γα]] ssi
existe ((p,u,β), (q, γ)) Є Δ.

 Definición: 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

b/b/  a/a/ 
a/  /a b/  /b

//
s f

 Ejemplo: Formalizar el AP de las palabras


palíndromas {wwR}, w Є {a,b}.
 Solución: El AP es: M=(K, Σ, Γ, Δ, s, F), donde:
◦ K = {s,f}, F = {f}, Σ = {a, b}, Γ = {a, b}
◦ Δ se representa con:

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

10
06/05/2013

 Todo lenguaje aceptado por un AF es también


aceptado por un AP.
 ¿Cómo construirlo?

Autómata finito Autómata de pila

a a//
b//
b

r1 r0 r1
r0 b
a a//
b//

 Cadenas que terminan en aaa


Autómata Finito Autómata de Pila

a//
a,b

aaa aaa /  / 
q0 q1 q0 q1

b//

11
06/05/2013

 Los autómatas de pila aceptan los lenguajes


LLC.

 Si L es un Lenguaje Libre de Contexto,


entonces hay un Autómata de Pila M tal que
L(M) = L

 Procedimiento para hacer la conversión


◦ Partimos de una Gramática Libre de Contexto,
asociada al lenguaje Libre de Contexto.
◦ Sea G = (V, Σ, R, S) una gramática. 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 Transiciones Edo. Inicial Edo. Final


pila

12
06/05/2013

 La función Δ está definida:


cadena/ Saca/ Entra
1.
//S
p q

2. Para cada A→x Є R 3. Para cada a Є 


/A/ x a/a/

p q p q

 Ejemplo
 Obtener un AP que acepte el LLC generado
por la gramática siguiente:
1. S → aSa
2. S → bSb
3. S→ c  / S / aSa
/S/c  / S / bSb

//S q
p

a/a/ c/c/

b/b/

13
06/05/2013

cadena/ Saca/ Entra  / S / aSa


/S/c  / S / bSb
S → aSa
//S S → bSb
p q S→ c

a/a/ c/c/

b/b/
 Dada aca veamos como funciona el AP
aca aca aca ca ca a 

a
pila vacía

pila vacía
S S c
S a a a a

p q q q q q q
//S  / S / aSa a/a/ /S/c c/ c/ a/a/

La pila esta vacía y se llega a un estado


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

cadena/ Saca/ Entra  / S / aSa


/S/c  / S / bSb
S → aSa
//S S → bSb
p q S→ c

a/a/ c/c/

b/b/
 Dada abcba veamos como funciona el AP
abcba abcba abcba bcba bcba cba cba ba a 

b
a S S c
pila vacía

pila vacía

S S b b b b
S a a a a a a a

p q q q q q q q q q
 /  / S  / S / aSa a/a/  / S / bSb b/b/ /S/c c/ c/ b/b/ a/a/

La pila esta vacía y se llega a un estado


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

14
06/05/2013

cadena/ Saca/ Entra 2.  / S / aSa


4.  / S / c 3.  / S / bSb
S → aSa
1.  /  / S S → bSb
p q S→ c

5. a / a /  7. c / c / 

6. b / b / 

Pila
Estado Falta Leer Transición

p abcba vacía
q abcba S 1
q abcba aSa 2
q bcba Sa 5
q bcba bSba 3
q cba Sba 6
q cba cba 4
q ba ba 6
q a a 5
q  vacía

1. Los ejercicios con retroalimentación, están disponibles en el curso


en línea.

15
06/05/2013

 Existe una relación entre los Autómatas


finitos y los Autómatas de pila.
 Los Autómatas 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, Ramón, Lenguajes Formales y


Autómatas. Centro de Inteligencia Artificial,
Instituto Tecnológico y de Estudios
Superiores de Monterrey, Campus Monterrey,
1997
 http://www.cosc.canterbury.ac.nz/mukundan
/thco/PDA0.html

17

Anda mungkin juga menyukai