SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
AUTOMATAS DE PILA

Definició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ómatas
finitos.
La diferencia con aquellos es que el símbolo leído, x , tenia en cuenta el estado
de la máquina A, donde se encontraba y la función de transición ubicada en el
par ordenado (A,x) nos daba el destino del nuevo estado B. Utilizando el
correspondiente grafo esta transición se manifestaba como
Las transiciones en los autómatas de pila se representan en cambio




A es el estado origen donde se encuentra la máquina. Si la tira en la celda
señala por la cabeza lectora tiene el símbolo al x, lee lo que tiene la pila en su
cabeza 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 sobre
la cabeza lectora con la pila vacía.

Lo importante es el agregado a los autómatas finitos de un sistema de memoria
interna en forma de pila con lo que se incrementa considerablemente el
potencial 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 para
detectar el fin de la pila.
La palabra vacía & juega de distinta manera según las tres posiciones que
puede ocupar en la flecha de la transición.
En primer lugar sobre la flecha significa que no se lee nada de la tira y la
misma no avanza una posición,
En segundo lugar no extraemos nada de la pila
En tercer lugar no ponemos nada en la pila.



Vamos a dar un ejemplo de un autómata a pila que justamente reconoce las
palabras del lenguaje (xnyn/n es N) para el cual no existe autómata finito que lo
reconociera.
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 se
encuentra apuntando al primer símbolo de la tira.
La transición &, &, # indica que no lee nada de la tira y no avanza a la segunda
celda, la segunda & señala que no se saca nada de la pila, y # en tercer lugar
nos dice que colocamos este símbolo en la pila en la parte superior y que la
misma por estar vacía, va a ser el único símbolo que lo ocupará. Finalmente
pasa la maquina al estado 1. En este estado comenzamos a leer desde la
primera celda hacia la derecha .Por cada x que se lee de la celda no sacamos
nada de la pila pero si colocamos la x en la pila en cada caso, y se pasa a la
derecha con la cabeza lectora.
Este proceso continua hasta que se lee una y. En ese momento tenemos la pila
con un símbolo # en el fondo y encima de ella tantas x como las que tenia la
cinta en la primera parte. Al leerse la primera y, se extrae la x que esta en la
parte superior de la pila. A continuación, en estado 2, por cada y que se lee de
la tira, se retira una x de la pila, continuando con su desplazamiento a la
derecha, Esto continua hasta que se terminan los símbolos de la tira. Pero
como en la pila, si hubo tantas y como x, quedo el símbolo # en la cabeza de la
pila. Por lo tanto de realiza la transición &, #, & con lo que no se lee nada de la
tira, quedando la cabeza lectora en esa posición, se extrae el símbolo # de la
pila (la pila queda vacía) y no coloca nada en la pila. Pasamos al estado 3, de
aceptación, sobre el que no hay transición.
De esta manera termina el proceso y como conclusión se tiene que se
reconocerán como válidas aquellas tiras que tienen una cantidad inicial de x a
la izquierda, seguidas con la misma cantidad de y.
La palabra vacía no es aceptada. Eso podría ocurrir si el estado 0 fuese
también de aceptación.
AUTOMATAS DE PILA COMO ACEPTADORES DE LENGUAJES


Los autómatas de pila se pueden utilizar para analizar cadenas en forma similar
a como se usan los autómatas finitos. Colocamos la cinta sobre la máquina
Desde su posición inicial, con la pila vacía, y declaramos que la cadena se
aceptara si es “posible” que la máquina llegue a un estado de aceptación
después de leer toda la cinta. No quiere decir que la máquina deba
encontrarse 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, y
antes de aceptar la cadena. Usamos “posible”, ya que estos autómatas
que estamos considerando son no deterministas. Por esto deberían llamarse
técnicamente “autómatas de pila no deterministas”.
De igual manera como hicimos con los autómatas del cap 1, llamaremos a
todas las cadenas aceptadas por el autómata de pila M como el lenguaje
aceptado por la maquina, representado por L(M). Remarquemos como lo
hicimos antes, que el lenguaje L(M) no es cualquier colección de cadenas
aceptadas por M, sino la colección de todas las cadenas que acepta M.
Es fácil obtener una clase importante de máquinas restringiendo las
transiciones a las del tipo x,&,&. De esta manera se ignora la participación de la
pila, y pasa a depender exclusivamente del estado y del símbolo de entrada.
En otras palabras estas máquinas, construidas de esta manera son los
autómatas finitos. Por lo tanto, los lenguajes aceptados por los autómatas de
pila incluyen los lenguajes regulares.

