15/11/2012 homomorfismos sobre AF LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos Sean M= (S, , , s0 , f0) y M’= (S’, , ’, s0’, f0’) dos AFDs. Un homomorfismo g del AF M en el AF M’ es una función g: SS’, tal que para cualquier a, y sS, se cumple lo siguiente: homomorfismos sobre AF g() LENGUAJES FORMALES Y AUTÓMATAS Si Qn minimización de autómatas finitos a g( (si ,a)) = ’(g(si) ,a) a g() g(s0) = s0’ Sk f0 (si) = f0’ (g(si)) Qm M’ M g( (si ,a)) = ’(g(si) ,a) autómata finito cociente Sea g un homomorfismo de un autómata M= (S, , , s0 , f0) en un autómata M’= (S’, , ’, s0’, f0’). Definimos la relación binaria sobre S de la siguiente forma: si sj si y minimización de autómatas finitos solo sí g(si) = g(sj). LENGUAJES FORMALES Y AUTÓMATAS autómata finito cociente LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos Dos estados de M están relacionados por cuando por el homomorfismo tienen asociado el mismo estado en M’. Como es una relación de congruencia sobre S, particiona a S en clases de equivalencia. Si consideramos a cada clase como un nuevo estado, podemos definir un autómata M/g denominado autómata cociente. minimización de autómatas finitos a S1 S0 [S0] a S3 S5 [S3 ] S6 (s1,a) = s6 ’’([s0],a) = [s3] Si f(S6)=z, entonces debe ser f’’([S3])=z S0 S4 S6 S2 S3 S5 [S0] S1 [S4] S4 S6 [S2] [S3] autómata finito cociente Sean M= (S, , , s0 , f0) y M’= (S’, , ’, s0’, f0’) dos AFR y g un homomorfismo entre los AF M y M’. Denominaremos autómata cociente al autómata minimización de M/g = (S’’, , [s0 ], ’’, f0’’) donde: autómatas finitos S’’ = conjunto de estados de M/g, tal que cada uno es una clase de equivalencia [s] de estados de M, determinada por g. = alfabeto de entrada de M. [s0 ] = estado inicial f0’’ = función de salida tal que f0’’ ([si]) = f0(si) ’’ = función de próximo estado, ’’ ([sj], a) = [(sj,a)] LENGUAJES FORMALES Y AUTÓMATAS S4 S2 S1 S3 S5 autómata finito cociente LENGUAJES FORMALES Y AUTÓMATAS S0 S2 1 15/11/2012 autómata finito cociente LENGUAJES FORMALES Y AUTÓMATAS 0 s0 minimización de autómatas finitos 1 s1 0 0 1 0 g() 1 sa s2 1 0 1 sb teorema de homomorfismos para AF LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos g(s0)=sa g=def g(s1)=sb g(s2)= sb 0 1 [s0] 0 1 [s1] M/g = AF cociente [s1]= {s1 s2} [s0]= {s0} minimización de autómatas finitos LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos Teorema Sea g: S’’ S’ un homomorfismo sobreyectivo de un AF M en otro AF M’. Entonces M’ (la imagen homomorfa de M) es isomorfa al AF cociente M/g. La minimización es un proceso que nos permite encontrar, para un dado autómata finito M, un autómata finito M’ con las siguientes propiedades: estados inalcanzables LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos Si M y M’ comienzan por sus estados iniciales, producirán las mismas salidas para las mismas entradas. De ser posible M’ tendrá menos estados que M. Los estados inalcanzables son aquellos que no pueden alcanzarse desde el estado inicial, independientemente de los símbolos de entrada. Los estados inalcanzables pueden ser removidos. Si esto no es posible, entonces M ya es un autómata mínimo. estados inalcanzables estados inalcanzables Tabla para la función de transición: LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos S0 S1 S2 S3 0 S1 S3 S1 S0 1 S3 S0 S3 S1 salida 0 0 1 1 LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos ¿Existe algún estado inalcanzable? 2 15/11/2012 estados equivalentes Dos estados si y sj de M son equivalentes si para cualquier Σ*, fO(si , ) = fO(sj , ), donde Σ* denota el conjunto de cadenas de longitud finita sobre el alfabeto de entrada. minimización de De esta manera, estados equivalentes autómatas finitos producen salidas equivalentes para una cadena de entrada dada. Los estados de M pueden ser particionados en clases de equivalencia tal que: LENGUAJES FORMALES Y AUTÓMATAS minimización LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos Todos los estados de la misma clase tienen la misma salida. La función de transición es tal que para cada símbolo de entrada, todos los estados de la misma clase proceden a estados que están todos en la misma clase. El problema de minimizar autómatas se reduce al problema de encontrar dichas clases de equivalencia. El problema se resuelve de manera iterativa, identificando lo que se conoce como clases de estados k-equivalentes. Dos estados si y sj de M son kequivalentes si para todo Σ*, tal que || k , fO(si, ) = fO(sj , ). ejemplo: estados k-equivalentes algoritmo de minimización Entrada: un AFD completo M=(S,,,s0,f0) Salida: un AF M’ equivalente a M minimizado 1) T S - {estados inalcanzables en S} 2) Particionar T en dos clases formadas por estados 0equivalentes 3) k 0 minimización de autómatas finitos 4) Repetir Determinar clases (k+1)-equiv. como refinamiento de las k-equivalentes si , sj son (k+1)-equivalentes sssi si , sj son k-equivalentes y (si,a),(sj,a) son kequivalentes a k k+1 Hasta Clases((k+1)-equiv.)=Clases(k-equiv.) 5) Definir M’ usando las clases k-equivalentes halladas LENGUAJES FORMALES Y AUTÓMATAS LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos 0-equivalentes: {0, 2, 5} y {1, 3, 4, 6}. 1-equivalentes: {0, 2},{5},{1, 3, 4, 6}. 2-equivalentes: {0, 2},{5},{1, 6},{3, 4} . 3-equivalentes: {0, 2},{5},{1, 6},{3, 4} . ejemplo LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos La máquina resultante de reducir M del ejercicio anterior tendrá los siguientes estados A = {0, 2}; B = {5}; C = {1, 6}; D = {3, 4} Tendrá 4 estados en lugar de 7 y la siguiente tabla de transición: ejemplos 0-equivalentes: {0, 2, 4}, {1, 3} 1-equivalentes: {0}, {2, 4}, {1, 3} 2-equivalentes: {0}, {2, 4}, {1, 3} LENGUAJES FORMALES Y AUTÓMATAS minimización de autómatas finitos A = {0}, B = {2, 4}, C = {1, 3} 3