Está en la página 1de 23

Notas de clase para el curso

Introducci
on a la Teora de la Computacion
II Semestre 2014
Rodrigo De Castro K.

Captulo 3
Otras propiedades de los lenguajes regulares

1.

Producto cartesiano de aut


omatas deterministas

Dados dos automatas deterministas M1 = (, Q1 , q1 , F1 , 1 ) y M2 = (, Q2 , q2 , F2 , 2 ) se


puede formar un nuevo automata determinista cuyos estados son todas las parejas de la
forma (qi , qj ), donde qi Q1 y qj Q2 . Este nuevo automata se denomina producto
cartesiano de M1 y M2 y se denota por M1 M2 . Concretamente,
M1 M2 = (, Q1 Q2 , (q1 , q2 ), F, ),
donde el estado inicial (q1 , q2 ) esta conformado por los estados iniciales de los dos automatas, y la funcion de transicion esta dada por
: (Q1 Q2 ) Q1 Q2
((qi , qj ), a) = (1 (qi , a), 2 (qj , a)).
El conjunto F de estados de aceptacion se puede escoger seg
un la conveniencia de la
situacion. En el siguiente teorema se muestra que es posible escoger F adecuadamente
para que M1 M2 acepte ya sea L1 L2 o L1 L2 o L1 L2 .
1.1 Teorema. Sean M1 = (, Q1 , q1 , F1 , 1 ) y M2 = (, Q2 , q2 , F2 , 2 ) dos AFD tales que
L(M1 ) = L1 y L(M2 ) = L2 , y sea M = M1 M2 = (, Q1 Q2 , (q1 , q2 ), F, ) el producto
cartesiano definido arriba.
(i) Si F = {(qi , qj ) : qi F1 o qj F2 } entonces L(M1 M2 ) = L1 L2 . Es decir, para
aceptar L1 L2 , en el automata M1 M2 se escogen como estados de aceptacion
los pares de estados (qi , qj ) en los que alguno de los dos es de aceptacion.
1

(ii) Si F = {(qi , qj ) : qi F1 y qj F2 } entonces L(M1 M2 ) = L1 L2 . Es decir, para


