Diseño de Autómatas Finitos

Slides:



Advertisements
Presentaciones similares
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities scuola.
Advertisements

SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR
1 Datos sobre webloggers Datos extraidos de la encuesta a webloggers disponibles en la web de los autores.
el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
Introducción ¿Qué es un Algoritmo?
FRACCIONES.
La mediana La mediana es el valor tal que el 50 % de las observaciones son menores y 50 % de ellas son mayores a dicho valor. En otra palabras, la mediana.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS ( Resumen PYMES ) Noviembre de 2004.
1 INFORME RESUMEN SOBRE EL NIVEL DE UTILIZACION DE LAS TIC EN LAS EMPRESAS GALLEGAS (MICROEMPRESAS, resultados provisionales) 29 de julio de 2004.
AYUDA A LA FUNCIÓN DOCENTE Internet
TEMA 2 MÚLTIPLOS Y DIVISORES
Funciones lógicas y su simplificación
02- PLAN DOCENTE Febrero 2009 SIES – SISTEMA INTEGRADO DE EDUCACIÓN SUPERIOR.
Programación entera En muchos problemas reales las variables sólo pueden tomar valores enteros Ejemplos: decisiones sobre inversiones, compras, arranques,
Respuestas Buscando a Nemo.
ABECEDARIO FIGURAS GEOMÉTRICAS NÚMERO
SISTEMA DE NUMEROS NÚMEROS ENTEROS DIVISIBILIDAD NÚMEROS PRIMOS
Autómatas de pila (Pushdown automata)
Gramáticas.
Autómatas Finitos.
Diseño de AFN’s.
Autómata Finito Un autómata finito (AF) es un modelo de computación muy restringido, sin embargo tiene una gran aplicación en reconocimiento de patrones.
Álgebra 2010 Clase N° 1 Conjuntos numéricos I
DEFINICION DE TERMINOS SEMEJANTES
Unidad de competencia II Estadística descriptiva:
Unidad de competencia II Estadística descriptiva:
MOVIMIENTO JOVENES DE LA CALLE CIUDAD DE GUATEMALA chi siamo quienes-somos qui sommes-nous who we are attività actividades activités activities alimentazione.
Unidad 1: Funciones, Límite y Continuidad
Los elementos invertibles de Z6 son 1 y 5
1. Apoyo exterior sobre ala inferior de viga de acero
Distribuciones de probabilidad bidimensionales o conjuntas
Banco Río, siempre pensando en su comodidad, ha diseñado el Cajero Auto Bank, para servirlo cómodamente a su auto, así, apreciado cliente, tiene la posibilidad.
UPC Tema: ESPACIO VECTORIAL Rn
Funciones Excel. Parte 1. Introducción 2 Una función Excel es una fórmula o un procedimiento que se realiza en el ambiente de Visual Basic, fuera de.
Repaso del capítulo Primer Paso
Parte 3. Descripción del código de una función 1.
Sistemas de Ecuaciones
Tema 1.- Aritmética. 1.-Usar el algoritmo de Euclides para calcular el máximo común divisor de a y b y expresarlo en función de a y b para: a) a= 56,
TEORÍA DE CONJUNTOS.
UNIDAD 2: FUNCIONES.
Introducción a los Números Fraccionarios
EL OSO APRENDIZ Y SUS AMIGOS
Operaciones con expresiones algebraicas
1 SEGUNDO FORO REGIONAL HERMOSILLO, SON Sistema Nacional de Transparencia Fiscalización y Rendición de Cuentas:
Ecuaciones Cuadráticas
Ecuaciones y Resolución de Ecuaciones Lineales
Expresiones Racionales
Igualdades y ecuaciones
La minimización de los costes
Tema 2 Autómatas finitos 1. Autómata finito determinista
4. Máquinas de Turing 4.1. Modelo básico.
Lógica Proposición Ejemplos
Expresiones Algebraicas
¿Qué es un conjunto? Un conjunto es una colección de objetos considerada como un todo. Los objetos de un conjunto son llamados elementos o miembros del.
Ecuaciones de primer grado Similar al ejercicio 1 propuesto
Autómatas finitos y expresiones regulares
DETERMINANTES DE UNA MATRIZ
CULENDARIO 2007 Para los Patanes.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
La transformada de Laplace
BEATRIZ LAFONT VILLODRE
SUCESIONES Y PROGRESIONES.
Sistemas de Ecuaciones lineales
SUMA DE FRACCIONES DEL TERCER TIPO.
Manual de Procedimientos Procedimiento de ejecución del programa de
Lenguajes Independientes del Contexto
Autómatas de Pila Teoría del Autómata.
Lenguajes regulares Teoría del Autómata.
Transcripción de la presentación:

