You are on page 1of 7

CIENCIAS DE LA COMPUTACION I

2009

AUTMATAS DE PILA
Los autmatas de pila, en forma similar a como se usan los autmatas finitos, tambin se pueden utilizar para aceptar cadenas de un lenguaje definido sobre un alfabeto A. Los autmatas de pila pueden aceptar lenguajes que no pueden aceptar los autmatas finitos. Un autmata de pila cuenta con una cinta de entrada y un mecanismo de control que puede encontrarse en uno de entre un nmero finito de estados. Uno de estos estados se designa como estado inicial, y adems algunos estados se llaman de aceptacin o finales. A diferencia de los autmatas finitos, los autmatas de pila cuentan con una memoria auxiliar llamada pila. Los smbolos (llamados smbolos de pila) pueden ser insertados o extrados de la pila, de acuerdo con el manejo last-in-first-out (LIFO). Las transiciones entre los estados que ejecutan los autmatas de pila dependen de los smbolos de entrada y de los smbolos de la pila. El autmata acepta una cadena x si la secuencia de transiciones, comenzando en estado inicial y con pila vaca, conduce a un estado final, despus de leer toda la cadena x. Autmata de pila reconocedor determinstico APD=<E, A , P, , e0, Z0, F> E: Conjunto finito de estados, A: Alfabeto o conjunto finito de smbolos de la cinta de entrada, P: Alfabeto o conjunto finito de smbolos de la Pila. PA= : funcin de transicin de estados e0: Estado inicial e0 E. Z0: Smbolo distinguido Z0 P F: Conjunto de estados finales o estados de aceptacin. F E. La funcin de transicin definida como: :E x ( A {}) x P E x P 1) ( ei , a, X) =( ej , ) donde a A; X P; P ; ei , ej E. 2) ( ei , , X) =( ej , ) Nota: Si existe transicin de tipo (2), slo se garantiza que AP es determinstico si s A, ( ei , s, X) est indefinida. Descripcin instantnea Una configuracin de un AP es una tripla <e , ,> donde e: estado_actual; : cadena de entrada a ser leda; : contenido de la pila. Luego, se define una relacin de transicin | en el espacio de posibles configuraciones del AP, tanto si: < ei , a,X > | < ej , , >
(1)

Si existe la transicin tipo (1), el AP pasa al estado ej, avanza la cabeza lectora y reemplaza el tope X por .

< ei , , X > | < ej , , >

(2)

Si existe la transicin tipo (2), el AP pasa al estado ej, NO avanza la cabeza lectora y reemplaza el tope X por .

donde aA; A; XP; , P; ei ,ej E

CIENCIAS DE LA COMPUTACION I

2009

La funcin de transicin de estados de un AP puede ser representada por un diagrama donde los nodos representan los estados y los arcos transiciones. Si existe transicin tipo (1), el arco queda rotulado de la siguiente manera: ei a ,X / ej

Si el estado actual es ei y la cabeza lectora apunta un smbolo a, y el tope de la pila es X, entonces cambiar al nuevo estado ej, avanzar la cabeza lectora, y sustituir el smbolo del tope X en la pila por la cadena . Por ejemplo: Si = ZYX deja X , apila Y, y apila Z (nuevo tope Z). donde X, Y, Z P Si =XX deja X y apila X (nuevo tope X). Si =X deja X como el mismo tope (no altera la pila) Si = elimina X, y el nuevo tope es el smbolo por debajo (desapila) Ejemplo 1 A={a,b,c} L1={cR / {a,b} } APD1 es un autmata de pila que reconoce L1. APD1=<{e0,e1,e2},{a,b,c},{X,Y, Z0}, , e0, Z0, {e2}> :

a, Z0 / XZ0 b, Z0 / YZ0 a, X / XX b, Y / YY a, Y / XY b, X / YX eo

a, X / b, Y / c, Z0 / Z0 c, X / X c, Y / Y

e1

, Z0 / Z0

e2

Ejemplos de cadenas aceptadas no aceptadas por AP1 (e0, abcba)=e2 abcba L1 (e0, c)=e2 c L1 (e0,abcab)=e1 abcab L1 (e0,a)=e0 a L1

Ejemplo 2 L2 = {ai b ck / i,k 1 y i<k} APD2 =<{e0,e1,e2},{a,b,c},{A, Z0}, 2 ,e0, Z0, {e2}> 2: a,Z0/AZ0 a,A/AA b,A/A e0 c,A/ e1 c,Z0/Z0 c,Z0/Z0 e2