Recordemos que el criterio de aceptación que se proporcionó antes permite
que un autómata de pila declare la aceptación de una cadena sin que se tenga
que vaciar antes la pila. En el siguiente ejemplo un autómata de pila basado en
el siguiente diagrama aceptará el lenguaje (xm y n/m,n es N y m>=n), pues se
aceptarán aquellas cadenas con más x que y, aunque queden x en la pila (No
aceptaría cadenas con más y que x, pues no podría leer todos los símbolos de
dicha cadena.
Habilitar esta posibilidad puede provocar inconvenientes en la programación de
los autómatas de pila. Por so es preferible evitar la presencia de estos
residuos, por lo que se eligen autómatas de pila que vacíen su pilas antes de
llegar al estado se aceptación.

Teorema 2.1

Para cada autómata de pila que acepte cadenas sin vaciar su
pila, existe un autómata que acepta el mismo lenguaje pero que
vací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 sin
tener que vaciar necesariamente su pila. Vamos a modificar M de la siguiente
manera.

   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.
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.




Ejercicios

1 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 de
transición se presenta a continiacion




3 Modifique el diagrama de transición del ejercicio 2 para que el autómata de
pila acepte el mismo conjunto de cadenas pero con pila vacia
4 Muestre como puede combinarse 2 autómatas de pilas M1 y M2 para formar
un solo autómata de pila que acepte el lenguaje L(m1) U L(M2)

2.2 Gramáticas independientes de Contexto
Comenzamos en capítulo anterior analizando el concepto de gramática. En ese
momento 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ía
ser Terminal, Terminal no Terminal o palabra vacía.
Ahora caracterizaremos las Gramáticas independientes de contexto. Las
producciones tendrán al igual que las regulares, un símbolo no Terminal a la
izquierda mientras que la parte derecha es menos restrictiva, ya que solo tiene
que ser un tira de símbolo terminales concatenados con no terminales en
cualquier orden.


Ej
                                     S    zMNz
                                     M    aMa
                                     M    z
                                     N     bNb
                                     N     z

Las minúsculas son terminales y la mayúculas no terminales.
Esta es una gramatica libre de contexto y el lenguaje que genera L(G) es
que genera cadenas de la forma zaNzaNbMzbMz donde m,n pertenecen a
Lo de libre de contexto viene por que no intereza en que contexto se encuentra
el no Terminal al aplicar cualquier producción.

En un árbol de derivación en su proceso de generar palabras puede
presentarse dudas sobre cual es el no Terminal que debera reemplasarse
En un paso especifico de la derivación.La regla rutinaria que se utiliza es
sustituir el no Terminal que se encuentra más a la izquierda de la cadena a
sustituir.(tambien podria usarse regla por la derecha lo cual dria una derivación
por la derecha.Tambien se podrian usar otros criterios combinatorios y obtener
otras derivaciones).

Los lenguajes generados por gramáticas libre de contexto se denominan
lenguajes libres de contexto.


Gramática libre de contexto y autómata de pila
Trataremos de ver ahora la relación entre los autómatas de pila y las gramáticas libre de
contexto. Lo que hay es que los lenguajes generados por gramaticas indepenientes de
contextos son exactamente los mismos lenguajes que acepten los autómatas de pila.
Teorema 2.2 Para cada gramática G libre de contexto, existe un
autó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 que
acepta el mismo lenguaje que genera la gramática.

Teorema 2.3 Por cada autómata de pila existe una gramática G
independiente de contexto tal que L(M)=L(G).

La idea sigue siendo la misma, dado un autómata de pila M nuestra tarea ed producir
una gramática G libre de contexto que genere el lenguaje L(M).

En resumen contamos ahora con dos caracterizaciones para los lenguajes independientes
de contexto; son los lenguajes aceptados por autómatas de pila, así como los lenguajes
generados por gramáticas independientes de contexto.


Límites de los autómatas de pila

Hasta ahora hemos concluido que los lenguajes independientes de contexto
como aquellos generados por gramáticas libre de contexto
Y como aquellos aceptados por los automtas de pila..Sin embargo no hemos
considerado el acance de estos lenguajes, no nos hemos preguntado si existen
lenguajes que no son librea de contextos.Ademas los autómatas de pila que
hemos considerados hasta ahora son no deterministicos.

Existe la consecuencia de un teorema que no demostraremos que
              N N N
El lenguaje (x y z /N es entero positivo) no es libre de contexto.

Más contenido relacionado

La actualidad más candente

Presentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado FinitoPresentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado Finitojunito86
 
Tipos de autómatas
Tipos de autómatasTipos de autómatas
Tipos de autómatasCesar Garcia
 
Autómatas probabilísticos
Autómatas probabilísticosAutómatas probabilísticos
Autómatas probabilísticosMerlyn Perez
 
Certificación java 6 cap 5
Certificación java 6 cap 5Certificación java 6 cap 5
Certificación java 6 cap 5srBichoRaro
 
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de TuringPortafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de TuringHumano Terricola
 
Sistemas AutÓmatas.
Sistemas AutÓmatas.Sistemas AutÓmatas.
Sistemas AutÓmatas.jengibre
 
Funciones y sentencias
Funciones y sentencias Funciones y sentencias
Funciones y sentencias tytoramirez
 
Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turingJesus David
 
Presentación Autómatas Finito No Deterministico
Presentación  Autómatas Finito No DeterministicoPresentación  Autómatas Finito No Deterministico
Presentación Autómatas Finito No DeterministicoScarlinr
 
Examen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes FormalesExamen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes FormalesDiego Perdomo
 
Reny Galaviz Web Quest
Reny Galaviz Web QuestReny Galaviz Web Quest
Reny Galaviz Web QuestReny-Galaviz
 
Programacion MatLab
Programacion MatLabProgramacion MatLab
Programacion MatLabEdgar Galvez
 
Automatas de estado finito
Automatas de estado finitoAutomatas de estado finito
Automatas de estado finitoElizabethSola
 

La actualidad más candente (20)

Presentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado FinitoPresentacion 2 - Maquinas de Estado Finito
Presentacion 2 - Maquinas de Estado Finito
 
Matematica discreta
Matematica discreta Matematica discreta
Matematica discreta
 
Maquina de turing
Maquina de turingMaquina de turing
Maquina de turing
 
Maquinas de estado finito mapa mental
Maquinas de estado finito mapa mentalMaquinas de estado finito mapa mental
Maquinas de estado finito mapa mental
 
Tipos de autómatas
Tipos de autómatasTipos de autómatas
Tipos de autómatas
 
Autómatas probabilísticos
Autómatas probabilísticosAutómatas probabilísticos
Autómatas probabilísticos
 
Certificación java 6 cap 5
Certificación java 6 cap 5Certificación java 6 cap 5
Certificación java 6 cap 5
 
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de TuringPortafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
Portafolio Unidad 4 [Lenguajes y autómatas] - Máquinas de Turing
 
Sistemas AutÓmatas.
Sistemas AutÓmatas.Sistemas AutÓmatas.
Sistemas AutÓmatas.
 
Funciones y sentencias
Funciones y sentencias Funciones y sentencias
Funciones y sentencias
 
Maquinas de turing
Maquinas de turingMaquinas de turing
Maquinas de turing
 
Presentación Autómatas Finito No Deterministico
Presentación  Autómatas Finito No DeterministicoPresentación  Autómatas Finito No Deterministico
Presentación Autómatas Finito No Deterministico
 
Modulo2b
Modulo2bModulo2b
Modulo2b
 
Examen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes FormalesExamen final Autómatas y Lenguajes Formales
Examen final Autómatas y Lenguajes Formales
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Reny Galaviz Web Quest
Reny Galaviz Web QuestReny Galaviz Web Quest
Reny Galaviz Web Quest
 
C++
C++C++
C++
 
Programacion MatLab
Programacion MatLabProgramacion MatLab
Programacion MatLab
 
Automatas de estado finito
Automatas de estado finitoAutomatas de estado finito
Automatas de estado finito
 
Evaluación
EvaluaciónEvaluación
Evaluación
 

Similar a Automatas

Maquinas de estado
Maquinas de estadoMaquinas de estado
Maquinas de estado_05mauricio
 
Automatas 2014 s1 guía
Automatas 2014 s1 guíaAutomatas 2014 s1 guía
Automatas 2014 s1 guíaraflhax
 
Unidad temática iv
Unidad temática ivUnidad temática iv
Unidad temática ivJackieHee27
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.guestdf1874
 
Articulo Autómata (push down)
Articulo Autómata (push down)Articulo Autómata (push down)
Articulo Autómata (push down)Scarlinr
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3Germania Rodriguez
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingJonathan Bastidas
 
Máquina de turing
Máquina de turingMáquina de turing
Máquina de turingIvan
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De TuringRicardo Quintero
 
Introducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by YeredithIntroducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by Yeredithyeredith1
 
Analizador LÉxico
Analizador LÉxicoAnalizador LÉxico
Analizador LÉxicoFARIDROJAS
 
Matematica discreta1
Matematica discreta1Matematica discreta1
Matematica discreta1kellyjaclyn
 

Similar a Automatas (20)

Maquinas de estado
Maquinas de estadoMaquinas de estado
Maquinas de estado
 
Automatas 2014 s1 guía
Automatas 2014 s1 guíaAutomatas 2014 s1 guía
Automatas 2014 s1 guía
 
Unidad temática iv
Unidad temática ivUnidad temática iv
Unidad temática iv
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.
 
Automatas[1]
Automatas[1]Automatas[1]
Automatas[1]
 
Circuito secuencial
Circuito secuencialCircuito secuencial
Circuito secuencial
 
Articulo Autómata (push down)
Articulo Autómata (push down)Articulo Autómata (push down)
Articulo Autómata (push down)
 
Automatas y compiladores clase3
Automatas y compiladores clase3Automatas y compiladores clase3
Automatas y compiladores clase3
 
Los lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turingLos lenguajes aceptados para una maquina de turing
Los lenguajes aceptados para una maquina de turing
 
Autómata de Pila
Autómata de Pila Autómata de Pila
Autómata de Pila
 
Conversion
ConversionConversion
Conversion
 
Máquina de turing
Máquina de turingMáquina de turing
Máquina de turing
 
Parte 4 Máquinas De Turing
Parte 4  Máquinas De  TuringParte 4  Máquinas De  Turing
Parte 4 Máquinas De Turing
 
Fnch
FnchFnch
Fnch
 
Taller nro 24
Taller nro 24Taller nro 24
Taller nro 24
 
Introducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by YeredithIntroducción a la Teoría de Autómatas by Yeredith
Introducción a la Teoría de Autómatas by Yeredith
 
Expocision u3
Expocision  u3Expocision  u3
Expocision u3
 
Tema2
Tema2Tema2
Tema2
 
Analizador LÉxico
Analizador LÉxicoAnalizador LÉxico
Analizador LÉxico
 
Matematica discreta1
Matematica discreta1Matematica discreta1
Matematica discreta1
 

Automatas

  • 1. AUTOMATAS DE PILA Definició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ómatas finitos. La diferencia con aquellos es que el símbolo leído, x , tenia en cuenta el estado de la máquina A, donde se encontraba y la función de transición ubicada en el par ordenado (A,x) nos daba el destino del nuevo estado B. Utilizando el correspondiente grafo esta transición se manifestaba como
  • 2. Las transiciones en los autómatas de pila se representan en cambio A es el estado origen donde se encuentra la máquina. Si la tira en la celda señala por la cabeza lectora tiene el símbolo al x, lee lo que tiene la pila en su cabeza 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 sobre la cabeza lectora con la pila vacía. Lo importante es el agregado a los autómatas finitos de un sistema de memoria interna en forma de pila con lo que se incrementa considerablemente el potencial 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 para detectar el fin de la pila. La palabra vacía & juega de distinta manera según las tres posiciones que puede ocupar en la flecha de la transición. En primer lugar sobre la flecha significa que no se lee nada de la tira y la misma no avanza una posición, En segundo lugar no extraemos nada de la pila En tercer lugar no ponemos nada en la pila. Vamos a dar un ejemplo de un autómata a pila que justamente reconoce las palabras del lenguaje (xnyn/n es N) para el cual no existe autómata finito que lo reconociera.
  • 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 se encuentra apuntando al primer símbolo de la tira. La transición &, &, # indica que no lee nada de la tira y no avanza a la segunda celda, la segunda & señala que no se saca nada de la pila, y # en tercer lugar nos dice que colocamos este símbolo en la pila en la parte superior y que la misma por estar vacía, va a ser el único símbolo que lo ocupará. Finalmente pasa la maquina al estado 1. En este estado comenzamos a leer desde la primera celda hacia la derecha .Por cada x que se lee de la celda no sacamos nada de la pila pero si colocamos la x en la pila en cada caso, y se pasa a la derecha con la cabeza lectora. Este proceso continua hasta que se lee una y. En ese momento tenemos la pila con un símbolo # en el fondo y encima de ella tantas x como las que tenia la cinta en la primera parte. Al leerse la primera y, se extrae la x que esta en la parte superior de la pila. A continuación, en estado 2, por cada y que se lee de la tira, se retira una x de la pila, continuando con su desplazamiento a la derecha, Esto continua hasta que se terminan los símbolos de la tira. Pero como en la pila, si hubo tantas y como x, quedo el símbolo # en la cabeza de la pila. Por lo tanto de realiza la transición &, #, & con lo que no se lee nada de la tira, quedando la cabeza lectora en esa posición, se extrae el símbolo # de la pila (la pila queda vacía) y no coloca nada en la pila. Pasamos al estado 3, de aceptación, sobre el que no hay transición. De esta manera termina el proceso y como conclusión se tiene que se reconocerán como válidas aquellas tiras que tienen una cantidad inicial de x a la izquierda, seguidas con la misma cantidad de y. La palabra vacía no es aceptada. Eso podría ocurrir si el estado 0 fuese también de aceptación.
  • 4. AUTOMATAS DE PILA COMO ACEPTADORES DE LENGUAJES Los autómatas de pila se pueden utilizar para analizar cadenas en forma similar a como se usan los autómatas finitos. Colocamos la cinta sobre la máquina Desde su posición inicial, con la pila vacía, y declaramos que la cadena se aceptara si es “posible” que la máquina llegue a un estado de aceptación después de leer toda la cinta. No quiere decir que la máquina deba encontrarse 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, y antes de aceptar la cadena. Usamos “posible”, ya que estos autómatas que estamos considerando son no deterministas. Por esto deberían llamarse técnicamente “autómatas de pila no deterministas”. De igual manera como hicimos con los autómatas del cap 1, llamaremos a todas las cadenas aceptadas por el autómata de pila M como el lenguaje aceptado por la maquina, representado por L(M). Remarquemos como lo hicimos antes, que el lenguaje L(M) no es cualquier colección de cadenas aceptadas por M, sino la colección de todas las cadenas que acepta M. Es fácil obtener una clase importante de máquinas restringiendo las transiciones a las del tipo x,&,&. De esta manera se ignora la participación de la pila, y pasa a depender exclusivamente del estado y del símbolo de entrada. En otras palabras estas máquinas, construidas de esta manera son los autómatas finitos. Por lo tanto, los lenguajes aceptados por los autómatas de pila incluyen los lenguajes regulares. Recordemos que el criterio de aceptación que se proporcionó antes permite que un autómata de pila declare la aceptación de una cadena sin que se tenga que vaciar antes la pila. En el siguiente ejemplo un autómata de pila basado en el siguiente diagrama aceptará el lenguaje (xm y n/m,n es N y m>=n), pues se aceptarán aquellas cadenas con más x que y, aunque queden x en la pila (No aceptaría cadenas con más y que x, pues no podría leer todos los símbolos de dicha cadena.
  • 5. Habilitar esta posibilidad puede provocar inconvenientes en la programación de los autómatas de pila. Por so es preferible evitar la presencia de estos residuos, por lo que se eligen autómatas de pila que vacíen su pilas antes de llegar al estado se aceptación. Teorema 2.1 Para cada autómata de pila que acepte cadenas sin vaciar su pila, existe un autómata que acepta el mismo lenguaje pero que vací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 sin tener que vaciar necesariamente su pila. Vamos a modificar M de la siguiente manera. 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. Ejercicios 1 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 de transición se presenta a continiacion 3 Modifique el diagrama de transición del ejercicio 2 para que el autómata de pila 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 formar un solo autómata de pila que acepte el lenguaje L(m1) U L(M2) 2.2 Gramáticas independientes de Contexto Comenzamos en capítulo anterior analizando el concepto de gramática. En ese momento 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ía ser Terminal, Terminal no Terminal o palabra vacía. Ahora caracterizaremos las Gramáticas independientes de contexto. Las producciones tendrán al igual que las regulares, un símbolo no Terminal a la izquierda mientras que la parte derecha es menos restrictiva, ya que solo tiene que ser un tira de símbolo terminales concatenados con no terminales en cualquier orden. Ej S zMNz M aMa M z N bNb N z Las minúsculas son terminales y la mayúculas no terminales. Esta es una gramatica libre de contexto y el lenguaje que genera L(G) es que genera cadenas de la forma zaNzaNbMzbMz donde m,n pertenecen a Lo de libre de contexto viene por que no intereza en que contexto se encuentra el no Terminal al aplicar cualquier producción. En un árbol de derivación en su proceso de generar palabras puede presentarse dudas sobre cual es el no Terminal que debera reemplasarse En un paso especifico de la derivación.La regla rutinaria que se utiliza es sustituir el no Terminal que se encuentra más a la izquierda de la cadena a sustituir.(tambien podria usarse regla por la derecha lo cual dria una derivación por la derecha.Tambien se podrian usar otros criterios combinatorios y obtener otras derivaciones). Los lenguajes generados por gramáticas libre de contexto se denominan lenguajes libres de contexto. Gramática libre de contexto y autómata de pila Trataremos de ver ahora la relación entre los autómatas de pila y las gramáticas libre de contexto. Lo que hay es que los lenguajes generados por gramaticas indepenientes de contextos 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 un autó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 que acepta el mismo lenguaje que genera la gramática. Teorema 2.3 Por cada autómata de pila existe una gramática G independiente de contexto tal que L(M)=L(G). La idea sigue siendo la misma, dado un autómata de pila M nuestra tarea ed producir una gramática G libre de contexto que genere el lenguaje L(M). En resumen contamos ahora con dos caracterizaciones para los lenguajes independientes de contexto; son los lenguajes aceptados por autómatas de pila, así como los lenguajes generados por gramáticas independientes de contexto. Límites de los autómatas de pila Hasta ahora hemos concluido que los lenguajes independientes de contexto como aquellos generados por gramáticas libre de contexto Y como aquellos aceptados por los automtas de pila..Sin embargo no hemos considerado el acance de estos lenguajes, no nos hemos preguntado si existen lenguajes que no son librea de contextos.Ademas los autómatas de pila que hemos considerados hasta ahora son no deterministicos. Existe la consecuencia de un teorema que no demostraremos que N N N El lenguaje (x y z /N es entero positivo) no es libre de contexto.