La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs

Presentaciones similares


Presentación del tema: "Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs"— Transcripción de la presentación:

1 Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs
Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales y Autómatas Lic. M.I.K.

2 INTRODUCCIÓN En 1930,  A. Turing desarrolló una máquina abstracta denominada Máquina de Turing para el estudio de la computabilidad. Entre los años 1940 y 1950, se desarrollan unas máquinas simples, en cuanto su funcionamiento, que fueron conocidas como autómatas finitos, para modelar el funcionamiento del cerebro. También en los 1950, N. Chomsky comienza el estudio formal de las gramáticas (generadoras de lenguajes). En 1969,. Cook extiende el estudio de Turing, separando aquellos problemas que pueden ser solucionados de aquellos que en principio lo pueden ser pero que en la práctica toman demasiados recursos. Lenguajes Formales y Autómatas Lic. M.I.K.

3 ¿Por qué estudiar Teoría de Autómatas?
INTRODUCCIÓN ¿Por qué estudiar Teoría de Autómatas? Los Autómatas finitos y ciertas clases de gramáticas formales son usadas en el diseño y construcción de software. Ej.: Software para diseñar y chequear la conducta de circuitos digitales. El analizador léxico de un compilador. Software para escanear grandes volúmenes de texto para encontrar patrones. Software para verificar sistemas que tengan un número finito de estados, tales como protocolos de comunicación o de intercambio seguro de información.  Lenguajes Formales y Autómatas Lic. M.I.K.

4 INTRODUCCIÓN La Máquina de Turing ayuda a comprender que es lo que podemos esperar de nuestro software. Es decir lo límites de la Computación Decidibilidad, ¿qué puede hacer un computador?. Intratabilidad, ¿qué puede hacer un computador eficientemente?. Lenguajes Formales y Autómatas Lic. M.I.K.

5 ¿Pero… que es un Autómata?
INTRODUCCIÓN ¿Pero… que es un Autómata? Son abstracciones matemáticas que capturan solamente el aspecto referente a las secuencias de eventos que ocurren: su funcionamiento Lenguajes Formales y Autómatas Lic. M.I.K.

6 ¿Qué Máquinas Abstractas se conocen?
INTRODUCCIÓN ¿Qué Máquinas Abstractas se conocen? Autómatas Finitos. Autómatas a Pila. Autómatas linealmente acotados. Máquina de Turing. Lenguajes Formales y Autómatas Lic. M.I.K.

7 Modelado de Sistemas Discretos
INTRODUCCIÓN Modelado de Sistemas Discretos El modelado de fenómenos y procesos es una actividad que permite: Verificar hipótesis sobre dichos procesos Efectuar predicciones sobre el comportamiento futuro Hacer simulaciones (eventualmente computarizadas) Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

8 Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs
Introducción Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales y Autómatas Lic. M.I.K.

9 Definición formal de Autómatas Finito
Modelo de autómata finito para un interruptor de encendido / apagado pulsar pulsar Lenguajes Formales y Autómatas Lic. M.I.K.

10 Definición formal de Autómatas Finito
El interruptor puede encontrarse en dos situaciones distintas: apagado o encendido. El interruptor sólo puede recibir un estímulo exterior: que se pulse su botón. Es frecuente que inicialmente el interruptor esté apagado. En este caso, puede considerarse que la salida del sistema es el funcionamiento del dispositivo que controle (una bombilla, por ejemplo). Lenguajes Formales y Autómatas Lic. M.I.K.

11 Definición formal de Autómatas Finito
El análisis del comportamiento del autómata del interruptor sugiere dividir la descripción formal del mismo en dos partes: Entradas (externas), Que representan los estímulos del exterior a los que puede reaccionar el autómata. Estados (internos) y transiciones, Los estados representan las diferentes situaciones en las que se puede encontrar el autómata. Recuerdan la historia del sistema En el caso del interruptor: encendido y apagado Las Transiciones representan el cambio del autómata de un estado a otro debido a las entradas. Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

