Vous êtes sur la page 1sur 10

Tema 18

Autmata de Pila (Pushdown Automata) Dr. Luis A. Pineda ISBN: 970-32-2972-7

Autmata de Pila (AP, PDA)


Un AP es una mquina que acepta el lenguage generado por una GLC Consiste en un NFA- aumentado con una pila (stack).

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares


L = {xxr | x {0, 1}* } Gpal-par= ({P}, {0, 1}, P, P 0P0 | 1P1| }
x = 101101

Una mquina para aceptar Pal pares


Estado inicial: Leer la primera mitad de la cadena
Cadena de entrada

Cmo podemos saber si la cadena est en el lenguaje?

Control de estados finitos

Scanner

Pila

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares


Estado inicial: Leyendo la primera mitad de la cadena

Una mquina para aceptar Pal pares


Estado inicial: Leyendo la primera mitad de la cadena

1 0 1 1 0 1
Scanner push

Control de estados finitos

1 0 1 1 0 1

Control de estados finitos

push

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares


Estado inicial: Leyendo la primera mitad de la cadena

Una mquina para aceptar Pal pares


Cambio de estado: Leyendo la segunda mitad de la cadena

1 0 1 1 0 1

Control de estados finitos

1 0 1 1 0 1

Control de estados finitos

push

0 1

1 0 1
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares


Estado: Leyendo la segunda mitad de la cadena

Una mquina para aceptar Pal pares


Estado: Leyendo la segunda mitad de la cadena

1 0 1 1 0 1

Control de estados finitos

1 0 1 1 0 1

Control de estados finitos

pop

1 0 1

pop

0 1

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares


Estado: Leyendo la segunda mitad de la cadena

Una mquina para aceptar Pal pares


Estado Final: se leyeron todos los smbolos de la cadena, y la pila qued vaca!
Control de estados finitos

1 0 1 1 0 1

Control de estados finitos

1 0 1 1 0 1

pop

La cadena se acepta!

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Nocin de estado
En FA (DFA, NFA & NFA-) el siguiente estado depende del estado actual y el smbolo actual en la cinta de entrada: El estado es una fotografa completa de la mquina en cada punto (estado) de la computacin! En el Autmata de Pila la fotografa completa depende, adems, del contenido del stack!
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

La mquina no es determinstica
Cmo sabe la mquina cuando termina de leer la primera parte de la cadena?
No sabe: adivina!

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

La mquina no es determinstica
Al leer cada smbolo, la mquina:
Lee el smbolo y realiza la operacin

La mquina no es determinstica
Cmo sabe cuando el stack est vacio?
Se usa un smbolo especial!

correspondiente (push o pop).


Hace una transicin vaca y cambia

de estado para leer la segunda mitad de la cadena!

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Operacin de la Mquina
Dependiendo de:
El smbolo actual en la cinta El estado actual El smbolo hasta arriba (top) de la pila

Operacin de la Mquina
Aceptar una cadena si:
Se leen todos los smbolos en la cinta Se llega a un estado aceptor o con el

stack vaco

Accin:
Seleccionar el siguiente estado Realizar operacin (push, pop o nada)
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7 Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Definicin formal de un AP
Un Autmata de Pile es un 7-teto: (Q, , , q0, Z0, A, ) donde: Q es un conjunto finito de estados es el alfabeto del lenguaje reconocido por el AP es el alfabeto de las cadenas que ocurren en el stack q0 Q (el estado inicial) Z0 (el smbolo inicial del stack) A Q (el conjunto de estados aceptores) la funcin de transicin de tipo: Q ( {}) subconjuntos finitos de Q * donde la cadena hasta arriba del stack *
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Funcin de transicin
Funcin de transicin para DFA: : Q Q Funcin de transicin para NFA: : Q 2Q Funcin de transicin para NFA- : Q ( { }) 2Q Funcin de transicin para PDA: : Q ( { }) c.f. Q *

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una transicin
Una transicin: (q0, 1, Z0)
1 0 1 1 0 1
Control de estados finitos

Una transicin
Una transicn: Push!

