Automatas de pila

22
Autómatas de Pila Rafael Taveras 16-0391 Rawel Luciano 16-0511

Transcript of Automatas de pila

Autómatas de PilaRafael Taveras 16-0391Rawel Luciano 16-0511

Índice● Objetivos ● Introducción ● Máquina de Turing ● Autómatas con Pila● ¿Qué son los LLC?● Funcionamiento de los Autómatas de Pila● Diseño de los Autómatas de Pila● Combinación modular de AP● Formalización de los AP● Ejemplos Prácticos

Objetivos → Resumir de qué manera surgen los autómatas de pilas (AP).

→ Conocer los conceptos relacionados a los AP.

→ Explicar las condiciones para diseñar un AP.

→ Describir el funcionamiento de los AP.

→ Analizar y comprender ejercicios de AP.

Introducción● Puesto que los autómatas finitos no son suficientemente poderosos para

aceptar los LLC, cabe preguntarnos. Qué tipo de autómata se necesitaría para aceptar los LLC.?

→ Una idea es agregar algo a los AF de manera que se incremente su poder de cálculo.

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5

Ejemplos● Para ser más concretos, tomemos por ejemplo el lenguaje de los

paréntesis bien balanceados, que sabemos que es propiamente LLC. ● ¿Qué máquina se requiere para distinguir las palabras de paréntesis bien

balanceados de las que tienen los paréntesis desbalanceados?

→ Por ejemplo, para la palabra (())() el registro tomaría nuevamente los valores 1,2,1,0,1,0.

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5

Ejemplos→ Como un segundo ejemplo, considérese el lenguaje de los palíndromos (palabras que se leen igual al derecho y al revés, como ANITALAVALATINA).

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5

Autómatas con Pila ● Estos surgen como una alternativa para la creación de autómatas capaces

de aceptar los LLC (Lenguajes Libre de Contexto).

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5.1

¿Qué son los LLC?● Son los lenguajes formales que engloban a los lenguajes regulares y

constituyen los mecanismos de representación y reconocimiento de los lenguajes de programación desde el punto de vista sintáctico.

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5.2

Ejemplo - Máquina de Turing ● Es un dispositivo de reconocimientos de lenguaje, es más general que

cualquier autómata finito y cualquier autómata de pila, debido a que ellas pueden reconocer tanto los lenguajes regulares, como los lenguajes independientes de contexto y además muchos otros tipos de lenguajes.

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 6

Funcionamiento de los Autómatas de Pila● La pila funciona de manera que el último carácter que se almacena en ella es

el primero en salir (“LIFO por las siglas en inglés), como si apilamos platos uno encima de otro, y naturalmente el primero que quitaremos es el último que hemos colocado.

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5.1

Funcionamiento de los Autómatas de PilaAl igual que los AF, los AP tienen estados finales, que permiten distinguir cuando una palabra de entrada es aceptada.

De hecho, para que una palabra de entrada sea aceptada en un AP se deben cumplir todas las condiciones siguientes:

→ La palabra de entrada se debe haber agotado (consumido totalmente).

→ El AP se debe encontrar en un estado final.

→ La pila debe estar vacía.

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5 .1

Diseño de los Autómatas de PilaEn resumen, a la hora de diseñar un AP tenemos que repartir lo que requiere ser “recordado” entre los estados y la pila. Distintos diseños para un mismo problema pueden tomar decisiones diferentes en cuanto a que recuerda cada cual.

Ejemplo: Diseñar un AP que acepte exactamente el lenguaje con palabras de la forma anbn, para cualquier número natural n.

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5 .2

Diseño de los Autómatas de PilaEjemplo: Proponer un AP que acepte el lenguaje de los palíndromos con un número par de sımbolos, esto es, palabras que se leen igual de izquierda a derecha y de derecha a izquierda, y que tienen por tanto la forma wwR, donde wR es el reverso de w (esto es, invertir el orden), en el alfabeto {a, b}. Por ejemplo, las palabras abba, aa y bbbbbb pertenecen a este lenguaje, mientras que aab y aabaa no.

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5 .2

Ejemplos Prácticos

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5 .3

Combinación Modular de APEn los AP también es posible aplicar métodos de combinación modular de autómatas, como hicimos con los autómatas finitos. En particular, es posible obtener AP que acepte la unión y concatenación de los lenguajes aceptados por dos AP dados.

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5.2.1

Ejemplo - Combinación Modular de APEn el caso de la unión, dados dos AP M1 y M2 que aceptan respectivamente los lenguajes L1 y L2, podemos obtener un AP que acepte la unión, L1∪L2, introduciendo un nuevo estado inicial s0 con transiciones ε/ε/ε a los dos antiguos estados iniciales s1 y s2, como se ilustra en la figura.

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5.2.1

Formalización de los APUn autómata de pila es un séxtuplo (K,Σ,Γ,∆,s,F), donde:

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5 .3

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5 .4

Teorema

● Todo lenguaje aceptado por un AF es también aceptado por un AP● Este resultado debe quedar intuitivamente claro, puesto que los AP son

una extensión de los AF.

Relación entre AF y AP

Relación entre AP y LLC→ Ahora vamos a establecer el resultado por el que iniciamos el estudio de los AP, es decir, verificar si son efectivamente capaces de aceptar los LLC.

Teorema

Los autómatas de pila aceptan exactamente los LLC. La prueba de este teorema se puede dividir en dos partes:

1. Si M es un AP, entonces L(M) es un LLC

2. Si L es un LLC, entonces hay un AP M tal que L(M) = L

Ejemplos Prácticos

Brena, R. (2003, 07). Lenguajes Libres de Contexto y sus Máquinas. Obtenido 02, 2016, de Autómatas y Lenguajes: Capítulo 5 .3