Está en la página 1de 12

Programacin en tiempo real

AUTOMATAS DE PILA

Autmata de pila
Definiciones bsicas Un autmata de pila se puede considerar una mquina abstracta (autmata) que mantiene el control sobre una cinta de entrada de slo lectura y un almacenamiento de datos con acceso de tipo pila.

Q conjunto finito de estados alfabeto de entrada alfabeto de pila q0 Q estado inicial

Z0 smbolo inicial de pila F Q conjunto de estados finales : Q ( {}) P(Q *)

El autmata de pila analiza cadenas de la misma manera que los autmatas finitos. La diferencia con aquellos es que el smbolo ledo, x , tenia en cuenta el estado de la mquina A, donde se encontraba y la funcin de transicin ubicada en el par ordenado (A,x) nos daba el destino del nuevo estado B. Utilizando el correspondiente grafo esta transicin se manifestaba como

Programacin en tiempo real

AUTOMATAS DE PILA

Las transiciones en los autmatas de pila se representan en cambio

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.

# es un smbolo de pila que suele usarse como elemento de control para detectar el fin de la pila. La palabra vaca & juega de distinta manera segn las tres posiciones que puede ocupar en la flecha de la transicin. En primer lugar sobre la flecha significa que no se lee nada de la tira y la misma no avanza una posicin, En segundo lugar no extraemos nada de la pila En tercer lugar no ponemos nada en la pila.

Programacin en tiempo real

AUTOMATAS DE PILA

Un autmata de pila se encuentra en cada momento en un estado determinado y el estado siguiente depende de los tres elementos siguientes: Estado actual Smbolo de entrada Smbolo superior de la pila Generalmente, el autmata de pila es no determinista en el sentido de que se permite que haya varias acciones posibles en cada momento. Un AP puede realizar dos tipos de operaciones elementales: 1. Dependientes de la entrada. Se lee la cinta y se avanza la cabeza lectora, En funcin: Del estado actual (qi) Del smbolo ledo en la cinta (a) Del smbolo en la cima de la pila (Z)

Se pasa a un nuevo estado, se elimina el elemento Z de la cima de la pila y se introduce en su lugar una cadena de smbolos. 2. Independientes de la entrada. Las mismas operaciones que en el caso anterior, slo que no se lee la cinta, ni se avanza la cabeza lectora. Se maneja la pila sin la informacin de entrada. Lenguaje aceptado por un Autmata de Pila. El lenguaje aceptado por un Autmata de Pila se puede definir de dos formas diferentes y equivalentes: 1. De forma anloga a los Autmatas Finitos, es decir, el lenguaje aceptado es el conjunto de entradas que hacen que el Aumata llegue a un estado final. L(M)={w/(q0,w,z0)(p,,),pF} 2. El lenguaje est formado por el conjunto de entradas que vacan la pila. En este caso decimos que es un Autmata de Pila Vaca. Para esta definicin el conjunto F es irrelevante y podemos considerar que F=. N(M)={w/(q0,w,z0)(p,,)}.

Programacin en tiempo real

AUTOMATAS DE PILA

Programacin en tiempo real

AUTOMATAS DE PILA

Ejemplos

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}> :

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

Programacin en tiempo real

AUTOMATAS DE PILA

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:

Ejemplo 3 L3 = {ai b ck / i, k 1 y i > k} APD31 =<{e0,e1,e2,e3},{a,b,c},{A, Z0}, 31 ,e0, Z0, {e3}> 31:

APD32 =<{e0,e1,e2,e3},{a,b,c},{A, Z0}, 32 ,e0, Z0, {e3}> 32:

Programacin en tiempo real

AUTOMATAS DE PILA

Ejercicio L4 = {ai b ck / i,k 1 y i k} APD4 =<{e0,e1,e2},{a,b,c},{A, Z0}, 4 ,e0, Z0, {e2}> 4:

Ejercicio 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:

Programacin en tiempo real

AUTOMATAS DE PILA

Gramticas sensibles al contexto