aceptar L1 L2 , en el automata M1 M2 se escogen como estados de aceptacion
los pares de estados (qi , qj ) en los que ambos son estados de aceptacion.
(iii) Si F = {(qi , qj ) : qi F1 y qj
/ F2 } entonces L(M1 M2 ) = L1 L2 . Es decir, para
aceptar L1 L2 , en el automata M1 M2 se escogen como estados de aceptacion
los pares de estados (qi , qj ) en los que el primero es de aceptacion y el segundo no
lo es.
Demostracion. Las conclusiones del teorema se obtienen demostrando primero que la
definicion de la funcion de M = M1 M2 se puede extender a cadenas arbitrarias:
b i , qj ), w) = (b1 (qi , w), b2 (qj , w)) para toda cadena w , qi Q1 , qj Q2 .
((q

(1.1)

Aqu se usan las funciones extendidas de , 1 y 2 , seg


un la definicion del Captulo 2
(definicion 2.5.2). La igualdad (1.1) se puede demostrar por induccion sobre w tal como
se hace a continuacion. Para w = , el resultado es inmediato, y para w = a, la igualdad se
reduce a la definicion de la funcion de M = M1 M2 . Para el paso inductivo, suponemos
como hipotesis de induccion que (1.1) se cumple para una cadena arbitraria w; se pretende
establecer la igualdad para la cadena de entrada wa, donde a . Se tiene
b i , qj ), wa) = (((q
b i , qj ), w), a)
((q
= ((b1 (qi , w), b2 (qj , w)), a)
= (1 (b1 (qi , w), a), 2 (b2 (qj , w), a))
= (b1 (qi , wa), b2 (qj , wa))

b
(definicion de )
(hipotesis de induccion)
(definicion de )
(definicion de b1 y b2 ).

Este razonamiento inductivo concluye la demostracion de (1.1).


Procedemos ahora a demostrar las afirmaciones (i), (ii) y (iii) del teorema. Usando la
igualdad (1.1) se tiene que, para toda cadena w ,
b 1 , q2 ), w) F (b1 (q1 , w), b2 (q2 , w)) F.
w L(M ) ((q
Por consiguiente, si F = {(qi , qj ) : qi F1 o qj F2 }, entonces para toda cadena w ,
se tendra
w L(M ) (b1 (q1 , w), b2 (q2 , w)) F
b1 (q1 , w) F1 b2 (q2 , w) F2
w L(M1 ) w L(M2 )
w L(M1 ) L(M2 ) = L1 L2 .
Esto demuestra (i).
Ahora bien, si F = {(qi , qj ) : qi
se tendra
w L(M )

F1 y qj F2 }, entonces para toda cadena w ,


(b1 (q1 , w), b2 (q2 , w)) F
b1 (q1 , w) F1 b2 (q2 , w) F2
w L(M1 ) w L(M2 )
w L(M1 ) L(M2 ) = L1 L2 .
2

Esto demuestra (ii).


Finalmente, si F = {(qi , qj ) : qi
se tendra
w L(M )

F1 o qj
/ F2 }, entonces para toda cadena w ,
(b1 (q1 , w), b2 (q2 , w)) F
b1 (q1 , w) F1 b2 (q2 , w)
/ F2
w L(M1 ) w
/ L(M2 )
w L(M1 ) L(M2 ) = L1 L2 .

Esto demuestra (iii).




Ejemplo Utilizar el Teorema 1.1 para construir un AFD que acepte el lenguaje L de

todas las cadenas sobre el alfabeto = {a, b} que tienen un n
umero par de
aes y un n
umero par de bes.
nar, por ensayo y error, un
Solucion. En un ejercicio del captulo anterior se pidio dise
AFD para aceptar este lenguaje. Ahora podemos proceder sistematicamente siguiendo el
metodo del teorema Teorema 1.1 ya que el lenguaje L se puede escribir como L = L1 L2
donde L1 es el lenguaje de las cadenas con un n
umero par de aes y L2 es el lenguaje de
las cadenas con un n
umero par de bes. Esto nos permite utilizar la parte (ii) del teorema
a partir de automatas que acepten a L1 y L2 , respectivamente.
AFD M1 que acepta L1 (cadenas con un n
umero par de aes):
b

b
a

q1

q3
a

AFD M2 que acepta L2 (cadenas con un n


umero par de bes):
a

a
b

q2

q4
b

Entonces L = L(M1 ) L(M2 ) = L1 L2 . El producto cartesiano M1 M2 tiene 4 estados:


(q1 , q2 ), (q1 , q4 ), (q3 , q2 ) y (q3 , q4 ); el u
nico estado de aceptacion es (q1 , q2 ) ya que es el u
nico
par de estados en el cual ambos estados son de aceptacion. Su funcion de transicion se
obtiene utilizando la definicion de M1 M2 .

((q1 , q2 ), a) = (1 (q1 , a), 2 (q2 , a)) = (q3 , q2 ),


((q1 , q2 ), b) = (1 (q1 , b), 2 (q2 , b)) = (q1 , q4 ),
((q1 , q4 ), a) = (1 (q1 , a), 2 (q4 , a)) = (q3 , q4 ),
((q1 , q4 ), b) = (1 (q1 , b), 2 (q4 , b)) = (q1 , q2 ),
((q3 , q2 ), a) = (1 (q3 , a), 2 (q2 , a)) = (q1 , q2 ),
((q3 , q2 ), b) = (1 (q3 , b), 2 (q2 , b)) = (q3 , q4 ),
((q3 , q4 ), a) = (1 (q3 , a), 2 (q4 , a)) = (q1 , q4 ),
((q3 , q4 ), b) = (1 (q3 , b), 2 (q4 , b)) = (q3 , q2 ).
El diagrama de estados del automata as obtenido es:
b
(q1 , q2 )

(q1 , q4 )

b
a

b
(q3 , q2 )

(q3 , q4 )

b


Ejemplo Utilizar el Teorema 1.1 para construir un AFD que acepte el lenguaje L de

todas las cadenas sobre el alfabeto = {a, b} que tienen un n
umero par de
bes pero que no contienen la subcadena bb.
Este problema se puede resolver de dos maneras ya que el lenguaje L se puede expresar ya
sea como una diferencia o como una interseccion de lenguajes. Consideremos los lenguajes:
L1 = lenguaje de todas las cadenas que tienen un n
uumero par de bes.
L2 = lenguaje de todas las cadenas que contienen la subcadena bb.
L3 = lenguaje de todas las cadenas que no contienen la subcadena bb.
Entonces L = L1 L2 y tambien L = L1 L3 .
Solucion 1. Utilizamos la parte (iii) del Teorema 1.1 expresando L como L = L1 L2 .
Para ello encontramos facilmente un AFD M1 que acepta el lenguaje L1 :
a

a
b

q1

q3
b
4

Y un AFD M2 que acepta L2 :


a, b

a
b
q2

q4

q5

a
Entonces L = L(M1 ) L(M2 ) = L1 L2 . El producto cartesiano M1 M2 tiene 6 estados:
(q1 , q2 ), (q1 , q4 ), (q1 , q5 ), (q3 , q2 ), (q3 , q4 ) y (q3 , q5 ). Los estados de aceptacion son (q1 , q2 ) y
(q1 , q4 ) ya que q1 es de aceptacion en M1 mientras que q2 y q4 no son de aceptacion en M2 .
Utilizando la definicion de la funcion de transicion de M1 M2 se obtiene el siguiente
AFD:
a

(q1 , q2 )

a
b

(q1 , q4 )

(q3 , q2 )

b
a

(q3 , q4 )

b
b
(q3 , q5 )

(q1 , q5 )

b
a

Se observa que los estados (q3 , q5 ) y (q1 , q5 ) son estados limbo que no conducen a la
aceptacion. El automata simplificado se reduce al mostrado en el siguiente diagrama.

(q1 , q2 )

(q1 , q4 )

(q3 , q2 )

(q3 , q4 )

Solucion 2. Utilizamos la parte (ii) del Teorema 1.1 expresando L como L = L1 L3 . Para
obtener un AFD que acepte L3 basta intercambiar los estados de aceptacion con los de
no-aceptacion en el AFD M2 (mostrado en la pagina anterior). Obtenemos as el siguiente
AFD M3 :
a, b

a
b
q2

q4

q5

a
Al formar el producto cartesiano M1 M3 obtenemos exactamente el mismo AFD con
seis estados que aparece en la pagina anterior. Los estados de aceptacion son los pares
(q1 , q2 ) y (q1 , q4 ) formados por los estados de aceptacion de M1 y M3 .


Ejercicios de la secci
on 1

Utilizar el Teorema 1.1 para construir AFD que acepten los siguientes los siguientes
lenguajes sobre el alfabeto {0, 1}:
(i) El lenguaje L de todas las cadenas que tienen longitud par o que terminan en
10.
(ii) El lenguaje L de todas las cadenas que tienen longitud impar y que terminan
en 01.
(iii) El lenguaje L de todas las cadenas que tienen longitud impar y que no terminan
en 11.
Utilizar el Teorema 1.1 para construir AFD que acepten los siguientes los siguientes
lenguajes sobre el alfabeto {a, b, c}:
(i) El lenguaje L de todas las cadenas que tienen longitud par y terminan en a.
6

(ii) El lenguaje L de todas las cadenas que tienen longitud par o que tienen un
n
umero impar de cs.
(iii) El lenguaje L de todas las cadenas que tienen longitud impar y que tienen un
n
umero par de ces.
(iv) El lenguaje L de todas las cadenas que tienen longitud impar y que no terminan
en c.
(v) El lenguaje L de todas las cadenas de longitud impar que tengan exactamente
dos aes.
En el contexto del Teorema 1.1, dados dos AFD, M1 = (, Q1 , q1 , F1 , 1 ) y
M2 = (, Q2 , q2 , F2 , 2 ) tales que L(M1 ) = L1 y L(M2 ) = L2 , escoger adecuadamente el conjunto de estados de aceptacion F para que el producto cartesiano
M1 M2 = (, Q1 Q2 , (q1 , q2 ), F, ) acepte la diferencia simetrica L1  L2 . Recuerdese que la diferencia simetrica se define como
L1  L2 = (L1 L2 ) (L1 L2 ) = (L1 L2 ) (L2 L1 ).

2.

Propiedades de clausura de los lenguajes regulares

Las propiedades de clausura afirman que a partir de lenguajes regulares se pueden obtener
otros lenguajes regulares por medio de ciertas operaciones entre lenguajes. Es decir, la
regularidad es preservada por ciertas operaciones entre lenguajes; en tales casos se dice
que los lenguajes regulares son cerrados bajo las operaciones.
Inicialmente presentamos las propiedades de clausura para automatas. El siguiente
teorema resume los procedimientos algortmicos que han sido presentados en secciones
anteriores para la construccion de nuevos automatas finitos.
2.1 Teorema. Sean M , M1 y M2 automatas finitos (ya sean AFD o AFN o AFN-)
tales que L(M ) = L, L(M1 ) = L1 , L(M2 ) = L2 . Se pueden construir automatas finitos
que acepten los siguientes lenguajes:
(1)
(2)
(3)
(4)

L1 L2 .
L1 L2 .
L .
L+ .

(5)
(6)
(7)
(8)

L = L.
L1 L2 .
L1 L2 .
L1  L2 .

Demostracion. La construccion de automatas que acepten L1 L2 , L1 L2 , L y L+ se


presento en la demostracion de la parte I del Teorema de Kleene.
Para construir un automata que acepte L, se construye primero un AFD que acepte
L y se intercambian luego los estados de aceptacion con los de no aceptacion.
Para construir automatas que acepten L1 L2 y L1 L2 , basta formar el producto
cartesiano de dos AFDs que acepten a L1 y L2 , y escoger adecuadamente los estados de

aceptacion, tal como se indico en el Teorema 1.1. Tambien se puede usar el producto
cartesiano para aceptar L1 L2 .
Finalmente, los procedimientos de construccion de (1), (6) y (7) se pueden combinar
para obtener un automata que acepte el lenguaje L1  L2 .
Puesto que, seg
un el Teorema de Kleene, los lenguajes regulares son precisamente los
lenguajes aceptados por automatas finitos, el Teorema 2.1 se puede presentar en terminos
de lenguajes regulares.
2.2 Teorema. Si L, L1 y L2 son lenguajes regulares sobre un alfabeto , tambien son
regulares los siguientes lenguajes:
(1)
(2)
(3)
(4)

3.

L1 L2 .
L1 L2 .
L .
L+ .

(5)
(6)
(7)
(8)

L = L.
L1 L2 .
L1 L2 .
L1  L2 .

Cadenas distinguibles y lenguajes no regulares

3.1 Definici
on. Sea un alfabeto dado y L un lenguaje sobre (i.e., L ). Dos
cadenas u, v son distinguibles con respecto a L (o L-distinguibles) si


(x ) (ux L y vx
/ L) o (ux
/ L y vx L) .
(3.1)
Es decir, u y v son L-distinguibles si existe x en tal que una de las cadenas ux o vx
esta en L y la otra no.
Si dos cadenas u, v no son distinguibles con respecto a L, se dice que son indistinguibles con respecto a L o L-indistiguibles. Afirmar que u y v son L-indistinguibles
equivale a negar (3.1); as que u, v son L-indistinguibles si


(x ) (ux L vx L) .


Ejemplo Sea = {0, 1} y L el lenguaje de las cadenas que terminan en 10. Las cadenas

u = 01 y v = 00 son L-distinguibles ya que 010 L pero 001
/ L. En otros
terminos, ux L pero vx
/ L cuando x = 0.
Pero las cadenas 0 y 00 son indistiguibles con respecto a L porque si 0x L, tambien
se tendra 00x L.
3.2 Proposici
on. Sea M = (, Q, q0 , F, ) un AFD tal que L(M ) = L. Si u, v son
b 0 , u) 6= (q
b 0 , v).
L-distinguibles entonces (q
Demostracion. Como u y v son L-distinguibles, existe una cadena x tal que una
de las cadenas ux o vx esta en L y la otra no. Puesto que L(M ) = L, se tiene ux
b 0 , ux) o (q
b 0 , vx)
o vx es aceptada por M y la otra no. Entonces, uno de los estados (q

b 0 , ux) 6= (q
b 0 , vx). Esto implica que
es de aceptacion y el otro no. Por consiguiente, (q
b
b
b
b
(q0 , u) 6= (q0 , v) ya que si (q0 , u) = (q0 , v) se tendra
b 0 , ux) = (
b (q
b 0 , u), x) = (
b (q
b 0 , v), x) = (q
b 0 , vx),
(q
b 0 , ux) 6= (q
b 0 , vx).
lo cual contradice el hecho de que (q
El enunciado de la Proposicion 3.2 lo podemos expresar diciendo que si u y v son
L-distinguibles, cualquier AFD M que acepte a L, distingue las cadenas u y v; o sea,
para M no es lo mismo procesar a u que procesar a v.
3.3 Teorema. Sea un alfabeto dado y L . Si hay n cadenas u1 , u2 , . . . , un en
que L-distinguibles dos a dos (es decir, ui y uj son L-distinguibles para todo i 6= j,
i, j = 1, . . . , n), entonces cualquier AFD M que acepte a L debe tener por lo menos n
estados.
Demostracion. Sea M = (, Q, q0 , F, ) un AFD que acepte a L. Por la Proposicion 3.2,
b 0 , ui ) 6= (q
b 0 , uj ) para todo i 6= j. Entonces los n estados
(q
b 0 , u1 ), (q
b 0 , u2 ), . . . , (q
b 0 , un )
(q
son diferentes entre s (diferentes dos a dos) y, por lo tanto, M tiene por lo menos n
estados.
3.4 Corolario. Sea un alfabeto dado y L . Si L es regular entonces en existe
a lo sumo un n
umero finito de cadenas L-distinguibles dos a dos.
un el Teorema
Demostracion. Sea M un AFD tal que L(M ) = L. Si M tiene n estados, seg
3.3, hay a lo sumo n cadenas L-distinguibles dos a dos (ya que si hay n + 1 cadenas Ldistinguibles, M tendra al menos n + 1 estados).
3.5 Corolario. (Criterio de no regularidad). Sea un alfabeto dado y L . Si
en hay infinitas cadenas L-distinguibles dos a dos, entonces L no es regular.
Demostracion. El enunciado es la implicacion contra-recproca del Corolario 3.4.
Seg
un este criterio, para concluir que L no es regular basta exhibir infinitas cadenas en
que sean L-distinguibles dos a dos. En la mayora de los casos sera suficiente mostrar
que a, a2 , a3 , . . . son infinitas cadenas L-distinguibles dos a dos (en el caso en el que a ).
En algunos problemas resulta conveniente mostrar que las potencias pares, a2 , a4 , a6 , . . .
son infinitas cadenas L-distinguibles dos a dos. Los siguientes ejemplos ilustran el uso de
esta tecnica.

el criterio de no regularidad para demostrar que el lenguaje L =


Ejemplo Utilizar

{an bn : n 0}, sobre = {a, b}, no es regular.
Solucion. Vamos a comprobar que a, a2 , a3 , . . . son infinitas cadenas L-distinguibles dos a
dos. Sean i, j 1, con i 6= j. Queremos mostrar que ai y aj son L-distinguibles, para lo
9

cual hay que encontrar una cadena x tal que ai x L pero aj x


/ L. La escogencia de x es
i
i
i i
j
j i
obvia: x = b . Se tiene que a x = a b L pero a x = a b
/ L. Esto muestra que ai y aj
son L-distinguibles si i 6= j y, por el Corolario 3.5, L no puede ser regular.


Ejemplo Utilizar el criterio de no regularidad para demostrar que el lenguaje de los



palndromes sobre = {a, b} no es un lenguaje regular. Recu
erdese que un
palndrome es una cadena que coincide con su reflexion, o sea, una w tal que w = wR .
Solucion. Vamos a comprobar que a, a2 , a3 , . . . son infinitas cadenas L-distinguibles dos a
dos. Sean i, j 1, con i 6= j. Queremos mostrar que ai y aj son L-distinguibles, para lo
cual hay que encontrar una cadena x tal que ai x L pero aj x
/ L. Escogemos x = bai .
Se tendra entonces que ai x = ai bai L pero aj x = aj bai
/ L. Esto muestra que ai y aj
son L-distinguibles si i 6= j y, por el Corolario 3.5, L no puede ser regular.


Utilizar el criterio
de no regularidad para demostrar que el lenguaje L =
Ejemplo 


 an2 : n 1 no es regular. L est
a formado por cadenas de aes cuya longitud
es un cuadrado perfecto, sobre el alfabeto = {a}.

Solucion. Vamos a comprobar que las cadenas de L, o sea, a, a4 , a9 , a16 , a25 , . . ., son L2
2
distinguibles dos a dos. Sean i, j 1, con i < j; queremos mostrar que ai y aj son
2
2
2
L-distinguibles. Si escogemos x = a2i+1 , se tendra que ai x = ai a2i+1 = ai +2i+1 =
2
2
2
2
a(i+1) L. De otro lado, aj x = aj a2i+1 = aj +2i+1
/ L ya que
j 2 < j 2 + 2i + 1 < j 2 + 2j + 1 = (j + 1)2 .
2

Esto quiere decir que el n


umero de aes que hay en aj +2i+1 esta estrictamente comprendido entre dos cuadrados perfectos consecutivos, a saber, j 2 y (j + 1)2 . Por consiguiente,
2
aj +2i+1
/ L.
Las propiedades de clausura presentadas en la seccion 2 tambien son u
tiles para concluir, razonando por contradiccion, que ciertos lenguajes no son regulares. Esto se ilustra
en los siguientes ejemplos.


n m
Si lo fuera, a b L tambien
Ejemplo L = {a b : n, m 0, n 6= m} no es regular.

lo sera, por el Teorema 2.2 (7). Pero a b L = {an bn : n 0} que no es un
lenguaje regular, seg
un se demostro en la pagina anterior.

perfecto}, sobre el alfabeto


Ejemplo El lenguaje L = {w : |w| es un cuadrado

 = {a, b}, no es regular. Si lo fuera, a L tambi
en lo sera, por el Teo n2

rema 2.2 (6). Pero a L = a : n 1 que no es un lenguaje regular, seg


un se
demostro en la pagina anterior.

Ejercicios de la secci
on 3

Utilizar el criterio de no regularidad (Corolario 3.5) para demostrar que los siguientes
lenguajes no son regulares:
(i) L = {an b2n : n 0}, sobre = {a, b}.
10

(ii) L = {a2n bn : n 0}, sobre = {a, b}.


(iii) L = {am bn : m n 0}, sobre = {a, b}.
(iv) L = {0n 10n : n 1}, sobre = {0, 1}.
(v) L = {0m 1n 0m : m, n 1}, sobre = {0, 1}.
(vi) L = {1n 01n 0 : n 1}, sobre = {0, 1}.
(vii) L = {01n 01n : n 1}, sobre = {0, 1}.
(viii) L = {am bn cm+n : m, n 1}, sobre = {a, b, c}.
(ix) L = {ww : w }, sobre = {a, b}.
(x) L = {wwR : w }, sobre = {a, b}.
n

(xi) L = {a2 : n 1} = {a2 , a4 , a8 , a16 , . . .}, sobre = {a}.


Utilizar el criterio de no regularidad (Corolario 3.5) para demostrar que los siguientes
lenguajes sobre el alfabeto = {a, b} no son regulares:
(i) L = {w : #a (w) = #b (w)}.
(ii) L = {w : #a (w) > #b (w)}.
(iii) L = {w : #a (w) < 2#b (w)}.
Utilizar el criterio de no regularidad (Corolario 3.5) para demostrar que el lenguaje
L = {an : n es un n
umero primo},
sobre = {a}, no es regular.
Ayuda: usar el Teorema de Legendre seg
un el cual, si p y q son primos, entonces la
progresion aritmetica {p + kq : k 0} contiene infinitos primos.
Demostrar que a b es la union de dos lenguajes disyuntos no-regulares.
Sea L un lenguaje no-regular y N un subconjunto finito de L. Demostrar que L N
tampoco es regular.
Demostrar o refutar las siguientes afirmaciones:
(i) Un lenguaje no-regular debe ser infinito.
(ii) Si el lenguaje L1 L2 es regular, tambien lo son L1 y L2 .
(iii) Si los lenguajes L1 y L2 no son regulares, el lenguaje L1 L2 tampoco puede
ser regular.
(iv) Si el lenguaje L es regular, tambien lo es L.
(v) Si L es regular y N es un subconjunto finito de L, entonces L N es regular.
(vi) Un lenguaje regular L es infinito si y solo si en cualquier expresion regular de
L aparece por lo menos una .
11

4.

Minimizaci
on de aut
omatas

En la presente seccion presentaremos un procedimiento general para encontrar un automata con el menor n
umero de estados posible, equivalente a un AFD dado. Se trata de un
procedimiento algortmico en el que se identifican estados equivalentes, en un sentido que se precisara detalladamente, lo cual permite colapsar estados en el automata
original y de esta manera reducir el n
umero de estados hasta el mnimo posible.
4.1 Definici
on. Dado un AFD M = (, Q, q0 , F, ) se define sobre el conjunto de estados
Q la relacion p q:
b w) F (q,
b w) F ].
p q si y solo si (w )[(p,
Es facil comprobar que la relacion es reflexiva, simetrica y transitiva; es decir, para
todos los estados p, q, r de Q se cumple:
Reflexividad. p p.
Simetra. Si p q entonces q p.
Transitividad. Si p q y q r entonces p r.
Por lo tanto, es una relacion de equivalencia sobre el conjunto de estados Q. Si p q
se dice que p y q son estados equivalentes. La clase de equivalencia de un estado p se
denotara con [p]; es decir,
[p] := {q Q : p q}.
Se define el aut
omata cociente, M/, identificando entre s los estados equivalentes
seg
un la relacion . Formalmente, M/ = (, Q0 , q00 , F 0 , 0 ) donde:
Q0 = {[p] : p Q},
q00 = [q0 ],
F 0 = {[p] : p F },
0 ([p], a) = [(p, a)], para todo a .
Hay que verificar que tanto F 0 como la funcion de transicion 0 estan bien definidas, es
decir, que no dependen del representante escogido en la clase de equivalencia. Esto se hace
en la siguiente proposicion.
4.2 Proposici
on.
(i) 0 esta bien definida, es decir, si [p] = [q] (o sea, si p q) entonces (p, a) (q, a),
para todo a .
(ii) F 0 esta bien definido, es decir, si q F y p q entonces p F .
12

(iii) p F [p] F 0 .
b w)] para toda cadena w .
(iv) b0 ([p], w) = [(p,
Demostracion.
(i) Si p q, entonces
b aw) F (q,
b aw) F ],
(w )(a )[(p,
de donde
b a), w) F ((q,
b
(w )[((p,
a), w) F ],
para todo a . Por la definicion de la relacion , se concluye que (p, a) (q, a).
b ) F si y solo si
(ii) Tomando w = en la definicion de p q, se tiene que p = (p,
b ) F . Puesto que q F , se concluye que p F .
q = (q,
(iii) La direccion () se sigue de la definicion de F 0 . Para demostrar la otra direccion,
sea [p] F 0 . Entonces [p] = [q], con q F ; de donde p q. De (ii) se sigue que
p F.
(iv) Se demuestra por induccion sobre w.
Usando las propiedades de la Proposicion 4.2 se puede deducir que M y M/ aceptan
el mismo lenguaje, tal como se demuestra en el siguiente teorema.
4.3 Teorema. Los automatas M y M/ aceptan el mismo lenguaje, es decir, L(M ) =
L(M/).
Demostracion.
w L(M/) b0 ([q0 ], w) F 0
b 0 , w)] F 0
[(q
b 0 , w) F
(q
w L(M ).

(por la proposicion 4.2 (iv))


(por la proposicion 4.2 (iii))


Dado un AFD M , el automata cociente M/ resulta ser un automata con el mnimo


n
umero de estados posible para aceptar L(M ). Para demostrarlo es necesario relacionar
la construccion de M/ con los conceptos presentados en la seccion 3. Recordemos que,
dados , L y dos cadenas u, v , se dice que u L-indistinguibles de v si


(x ) (ux L vx L) .
Escribiremos u IL v para representar la relacion u es L-indistinguible de v. La relacion IL
resulta ser una relacion de equivalencia sobre ya que es reflexiva, simetrica y transitiva.
En efecto, es facil verificar para todas las cadenas u, v, w se cumple
13

Reflexividad. u IL u.
Simetra. Si u IL v entonces v IL u.
Transitividad. Si u IL v y v IL w entonces u IL w.
Cada clase de equivalencia contiene cadenas que son L-indistinguibles entre s, mientras
que dos cadenas pertenecientes a clases de equivalencia diferentes son L-distinguibles entre
s. Seg
un el Corolario 3.4, si L es regular existe a lo sumo un n
umero finito de cadenas
L-distinguibles dos a dos. Esto quiere decir que si L es regular, el conjunto cociente /IL
formado por todas las clases de equivalencia inducidas por la relacion IL es finito. Se ha
demostrado as la siguiente proposicion.
4.4 Proposici
on. Si L es regular, la relacion de indistinguibilidad IL tiene ndice finito;
es decir, el conjunto cociente /IL es finito.
La siguiente proposicion establece la conexion entre las dos relaciones de equivalencia
definidas en el presente captulo: la relacion p q entre los estados de un AFD y la
relacion u IL v entre cadenas, con respecto a un lenguaje dado L.
4.5 Proposici
on. Sea M = (, Q, q0 , F, ) un AFD tal que L(M ) = L. Sean u, v
b 0 , u) = p y (q
b 0 , v) = q. Entonces
dos cadenas tales que (q
p q u IL v.

(4.1)

p 6 q u y v son L-distinguibles.

(4.2)

b w) F (q,
b w) F ].
p q significa (w )[(p,


u IL v significa (w ) (uw L vw L) .

(4.3)

En consecuencia,
Demostracion.

(4.4)

b 0 , u) = p y (q
b 0 , v) = q, para toda cadena w se tiene que
Puesto que (q
b w) = (
b (q
b 0 , u), w) = (q
b 0 , uw),
(p,
b w) = (
b (q
b 0 , v), w) = (q
b 0 , vw).
(q,

(4.5)
(4.6)

Demostraremos primero la direccion (=) de (4.1). Sea w una cadena cualquiera;


se tiene
b 0 , uw) F
uw L uw L(M ) (q
b w) F
(p,
(por 4.5)
b w) F
(q,
b 0 , vw) F
(q

(por 4.3)

(por 4.6)
vw L(M ) vw L.
14

Para demostrar la direccion (=) de (4.1) consideramos una cadena arbitraria w .


Se tiene que
b w) F (q
b 0 , uw) F
(p,
(por 4.5)
uw L(M ) = L
vw L
(por 4.4)
b 0 , vw) F
(q
b w) F
(q,

(por 4.6).

Para la demostracion del siguiente teorema se requiere que en un AFD dado todos
los estados sean accesibles desde el estado inicial. Un estado q es accesible si existe una
b 0 , w) = q. Un estado inaccesible q es completamente
cadena de entrada w tal que (q
in
util ya que la unidad de control del automata nunca ingresara al estado q al iniciar el
procesamiento de una cadena cualquiera desde el estado inicial q0 . Los estados inaccesibles
se pueden encontrar facilmente haciendo una b
usqueda por profundidad en el diagrama
de estados y luego se deben eliminar.
4.6 Teorema. Sea M un AFD cuyos estados son todos accesibles. M/ es un automata
determinista equivalente a M , con el mnimo n
umero de estados posible para aceptar el
lenguaje L(M ).
Demostracion. Sea M el AFD M = (, Q, q0 , F, ). Los estados del automata cociente
b 0 , w) = q
(, Q0 , q00 , F 0 , 0 ) son todos accesibles. En efecto, dado q Q, existe w tal que (q
b 0 , w)] = [q] y, por lo tanto [q] es
ya que q es accesible en M . Se sigue que b0 ([q0 ], w) = [(q
accesible.
Supongase ahora que M/ tiene n estados diferentes, [q0 ], [q1 ], . . . , [qn1 ], formados
por clases de equivalencia del automata M . Como los estados q0 , q1 , . . . , qn1 de M son
b 0 , x0 ) = q0 , (q
b 0 , x1 ) = q1 , . . . ,
accesibles, existen cadenas x0 , x1 , . . . , xn1 tales que (q
b 0 , xn1 ) = qn1 . Puesto que pi 6 pj si i 6= j, se sigue de (4.2) que xi es distinguible
(q
de xj si i 6= j. Por lo tanto, x0 , x1 , . . . , xn1 son n cadenas distinguibles dos a dos. Por
el Teorema 3.3, cualquier AFD que acepte a L debe tener por lo menos n estados. En
consecuencia, n es el mnimo n
umero de estados posible.

Dado un AFD M , se dispone de un algoritmo para encontrar el automata cociente
M/, y se le conoce como algoritmo de minimizacion por llenado de tabla. Es muy importante tener presente que para aplicar este algoritmo se requiere que todos los estados
de M dado sean accesibles. Ademas, siendo un automata determinista, M debe ser completo, es decir, para cada estado q y cada smbolo a , la transicion (q, a) debe estar
definida. Por consiguiente, en el diagrama de estados de M se deben mostrar todos los
estados, incluyendo los llamados estados limbo.
El algoritmo se ejecuta llenando una tabla que muestra todos los pares de estados
{p, q}; el proposito es determinar cuales son equivalentes y cuales no. Puesto que en el
par {p, q} no importa el orden de los estados, basta trabajar en una tabla de formato
triangular como la siguiente:
15

q0
q1
q2
..
.

qn2
qn1

qn

En cada iteracion la tabla se recorre por columnas, q0 , q1 , . . . , qn . La casilla {p, q} es


b w) F
marcada por el algoritmo de minimizacion si y solo si existe w tal que (q,
b w)
y (q,
/ F , o viceversa, es decir, si y solo si p 6 q. Por consiguiente, las casillas no
marcadas al finalizar el algoritmo representan estados equivalentes.
Si en la definicion de la relacion se toma w = , se deduce que si p q, entonces
b ) F (q,
b ) F , o sea, p F q F . Esto implica que si p q, entonces
(p,
ambos estados son de aceptacion o ninguno de los dos lo es. De manera que si p es estado
de aceptacion y q no lo es (o viceversa), se tendra p 6 q. Esta es la razon por la cual
el algoritmo de minimizacion comienza marcando con 1 las casillas {p, q} para las cuales
pF yq
/ F (o viceversa).
Algoritmo por llenado de tabla para determinar
la equivalencia de estados de un AFD
ENTRADA:
AFD M = (, Q, q0 , F, ) completo (incluyendo estados limbo) cuyos
estados son todos accesibles y tabla triangular que muestra todos los
pares {p, q} de estados p, q Q.
INICIALIZAR:
i := 1. Se marca con X la casilla {p, q} si p F y q
/ F (o viceversa).
REPETIR:
i := i + 1. Para cada casilla no marcada {p, q} y cada a , hallar
{(p, a), (q, a)}. Si para alg
un a , la casilla {(p, a), (q, a)} ha sido
marcada previamente, entonces se marca la casilla {p, q} con X.
HASTA:
No se marcan mas casillas en la tabla.
SALIDA:
Si la casilla {p, q} esta marcada, entonces p 6 q. Si la casilla {p, q} no
esta marcada, entonces p q.


Ejemplo Aplicar el algoritmo de minimizacion para encontrar un AFD con el menor



n
umero de estados posible, equivalente al siguiente AFD, cuyo alfabeto de
entrada es {a}.

16

q5
a

a
q0

q4

q1

q3
a

a
q2

Solucion. Primero marcamos con X las casillas {p, q} para las cuales p es un estado de
aceptacion y q no lo es, o viceversa:
q0
X

q1
X
X

q2
q3
X

q4
X

q5

Luego hacemos i := 2 y examinamos las casillas a


un no marcadas, teniendo en cuenta
las transiciones posibles. La informacion necesaria la podemos presentar de la siguiente
manera:
{q0 , q2 } {q1 , q3 }

{q2 , q3 } {q3 , q4 }

{q0 , q3 } {q1 , q4 }

{q2 , q5 } {q3 , q0 }

{q3 , q5 } {q4 , q0 }

{q0 , q5 } {q1 , q0 }
a

{q1 , q4 } {q2 , q5 }
a

As por ejemplo, {q0 , q2 } {q1 , q3 } significa que (q0 , a) = q1 y (q2 , a) = q3 . Como el


par {q1 , q3 } ha sido marcado, la casilla {q0 , q3 } sera marcada con X. Prosiguiendo de esta
forma, al terminar la segunda iteracion la tabla adquiere la siguiente aspecto:
q0
X
X
X
X

q1
X
X

q2
q3

X
X

X
X

q4
X

q5

En la tercera iteracion ya no se pueden marcar mas casillas y el algoritmo termina. Las


casillas vacas representan estados equivalentes; as que q0 q3 , q1 q4 y q2 q5 .
17

El automata cociente M/ tiene entonces tres estados: {q0 , q3 }, {q1 , q4 } y {q2 , q5 }; el


diagrama de estados obtenido se exhibe en la siguiente pagina. El lenguaje aceptado por
este automata es:
{a, a4 , a7 , a10 , . . .} = {a3i+1 : i 0} = {ai : i 1

mod 3}.

{q2 , q5 }
a

{q0 , q3 }


{q1 , q4 }

Ejemplo Aplicar el algoritmo de minimizacion para encontrar un AFD con el menor



n
umero de estados posible, equivalente al siguiente AFD.
b
b

q1

q3
a

b
q0

a
q2

q4

q5

Se observa primero que el estado q5 no es accesible y, por consiguiente, es in


util. Al
eliminarlo obtenemos el automata:

18

b
b

q1

q3

b
q0

a
q2

q4

Al marcar con X las casillas {p, q} para las cuales p es un estado de aceptacion y q no lo
es, o viceversa, obtenemos la tabla:
q0
q1
q2
q3
X

q4

Luego hacemos i := 2 y examinamos las casillas a


un no marcadas teniendo en cuenta las
transiciones posibles, con cada smbolo del alfabeto de entrada. Las transiciones requeridas
son las siguientes:
{q0 , q1 } {q2 , q4 }

{q0 , q3 } {q2 , q4 }

{q1 , q3 } {q4 , q4 }

{q0 , q1 } {q1 , q1 }

{q0 , q3 } {q1 , q1 }

{q1 , q3 } {q1 , q1 }

{q0 , q2 } {q2 , q4 }

{q1 , q2 } {q4 , q4 }

{q2 , q3 } {q4 , q4 }

{q1 , q2 } {q1 , q2 }

{q2 , q3 } {q2 , q1 }

{q0 , q2 } {q1 , q2 }

a
b

a
b

Al terminar la segunda iteracion obtenemos la tabla:


q0
X
X
X
X

q1
q2
q3
X

q4

En la tercera iteracion ya no se marcan mas casillas y el algoritmo termina. Se deduce que


los tres estados q1 , q2 y q3 son equivalentes entre s. El automata cociente posee entonces
tres estados, a saber, {q0 }, {q1 , q2 , q3 } y {q4 }. Su diagrama de transiciones es:

19

{q0 }

a, b

{q1 , q2 , q3 }

b
{q4 }

a


Ejemplo Sea = {a, b}. Demostrar que el lenguaje L de todas las cadenas que tienen

un n
umero par de aes y un n
umero par de bes no puede ser aceptado por un
AFD con menos de cuatro estados.
Ya conocemos un AFD para aceptar este lenguaje:
a
q0

q1
a

a
q2

q3
a

El problema se reduce a minimizar este AFD con el objeto de determinar si es o no


posible construir uno equivalente con menos de cuatro estados. Al aplicar el algoritmo de
minimizacion tenemos inicialmente la siguientes marcas sobre la tabla:
q0
X
X
X

q1
q2
q3

Usando las transiciones


a

{q1 , q2 } {q0 , q3 }

{q1 , q3 } {q0 , q3 }
20

{q2 , q3 } {q0 , q1 }

llegamos a la tabla
q0
X
X
X

q1
q2

X
X

q3

en la cual todas las casillas han sido marcadas. Esto quiere decir que no hay pares de
estados diferentes que sean equivalentes entre s, o sea, un estado es solo equivalente a
s mismo. Por lo tanto, el automata no se puede minimizar mas y no es posible aceptar el
lenguaje L con menos de cuatro estados.


Ejercicios de la secci
on 4

Minimizar los siguientes AFD, es decir, encontrar automatas deterministas con el


mnimo n
umero de estados posible, equivalentes a los automatas dados. Algunos de
los automatas se han presentado en forma reducida, es decir, se han omitido los
estados limbo. Sin embargo, el algoritmo de minimizacion require que el AFD sea
completo: para cada estado q y cada smbolo a , la transicion (q, a) debe estar
definida.
(1)
a

b
q0

q1

a, b

q2
a

q3

a
q4

q5

b
q6

(2)
a

q1
a

q3
b

q0

q5

b
b

b
q2

21

q4

(3)
b
b

q0

q1

q4

q2

q5

q6

q3

q7

(4)
1
1

q2
1
0

q0

q1

q5
0

q4
0

q7

0
0

q3

q6

1
(5)
a
q0

a
q1

c
a

q2

a
a

q3

c
c

q4

q5

c
22

q6

Sea = {a, b}. Demostrar que el lenguaje L = a+ b a no puede ser aceptado por un
AFD con menos de seis estados (contando el estado limbo).
Sea = {a, b}. Demostrar que el lenguaje L = a b b a no puede ser aceptado por
un AFD con menos de siete estados (contando el estado limbo).
Sea = {0, 1} y L el lenguaje
L = {w : |w| 3 y el tercer smbolo de w, de derecha a izquierda, es 1}.
Demostrar que L no puede ser aceptado por un AFD con menos de ocho estados
(contando el estado limbo).

23

También podría gustarte