3 Propiedades de los conjuntos regulares 3.1 Lema de

Anuncio
1
Curso Básico de Computación
3 Propiedades de los conjuntos
regulares
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 , a1 a2 · · · 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.
aj + 1... ak
ak+1 ... am
a1 ... a j
q
0
q = q
j k
qm
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 )
= δ(qj , ak+1 · · · am )
= δ(qk , ak+1 · · · am )
= qm
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:
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.
Feliú Sagols Troncoso
Matemáticas-Cinvestav
2
Demostración: En el parrafo anterior sea z = a1 a2 · · · am , u = a1 a2 · · · aj ,
v = aj+1 · · · ak y w = ak+1 · · · am .
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
2
L es regular y sea n el entero en el Lema de Bombeo. Sea z = 0n . Por
2
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.
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.
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.
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.
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.
Demostración: Sea L = L(M ) para el AFD M = (Q, Σ1 , δ, q0 , F ) y sea
3
Curso Básico de Computación
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 0 = (Q, Σ, δ, q0 , Q − F ). Entonces M 0 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.
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.
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 ∆.
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:
[
f (L) =
f (x)
x∈L
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∗
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
Feliú Sagols Troncoso
Matemáticas-Cinvestav
4
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.
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}
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 demostrar que
h(h−1 (L)) ⊆ L y h−1 (h(L)) ⊇ L para cualquier lenguaje L.
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 0 que acepte h−1 (L) leyendo un sı́mbolo a ∈ ∆ y simulando M en
h(a). Formalmente, sea M 0 = (Q, ∆, δ 0 , q0 , F ) donde δ 0 (q, a) = δ(q, h(a)) para
q ∈ Q y a ∈ ∆. Es fácil demostrar por inducción sobre |x| que δ 0 (q0 , x) =
δ(q0 , h(x)). Por lo tanto, M 0 acepta a x si y sólo si M acepta a h(x). Es decir,
L(M 0 ) = h−1 (L(M )).
Tarea: Resolver el ejercicio 2.8 inciso b) del Capitulo 2 del libro de Hopcroft.
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 }
5
Curso Básico de Computación
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∗ .
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 0 = (Q, Σ, δ, q0 , F 0 ), el cual funciona como M
excepto que los estados finales de M 0 son todos los estados q de M tales que
existe y ∈ L para el cual δ(q, y) ∈ F . Entonces δ(q0 , x) ∈ F 0 si y sólo si existe
y tal que δ(q0 , xy) ∈ F . Ası́, M 0 acepta a R/L.
Esta construcción es no efectiva.
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:
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.
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
Feliú Sagols Troncoso
Matemáticas-Cinvestav
6
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.
(⇒) 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.
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 le teorema 3.7, existe un algoritmo para
determinar si L1 = L2 .
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.
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).
7
Curso Básico de Computación
Teorema 3.9 (Teorema de Myhill-Nerode): Los siguientes tres enunciados son equivalentes:
1. El conjunto L ⊆ Σ∗ es aceptado por algún AF.
2. 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.
3. 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.
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.
(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 .
(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.
Ahora sea Q0 el conjunto finito de clases de equivalencias de RL y [x] el elemento de Q0 que contiene a x. Se define δ 0 ([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 δ 0 ([x], a) = [ya]. Pero xRL y,
ası́ xz ∈ L exactamente cuando yz ∈ L. En particular, si z = az 0 , xaz 0 ∈ L
exactamente cuando yaz 0 ∈ L, ası́ xaRL ya, y [xa] = [ya]. Sea q00 = [] y sea
F 0 = {[x] | x ∈ L}. El autómata finito M 0 = (Q0 , Σ, δ 0 , q00 , F 0 ) acepta a L, ya
que δ 0 = (q00 , x) = [x], y ası́ x ∈ L(M ) si y sólo si [x] ∈ F 0 .
Feliú Sagols Troncoso
Matemáticas-Cinvestav
8
Ejemplo:
Sea L el lenguaje 0∗ 10∗ . L es aceptado por el autómata siguiente:
0
Start
a
b
0
1
1
c
d
1
0
0
1
e
f
1
0,1
0
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.
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
f
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 0 es el siguiente autómata:
9
Curso Básico de Computación
0
0
1
Start
0,1
1
[1]
[e]
[11]
Por ejemplo: δ 0 ([1], 0) = [1], porque si w es cualquier cadena en [1], digamos
0i 10j , entonces w0 = 0i 10j+1 , que también está en C1 = 0∗ 10∗ .
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 0 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 0 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 0 . Es decir, sea q un estado de M . 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 δ 0 (q00 , x) de M 0 . 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ı́ δ 0 (q00 , x) = δ 0 (q00 , y).
Algoritmo de minimización
Existe un método simple para encontrar el AFD con número mı́nimo de estados M 0 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.
Ejemplo: Sea M el siguiente autómata
1
0
Start
a
0
1
b
0
1
1
0
1
f
d
1
0
e
0
c
1
0
g
1
0
h
Feliú Sagols Troncoso
Matemáticas-Cinvestav 10
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. 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.
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:
Start
[a,e]
0
0
[b,h ]
1
0
1
[g ]
0
1
1
[c ]
1
0
[d,f ]
11
Curso Básico de Computación
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
4)
5)
6)
7)
begin
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
for toda entrada a do
poner (p, q) en la lista de
(δ(p, a), δ(q, a)) a menos que
δ(p, a) = δ(q, a)
end
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.
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.
Demostración: Sea M = (Q, Σ, δ, q0 , F ) el AFD para el cual se le aplica el
algoritmo y M 0 = (Q0 , Σ, δ 0 , [q0 ], F 0 ) el AFD construido. Es decir:
Q0 = {[q] | q es accesible desde q0 },
F 0 = {[q] | q ∈ F }
δ 0 ([q], a) = [δ(q, a)].
Es fácil demostrar que δ 0 está bien definida, también es fácil demostrar que
δ 0 ([q0 ], w) = [δ(q0 , w)] por inducción sobre |w|. Ası́ L(M 0 ) = L(M ).
Feliú Sagols Troncoso
Matemáticas-Cinvestav 12
Para terminar sólo se tiene que demostrar que M 0 no tiene más estados que el
ı́ndice de RL donde L = L(M ). Ası́ M 0 es el AFD con el número mı́nimo de
estados para L.
Descargar