(q0, 1, Z0) = (q0, 1Z0)


1 0 1 1 0 1
Control de estados finitos

q0
Z0

q0 Se consume el smbolo
push

1 Z0

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Transicin no-determinstica
Una transicin:

Transicin no-determinstica
Una transicin-: (q0, , Z0) = (q1, Z0)

(q0, , Z0)
1 0 1 1 0 1
Control de estados finitos

1 0 1 1 0 1

Control de estados finitos

q0
Z0

q1 Si se ve un
Z0

no se consume ningn smbolo !


Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7 Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Tabla de transicin: L = {xxr | x {0, 1}* }


Id 1 2 3 4 5 6 7 8 9 10 11 12 Estado q0 q0 q0 q0 q0 q0 q0 q0 q0 q1 q1 q1 Entrada 0 1 0 1 0 1 0 1 Top (stack) Z0 Z0 0 0 1 1 Z0 0 1 0 1 Z0 Movida(s) (q0, 0Z0) (q0, 1Z0) (q0, 00) (q0, 10) (q0, 01) (q0, 11) (q1, Z0 ) (q1, 0) (q1, 1) (q1, ) (q1, ) (q2, Z0 ) ninguna

Tabla de transicin: L = {xxr | x {a, b}* }


Id 1 2 Estado q0 q0 q0 q0 q0 q0 q0 q0 q0 q1 q1 q1 Entrada 0 1 0 1 0 1 0 1 Top (stack) Z0 Z0 0 0 1 1 Z0 0 1 0 1 Z0 Movida(s) (q0, 0Z0) (q0, 1Z0) (q0, 00) (q0, 10) (q0, 01) (q0, 11) (q1, Z0 ) (q1, 0) (q1, 1) (q1, ) (q1, ) (q2, Z0 ) ninguna

Push

3 4 5 6 7 8 9 10 11 12

Otras combinaciones

Otras combinaciones

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Tabla de transicin: L = {xxr | x {a, b}* }


Id 1 2 3 4 5 6 7 8 9 10 11 12 Estado q0 q0 q0 q0 q0 q0 q0 q0 q0 q1 q1 q1 Entrada 0 1 0 1 0 1 0 1 Top (stack) Z0 Z0 0 0 1 1 Z0 0 1 0 1 Z0 Movida(s) (q0, 0Z0) (q0, 1Z0) (q0, 00) (q0, 10) (q0, 01) (q0, 11) (q1, Z0 ) (q1, 0) (q1, 1) (q1, ) (q1, ) (q2, Z0 ) ninguna

Tabla de transicin: L = {xxr | x {a, b}* }


Id 1 2 3 4 5 6 7 8 9 10 11 12 Estado q0 q0 q0 q0 q0 q0 q0 q0 q0 q1 q1 q1 Entrada 0 1 0 1 0 1 0 1 Top (stack) Z0 Z0 0 0 1 1 Z0 0 1 0 1 Z0 Movida(s) (q0, 0Z0) (q0, 1Z0) (q0, 00) (q0, 10) (q0, 01) (q0, 11) (q1, Z0 ) (q1, 0) (q1, 1) (q1, ) (q1, ) (q2, Z0 ) ninguna

Mitad de la cadena

Pop

Otras combinaciones

Otras combinaciones

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Diagrama de flujo de PDA


0, Z0 / 0Z0 1, Z0 / 1Z0 0, 0 / 00 0, 1 / 01 1, 0 / 10 1, 1 / 11 push 0, 0 / 1, 1 / pop

Una mquina para aceptar Pal pares (q0, 1, Z0) = (q0, 1Z0)
Control de estados finitos

q0

, Z0 / Z0 , 0 / 0 , 1 / 1

1 0 0 1
, Z0 / Z0

q1

q2

q0

Una etiqueta (en un arco) de forma a, X/ de p a q significa que con la entrada a, el smbolo X en el Top (del stack) se substituye por : (p, a, X) = (q, )

1, Z0 / 1Z0

Z0

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares (q0, 1, Z0) = (q0, 1Z0)
Control de estados finitos

Una mquina para aceptar Pal pares (q0, 0, 1) = (q0, 01)


