Your SlideShare is downloading. ×
Automatas
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Automatas

1,371
views

Published on


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,371
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
37
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. AUTOMATAS DE PILADefinición:Un autómata de pila es formalmente una séxtupla de la forma (Z,V,P,delta,0,F),donde Z Conjunto finito de estados. V Alfabeto de la máquina. P Conjunto finito de símbolos de pila. delta Colección finita de transiciones. 0 Estado inicial. F Conjunto de estados de aceptación.Esquemáticamente:El autómata de pila analiza cadenas de la misma manera que los autómatasfinitos.La diferencia con aquellos es que el símbolo leído, x , tenia en cuenta el estadode la máquina A, donde se encontraba y la función de transición ubicada en elpar ordenado (A,x) nos daba el destino del nuevo estado B. Utilizando elcorrespondiente grafo esta transición se manifestaba como
  • 2. Las transiciones en los autómatas de pila se representan en cambioA es el estado origen donde se encuentra la máquina. Si la tira en la celdaseñala por la cabeza lectora tiene el símbolo al x, lee lo que tiene la pila en sucabeza si es c. Lo saca y graba en la cabeza de la pila el elemento d.Debemos agregar que al comienzo La primera celda de la cinta se coloca sobrela cabeza lectora con la pila vacía.Lo importante es el agregado a los autómatas finitos de un sistema de memoriainterna en forma de pila con lo que se incrementa considerablemente elpotencial de procesamiento de lenguaje del autómata.Consideremos algunas características que se presentan# es un símbolo de pila que suele usarse como elemento de control paradetectar el fin de la pila.La palabra vacía & juega de distinta manera según las tres posiciones quepuede ocupar en la flecha de la transición.En primer lugar sobre la flecha significa que no se lee nada de la tira y lamisma no avanza una posición,En segundo lugar no extraemos nada de la pilaEn tercer lugar no ponemos nada en la pila.Vamos a dar un ejemplo de un autómata a pila que justamente reconoce laspalabras del lenguaje (xnyn/n es N) para el cual no existe autómata finito que loreconociera.
  • 3. El estado 0 es el de inicio. El 3 es el de aceptación.Al comenzar, asumiendo que la pila se encuentra vacía,la máquina seencuentra apuntando al primer símbolo de la tira.La transición &, &, # indica que no lee nada de la tira y no avanza a la segundacelda, la segunda & señala que no se saca nada de la pila, y # en tercer lugarnos dice que colocamos este símbolo en la pila en la parte superior y que lamisma por estar vacía, va a ser el único símbolo que lo ocupará. Finalmentepasa la maquina al estado 1. En este estado comenzamos a leer desde laprimera celda hacia la derecha .Por cada x que se lee de la celda no sacamosnada de la pila pero si colocamos la x en la pila en cada caso, y se pasa a laderecha con la cabeza lectora.Este proceso continua hasta que se lee una y. En ese momento tenemos la pilacon un símbolo # en el fondo y encima de ella tantas x como las que tenia lacinta en la primera parte. Al leerse la primera y, se extrae la x que esta en laparte superior de la pila. A continuación, en estado 2, por cada y que se lee dela tira, se retira una x de la pila, continuando con su desplazamiento a laderecha, Esto continua hasta que se terminan los símbolos de la tira. Perocomo en la pila, si hubo tantas y como x, quedo el símbolo # en la cabeza de lapila. Por lo tanto de realiza la transición &, #, & con lo que no se lee nada de latira, quedando la cabeza lectora en esa posición, se extrae el símbolo # de lapila (la pila queda vacía) y no coloca nada en la pila. Pasamos al estado 3, deaceptación, sobre el que no hay transición.De esta manera termina el proceso y como conclusión se tiene que sereconocerán como válidas aquellas tiras que tienen una cantidad inicial de x ala izquierda, seguidas con la misma cantidad de y.La palabra vacía no es aceptada. Eso podría ocurrir si el estado 0 fuesetambién de aceptación.
  • 4. AUTOMATAS DE PILA COMO ACEPTADORES DE LENGUAJESLos autómatas de pila se pueden utilizar para analizar cadenas en forma similara como se usan los autómatas finitos. Colocamos la cinta sobre la máquinaDesde su posición inicial, con la pila vacía, y declaramos que la cadena seaceptara si es “posible” que la máquina llegue a un estado de aceptacióndespués de leer toda la cinta. No quiere decir que la máquina debaencontrarse en un estado de aceptación inmediatamente después de leer elúltimo símbolo de la cadena de entrada. Puede ocurrir que después de leer elúltimo símbolo la máquina pueda ejecutar varias transiciones de la forma &, x, yantes de aceptar la cadena. Usamos “posible”, ya que estos autómatasque estamos considerando son no deterministas. Por esto deberían llamarsetécnicamente “autómatas de pila no deterministas”.De igual manera como hicimos con los autómatas del cap 1, llamaremos atodas las cadenas aceptadas por el autómata de pila M como el lenguajeaceptado por la maquina, representado por L(M). Remarquemos como lohicimos antes, que el lenguaje L(M) no es cualquier colección de cadenasaceptadas por M, sino la colección de todas las cadenas que acepta M.Es fácil obtener una clase importante de máquinas restringiendo lastransiciones a las del tipo x,&,&. De esta manera se ignora la participación de lapila, y pasa a depender exclusivamente del estado y del símbolo de entrada.En otras palabras estas máquinas, construidas de esta manera son losautómatas finitos. Por lo tanto, los lenguajes aceptados por los autómatas depila incluyen los lenguajes regulares.Recordemos que el criterio de aceptación que se proporcionó antes permiteque un autómata de pila declare la aceptación de una cadena sin que se tengaque vaciar antes la pila. En el siguiente ejemplo un autómata de pila basado enel siguiente diagrama aceptará el lenguaje (xm y n/m,n es N y m>=n), pues seaceptarán aquellas cadenas con más x que y, aunque queden x en la pila (Noaceptaría cadenas con más y que x, pues no podría leer todos los símbolos dedicha cadena.
  • 5. Habilitar esta posibilidad puede provocar inconvenientes en la programación delos autómatas de pila. Por so es preferible evitar la presencia de estosresiduos, por lo que se eligen autómatas de pila que vacíen su pilas antes dellegar al estado se aceptación.Teorema 2.1Para cada autómata de pila que acepte cadenas sin vaciar supila, existe un autómata que acepta el mismo lenguaje pero quevacíe su pila antes de de llegar a un estado de aceptación.Supongamos que tenemos un autómata de pila M que acepte cadenas sintener que vaciar necesariamente su pila. Vamos a modificar M de la siguientemanera. 1- Elimine la designación “inicial” del estado inicial de M. Añada un nuevo estado inicial y una transición que permita a M pasar del nuevo estado inicial al anterior a la vez que inserta en la pila un símbolo especial # (que no se encontraba anteriormente en T) 2- Elimine la característica de aceptación de cada estado de aceptación de M .Luego añada un estado p junto con las transiciones que permitan a la maquina pasa de cada uno de los antiguos estados de aceptación a p sin leer, extraer o insertar un símbolo. 3- Para cada x de T(sin incluir #), del estado p al q, introduzca la transición&, x, & 4- Añada un nuevo estado de aceptación q y del estado p al q la transición &, #, & Observe que la versión modificada de M solo marca el fondo de su pila antes de efectuar algún cálculo. Y luego simula los cálculos de la máquina original hasta el punto donde la máquina original habría declarado la aceptación de la entrada. Aquí la máquina modificada pasa al estado p , vacía su pila y luego pasa a su estado de aceptación q quitando la marca de fin de pila. Así tanto la máquina original como la modificada aceptan las mismas cadenas, aunque la versión modificada llega a su estado de aceptación únicamente cuando su pila esta vacía La figura siguiente muestra el resultado de aplicar la técnica presentada al diagrama anterior. Un autómata de pila basado en este nuevo diagrama aceptará exactamente las mismas cadenas que el original, pero no puede aceptar una cadena a menos que su pila se encuentre vacía.
  • 6. Recordemos que los autómatas que aquí consideramos son no deterministas .El proceso de modificación descripto puede introducir varios puntos de no determinismo por medio de las transiciones que conducen de los antiguos estados de aceptaron al nuevo estado p.Ejercicios1 Diseñe el autómata de pila M tal que L(M)= (x n ym x n/m,n es N )2 Cual es el lenguaje que acepta el automata de pila cuyo diagrama detransición se presenta a continiacion3 Modifique el diagrama de transición del ejercicio 2 para que el autómata depila acepte el mismo conjunto de cadenas pero con pila vacia
  • 7. 4 Muestre como puede combinarse 2 autómatas de pilas M1 y M2 para formarun solo autómata de pila que acepte el lenguaje L(m1) U L(M2)2.2 Gramáticas independientes de ContextoComenzamos en capítulo anterior analizando el concepto de gramática. En esemomento mostramos, en forma particular, las gramáticas regulares.Mostramos de ellas las características que presentaban las producciones,su parte izquierda es un símbolo no Terminal, mientras que la derecha podíaser Terminal, Terminal no Terminal o palabra vacía.Ahora caracterizaremos las Gramáticas independientes de contexto. Lasproducciones tendrán al igual que las regulares, un símbolo no Terminal a laizquierda mientras que la parte derecha es menos restrictiva, ya que solo tieneque ser un tira de símbolo terminales concatenados con no terminales encualquier orden.Ej S zMNz M aMa M z N bNb N zLas minúsculas son terminales y la mayúculas no terminales.Esta es una gramatica libre de contexto y el lenguaje que genera L(G) esque genera cadenas de la forma zaNzaNbMzbMz donde m,n pertenecen aLo de libre de contexto viene por que no intereza en que contexto se encuentrael no Terminal al aplicar cualquier producción.En un árbol de derivación en su proceso de generar palabras puedepresentarse dudas sobre cual es el no Terminal que debera reemplasarseEn un paso especifico de la derivación.La regla rutinaria que se utiliza essustituir el no Terminal que se encuentra más a la izquierda de la cadena asustituir.(tambien podria usarse regla por la derecha lo cual dria una derivaciónpor la derecha.Tambien se podrian usar otros criterios combinatorios y obtenerotras derivaciones).Los lenguajes generados por gramáticas libre de contexto se denominanlenguajes libres de contexto.Gramática libre de contexto y autómata de pilaTrataremos de ver ahora la relación entre los autómatas de pila y las gramáticas libre decontexto. Lo que hay es que los lenguajes generados por gramaticas indepenientes decontextos son exactamente los mismos lenguajes que acepten los autómatas de pila.
  • 8. Teorema 2.2 Para cada gramática G libre de contexto, existe unautómata de pila M tal que L(G)=L(M)Para su demostración dado G, libre de contexto, se construye un autómata de pila M queacepta el mismo lenguaje que genera la gramática.Teorema 2.3 Por cada autómata de pila existe una gramática Gindependiente de contexto tal que L(M)=L(G).La idea sigue siendo la misma, dado un autómata de pila M nuestra tarea ed produciruna gramática G libre de contexto que genere el lenguaje L(M).En resumen contamos ahora con dos caracterizaciones para los lenguajes independientesde contexto; son los lenguajes aceptados por autómatas de pila, así como los lenguajesgenerados por gramáticas independientes de contexto.Límites de los autómatas de pilaHasta ahora hemos concluido que los lenguajes independientes de contextocomo aquellos generados por gramáticas libre de contextoY como aquellos aceptados por los automtas de pila..Sin embargo no hemosconsiderado el acance de estos lenguajes, no nos hemos preguntado si existenlenguajes que no son librea de contextos.Ademas los autómatas de pila quehemos considerados hasta ahora son no deterministicos.Existe la consecuencia de un teorema que no demostraremos que N N NEl lenguaje (x y z /N es entero positivo) no es libre de contexto.

×