12 Definición formal de Autómatas Finito
Un autómata finito determinista se puede definir como una quíntupla A=(Q, , , q0, F) Donde: Q es un conjunto finito no vacío de estados.  es el alfabeto de entrada. :QQ es la función de transición que, a cada pareja de estados y símbolos de entrada (q,a), le asigna un nuevo estado q’= (q,a). q0Q es el estado inicial del autómata. FQ es el conjunto de estados de finalización del autómata. Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

13 Definición formal de Autómatas Finito
A continuación se muestra la formalización del ejemplo del interruptor: A1 = ( Q1, 1, 1, 0, F ) Donde El conjunto de estados representa encendido con 1 y apagado con 0. Q1={0, 1} El alfabeto de entrada representa pulsar con p. 1={p} El estado inicial q0 es que esté apagado (0). En este autómata no se indican estados finales (F es el conjunto vacío). La función de transición se muestra mediante la notación habitual en teoría de conjuntos. Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

14 Definición formal de Autómatas Finito
Función de transición del ejemplo Q Q 1 ( 0, p) 1 (1, p) Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

15 Definición formal de Autómatas Finito
Diagrama de transición p 1 p Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

16 Definición formal de Autómatas Finito
Otra forma de representar formalmente un AF, es a través de las tablas de transición p 1 1 1 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

17 Definición formal de Autómatas Finito
Una aplicación muy importante de los autómatas finitos y que será estudiada a lo largo de este curso es su capacidad de reconocer palabras. El autómata reconocerá una palabra si, tras procesar la secuencia de sus símbolos en el mismo orden en el que aparece, termina en un estado final. En este sentido el conjunto de estados finales, que indica que el funcionamiento del autómata ha terminado de forma exitosa, realmente indica que la palabra tratada por él ha sido reconocida Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

18 Definición formal de Autómatas Finito
Como funciona un AFD Veamos el siguiente diagrama, corresponde a un AFD que acepta todas las hileras que contienen la subcadena “01” AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } /1 qq0q0 q1 q2 q0 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

19 Definición formal de Autómatas Finito
Para la hilera w = que pertenece al lenguaje w = 00111 AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q1 1 /1 q0 q1 q2 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

20 Definición formal de Autómatas Finito
Para la hilera w = que pertenece al lenguaje w = 00111 AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q1 1 /1 qq0q0 q1 q2 q0 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

21 Definición formal de Autómatas Finito
Para la hilera w = que pertenece al lenguaje w = 00111 AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q1 1 /1 qq0q0q0 q1 q2 q0 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

22 Definición formal de Autómatas Finito
Para la hilera w = que pertenece al lenguaje w = 00111 AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q q2 /1 qq0q0q0 q1 q2 q0 q1 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

23 Definición formal de Autómatas Finito
Para la hilera w = que pertenece al lenguaje w = 00111 AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q q2 /1 qq0q0q0 q1 q2 q0 q1 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

24 Definición formal de Autómatas Finito
Para la hilera w = que pertenece al lenguaje w = Si la reconoce AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q q2 /1 qq0q0q0 q1 q2 q0 q1 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

25 Definición formal de Autómatas Finito
Para la hilera w = 1100 que no pertenece al lenguaje w = 1100 AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q1 1 /1 q0 q1 q2 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

26 Definición formal de Autómatas Finito
Para la hilera w = 1100 que no pertenece al lenguaje w = 1100 AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q1 1 /1 qq0q0 qq1 q2 q0 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

27 Definición formal de Autómatas Finito
Para la hilera w = 1100 que no pertenece al lenguaje w = 1100 AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q1 1 /1 qq0q0 qq1 q2 q0 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

28 Definición formal de Autómatas Finito
Para la hilera w = 1100 que no pertenece al lenguaje w = 1100 AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q1 1 /1 qq0q0 q1 q2 q0 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