Control de estados finitos

1 0 0 1 q0

1 0 0 1 q0

1, Z0 / 1Z0

1 Z0

0, 1 / 01

1 Z0

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares (q0, 0, 1) = (q0, 01)


Control de estados finitos

Una mquina para aceptar Pal pares (q0, , 0) = (q1, 0)


Control de estados finitos

1 0 0 1 q0

1 0 0 1 q0

0, 1 / 01

0 1 Z0
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

, 0 / 0 Siempre se puede leer un a s!

0 1 Z0

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares


(q0, , 0) = (q1, 0)
Slo se cambia de estado

Una mquina para aceptar Pal pares (q1, 0, 0) = (q1, )


Control de estados finitos

1 0 0 1 q1

Control de estados finitos

1 0 0 1 q1

, 0 / 0 Y no se consume ningn smbolo!

0 1 Z0

0, 0 /

0 1 Z0
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares (q1, 0, 0) = (q1, )


Control de estados finitos

Una mquina para aceptar Pal pares

1 0 0 1 q1

1 0 0 1 q1

Control de estados finitos

0, 0 /

pop

1 Z0

a = a

1 Z0

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares (q1, 1, 1) = (q1, )


Control de estados finitos

Una mquina para aceptar Pal pares (q1, 1, 1) = (q1, )


Control de estados finitos

1 0 0 1 q1

1 0 0 1 q1

1, 1 /

1 Z0

1, 1 /

Z0

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares

Una mquina para aceptar Pal pares (q1, , Z0) = (q2, Z0)

1 0 0 1 q1

Control de estados finitos

1 0 0 1 q1

Control de estados finitos

1, 1 /

a = a

Z0

, Z0 / Z0

Z0

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal pares (q1, , Z0) = (q2, Z0)
Control de estados finitos

Una mquina para aceptar Pal pares


El estado q2 es aceptor Se ley toda la cadena! Z0 est hasta arriba del stack! 1 0 0 1 q2
Control de estados finitos Aceptar!

1 0 0 1 q2

, Z0 / Z0

Z0

Z0

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Configuraciones de un AP
Una configuracin de una AP M = (Q, , , q0, Z0, A, ) es una tercia: (q, x, ) donde q Q es el estado actual x * es la parte de la entrada que no se ha ledo * es el contenido actual de TODO el stack
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Configuraciones de un AP
Una movida de una configuracin a la siguiente: (p , x , ) M (q , y , ) Una secuencia de cero o ms movidas: (p, x, ) *M (q, y, )

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

El lenguaje aceptado por un AP


Aceptando por estado final: Si M = (Q, , , q0, Z0, A, ) es un AP, L(M), el lenguaje aceptado por M por estado final, es: L(M) = { w | (q0, w, Z0) *M (q, , )} para algn * & algn q A. El stack puede o no estar vaco cuando w es aceptada (i.e. puede ser , pero no necesariamente).
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

El lenguaje aceptado por un AP


Se dice que un lenguaje L * se acepta por M si y slo si L es exactamente el conjunto de cadenas aceptadas por M, y escribimos L = L(M)

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

El lenguaje aceptado por un AP


Aceptando por stack vaco: Si M = (Q, , , q0, Z0, A, ) es un PDA, N(M), el lenguaje aceptado por M por stack vaco, si: N(M) = { w | (q0, w, Z0) *M (q, , )} Aqu, el estado final es irrelevante!

El lenguaje aceptado por un AP


Si L * se acepta por un AP MF por estado final, existe un AP MN que acepta a L por stack vaco Para un AP M dado, el lenguaje que acepta por estado final es normalmente diferente del lenguaje que acepta (el mismo AP M) por stack vaco

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Una mquina para aceptar Pal (todas) (por estado final)


El lenguaje: Pal = {x | x = xr {1, 0}* } La gramtica: Gpal = ({ P}, {0, 1}, P, P 0 P0 | 1 P1| 1 | 0 |} Definimos Mpal: Mpal = ({q0, q1, q2}, {0, 1}, {0, 1, Z0}, q0, Z0, {q2}, )

