3 Propiedades de los conjuntos regulares

Anuncio
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
Descargar