Disenio Del AF

43
1 Diseño de Autómatas Finitos

description

diseño automata finito

Transcript of Disenio Del AF

  • *Diseo de Autmatas Finitos

  • *Diseo de AFDsDefinir 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 as seguidas. El AFD de la figura no es correcto porque acepta baa, pero no acepta ba.>q0q1q2aabbab

  • *Cmo disear un autmata finitoPor ensayo y error no es adecuado.Pngase en los zapatos del autmata que quiere disear.Para cada smbolo ledo, saber si la cadena es aceptada o no, por si la cadena termina ah.Decida que informacin es crucial recordar, es decir, cuales seran los estados del autmata.Asignar transiciones, estado inicial y estado(s) final(es).

  • *EjemploDisear un AFD que acepte todas las palabras sobre {0, 1} que tengan un nmero impar de 1s.No se requiere saber cuantos 1s se han ledo sino slo si llevamos un nmero par o impar de 1s. 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.qparqimpar1100

  • *Otro ejemploDisear un AFD que reconozca palabras que contienen la cadena 001 como 0010, 1001, 11111110011111, pero no como 11, 0000, 1100, 10101. Posibilidades:No hemos ledo ningn smbolo. Estado q.Hemos ledo un 0. Estado q0.Hemos ledo 00. Estado q00.Hemos ledo 001. Estado q001.qq0q00q001110000,11

  • *EjemplosDisear un AFD que acepte exactamente el lenguaje sobre {0, 1} en que las palabras no comienzan con 00.

  • *EjemploPalabras sobre {a, b, c} en las cuales toda b es inmediatamente seguida de al menos una c.

  • *Otro ejemploConstruir un autmata 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.

  • *Simplificacin del Otro ejemplo

  • *Un ejemplo msConstruir un autmata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras que terminan con 1, es decir, (0 + 1)*1.

  • *Y un ejemplo msConstruir un autmata finito determinsta que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo penltimo smbolo es 1, es decir, su expresin regular es (0 + 1)*1(0 + 1).

  • *Y an otro msConstruir un autmata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo antepenltimo smbolo es 1, es decir, su expresin regular es (0 + 1)*1(0 + 1)(0 + 1).

  • *Y varios msCuntos estados tendra el autmata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo ante-antepenltimo smbolo es 1, es decir, su expresin regular es (0 + 1)*1(0 + 1)3?Resp: 24 = 16.Cuntos estados tendra el autmata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo dcimo smbolo, contado de derecha a izquierda es 1, es decir, su expresin regular es (0 + 1)*1(0 + 1)9?Resp: 210 = 1024.Cuntos estados tendra el autmata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo vigsimo smbolo, contado de derecha a izquierda es 1, es decir, su expresin regular es (0 + 1)*1(0 + 1)19?Resp: 220 = 1M.Cuntos estados tendra el autmata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo vigsimo quinto smbolo, contado de derecha a izquierda es 1, es decir, su expresin regular es (0 + 1)*1(0 + 1)24?Resp: 225 = 32M.

  • *Tarea 3, Parte A (en equipo)Construir un AFD que reconozca nmeros binarios mltiplos de 5.Por ejemplo, debe reconocer: 0, 101, 1010, 1111, 10100.Fecha de asignacin: 19/Febrero/2004Fecha de entrega: 01/Marzo/2004

  • *Equivalencia de autmatas finitosDecimos que dos autmatas, M1 y M2, son equivalentes cuando aceptan el mismo lenguaje, es decir, L(M1) = L(M2). En este caso escribimos M1 M2.Cmo saber que dos autmatas son equivalentes?Cmo saber que dos autmatas no son equivalentes?

  • *Cundo dos autmatas no son equivalentes?

  • *EjemploSon M1 y M2 equivalentes?Por qu?No!Porque M1 acepta y M2 no.

  • *EjemploSon M1 y M2 equivalentes?Por qu?No!Porque M1 acepta 0 y M2 no.Porque M2 acepta 01 y M1 no.

  • *EjemploSon M1 y M2 equivalentes?Por qu?S!Porque todas las palabras que sonaceptadas por M1 tambin lo sonpor M2 y viceversa.

  • *TODAS las palabras?Para poder decir que dos autmatas son equivalentes, debemos verificar que TODAS las palabras aceptas por uno de los autmatas son aceptadas por el otro y viceversa.

  • *Cmo saber que dos autmatas son equivalentesTeorema de Moore. Existe un algoritmo basado en la comparacin de estados para saber si dos autmatas son equivalentes.Definicin. 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 MooreComparacin de los autmatas M=(K, S, d, s0, F) y M = (K, S, d, s0, F). Se construye la tabla de comparacin con 1+|S| columnas. La primera columna ponemos (q, q) como encabezado. El encabezado de las columnas restantes son los smbolos del alfabeto.1) Inicialmente escribimos (s0, s0) en el primer rengln de la primera columna.2) Completamos el rengln poniendo en cada columna a la pareja de estados donde el primer elemento de la pareja es el estado a donde se transfiere el autmata M del estado en la primera columna despus de leer el smbolo que encabeza la columna correspondiente. El segundo elemento de la pareja es la transicin 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 rengln 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 autmatas no son equivalentes.6) Si en la primera columna no aparecieron parejas de estados incompatibles y si ya no aparecen nuevas parejas que no estn en la primera columna, entonces se concluye el proceso y decimos que los autmatas son equivalentes.

  • *Arbol de comparacin

  • *Determinar si los siguientes AFDs son/no son equivalentes:A:B:C:

  • *Respuesta al ejercicio de la lmina anteriorA y B s son equivalentes.B y C no son equivalentes.A y C no son equivalentes.

  • *Simplificacin de autmatasDecimos que un autmata es una simplificacin 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 AFDs 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

  • *Borrar transiciones3abb45aab3ab45ab

  • *Redirigir transiciones3ab45ab3ab5ab

  • *Obtencin de AFD mnimo eliminando estados equivalentesTeorema. Al eliminar estados redundantes de un AFD se obtiene el nico AFD mnimo que acepta el mismo lenguaje que el original. Algoritmo: Para cada par de estados (p, q) del autmataVer 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:

  • *Obtencin de AFD mnimo utilizando clases de equivalenciaDado un AFD M = (K, S, d, s0, F), el procedimiento para simplificarlo es:Definimos dos clases de equivalencia, F y K - F.Para cada claseSea 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 smbolo 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 autmatasSeanM1 = (K1, , 1, s1, F1) y M2 = (K2, , 2, s2, F2) dos AFDs que aceptan los lenguajes L1 y L2, respectivamente.Cmo obtener autmatas que reconozcanL1L2L1L2L1L2L1L2L1*L1C

  • *RespuestaDefinamos el autmata M = (K, , , s0, F) dondeK = K1 K2s0 = (s1, s2)((p, q), a) = (1(p, a), 2(q, a)) para pK1, qK2 y aSi F = {(p, q) | pF1 o qF2}, entonces M acepta al lenguaje L1L2.Si F = {(p, q) | pF1 y qF2}, entonces M acepta al lenguaje L1L2.Si F = {(p, q) | pF1 y qF2}, entonces M acepta al lenguaje L1L2.Y L1L2, L1*, L1C?

  • *EjemploConsideremos los lenguajes sobre el alfabeto ={0, 1}:L1 = {x | 00 no es una subcadena de x}L2 = {x | x termina con 01}

  • *K1 K2

  • *L1 L2

  • *L1 L2

  • *L1 L2

  • *EjercicioYa que L1C = *L1, el AFD que acepta L1C se obtiene:Cambiando los estados finales a no-finales y los no-finales a finales.

  • *Obtenga un AF que acepte (11+110)*0

  • *Autmatas Finitos No Deterministas (AFN)En los Autmatas Finitos Deterministas, para cada estado y smbolo existe uno y slo un estado al cual se hace la transicin.Y si se quita esta restriccin? Es decir, si estando en un estado, hay smbolos para los que puede no existir transicin o smbolos para los que puede haber ms de una.Este tipo de autmatas son llamados Autmatas Finitos No Deterministas (AFN).Cmo analizar los AFNs?

  • *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 asignacin: 19/Febrero/2004Fecha de entrega: 01/Marzo/2004

    *******************