Las gramticas sensibles al contexto (CSG de sus siglas en ingls Context-Sensitive Grammar): Son aquellas gramticas capaces de reproducir o atender a lenguajes naturales ya que producen una clase de lenguajes que est estrictamente situada entre los lenguajes libres de contexto y los lenguajes recursivos y se conocen como lenguajes sensibles al contexto (CSL de sus siglas en ingls Context-Sensitive Language). Los lenguajes sensibles al contexto son aquellos que pueden ser reconocidos por las Autmatas Linealmente Acotados ALA. Una gramtica G=(N, , S, P): Es una gramtica sensible alcontexto si todas las producciones son de la forma , donde , , (N ) + y | | | |. Donde: N es un alfabeto de smbolos no terminales. es un alfabeto de smbolos terminales con N = . S N es el smbolo inicial. P es un conjunto finito de producciones de la forma , donde , , ( N )+. Por ejemplo, la gramtica dada por: S abc|aAbc Ab bA Ac Bbcc bB Bb aB aa|aaA El anterior ejemplo es una gramtica sensible al contexto. Esta gramtica genera el lenguaje sensible al contexto { anbncn | n1 }, con lo que tenemos un ejemplo de un lenguaje sensible al contexto que no es libre de contexto. Toda gramtica libre de contexto se puede poner en forma normal de Chomsky, en la cual las producciones son de la forma A o tambin ABC. Puesto que las producciones de esta forma satisfacen la definicin de gramticas sensibles al contexto, se deduce que toda gramtica libre del contexto es tambin una gramtica sensible al contexto. Por tanto el conjunto de los lenguajes sensibles al contexto contiene el conjunto de los lenguajes libres de contexto. La restriccin de que el lado derecho de las producciones en una gramtica sensible al contexto sea al menos tan largo como el lado izquierdo hace que la gramtica sea no contrctil. Puesto que la cadena vaca tiene longitud 0, podemos definir que L(G), para cualquier gramtica G sensible al contexto.

Programacin en tiempo real

AUTOMATAS DE PILA

Los lenguajes sensibles al contexto son exactamente los lenguajes aceptados por los autmatas lineales acotados, mquinas de Turing no determinstica en donde la cabeza de la cinta visita un nmero de celdas que son una constante mltiple de la longitud de una cadena de entrada.

Ejemplos
Ejemplo 1 L1={ai bjcidj / i, j 0 } G1=<{A, B, C}, {a, b, c}, S1, P1> donde P1 contiene las siguientes producciones: S1DCCD S1A bCbc AaAC cCcc Aac cDcd AB dDdd BbBD bDbd BbD

Programacin en tiempo real

AUTOMATAS DE PILA

Ejemplo 2 Sea G=(N,T,P,S) una gramtica sensible al contexto, y sea la derivacin de G w0 w1 ... wn Demostrar que |w0| |wn|. Solucin: Por induccin sobre la longitud de la derivacin n. Caso base, n=0. En tal caso w0= wn, con lo que |w0| = |wn|, de donde deducimos que |w0| |wn|. Hiptesis de induccin. Para un cierto n N, supongamos que toda derivacin de G con longitud k, donde kn, satisface que |w0| |wk|. Paso inductivo. Sea la derivacin de G w0 w1 wn
wn+1

cuya longitud es n+1. Entonces lo siguiente tambin es una derivacin de G:

w0 w1 ... wn
Aplicando la H.I. a esta ltima derivacin, obtenemos que |w0| |wn|. Por otra parte, por definicin de derivacin, debe verificarse que wn wn+1, con lo cual wn+1 se obtiene a partir de wn por aplicacin de una regla P. Al ser G sensible al contexto, la regla

Programacin en tiempo real

AUTOMATAS DE PILA

Ejemplo 3: La gramtica G definida por T = {a, b, c}, N = {, A, B, C, D, E}, smbolo inicial y con producciones aAB, aB, A aAC, A aC, B Dc, D b, CD CE, CE DE, DE DC, Cc Dcc, En la produccin CE DE podemos reemplazar C con D si C va seguida de E y En la produccin Cc Dcc podemos reemplazar C con Dc si C va seguida de c. Podemos derivar DC de C, pues CD CE DE DC La cadena a3b3c3 esta en L(G), pues tenemos aAB aaACB aaaCCDc aaaDCCc aaaDCDcc aaaDDCcc aaaDDDccc aaabbbccc Se puede mostrar que L(G)= { anbncn | n =1,2,}

Ejercicio Gramtica sensible al contexto correspondiente al lenguaje L2 ={b2r an+1 dj er+1/ n, r 0 y j > r} G2=<{X,Y, Z, D, E},{a, b, d, e}, S2, P2> donde P2 contiene las siguientes producciones:

S2X XbbXDE XZYE ZaZ Za YdY

Programacin en tiempo real

AUTOMATAS DE PILA

Ejercicio L4={an bn cn / n>0} G4=<{A,B,C}, {a,b,c}, S4, P4> donde P4 contiene las siguientes producciones: S4A AaABC AabC CBBC bBbb bCbc cCcc Derivacin de la cadena a3b3c3
S4 A aABC aaABCBC aaabCBCBC aaabBCCBC aaabBCBCC aaabBBCCC aaabbBCCC aaabbbCCC aaabbbcCC aaabbbccC aaabbbccc

También podría gustarte