29 Definición formal de Autómatas Finito
Para la hilera w = 1100 que no pertenece al lenguaje w = No la reconoce AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ } 0 q1 1 /1 qq0q0 q1 q2 q0 Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

30 Definición formal de Autómatas Finito
El lenguaje aceptado por una máquina M es el conjunto de palabras aceptadas por dicha máquina Definición 2: Una palabra w є ∑* es aceptada por una máquina M = ( Q, , , q0 , F) ssi existe un estado q є F tal que (q0, w)  (q, λ ) Notar: que no es suficiente llegar a un estado final q, sino que además no deben quedar caracteres por leer. Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

31 Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs
Introducción Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales y Autómatas Lic. M.I.K.

32 Métodos de Diseño de AFDs
Considérese el problema de construir un AFD que acepte exactamente el lenguaje dado. Este problema es comúnmente llamado “problema de diseño”. No es conveniente proceder por ensayo y error, pues puede pasar que: Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

33 Métodos de Diseño de AFDs
Que sobren palabras  Solución Incorrecta Que falten palabras  Solución Incompleta Por ello es necesario diseñar los AFD de una manera más sistemática, que consiste en determinar, de manera explícita, que condición “recuerda” cada uno de los estados del AFD Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

34 Métodos de Diseño de AFDs
Ejemplo: Diseñar un AFD que acepte exactamente el lenguaje sobre el alfabeto {0, 1} en que las palabras no comienzan con 00 Solución: Para emprender el diseño en forma metódica, comenzamos por determinar las condiciones que son importantes recordar, y asociamos un estado a cada una de estas condiciones. Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

35 Métodos de Diseño de AFDs
Ejemplo: Diseñar un AFD que acepte exactamente el lenguaje sobre el alfabeto {0, 1} en que las palabras no comienzan con 00 Pero primero debemos comprender que nos piden. w1 = w2 = w3 = λ w4 = Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

36 Métodos de Diseño de AFDs
Ejemplo: Diseñar un AFD que acepte exactamente el lenguaje sobre el alfabeto {0, 1} en que las palabras no comienzan con 00 Ahora podemos determinar las condiciones y asociarlas a un estado. Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

37 Métodos de Diseño de AFDs
Estado Condición q0 No se han recibido caracteres q1 Se ha recibido un cero al inicio q2 Se han recibido dos ceros iniciales q3 Se recibió algo que no son dos ceros iniciales w1 = w2 = w3 = λ w4 = Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

38 Métodos de Diseño de AFDs
1 x1= 0001 x2= 0100 x3 = 1100 q1 q0 q2 q3 Estado condición q0 No se recibió caracteres q1 Cero al inicio q2 Dos ceros iniciales q3 Algo que no son dos ceros Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

39 Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs
Introducción Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales y Autómatas Lic. M.I.K.

40 Diseño por conjuntos de estados
Es posible llevar más allá el método de asociar una condición a cada estado: Vamos a asociar condiciones a grupos de estados más que a estados individuales. Consiste en identificar inicialmente condiciones asociadas al enunciado del problema, aunque estas no sean suficientemente específicas para hacerlo a estados individuales. Aumentamos el grado de abstracción para tratar problemas más complejos. Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

41 Diseño por conjuntos de estados
Ejemplo: Diseñar un AFD que acepte las palabras del lenguaje en { a , b } donde las palabras no contienen la subcadena bb pero si la aa. Vemos algunas cadenas y1= babaaba y2= bababb y3= ababab Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

42 Diseño por conjuntos de estados
A partir del enunciado identificamos las siguientes situaciones: Las letras consumidas hasta el momento no contienen aa ni bb (y3= ababab) Contienen aa pero no bb (y1= babaaba ) Contienen bb (y2= bababb ) Estas condiciones cumplen dos requisitos: Excluyentes Comprensivas Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