Diseño de Autómatas Finitos

Diseño de AFD’s Definir un AFD que acepte palabras que cumplan ciertas especificaciones. Correcto: que las palabras aceptadas por el AFD cumplan las especificaciones, es decir, que no “sobren” palabras. Completo: que toda palabra que cumpla las especificaciones sea aceptada por el AFD, es decir, que no “falten” palabras. Ejemplo: AFD que acepte palabras sobre {a, b} que no tengan varias a’s seguidas. El AFD de la figura no es correcto porque acepta “baa”, pero no acepta “ba”. a a q1 > q0 b b a b q2

¿Cómo diseñar un autómata finito Por “ensayo y error” no es adecuado. “Póngase en los zapatos” del autómata que quiere diseñar. Para cada símbolo leído, saber si la cadena es aceptada o no, por si la cadena termina ahí. Decida que información es crucial “recordar”, es decir, cuales serían los estados del autómata. Asignar transiciones, estado inicial y estado(s) final(es).

Ejemplo Diseñar un AFD que acepte todas las palabras sobre {0, 1} que tengan un número impar de 1’s. No se requiere saber cuantos 1’s se han leído sino sólo si llevamos un número par o impar de 1’s. Esta respuesta permanece igual si enseguida leemos un 0 y cambia si leemos un 1. Representar esto como una lista de posibilidades y asignar un estado a cada posibilidad: a) par hasta ahorita. B) impar hasta ahorita. Asignar las transiciones. Definir el estado inicial, el que corresponde a la palabra nula l. Definir el estado final, el que corresponde a palabras de longitud impar. 1 qpar qimpar 1

Otro ejemplo Diseñar un AFD que reconozca palabras que contienen la cadena 001 como 0010, 1001, 11111110011111, pero no como 11, 0000, 1100, 10101. Posibilidades: No hemos leído ningún símbolo. Estado q. Hemos leído un 0. Estado q0. Hemos leído 00. Estado q00. Hemos leído 001. Estado q001. 1 0,1 q q0 q00 1 q001 1

Ejemplos Diseñar un AFD que acepte exactamente el lenguaje sobre {0, 1} en que las palabras no comienzan con 00. 0,1 q0 q1 q2 1 1 q3 0,1

Ejemplo Palabras sobre {a, b, c} en las cuales toda b es inmediatamente seguida de al menos una c. q0 q1 q2 c q3 a,c a,b,c a,b b c q0 q1 q2

Otro ejemplo Construir un autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras que terminan con ’10’, es decir, reconoce el lenguaje (0 + 1)*10. 1 00 01 11 10 i

Simplificación del “Otro ejemplo” 1 A B C

Un ejemplo más Construir un autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras que terminan con 1, es decir, (0 + 1)*1. A B 1

Y un ejemplo más Construir un autómata finito determinsta que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo penúltimo símbolo es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1). A C D B 1

Y aún otro más Construir un autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo antepenúltimo símbolo es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1)(0 + 1). A E B 1 F G H C D

Y varios más ¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo ante-antepenúltimo símbolo es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1)3? Resp: 24 = 16. ¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo décimo símbolo, contado de derecha a izquierda es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1)9? Resp: 210 = 1024. ¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo vigésimo símbolo, contado de derecha a izquierda es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1)19? Resp: 220 = 1M. ¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo vigésimo quinto símbolo, contado de derecha a izquierda es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1)24? Resp: 225 = 32M.

Tarea 3, Parte A (en equipo) Construir un AFD que reconozca números binarios múltiplos de 5. Por ejemplo, debe reconocer: 0, 101, 1010, 1111, 10100. Fecha de asignación: 19/Febrero/2004 Fecha de entrega: 01/Marzo/2004

Equivalencia de autómatas finitos Decimos que dos autómatas, M1 y M2, son equivalentes cuando aceptan el mismo lenguaje, es decir, L(M1) = L(M2). En este caso escribimos M1 » M2. ¿Cómo saber que dos autómatas son equivalentes? ¿Cómo saber que dos autómatas no son equivalentes?