CIENCIAS DE LA COMPUTACION I Ejemplo 3 L3 = {ai b ck / i,k 1 y i k} APD3 =<{e0,e1,e2},{a,b,c},{A, Z0}, 3 ,e0, Z0, {e2}> 3: a,Z0/AZ0 c,A/ a,A/AA b,A/A e ,Z0/Z0 1 e0

2009

c,Z0/Z0 e2

Ejemplo 4 L4 = {ai b ck / i, k 1 y i > k} APD41 =<{e0,e1,e2,e3},{a,b,c},{A, Z0}, 41 ,e0, Z0, {e3}> 41: a,Z0/AZ0 a,A/AA e0 b,A/A

e1 c,/

e2

,/A c,A/

e3

APD42 =<{e0,e1,e2,e3},{a,b,c},{A, Z0}, 42 ,e0, Z0, {e3}> 42: a,Z0/ Z0 a,Z0/AZ0 a,A/AA e0 e1 b,A/A e2 c,A/ c,A/ e3

Ejemplo 5 L5 = {ai b ck / i, k 1 y i k} APD5 =<{e0,e1,e2,e3},{a,b,c},{A, Z0}, 5 ,e0, Z0, {e3}> 5: a,Z0/AZ0 a,A/AA e0 b,A/A c,A/ e2 c,A/ e3

Ejemplo 6 L6={0i 1i+k 2k 3n+1/ i, k, n 0 } APD6=<{eo,e1,e2, e3,e4},{0,1,2,3},{A,B, Z0}, 6 ,e0, Z0, {e4}> 6: 0,Z0 /AZ0 0,A /AA 1, A / 1, A / 1,B/BB 2, B / 2, B / 3,Z0 /Z0 3,Z0 /Z0

eo

e1 1,Z0 /BZ0 e2

e3

e4

1,Z0 /BZ0 3,Z0 /Z0 3,Z0 /Z0

CIENCIAS DE LA COMPUTACION I Ejemplo 7 L7 = {hn gj e2n d3i/ i, j, n 0} Casos Cadenas de L7 si n, i, j >0 hn gj e2n d3i si n=0 y i, j >0 gj d3i si i=0 y n, j >0 hn gj e2n si j=0 y n, i >0 hn e2n d3i si n, i=0 y j >0 gj si n, j=0 y i >0 d3i si i, j =0 y n >0 hne2n si n,i,j=0 APD7 = <{eo,e1,e2,e3,e4,e5,e6,e7,e8,e9},{h,e,g,d},{H, Z0}, 7 ,e0, Z0, {e0, e4, e8, e9 }> 7: e,H/H h,H/HH eo h,Z0/HZ e1 g,Z0 /Z0 e9 d,Z0 /Z0 d,Z0 /Z0 e8 d,Z0 /Z0 e7 d,Z0 /Z0 d,Z0 /Z0 g,H/H e,H/H e,H/H e3 e,H/ e5

2009

,Z0/Z0

g,H/H e2 g,Z0 /Z0

e4 d,Z0 /Z0 e6

Autmata de pila no determinstico APND= <E, A , P, , e0, Z0, F> , donde las componentes E, A , P, e0, Z0, F se definen como antes, y la funcin de transicin se define como : E x (A {}) x P Pf( E x P*) 1) ( ei ,a, X) = {(ej , 1), (ek , 2), .... 2) ( ei ,, X) = {(ej , 1), (ek , 2), ....

Pf denota los subconjuntos finitos de E x P*


} } donde a A, X P, 1, 2 P*, ei, ej, ek E

Como ya se ha estudiado los autmatas finitos no determinsticos (AFND) reconocen los mismos lenguajes que los autmatas finitos determinsticos (AFD). Sin embargo no ocurre lo mismo con autmatas de pila no determinsticos (APND) y autmatas de pila determinsticos (APD). Algunos lenguajes slo pueden ser reconocidos por un APND, pero no por un APD.