43 Diseño por conjuntos de estados
b b aa pero no bb aa pero no bb a Ni bb ni aa bb Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

44 Diseño por conjuntos de estados
Ahora se subdividen las “nubes” asociando a estados individuales, Las letras consumidas hasta el momento no contienen ni aa ni bb Inicial, no se han recibido caracteres (A) Se acaba de recibir una a (B ) Se acaba de recibir una b (C) b B A Ni bb ni aa C Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

45 Diseño por conjuntos de estados
Debemos trazar las transacciones para los estados Inicial, no se han recibido caracteres (A) Se acaba de recibir una a (B ) Se acaba de recibir una b (C) a a b b B A Ni bb ni aa C Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

46 Diseño por conjuntos de estados
Las letras consumidas hasta el momento contienen aa pero no bb Se acaba de recibir una a ( D) Se acaba de recibir una b ( E ) D D aa pero no bb E E Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

47 Diseño por conjuntos de estados
Trazamos las transacciones para cada estado de esta nube Se acaba de recibir una a ( D) Se acaba de recibir una b ( E ) a a b b D D aa pero no bb E E Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

48 Diseño por conjuntos de estados
Las letras consumidas hasta el momento contienen bb ( aquí no hay subcondiciones) Quedaron 6 estados, cada uno de los cuales tiene una condición muy específica asociada. D D E E Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

49 Diseño por conjuntos de estados
Diseño a b a a a a b b b b a,b y1= babaaba y2= bababb y3= ababab D E B A C F Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

50 Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs
Introducción Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales y Autómatas Lic. M.I.K.

51 Diseño de AFD por Complemento
En ocasiones, para un cierto lenguaje L, es más sencillo encontrar exactamente el contrario. Si M = ( Q, , , q0 , F) es un autómata determinísta que acepta un lenguaje regular L, para construir un autómata Mc que acepte el lenguaje complemento de L ( * - L ), basta con intercambiar los estados finales de M en no finales y viceversa. Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

52 Diseño de AFD por Complemento
Formalmente: Mc = ( Q, , , q0 , Q - F) Así cuando una palabra es rechazada en M, ella es aceptada en Mc Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

53 Diseño de AFD por Complemento
Ejemplo: Obtener un AF para el lenguaje en {a,b}* de las palabras que no contienen la cadena “abaab” Solución: Primero obtenemos un AFD para el lenguaje cuyas palabras SI contienen la cadena “abaab”, utilizando grupos de estados. Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

54 Diseño de AFD por Complemento
= recuerda que la palabra no contiene aún abaab b b a a a b a a b b A abaa aba q0 a b Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

55 Diseño de AFD por Complemento
= recuerda que la palabra ya se reconoció la cadena a, b b B abaab abaab Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

56 Diseño de AFD por Complemento
AFD que reconoce el lenguaje con la cadena abaab b b a a a b a a,b a b b abaab abaa aba q0 a b Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

57 Diseño de AFD por Complemento
AFD que reconoce el lenguaje SIN cadena abaab b b a a a b a a,b a b b abaab abaa abaa aba q0 a b aba q0 a b Lenguajes Formales y Autómatas Lic. M.I.K. Lenguajes Formales y Autómatas Lic. M.I.K.

58 Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs
Introducción Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales y Autómatas Lic. M.I.K.

59 “Lenguajes y Autómatas: un enfoque de diseño” Ramón Brena – 2003
BIBLIOGRAFIA “Teoría de Autómatas y Lenguajes Formales” Enrique Alfonseca Cubero, Manuel Alfonseca Moreno, Roberto Morillon Salomón – 2007 “Introducción a la Teoría de Autómatas, Lenguajes y Computación” John Hopcroft, Jeffrey Ullman -2002 “Lenguajes y Autómatas: un enfoque de diseño” Ramón Brena – 2003 Lenguajes Formales y Autómatas Lic. M.I.K.


Descargar ppt "Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs"

Presentaciones similares


Anuncios Google