Curso Básico de Computación 3 Propiedades de los conjuntos regulares Feliú Sagols Troncoso Curso Básico de Computación (Matemáticas) Matemáticas CINVESTAV-IPN <[email protected]> 2010 3 Propiedades de los conjuntos regulares 2010 1 / 53 3.1 Lema de Bombeo para conjuntos regulares El lema de bombeo es una herramienta poderosa para probar que ciertos lenguajes son no regulares. Si un lenguaje es regular, éste es aceptado por un AFD M = (Q, Σ, δ, q0 , F ) con algún número particular de estados, dijamos n. Considere una entrada con n o más símbolos a1 a2 · · · am , m ≥ n, y para i = 1, 2, ..., m, sea δ(q0 , a1a2 · · · ai ) = qi . Así existen dos enteros j y k, 0 ≤ j < k ≤ n, tal que qj = qk . El camino etiquetado a1 a2 · · · am en el diagrama de transición de M se ilustra en la siguiente figura. Como j < k, la cadena aj+1 · · · ak tiene longitud al menos 1, y como k ≤ n su longitud no es más que n. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 2 / 53 aj + 1... ak ak+1 ... am a1 ... a j q 0 q = q j k Curso Básico de Computación (Matemáticas) qm 3 Propiedades de los conjuntos regulares 2010 3 / 53 Si qm está en F , es decir, a1 a2 · · · am está en L(M), entonces a1 a2 · · · aj ak+1 ak+2 · · · am está en L(M), luego existe un camino de q0 a qm que pasa por qj pero no alrededor del lazo etiquetado por aj+1 · · · ak . Formalmente: δ(q0 , a1 · · · aj ak+1 · · · am ) = δ(δ(q0 , a1 · · · aj ), ak+1 · · · am ) Curso Básico de Computación (Matemáticas) = δ(qj , ak+1 · · · am ) = δ(qk , ak+1 · · · am ) = qm 3 Propiedades de los conjuntos regulares 2010 4 / 53 Así, a1 · · · aj (aj+1 · · · ak )i ak+1 · · · am está en L(M) para cualquier i ≥ 0. Con lo anterior, se probó que para cualquier cadena suficientemente grande aceptada por un AF, se puede encontrar una subcadena cerca del inicio de la cadena que pueda ser “bombeada", es decir, repetida tantas veces como uno quiera, y la cadena resultante es aceptada por el AF. Formalmente el lema de Bombeo dice: Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 5 / 53 Lema (3.1) Sea L un conjunto regular. Entonces existe una constante n tal que si z es cualquier palabra en L, y |z| ≥ n, se puede escribir z = uvw de tal forma que |uv | ≤ n, |v | ≥ 1, y para toda i ≥ 0, uv i w está en L. Además, n no es más grande que el número de estados del AF más pequeño que acepta L. Demostración: En el parrafo anterior sea z = a1 a2 · · · am , u = a1 a2 · · · aj , v = aj+1 · · · ak y w = ak+1 · · · am . Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 6 / 53 Ejemplo: 2 Sea L = {0i | i es un entero, i ≥ 1}, que consiste de todas las cadena de 0’s cuya longitud es un cuadrado perfecto, no es regular. Supongamos que L es regular y sea n el entero en el Lema de 2 2 Bombeo. Sea z = 0n . Por el Lema de Bombeo, 0n puede escribirse como uvw , donde 1 ≤ |v | ≤ n y uv i w está en L para toda i. En particular, sea i = 2. Sin embargo, n2 < |uv 2 w | ≤ n2 + n < (n + 1)2 . Es decir, la longitud de uv 2 w está entre n2 y (n + 1)2 , y así esto no es un cuadrado perfecto. Por lo tanto, uv 2 w no está en L, contradicción. Se concluye que L no es regular. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 7 / 53 3.2 La propiedad de cerradura para conjuntos regulares Existen muchas operaciones en lenguajes que preservan conjuntos regulares, en el sentido que al aplicar operaciones a conjuntos regulares resultan conjuntos regulares. Por ejemplo, la unión de dos conjuntos regulares es un conjunto regular, al igual la operación concatenación de conjuntos regulares es un conjunto regular y la cerradura de Kleene de un conjunto regular es un conjunto regular. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 8 / 53 Si una clase de lenguajes es cerrado bajo una operación en particular, se dice que tiene la propiedad de cerradura. En particular nos interesa la propiedad de cerradura efectiva, es decir, si existe un algoritmo para construir una representación para los lenguajes que resultan al aplicar las operaciones a estos lenguajes. Por ejemplo: podemos dar un algoritmo para construir una expresión regular para la unión de dos lenguajes denotados por expresiones regulares, así la clase de conjuntos regulares es cerrada efectivamente bajo la unión. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 9 / 53 Teorema (3.1) Los conjuntos regulares son cerrados bajo unión, concatenación y cerradura de Kleene. Demostración: Inmediato de la definición de expresiones regulares. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 10 / 53 Operaciones booleanas Teorema (3.2) La clase de conjuntos regulares es cerrada bajo complementación. Es decir, si L es un conjunto regular y L ⊆ Σ∗ , entonces Σ∗ − L es un conjunto regular. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 11 / 53 Demostración: Sea L = L(M) para el AFD M = (Q, Σ1 , δ, q0 , F ) y sea L ⊆ Σ∗ . Podemos suponer que Σ1 = Σ, si hubieran símbolos en Σ1 − Σ, se pueden borrar todas las transiciones de M con símbolos que no están en Σ. El hecho que L ⊆ Σ∗ nos asegura que por eso no hay que cambiar el lenguaje de M. Si existen símbolos en Σ − Σ1 , entonces ninguno de estos símbolos aparecen en palabras de L. Por lo tanto, podemos introducir un “estado muerto"d en M con δ(d , a) = d para toda a ∈ Σ y δ(q, a) = d para toda q ∈ Q y a ∈ Σ − Σ1 . Ahora, para aceptar Σ∗ − L, se complementan de los estado finales de M. Es decir, sea M ′ = (Q, Σ, δ, q0 , Q − F ). Entonces M ′ acepta una palabra w si y sólo si δ(q0 , w ) ∈ Q − F , es decir, w ∈ Σ∗ − L. Note que es esencial para la demostración que M sea determinístico y sin ǫ movimientos. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 12 / 53 Teorema (3.3) Los conjuntos regulares son cerrados bajo intersección. Demostración: L1 ∩ L2 = L̄1 ∪ L̄2 , la cerradura bajo intersección se sigue de la cerradura bajo unión y complementación. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 13 / 53 Substitución y homomorfismo La clase de conjuntos regulares tiene la propiedad de ser cerrada bajo substitución en el siguiente sentido: para cada símbolo a en el alfabeto de algún conjunto regular R, sea Ra un conjunto regular particular. Suponga que reemplazamos cada palabra a1 a2 · · · an en R por un conjunto de palabras de la forma w1 w2 · · · wn , donde wi es una palabra arbitraria en Rai . Entonces el resultado es siempre un conjunto regular. Formalmente, una substitución f es una transformación de un alfabeto Σ en un subconjunto de ∆∗ , para algún alfabeto ∆. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 14 / 53 Así f asocia un lenguaje a cada símbolo de Σ. La transformación f se extiende a palabras en Σ∗ : 1) f (ǫ) = ǫ 2) f (xa) = f (x )f (a) La transformación f se extiende a un conjunto regular L con la definición: Curso Básico de Computación (Matemáticas) f (L) = [ f (x ) x ∈L 3 Propiedades de los conjuntos regulares 2010 15 / 53 Ejemplo: Sea f (0) = a y f (1) = b∗ . Es decir, f (0) es el lenguaje {a} y f (1) es el lenguaje de todas las cadenas de b’s. Entonces f (010) es el conjunto regular ab∗ a. Si L es el lenguaje 0∗ (0 + 1)1∗ , entonces f (L) es a∗ (a + b∗ )(b∗ )∗ = a∗ b∗ Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 16 / 53 Teorema (3.4) La clase de conjuntos regulares es cerrada bajo substitución. Demostración: Sea R ⊆ Σ∗ un conjunto regular y para cada a ∈ Σ sea Ra ⊆ ∆∗ un conjunto regular. Sea f : Σ → ∆∗ la substitución definida por f (a) = Ra . Seleccione una expresión regular denotada por R. Reemplace cada ocurrecia del símbolo a en la expresión regular R por la expresión regular Ra . Para probar que el resultado f (R) es una expresión regular, observe que la substitución de la unión, producto, o cerradura es la unión, producto, o cerradura de la substitución. [Así, por ejemplo, f (L1 ∪ L2 ) = f (L1 ) ∪ f (L2 )]. Una simple inducción en el número de operadores en la expresión regular completa la demostración. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 17 / 53 Un tipo de substitución de especial interés es el homomorfismo. Un homomorfismo h es una substitución tal que h(a) contiene una sola cadena para cada a. La imagén del homomorfismo inverso de un lenguaje L es: h−1 (L) = {x | h(x ) está en L} y para la cadena w h−1 (w ) = {x | h(x ) = w } Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 18 / 53 Ejemplo: Sea h(0) = aa y h(1) = aba. Entonces h(010) = aaabaaa. Si L1 =(01)∗ , entonces h(L1 ) es (aaaba)∗ . Sea L2 = (ab + ba)∗ a. Entonces h−1 (L2 ) consiste sólo de la cadena 1. Observe que h(h−1 (L2 )) = {aba} = 6 L2 . Por otro lado, es fácil −1 −1 demostrar que h(h (L)) ⊆ L y h (h(L)) ⊇ L para cualquier lenguaje L. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 19 / 53 Teorema (3.5) La clase de conjuntos regulares es cerrada bajo homomorfismos y homomorfismo inverso. Demostración: La cerradura bajo homomorfismos se sigue de la cerradura bajo substitución, porque cada homomorfismo es una substitución. Para demostrar la cerradura bajo homomorfismo inverso, sea M = (Q, Σ, δ, q0 , F ) un AFD que acepta a L, y sea h un homomorfismo de ∆ a Σ∗ . Construimos un AFD M ′ que acepte h−1 (L) leyendo un símbolo a ∈ ∆ y simulando M en h(a). Formalmente, sea M ′ = (Q, ∆, δ ′, q0 , F ) donde δ ′ (q, a) = δ(q, h(a)) para q ∈ Q y a ∈ ∆. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 20 / 53 Es fácil demostrar por inducción sobre |x | que δ ′ (q0 , x ) = δ(q0 , h(x )). Por lo tanto, M ′ acepta a x si y sólo si M acepta a h(x ). Es decir, L(M ′) = h−1 (L(M)). Tarea: Resolver el ejercicio 2.8 inciso b) del Capitulo 2 del libro de Hopcroft. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 21 / 53 Cocientes de lenguajes Definimos el cociente de los lenguajes L1 y L2 , escrito L1 /L2 , como: {x | existe y en L2 tal que xy está en L1 } Ejemplo: Sea L1 = 0∗ 10∗ y L2 = 10∗ 1. Entonces L1 /L2 es vacío: como cada y en L2 tiene dos 1’s y cada cadena xy en L1 tiene sólo un 1, no existe x tal que xy este en L1 y y en L2 . Sea L3 = 0∗ 1. Entonces L1 /L3 = 0∗ , porque para cualquier x en 0∗ se puede escoger y = 1. Claramente xy está en L1 = 0∗ 10∗ y y está en L3 = 0∗ 1. Otro ejemplo, L2 /L3 = 10∗ , porque para cada x en 10∗ se puede escoger y = 1 de L3 y xy está en L2 = 10∗ 1, si y sólo si x está en 10∗ . Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 22 / 53 Teorema (3.6) La clase de conjuntos regulares es cerrada bajo cociente con conjuntos arbitrarios. Demostración: Sea M = (Q, Σ, δ, q0 , F ) un autómata finito que acepta algún conjunto regular R, y sea L un lenguaje arbitrario. El cociente R/L es aceptado por un autómata finito M ′ = (Q, Σ, δ, q0 , F ′ ), el cual funciona como M excepto que los estados finales de M ′ son todos los estados q de M tales que existe y ∈ L para el cual δ(q, y ) ∈ F . Entonces δ(q0 , x ) ∈ F ′ si y sólo si existe y tal que δ(q0 , xy ) ∈ F . Así, M ′ acepta a R/L. Esta construcción es no efectiva. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 23 / 53 3.3 Algoritmos de decisión para conjuntos regulares Vacío, finito e infinito Los algoritmos para determinar cuando un conjunto regular es vacío, finito, o infinito se basan en el siguiente Teorema: Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 24 / 53 Teorema (3.7) El conjunto de cadenas aceptadas por un autómata finito M con n estados es: 1) No vacío si y sólo si el autómata finito acepta una cadena de longitud menor que n. 2) infinito si y sólo si el autómata acepta alguna cadena de longitud l , donde n ≤ l ≤ 2n. Así, existe un algoritmo para determinar cuando un autómata finito acepta cero, o un número finito, o un número infinito de cadenas. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 25 / 53 Demostración: 1) (⇒) Suponga que M acepta un conjunto no vacío. Sea w una palabra tan corta como cualquier otra palabra aceptada. Por el Lema de Bombeo |w | < n: si w es la más corta y |w | ≥ n, entonces w = uvy , y uy es la palabra más corta en el lenguaje. 2) (⇐) Si w ∈ L(M) y n ≤ |w | < 2n, entonces por el lema de Bombeo, L(M) es infinito. Es decir, w = w1 w2 w3 , y para toda i, w1 w2i w3 ∈ L. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 26 / 53 (⇒) Si L(M) es infinito, entonces existe w ∈ L(M), donde |w | ≥ n. Si |w | < 2n no se hace nada. Si no hay palabras cuya longitud este entre n y 2n − 1, sea w de longitud al menos 2n, pero tan corta como cualquier palabra en L(M) con longitud más grande o igual a 2n. Por el Lema de Bombeo, se puede escribir a w como w = w1 w2 w3 con 1 ≤ |w2 | ≤ n y w1 w3 ∈ L(M). O w no es la palabra más corta de longitud 2n o más, o |w1 w3 | está entre n y 2n − 1, en cualquier caso es una contradicción. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 27 / 53 Equivalencia Ahora demostraremos que existe un algoritmo para determinar si dos autómatas finitos aceptan el mismo conjunto. Teorema (3.8) Existe un algoritmo para determinar si dos autómatas finitos son equivalentes (es decir, si aceptan el mismo lenguaje). Demostración: Sean M1 y M2 autómatas finitos que aceptan L1 y L2 , respectivamente. Por el teorema 3.1, 3.2 y 3.3, (L1 ∩ L̄2 ) ∪ (L̄1 ∩ L2 ) es aceptado por algún autómata finito, M3 . Es fácil ver que M3 acepta una palabra si y sólo si L1 6= L2 . Por lo tanto, por el teorema 3.7, existe un algoritmo para determinar si L1 = L2 . Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 28 / 53 3.4 El Teorema de Myhill-Nerode y la minimización de autómatas finitos A cada lenguaje arbitrario L le asociamos una relación de equivalencia RL ; xRL y si y sólo si para cada z, xz e yz están ambos en L o ambos no están en L. En el peor de los casos, cada cadena es una clase de equivalencia así que en principio pueden existir muchas clases. En particular, el índice (número de clases de equivalencias) es siempre finito si y sólo si L es un conjunto regular. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 29 / 53 Existen también relaciones de equivalencia similares sobre cadenas asociadas con autómatas finitos. Sea M = (Q, Σ, δ, q0 , F ) un AFD. Para x e y en Σ∗ sea xRM y si y sólo si δ(q0 , x ) = δ(q0 , y ). La relación RM es reflexiva, simetrica y transitiva. RM divide al conjunto Σ∗ en clases de equivalencia. De hecho, si xRM y , entonces xzRM yz para toda z en Σ∗ . Una relación de equivalencia R tal que xRy implica xzRyz se dice invariante por la derecha (con respecto a la concatenación). Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 30 / 53 Teorema (3.9 Teorema de Myhill-Nerode) Los siguientes tres enunciados son equivalentes: 1 2 3 El conjunto L ⊆ Σ∗ es aceptado por algún AF. L es la unión de algunas de las clases de equivalencia de una relación de equivalencia invariante por la derecha con índice finito. Sea RL una relación de equivalencia definida por: xRL y si y sólo si para toda z ∈ Σ∗ , xz ∈ L exactamente cuando yz ∈ L. Entonces RL es de índice finito. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 31 / 53 Demostración: (1) → (2) Suponga que L es aceptado por algún AFD M = (Q, Σ, δ, q0 , F ). Sea RM la relación de equivalencia xRM y si y sólo si δ(q0 , x ) = δ(q0 , y ). RM es invariante por la derecha ya que, para cualquier z, si δ(q0 , x ) = δ(q0 , y ), entonces δ(q0 , xz) = δ(q0 , yz). El índice de RM es finito, ya que el índice es a lo más el número de estados en Q. Además, L es la unión de estas clases de equivalencias que incluye una cadena x tal que δ(q0 , x ) ∈ F , es decir, las clases de equivalencia corresponden a los estados finales. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 32 / 53 (2) → (3) Demostraremos que cualquier relación de equivalencia E que satisface (2) es un refinamiento de RL ; es decir, cada clase de equivalencia de E está enteramente contenida en alguna clase de equivalencia de RL . Así el índice de RL no puede ser más grande que el índice de E y así es finito. Suponga que xEy . Entonces como E es invariante por la derecha, para cada z ∈ Σ∗ , xzEyz y así yz ∈ L si y sólo si xz ∈ L. Así xRL y , y por lo tanto la clase de equivalencia de x en E está contenida en la clases de equivalencia de x en RL . Se concluye que cada clase de equivalencia de E está contenida dentro de alguna clase de equivalencia de RL . Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 33 / 53 (3)→ (1) Primero demostraremos que RL es invariante por la derecha. Suponga que xRL y y sea w ∈ Σ∗ . Se debe probar que xwRL yw ; es decir, para cualquier z, xwz ∈ L exactamente cuando ywz ∈ L. Pero como xRL y , y conocemos por definición de RL que para cualquier v , xv ∈ L exactamente cuando yv ∈ L. Tomando v = wz se prueba que RL es invariante por la derecha. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 34 / 53 Ahora sea Q ′ el conjunto finito de clases de equivalencias de RL y [x ] el elemento de Q ′ que contiene a x . Se define δ ′ ([x ], a) = [xa]. La definición es consistente, ya que RL es invariante por la derecha. Escogemos y en lugar de x de la clase de equivalencia [x ] y obtenemos δ ′ ([x ], a) = [ya]. Pero xRL y , así xz ∈ L exactamente cuando yz ∈ L. En particular, si z = az ′ , xaz ′ ∈ L exactamente cuando yaz ′ ∈ L, así xaRLya, y [xa] = [ya]. Sea q0′ = [ǫ] y sea F ′ = {[x ] | x ∈ L}. El autómata finito M ′ = (Q ′ , Σ, δ ′ , q0′ , F ′ ) acepta a L, ya que δ ′ = (q0′ , x ) = [x ], y así x ∈ L(M) si y sólo si [x ] ∈ F ′ . Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 35 / 53 Ejemplo: Sea L el lenguaje 0∗ 10∗ . L es aceptado por el autómata siguiente: 0 Start b a 0 1 1 c d 1 0 1 0 e f 1 0,1 0 Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 36 / 53 Considere la relación RM definida por M. Todos los estados son alcanzables desde el estado inicial, RM tiene 6 clases de equivalencias: Ca = (00)∗ , Cd = (00)∗ 01 Cb = (00)∗ 0, Ce = 0∗ 100∗ Cc = (00)∗ 1, Cf = 0∗ 10∗ 1(0 + 1)∗ L es la unión de Cc , Cd , y Ce . La relación RL para L es xRL y si y sólo si: i) x e y no tienen 1’s o ii) x e y tienen un 1 o iii) x e y tienen más de un 1. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 37 / 53 Por ejemplo: si x = 010 y y = 1000, entonces xz ∈ L si y sólo si z = 0∗ . Pero yz ∈ L exactamente bajo las mismas condiciones. Se puede denotar las tres clases de equivalencia de RL por C1 = 0∗ , C2 = 0∗ 10∗ , y C3 = 0∗ 10∗ 1(0 + 1)∗ . L es el lenguaje que consiste de sólo una de esas tres clases, C2 . La relación de Ca , · · · Cf con C1 , C2 , C3 se ilustran en la siguiente figura: C1 Cb Cc C2 Cd Ca Ce C = C 3 Curso Básico de Computación (Matemáticas) f 3 Propiedades de los conjuntos regulares 2010 38 / 53 Por ejemplo Ca ∪ Cb = (00)∗ + (00)∗ 0 = 0∗ = C1 De RL se puede construir el AFD como sigue: Se escogen cadenas representativas para C1 , C2 , C3 , dijamos ǫ, 1 y 11. Entonces M ′ es el siguiente autómata: Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 39 / 53 0 0 1 Start [e] [1] 0,1 1 [11] Por ejemplo: δ ′ ([1], 0) = [1], porque si w es cualquier cadena en [1], digamos 0i 10j , entonces w 0 = 0i 10j+1 , que también está en C1 = 0∗ 10∗ . Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 40 / 53 Minimización de Autómatas Finitos Teorema (3.10) El autómata con número mínimo de estados que acepta un conjunto L es único salvo isomorfismo y está dado por M ′ en la demostración del Teorema 3.9. Demostración: En la demostración del Teorema 3.9 se ve que cualquier AFD M = (Q, Σ, δ, q0 , F ) que acepta L define una relación de equivalencia que es un refinamiento de RL . Así el número de estados de M es más grande o igual que el número de estados de M ′ del Teorema 3.9. Si se tiene la igualdad, entonces cada uno de los estados de M puede ser identificado con uno de los estados de M ′ . Es decir, sea q un estado de M. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 41 / 53 Existe algún x ∈ Σ∗ tal que δ(q0 , x ) = q, en otro caso se puede quitar q de Q, y encontrar un autómata más pequeño. Identificar a q con el estado δ ′ (q0′ , x ) de M ′ . Esta identificación es consistente. Si δ(q0 , x ) = δ(q0 , y ) = q, entonces por la demostración del Teorema 3.9, x e y están en la misma clase de equivalencia de RL . Así δ ′ (q0′ , x ) = δ ′ (q0′ , y ). Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 42 / 53 Algoritmo de minimización Existe un método simple para encontrar el AFD con número mínimo de estados M ′ del Teorema 3.9 y 3.10 equivalente a un AFD M = (Q, Σ, δ, q0 , F ). Sea ≡ la relación de equivalencia en los estados de M tal que p ≡ q si y sólo si para cada entrada x , δ(p, x ) es un estado de aceptación si y sólo si δ(q, x ) es un estado de aceptación. Si p ≡ q, decimos que p es equivalente a q. Decimos que p es distinguible de q si existe un x tal que δ(p, x ) ∈ F y δ(q, x ) ∈ / F, o viceversa. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 43 / 53 Ejemplo: Sea M el siguiente autómata 1 0 Start a 0 1 b 0 1 1 Curso Básico de Computación (Matemáticas) 1 0 1 f d 1 0 e 0 c 0 g h 1 0 3 Propiedades de los conjuntos regulares 2010 44 / 53 Se tiene que construir una tabla con una entrada para cada par de estados. Se coloca una X en la tabla cada vez que un par de estados no son equivalentes. Inicialmente se coloca una X en cada entrada correspondiente a un estado final y un estado no final. En el ejemplo, colocamos una X en las entradas (a, c), (b, c), (c, d ), (c, e), (c, f ), (c, g ) y (c, h). Para cada par de estados p y q que no se han identificado como distinguibles, consideramos el par de estados r = δ(p, a) y s = δ(q, a) para cada entrada a. Si se demuestra que los estados s y r son distinguibles para alguna cadena x entonces p y q son distinguibles para cualquier cadena ax . Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 45 / 53 Así, si la entrada (r , s) en la tabla tiene una X, se coloca también una X en la entrada (p, q). Si la entrada (r , s) no tiene X, entonces el par (p, q) es colocado en una lista asociada con la entrada (r , s). Continuando se tienen que si la entrada (r , s) recibe una X entonces cada par en la lista asociada con la entrada (r , s) también recibe una X. En el ejemplo, colocamos una X en la entrada (a, b), porque la entrada (δ(b, 1), δ(a, 1)) = (c, f ) ya tiene una X. Similarmente, la entrada (a, d ) recibe una X. Ahora consideremos la entrada (a, e) que con la entrada 0 va a dar al par (b, h), así (a, e) es colocado en la lista asociada con (b, h). Observe que con la entrada 1, a y e van al mismo estado f y por lo tanto no hay cadena con 1 que pueda distinguir a de e. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 46 / 53 Para el ejemplo, la tabla completa es: b c d e f g h X X X X X X X X X X X X X X X X X X X X X X X X X a b c d e f g Se concluye que los estados equivalentes son a ≡ e, b ≡ h, y d ≡ f y el autómata con número mínimo de estados es el siguiente: Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 47 / 53 Start [a,e] 0 0 [b,h ] 1 0 [g ] 0 1 1 [c ] 1 0 [d,f ] 1 Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 48 / 53 Lema (3.2) Sea M = (Q, Σ, δ, q0 , F ) un AFD. Entonces p es distinguible de q si y sólo si la entrada correspondiente al par (p, q) es marcada por el procedimiento begin 1) for p ∈ F y q ∈ Q − F do marcar (p, q); 2) for cada par de estados distintos (p, q) ∈ F × F ∪ (Q − F ) × (Q − F ) do 3) if para alguna entrada a, (δ(p, a), δ(q, a)) está marcada then begin Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 49 / 53 4) 5) marcar (p, q); recursivamente marcar todos los pares no marcados en la lista para (p, q) y en la lista de otros pares que son marcados en este paso end else 6) for toda entrada a do 7) poner (p, q) en la lista de (δ(p, a), δ(q, a)) a menos que δ(p, a) = δ(q, a) end Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 50 / 53 Demostración: ⇒) Suponga que p es distinguible de q, y sea x la cadena más chica distinguible de p a q. Se prueba por inducción sobre la longitud de x que la entrada correspondiente al par (p, q) es marcada. ⇐) Por inducción sobre el número de pares marcados se demuestra que si la entrada (p, q) es marcada entonces p y q son distinguibles. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 51 / 53 Un estado q es accesible en un autómata M = {Q, Σ, δ, q0 , F } si existe una cadena x ∈ Σ∗ tal que δ(q0 , x ) = q. Si q no es accesible decimos que es inaccesible. Teorema (3.1) El AFD construido por el algoritmo del Lema 3.2, sin estados inaccesible, es el AFD con número mínimo de estados para ese lenguaje. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 52 / 53 Demostración: Sea M = (Q, Σ, δ, q0 , F ) el AFD para el cual se le aplica el algoritmo y M ′ = (Q ′, Σ, δ ′ , [q0 ], F ′ ) el AFD construido. Es decir: Q ′ = {[q] | q es accesible desde q0 }, F ′ = {[q] | q ∈ F } δ ′ ([q], a) = [δ(q, a)]. Es fácil demostrar que δ ′ está bien definida, también es fácil demostrar que δ ′ ([q0 ], w ) = [δ(q0 , w )] por inducción sobre |w |. Así L(M ′) = L(M). Para terminar sólo se tiene que demostrar que M ′ no tiene más estados que el índice de RL donde L = L(M). Así M ′ es el AFD con el número mínimo de estados para L. Curso Básico de Computación (Matemáticas) 3 Propiedades de los conjuntos regulares 2010 53 / 53