¿Cuándo dos autómatas no son equivalentes? Cuando uno de los dos autómatas acepta una palabra que no es aceptada por el otro autómata, podemos concluir que los dos autómatas no son equivalentes

Ejemplo ¡No! M1 M2 ¿Son M1 y M2 equivalentes? ¿Por qué? b a a,b q0 q1 q2 M1 b a a,b q0 q1 q2 M2 ¡No! ¿Son M1 y M2 equivalentes? ¿Por qué? Porque M1 acepta  y M2 no.

Ejemplo ¿Son M1 y M2 equivalentes? ¡No! ¿Por qué? q0 q1 q2 M2 1 1 q0 q1 M1 ¿Son M1 y M2 equivalentes? ¡No! ¿Por qué? Porque M1 acepta 0 y M2 no. Porque M2 acepta 01 y M1 no.

Ejemplo ¿Son M1 y M2 equivalentes? ¡Sí! ¿Por qué? q0 q1 q2 M2 1 1 q0 q1 M1 ¿Son M1 y M2 equivalentes? ¡Sí! ¿Por qué? Porque todas las palabras que son aceptadas por M1 también lo son por M2 y viceversa.

¿TODAS las palabras? ¿Cómo podemos verificar TODAS las palabras? Para poder decir que dos autómatas son equivalentes, debemos verificar que TODAS las palabras aceptas por uno de los autómatas son aceptadas por el otro y viceversa. ¿Cómo podemos verificar TODAS las palabras? ¿Cómo podemos encontrar una palabra que es aceptada por uno de los autómatas pero no por el otro?

¿Cómo saber que dos autómatas son equivalentes Teorema de Moore. Existe un algoritmo basado en la comparación de estados para saber si dos autómatas son equivalentes. Definición. Dos estados son compatibles si ambos son finales o ninguno de los dos lo es. Si uno es final y el otro no lo es, entonces se dice que son incompatibles.

Algoritmo de Moore Comparación de los autómatas M=(K, S, d, s0, F) y M’ = (K’, S, d’, s0’, F’). Se construye la tabla de comparación con 1+|S| columnas. La primera columna ponemos (q, q’) como encabezado. El encabezado de las columnas restantes son los símbolos del alfabeto. 1) Inicialmente escribimos (s0, s0’) en el primer renglón de la primera columna. 2) Completamos el renglón poniendo en cada columna a la pareja de estados donde el primer elemento de la pareja es el estado a donde se transfiere el autómata M del estado en la primera columna después de leer el símbolo que encabeza la columna correspondiente. El segundo elemento de la pareja es la transición correspondiente a M’. 3) Cada pareja de estados generado en el punto 2) que no esté en la primera columna se escribe en esa primera columna. 4) Se completa el renglón para la siguiente pareja de estados en la primera columna. 5) Si en la primera columna aparece una pareja de estados incompatible, entonces se termina el proceso y se concluye que los autómatas no son equivalentes. 6) Si en la primera columna no aparecieron parejas de estados incompatibles y si ya no aparecen nuevas parejas que no estén en la primera columna, entonces se concluye el proceso y decimos que los autómatas son equivalentes.

Arbol de comparación 3 a b 4 5 (1,3) (2,4) (1,5) (2,5) (1,4) a b 1 a b

Determinar si los siguientes AFD’s son/no son equivalentes: 5 1 2 3 4 0,1 A: 6 7 8 11 9 10 12 1 0,1 B: 13 14 16 15 17 18 1 0,1 C:

Respuesta al ejercicio de la lámina anterior A y B sí son equivalentes. B y C no son equivalentes. A y C no son equivalentes.

Simplificación de autómatas Decimos que un autómata es una simplificación de otro si tiene menos estados pero ambos aceptan el mismo lenguaje. Decimos que en un AFD dos estados son equivalentes si al tomar uno o el otro como estado inicial, los lenguajes aceptados por los AFD’s resultantes son iguales. En otras palabras, dado un AFD M = (K, S, d, s0, F) y dos estados q0 y q1 Î K, decimos que q0 y q1 son equivalentes o redundantes (q0 » q1) si (K, S, d, q0, F) » (K, S, d, q1, F). Una vez que sabemos que dos estados son equivalentes, entonces podemos eliminar uno de ellos. Pero, ¿y las flechas que entran y salen del estado eliminado? Las flechas que salen del estado eliminado son eliminadas. Las flechas que entraban al estado eliminado se redirigen al estado equivalente.