Una mquina para aceptar Pal (todas) (por estado final)


Opciones durante el proceso de la primera parte de la cadena:
Todava ah: seguir en el estado, consumir

smbolo & push


Se llega a la mitad de una palndrome par:

cambiar de estado con una transicin-

Se llega a la mitad de una palndrome non:

cambiar de estado & consumir smbolo pero no poner (push) el smbolo en el stack!
Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7 Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Tabla de transicin: L = {x | x = xr}


Id 1 2 3 4 5 6 7 8 9 10 11 12 Estado q0 q0 q0 q0 q0 q0 q0 q0 q0 q1 q1 q1 Entrada 0 1 0 1 0 1 0 1 Top (stack) Z0 Z0 0 0 1 1 Z0 0 1 0 1 Z0 Movidas(s) (q0, 0Z0), (q1, Z0) (q0, 1Z0), (q1, Z0) (q0, 00), (q1, 0) (q0, 10), (q1, 0) (q0, 01), (q1, 1) (q0, 11), (q1, 1) (q1, Z0 ) (q1, 0) (q1, 1) (q1, ) (q1, ) (q2, Z0 ) ninguna

Todava en la primera parte...


Id 1 2 3 4 5 6 7 8 9 10 11 12 Estado q0 q0 q0 q0 q0 q0 q0 q0 q0 q1 q1 q1 Entrada 0 1 0 1 0 1 0 1 Top (stack) Z0 Z0 0 0 1 1 Z0 0 1 0 1 Z0 Movidas(s) (q0, 0Z0), (q1, Z0) (q0, 1Z0), (q1, Z0) (q0, 00), (q1, 0) (q0, 10), (q1, 0) (q0, 01), (q1, 1) (q0, 11), (q1, 1) (q1, Z0 ) (q1, 0) (q1, 1) (q1, ) (q1, ) (q2, Z0 ) ninguna

Otras combinaciones

Otras combinaciones

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Mitad de cadena par...


Id 1 2 3 4 5 6 7 8 9 10 11 12 Estado q0 q0 q0 q0 q0 q0 q0 q0 q0 q1 q1 q1 Entrada 0 1 0 1 0 1 0 1 Top (stack) Z0 Z0 0 0 1 1 Z0 0 1 0 1 Z0 Movidas(s) (q0, 0Z0), (q1, Z0) (q0, 1Z0), (q1, Z0) (q0, 00), (q1, 0) (q0, 10), (q1, 0) (q0, 01), (q1, 1) (q0, 11), (q1, 1) (q1, Z0 ) (q1, 0) (q1, 1) (q1, ) (q1, ) (q2, Z0 ) ninguna Id 1 2 3 4 5 6 7 8 9 10 11 12

Mitad de cadena non...


Estado q0 q0 q0 q0 q0 q0 q0 q0 q0 q1 q1 q1 Entrada 0 1 0 1 0 1 0 1 Top (stack) Z0 Z0 0 0 1 1 Z0 0 1 0 1 Z0 Movidas(s) (q0, 0Z0), (q1, Z0) (q0, 1Z0), (q1, Z0) (q0, 00), (q1, 0) (q0, 10), (q1, 0) (q0, 01), (q1, 1) (q0, 11), (q1, 1) (q1, Z0 ) (q1, 0) (q1, 1) (q1, ) (q1, ) (q2, Z0 ) ninguna

Otras combinaciones

Otras combinaciones

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7

Aceptar 101
(q0, 101, Z0) todava en la primera mitad (q0, 01, 1Z0) (q1, 1, 1Z0) (q0, 1, 01Z0) (q0, , 101Z0) (q1, 1, 01Z0) (q2, , Z0) (q1, , 01Z0) Dr. Luis A. Pineda, IIMAS, UNAM, 2005. ISBN: 970-32-2972-7 (q1, 01, 1Z0) (q1, , Z0) (q1, 101, Z0) (q2, 101, Z0) (q1, 01, Z0) (q2, 01, Z0) adivina mitad de pal. par adivina mitad de pal. non

10

Vous aimerez peut-être aussi