Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
4.1.1
Un autmata de pila es una sptupla M=(Q,,,q0,,F) donde: Q= conjunto finito de estados = alfabeto de entrada = alfabeto de pila q0Q estado inicial
Inmaculada Luengo
4. Autmatas de Pila
es decir la forma genrica de la imagen de una terna ser (q , a , Z ) = {(r1 , 1 ),L , (rk , k ); ri Q , i *} Segn esta definicin un AP es en genral no determinista. Una transicin es una orden que permite, en el caso de que el autmata se encontrara en estado q, en la cinta de entrada estuviera leyendo el smbolo a y el smbolo de la cima de la pila fuera Z, transitar a cualquiera de los estados ri y, extrayendo el smbolo Z de la pila, sustituirlo por la correspondiente palabra i. Para visualizar un autmata de pila podemos imaginar los estados y la cinta de entrada como en los autmatas finitos, pero ahora est la pila que podemos imaginar como una cinta interna (que siempre representamos como una columna) donde se van insertando o extrayendo los smbolos de pila segn lo vayan mandando las transiciones. La pila hace el papel de una memoria rudimentaria: sobre ella se escriben palabras y se van extrayendo smbolo a smbolo. Debe quedar claro el modo en que entendemos que se insertan las palabras en la pila: Si = a1.ak es una palabra de longitud k y queremos insertarla en la pila de un AP, entendemos que el smbolo que queda en la cima de la pila es a1. Volveremos sobre ello ms adelante. Lo que no debemos ahora es tratar de visualizar una transicin no determinista porque cada posibilidad lleva aparejado un estado diferente de la pila y se complica mucho la notacin si en cada instante representamos todas las posibles situaciones actuales de la pila. Antes de terminar este apartado estudiamos las transiciones definidas sobre ternas "especiales", 62
Inmaculada Luengo
4. Autmatas de Pila
i) (q,,Z)= {(r1,1),.,(rk,k) : ri Q, i *} se lee en la cinta de entrada, es decir: se transita sin avanzar en la cinta de entrada. ii) (q,a,)= {(r1,1),.,(rk,k) : ri Q, i *} se extrae de la pila, es decir: se transita sin extraer nada de la pila, pero si se inserta. iii) (q,,)= {(r1,1),.,(rk,k) : ri Q, i *} se transita sin avanzar en la cinta de entrada y sin extraer de la pila.
4.1.2
REPRESENTACIN GRFICA DE UN AP
Es similar a la de un autmata finito: Dibujamos un crculo por cada estado no final y un doble crculo por cada estado final. Marcamos el estado inicial con una flecha de entrada, sin etiquetar. Por cada (r,) (q,a,Z) dibujamos una flecha de q a r etiquetada a,Z; El grfico de un AP lo describe completamente.
Ejemplo: Sea M8 = (Q,,,q0,,F,) con Q = {p,q,r,s}, = {0,1}, = {#,a}, p estado inicial, F={s}, y funcin de transicin definida de la manera siguiente (p,,)={(q,#)} (q,0,)={(q,a)} (q,1,a)={(r,)} (r,1,a)={(r,)} (r,,#)={(s,)} La imagen de todas las dems ternas del conjunto de partida es . La representacin grfica de este AP ser 63
Inmaculada Luengo
4. Autmatas de Pila
Observemos que lo que hace M12 es antes que nada marca el principio de la pila con # sin leer nada en la cinta y pasa al estado q; a continuacin por cada 0 que lee en la entrada inserta una a en la pila, sin cambiar de estado; cuando lee el primer 1, extrae una a de la pila y pasa al estado r; tiene que seguir leyendo smbolos 1 a la vez que extrae los smbolos a de la pila; cuando el nmero de 1 ledos iguala al nmero de 0 vuelve a aparecer el smbolo # en la cima de la pila, lo extrae y se alcanza el estado final s. Por tanto las nicas palabras que podrn alcanzar el estado final son las de la forma 0n1n con n>0. Ejemplos: Sea M9 dado por el diagrama siguiente
64
4. Autmatas de Pila
4.1.3
Una palabra * diremos que es una palabra aceptada por el autmata de pila AP
si existe un camino desde el estado inicial que, procesando todos los smbolos de ,
logra llegar a algn estado final.
4.1.4
LENGUAJE DE UN AP
Es el conjunto de todas las palabras aceptadas. Ejemplos: El lenguaje del autmata de pila M8 es L(M8)={01:n1}. El lenguaje de M9 son las palabras sobre ={x,y} que ledas de izquierda a derecha nunca tienen ms 'y' que 'x'. El lenguaje de M10 es L(M10)={xmy: mn1}
4.1.5
4.1.6
La idea general es que una autmata de pila es determinista cuando en ningn momento pueda darse la situacin de tener varias transiciones posibles ante una situacin actual del autmata. Desde luego lo primero que debe ocurrir es que para cada trio (q,a,Z), (q,a,Z) sea vaco o unitario, es decir |(q,a,Z)|1. Pero no basta con esto porque si tuviesemos (q,a,Z)=(r,Y) y (q,,Z)=(s,X) con (r,Y)(s,X) entonces si el autmata se encuentra en estado q, leyendo en cinta a, y en la cima de la pila se encuentra Z, podra pasar al estado r, procesar la a de la cinta y sustituir en la cima de la pila la Z por la Y; o bien podra pasar al estado s, no procesar la a de la entrada y sustituir en la cima de la pila la Z por la X. Es decir seguira habiendo no determinismo. De manera que para decir 65
Inmaculada Luengo
4. Autmatas de Pila
que el autmata sea determinista debe cumplir adems que para cada a y para cada Z, como mximo uno de los cuatro tros (q,a,Z),(q,a,),(q,,Z),(q,,) tenga imagen no vaca a travs de . Formalmente un AP decimos que es determinista si: i) (q , a , Z ) Q ( {}) ( {}) se tiene (q , a , z 1) ii) a , Z , como mximo uno de los cuatro tros
es no determinista porque si se encuentra en estado q y en la cima de la pila se encuentra el smbolo A tiene dos opciones extraerlo e insertar 'xAy' en la pila o extrerlo e insertar 'xy', es decir
66
Inmaculada Luengo
4. Autmatas de Pila
4.1.7
LA PILA VACA. Observemos que el autmata de pila M8 slo acepta palabras con la pila vaca, mientras que M9 y M10 puede aceptar palabras que dejan residuos en la pila. Esto es inaceptable a la hora de implementar un trozo de programa que sea un analizador de los correspondientes lenguajes, porque ms tarde o ms temprano la pila se desbordar y el programa empezar a dar errores. El problema en s no es muy grave porque dado un AP siempre podemos construir otro equivalente que slo acepte palabras con la pila vacia, de la siguiente manera: i) quitamos la condicin de inicial del estado inicial del AP dado, creamos un nuevo estado inicial i y aadimos la transicin (i , , ) = (q0 ,# ) donde q 0 es el antiguo estado inicial y # es un smbolo de pila nuevo. ii) quitamos la condicin de final de todos los antiguos estados finales, aadimos un nuevo estado s y para cada antiguo estado final r F aadimos la transicin (r , , ) = (s , ) que slo cambia de estado. iii) para cada Z aadimos una transicin (s , , Z ) = (s , ) iv) aadimos un estado final nuevo f y la transicin (s , ,# ) = ( f , ) .
Ejemplos: Un AP equivalente a M9 que vacia su pila antes de aceptar cualquier palabra ser
Un AP equivalente a M10 que vaca su pila antes de aceptar cualquier palabra ser
67
Inmaculada Luengo
4. Autmatas de Pila
Fig 4.5 AP equivalente a M10 que vaca la pila antes de aceptar palabras.
Lo que suele ocurrir es que al hacer el cambio para que el autmata vace su pila se introducen transiciones no deterministas.
Desgraciadamente no es cierto que para cada autmata de pila no determinista exista otro equivalente determinista, lo cual va a producir complicaciones a la hora de implementar los correspondientes analizadores. Si observamos la grmatica independiente del contexto con axioma A y con reglas
L = {x n y n : n > 0}
que sabemos que no es regular. La cuestin que queremos plantearnos es si esto es un caso particular (un AP y una G2 que tienen el mismo lenguaje) o ser un resultado general, algo as como: Los autmatas de pila y las gramticas independientes del contexto son equivalentes en cuanto a los lenguajes que determinan. Estudiamos un poco ms a fondo las gramticas independientes del contexto.
68
Inmaculada Luengo
4. Autmatas de Pila
4.2.1
SMBOLOS INACCESIBLES
Un smbolo no terminal decimos que es inaccesible si desde el axioma no se puede derivar ninguna palabra que lo contenga. Si un smbolo es inaccesible y lo eliminamos junto con todas sus producciones y todas las producciones en las que aparezca, la grmatica obtenida es equivalente a la dada.
4.2.2
SMBOLOS SUPERFLUOS
Hay dos tipos de posibles smbolos superfluos de una gramtica i) No terminales: un smbolo no terminal es superfluo si a partir de l no se puede obtener ninguna derivacin escrita slo con smbolos terminales. Si eliminamos un simbolo no terminal superfluo, sus producciones y las producciones en que aparece, la gramtica obtenida es equivalente a la dada. ii) Terminales: un smbolo terminal decimos que es superfluo si no aparece en ninguna derivacin desde el axioma. Si eliminamos del alfabeto de terminales los terminales superfluos la gramtica obtenida es equivalente a la dada.
4.2.3
GRAMTICA LIMPIA
Una grmatica que no tiene smbolos inaccesibles ni superfluos se dice que es una gramtica limpia.
69
Inmaculada Luengo
4. Autmatas de Pila
4.2.4
REGLAS NO GENERATIVAS
Las reglas compresoras del tipo A:= donde A no es el axioma decimos que son reglas no generativas. Si eliminamos esa regla y por cada regla de tipo B:=xAy (x,yN) aadimos la regla B:=xy, la gramtica obtenida es equivalente a la dada.
4.2.5
REGLAS DE REDENOMINACIN
Las reglas del tipo A:=B, donde A y B son smbolos no terminales decimos que son reglas de redenominacin. Si eliminamos dicha regla, aadiendo por cada regla B:=, la regla A:=, la gramtica obtenida es equivalente a la dada.
4.2.6
Una gramtica limpia, sin reglas no generativas y sin reglas de redenominacin decimos que es una gramtica bien formada. Una de las dificultades que ofrece la implementacin de programas que analicen si una determinada palabra pertenece o no al lenguaje determinado por una cierta gramtica independiente del contexto, es el hecho de que la parte derecha de cada una de sus reglas puede tener cualquier longitud, lo que supone que los rboles de derivacin de las palabras del lenguaje de la gramtica no tienen un nmero de ramas fijo.
Ejemplo: Sea la gramtica G3 de axioma S cuyas reglas son S:=aMNz M:= aMa / z N:= bN / b Sea la derivacin S aMNz aaMaNz aazaNz aazabNz aazabbNz aazabbbz Su rbol de derivacin es
70
Inmaculada Luengo
4. Autmatas de Pila
Observamos que el primer nivel tiene cuatro ramas, en el segundo hay un nodo con tres ramas y otro con dos,.. En general es difcil dimensionar un rbol que se adapte a todas las derivaciones posibles de la gramtica y esto ocurre as precisamente por la falta de restricciones a la longitud y forma de la parte derecha de las reglas. Noah Comsky observa y demuestra que esta falta de restriccin es tan slo aparente porque cualquier gramtica independiente del contexto es equivalente a otra cuyas partes derechas de todas sus reglas observa un riguroso patrn.
4.2.7
i) A:=BC, con A,B,CN, ii) A:=a, con A N, aT iii) S:= con S el axioma. Con esto se pueden obtener todas las palabras del lenguaje con rboles binarios. La demostracin es constructiva, sobre la reglas de la gramtica bien formada Sea A:= una regla de G. Si empieza por un smbolo no terminal, se tiene A:=Bx, introducimos un nuevo no terminal B y sustituimos la regla original por las reglas B:=x y A:=BB.
71
Inmaculada Luengo
4. Autmatas de Pila