Estados equivalentes 3 a b 4 5 (4’,3) (3’,4) a b (5’,5) a, b 3’ a b 4’

Borrar transiciones a b 5 3 a b a 4 b a b 5 3 b a 4

Redirigir transiciones b 5 3 b a a 4 b 5 3 b a

Obtención de AFD mínimo eliminando estados equivalentes Teorema. Al eliminar estados redundantes de un AFD se obtiene el único AFD mínimo que acepta el mismo lenguaje que el original. Algoritmo: Para cada par de estados (p, q) del autómata Ver si son equivalentes. En caso de que sí, entonces eliminar uno de ellos y volver a empezar con otros dos estados. Hasta que no haya estados que eliminar.

Ejercicio.- simplificar: 6 7 8 11 9 10 12 1 0,1

Obtención de AFD mínimo utilizando clases de equivalencia Dado un AFD M = (K, S, d, s0, F), el procedimiento para simplificarlo es: Definimos dos clases de equivalencia, F y K - F. Para cada clase Sea q un estado en la clase. Poner en una misma clase a todos los estados q’ que tienen transiciones “iguales” a las de q, es decir, q y q’ pertenecen a la misma clase si para cada símbolo s Î S, d(q’, s) “cae” en la misma clase que d(q, s). Ponemos en otra clase a los que tienen transiciones “distintas” a las de q. Si todos los estados de la clase tienen transiciones iguales, entonces la clase no se divide y analizamos otra clase. Continuar analizando clases hasta que ninguna se divida.

Operaciones entre autómatas Sean M1 = (K1, , 1, s1, F1) y M2 = (K2, , 2, s2, F2) dos AFDs que aceptan los lenguajes L1 y L2, respectivamente. Cómo obtener autómatas que reconozcan L1L2 L1L2 L1L2 L1L2 L1* L1C

Respuesta Definamos el autómata M = (K, , , s0, F) donde K = K1 × K2 s0 = (s1, s2) ((p, q), a) = (1(p, a), 2(q, a)) para pK1, qK2 y a Si F = {(p, q) | pF1 o qF2}, entonces M acepta al lenguaje L1L2. Si F = {(p, q) | pF1 y qF2}, entonces M acepta al lenguaje L1L2. Si F = {(p, q) | pF1 y qF2}, entonces M acepta al lenguaje L1L2. ¿Y L1L2, L1*, L1C?

Ejemplo L1 L2 Consideremos los lenguajes sobre el alfabeto ={0, 1}: A L1 = {x | 00 no es una subcadena de x} L2 = {x | x termina con 01} A B C 1 0,1 L1 P Q R 1 L2

K1 × K2 1 1 AP AQ AR BP BQ BR CP CQ CR 1 1 1 1

L1  L2 AP AR BQ CP CQ CR 1

L1  L2 AP AR BQ CP CQ CR 1

L1  L2 AP AR BQ CP CQ CR 1

Ya que L1C = *L1, el AFD que acepta L1C se obtiene: Ejercicio Ya que L1C = *L1, el AFD que acepta L1C se obtiene: Cambiando los estados finales a no-finales y los no-finales a finales. A B C 1 0,1 L1 A B C 1 0,1 L1C

Obtenga un AF que acepte (11+110)*0 r t 1 1 1 1 1 0,1 q0 s u q0 q4 1 0,1 p 1 q2 q3

Autómatas Finitos No Deterministas (AFN) En los Autómatas Finitos Deterministas, para cada estado y símbolo existe uno y sólo un estado al cual se hace la transición. ¿Y si se quita esta restricción? Es decir, si estando en un estado, hay símbolos para los que puede no existir transición o símbolos para los que puede haber más de una. Este tipo de autómatas son llamados Autómatas Finitos No Deterministas (AFN). ¿Cómo analizar los AFN’s?

Tarea 3, Parte B (en equipo) Ejercicios 3.10(a, b), 3.12, 3.19(b, e, h), 3.20(b, d, f), 5.16(a, e, g) del texto. Fecha de asignación: 19/Febrero/2004 Fecha de entrega: 01/Marzo/2004