CIENCIAS DE LA COMPUTACION I Ejemplo 8 L8= {am bp cp+m / m,p 1} {a2i bi / i 1} L8 slo puede reconocerse con un APND. APND8 =<{e0,e1,e2,e3,e4,e5, e6,e7,e8, e9},{a,b,c},{A,B, Z0}, 8 ,e0, Z0, {e9}> 8: b,B/BB c,B/ a, A/AA c,A/ b,A/BA e2 c,B/ c,A/ b,A/ a,A/A e6 a,A/AA APND8 es no determinstico ya que en el caso de: (e0 ,a, Z0) = {(e1 , AZ0), (e6 , A Z0)} Ejemplo 9 L9= {am bp cp+m / m,p 1} {ai b2i / i 1} L9 slo puede reconocerse con un APND. APND9 =<{e0, e1, e2, e3, e4, e5, e6, e7 },{a,b,c},{A,B, Z0}, 9 ,e0, Z0, {e7}> 9: b,B/BB c,B/ a, A/AA c,A/ a, Z0 /AZ0 eo e5 e1 b,A/BA e2 b,A/A b,A/ e6 b,A/A Lenguajes aceptados por los Autmata de Pila c,B/ c,A/ e7 b,A/ e8
, Z0/ Z0 e9

2009

a, Z0 /AZ0 eo a, Z0 /AZ0

e1

e3

e4
, Z0/ Z0

e3

e4

, Z0/ Z0

, Z0/ Z0

e7

Una cadena A* es aceptada por AP=<E, A , P, , e0, Z0, F> si y solo si < e0 ,, Z0 > | * < ef , , > El AP, comienza en el estado e0, con pila vaca, luego de leer toda la cadena , llega a un estado ef F, y en la pila queda cualquier cadena P*. El lenguaje aceptado por AP, es el conjunto de todas las cadenas que son aceptadas por AP: L(AP)= { / < e0 ,, Z0> | * < ef , , > y A* y ef F y P*} Los lenguajes aceptados por los Autmatas de Pila se denominan lenguaje libres del contexto.

CIENCIAS DE LA COMPUTACION I Autmata de pila traductor Autmata de pila traductor APT Un APT es simplemente un AP que se define como una 9-upla APT = <E, A , P, , e0, Z0, F, , S> donde E, A , P, , e0, Z0, F se definen como antes y se agregan dos componentes: S: Alfabeto o conjunto finito de smbolos de salida : funcin de traduccin definida como :E x (A {}) x P S* La est definida siempre que est definida.

2009

En el diagrama de transicin de APT puede describirse como una extensin de la notacin usada para AP. Si existe (ei , a, X) =( ej , ) y adems (ei , a, X) = t; luego el arco queda rotulado de la siguiente manera: a ,X / ,t

ei

ej

donde ei , ej E ; a A; X P; P* ;t S* Funcin de traduccin para cadenas El autmata slo define la traduccin, si el autmata AP subyacente acepta la cadena. Es decir la traduccin T(): A* S* asociada a APT est definida como T() es vlida < e0 ,, Z0> | * < ef , , > Ejemplo 10 L6={0i 1i+k 2k 3n+1/ i, k, n 0 } Traducir las cadenas de L6 0i 1i+k 2k 3n+1 como a i+ k b2k c3n APDT6=<{eo,e1,e2,e3,e4},{0,1,2,3},{A,B, Z0}, 6 ,e0, Z0, {e4},6, {a,b,c}> 6 y 6: 0,Z0 /AZ0, 0,A /AA, 1,A/,a

1,B/BB,a

2,B/,bb

3,Z0 /Z0,ccc

eo 1,A/,a e1 1,Z0/BZ0,a e2 2,B/,bb e 3,Z0/Z0, e 3 4 1,Z0 /BZ0,a 3,Z0 /Z0,

3,Z0 /Z0,

CIENCIAS DE LA COMPUTACION I

2009

Ejemplo 11: L7 = {hn gj e2n d3i/ i, j, n 0} Traducir las cadenas de L7 hn gj e2n d3i como 12j 0n 2 i APDT7=<{eo,e1,e2,e3,e4,e5,e6,e7,e8,e9},{h,e,g,d},{H, Z0}, 7 ,e0, Z0, {e0, e4, e8, e9 },7, {0,1,2}> 7 y 7: h,H/HH, e,H/H, g,H/H,11 e,H/H, e3 e,H/,0 e4 d,Z0 /Z0, d,Z0 /Z0, d,Z0 /Z0, e7 e8 d,Z0 /Z0, 2 e6 d,Z0 /Z0, e,H/H, e5 ,Z0/Z0,

eo h,Z0/HZ0, e1 g,H/H,11 e2 g,Z0 /Z0,11 g,Z0 /Z0, 11 e9 d,Z0 /Z0 ,

You might also like