Professional Documents
Culture Documents
y se dene
por
(a
i1
a
i2
: : : a
i
k
)(a
j1
a
j2
: : : a
js
) = a
i1
a
i2
: : : a
i
k
a
j1
a
j2
: : : a
js
para todos 1 _ t _ k y 1 _ r _ s, 1 _ i
t
; i
r
_ n y a
it
; a
jr
. La concatenacin
es asociativa
(xy) z = x(yz)
para cualesquiera x; y; z
.
La cadena vaca es el elemento neutro de la concatenacin:
w = w = w
es innito numerable.
Prueba. Supngase que el alfabeto consta de n smbolos; = a
1
; a
2
; : : : ; a
n
.
Se construye una correspondencia biyectiva entre los nmero naturales y el
conjunto universo (innito)
:
Adems,
i)
0
=
ii)
k
= w
[ [w[ = k
de manera que se puede denir en universo lingstico como
=
1
_
k=0
k
Se dene tambin
+
=
, o equivalentemente,
+
=
1
_
k=1
k
3
El reverso de una cadena w se dene recursivamente:
w
r
=
_
w ; si w =
y
r
a ; si w = ay donde a y y
; el re-
verso de la concatenacin es la concatenacin de los reversos en orden invertido,
es decir,
(yw)
r
= w
r
y
r
.
Prueba. Se razona inductivamente en la longitud de y:
1) Base de la induccin: [y[ = 0
Dado que [y[ = 0; y = = y
r
; luego,
(yw)
r
= (w)
r
= w
r
= w
r
= w
r
y
r
2) Paso inductivo: [y[ > 0
Hiptesis inductiva: Sea n > 0 y sea z
L
3
= xx
r
[ x
).
T (
=
1
_
k=0
L
k
L
+
=
1
_
k=1
L
k
5
Figure 1: Cdigos de Gauss
Si L es un lenguaje sobre ; se tiene que L
+
= LL
= L
L. Adems, como
O
0
= y O
n
= O para todo n _ 1, se tiene que O
= y O
+
= O:
Proposicin 6 Si L entonces L
+
= L
:
Prueba. La inclusin L
+
_ L
_ L
+
:
En efecto, como / L; para cualquier x L se tiene que
k1
x L
k
; y por
ello L _ L
k
para todo k _ 1; de donde,
L _
1
_
k=1
L
k
= L
+
pero L
0
= _ L; por lo tanto, _ L
+
:
Por extensin, el lenguaje reverso L
r
de un lenguaje L sobre un alfabeto
es el lenguaje sobre el mismo alfabeto formado por los reversos de las cadenas
de L, es decir,
L
r
= w [ w
r
L
Ntese que (L
r
)
r
= L.
Ejemplo 7 (Lenguajes de Gauss) Sea una curva plana cerrada con puntos de
cruce simples, es decir, sin puntos de encuentro tangenciales ni cruces multiples
en un mismo punto. Se numeran los n puntos de cruce en cualquier orden. Una
cadena que describe el recorrido de la curva por sus puntos de cruce contiene
dos ocurrencias de cada nmero i (1 _ i _ n), y se le llama cdigo de Gauss.
6
El lenguaje nito formado por los cdigos de Gauss de la curva de la Figura
1 es el siguiente:
L =
_
_
123441562365; 563265144321
144321563265; 562365123441
156326514432 234415623651
156236512344 443215632651
236512344156 651443215632
215632651443 344156236512
265144321563 365123441562
326514432156 651234415623
321563265144 441562365123
415623651234 432156326514
514432156326 623651234415
512344156236 632651443215
_
_
Obsrvese que, en este caso, L = L
r
:
Proposicin 8 Sean dos lenguajes L y M sobre el mismo alfabeto , entonces
(LM)
r
= M
r
L
r
.
Prueba. Sea x (LM)
r
. Entonces, x
r
((LM)
r
)
r
= LM; por lo que x
r
= yz
para cadenas y L y z M. Por lo tanto,
x = (x
r
)
r
= (yz)
r
= z
r
y
r
Pero z
r
M
r
y y
r
L
r
con lo cual x M
r
L
r
. Esto prueba la inclusin de
lenguajes (LM)
r
_ M
r
L
r
.
Recprocamente, si x M
r
L
r
entonces x = uv para cadenas u M
r
y
v L
r
: Pero entonces
x
r
= (uv)
r
= v
r
u
r
LM
por lo cual x (LM)
r
; probndose la inclusin M
r
L
r
_ (LM)
r
.
Ejercicio 9 Se verican sin dicultad las siguientes igualdades de lenguajes.
Sean los lenguajes L; M y N sobre un mismo alfabeto :
1) (L ' M)
r
= L
r
' M
r
2) (L M)
r
= L
r
M
r
3) (L
c
)
r
= (L
r
)
c
4) (L
)
r
= (L
r
)
) con respecto a un
smbolo a como el lenguaje
D
a
L = w [ aw L
Se verican las siguientes propiedades de la derivacin.
7
Proposicin 10 Sean los lenguajes L y M sobre un mismo alfabeto :
1) D
a
(L ' M) = D
a
L ' D
a
M
2)
D
a
(LM) =
_
(D
a
L) M ' D
a
M ; si L
(D
a
L) M ; si = L
3) D
a
L
= (D
a
L) L
Prueba. 1)
D
a
(L ' M) = w [ aw L ' M
= x [ ax L ' y [ ay M
= D
a
L ' D
a
M
2)
D
a
(LM) = w [ aw LM
= w [ aw xy [ (x L) . (y M)
Si aw = xy donde x = ax
0
entonces x
0
D
a
L y w = x
0
y (D
a
L) M. Si L
entonces, eventualmente x = y aw = y M con lo cual w D
a
M.
3)
D
a
L
= D
a
_
1
_
k=0
L
k
_
=
1
_
k=0
D
a
L
k
=
1
_
k=0
D
a
_
LL
k
_
Si = L entonces
D
a
L
=
1
_
k=0
(D
a
L) L
k
= (D
a
L)
1
_
k=0
L
k
= (D
a
L) L
8
Si L entonces
D
a
L
=
1
_
k=0
(D
a
L) L
k
' D
a
L
k
=
1
_
k=0
(D
a
L) L
k
' (D
a
L) L
k1
' ' (D
a
L)
= (D
a
L)
_
1
_
k=0
L
k
' L
k1
' '
_
= (D
a
L)
_
_
1
_
k=0
_
_
k
_
j=0
L
j
_
_
_
_
= (D
a
L)
_
_
1
_
j=0
_
_
1
_
k=j
L
j
_
_
_
_
= (D
a
L)
_
_
1
_
j=0
_
_
L
j
1
_
k=j
_
_
_
_
= (D
a
L)
_
_
1
_
j=0
_
L
j
_
_
_
= (D
a
L)
_
_
1
_
j=0
L
j
_
_
= (D
a
L) L
: para todo w
D
w
L =
_
L ; si w =
D
a
(D
y
L) ; si w = ya
Ejercicio 11 Sea L T(
) y sean x; y
T (
ii) /
L ' M /
LM /
Los lenguajes regulares pueden ser descritos por un sistema de notacin sin-
tctica que explicita una secuencia nita de operaciones regulares: los sintagmas
de este sistema simblico se llaman expresiones regulares. Las cadenas de
los lenguajes regulares pueden ser procesadas por mquina abstractas llamadas
autmatas nitos que determinan la pertenencia al lenguaje. Las cadenas
de los lenguajes regulares pueden ser generadas por un dispositivo algebraico
llamado gramtica regular a partir de un conjunto de reglas de produccin.
La piedra angular de la teora de lenguajes regulares es el Teorema de
Kleene: un lenguaje puede ser descrito por una expresin regular si, y slo si,
es reconocido por un autmata nto. Tambin veremos como se establece la
reciprocidad entre gramticas regulares y autmatas nitos.
En haskell usaremos el tipo abstracto de datos Lenguaje donde un lenguaje
formal es implementado por una lista de tipo String ordenada segn la longitud
de las palabras y lexicogrcamente (v. McIlroy 2003). En la gura 2 se presenta
la sintaxis del tipo Lenguaje en el encabezado del mdulo Lenguajes. Para
ver los detalles de implementacin consulte el cdigo Lenguajes:hs anexo a este
documento.
10
Figure 2: Mdulo de lenguajes
Para el tipo Lenguaje se denen:
- dos funciones constructoras, vacio y lenguaje;
- una funcin fuente que desencapsula un lenguaje para devolver su
lista de String original. Esta funcin permite aems mostrar un lenguaje en
pantalla;
- una funcin mapLeng asociada al tipo
- tres funciones predicativas: eqLeng para vericar la igualdad de lengua-
jes, inclusion para sublenguajes, pertenece para vericar que una cadena est
en un lenguaje;
- los tres operadores binarios regulares union, concatena y kleene as
como una funcin de potenciacin potencia.
- el operador de derivacin diferencial que calcula la derivada del
lenguaje con respecto a una cadena.
2.1 Expresiones Regulares
Las expresiones regulares constituyen un sistema de representacin algebraica
nita que simplica la notacin conjuntista de lenguajes y operadores regulares.
El conjunto de expresiones regulares c
2) c
3) \a : a c
4) Si r y s pertenecen a c
entonces
i) r +s c
ii) rs c
11
iii) r
sem(?) = ?
sem() =
sem(a) = a
sem(r +s) = sem(r) ' sem(s)
sem(rs) = sem(r) sem(s)
sem(r
) = sem(r)
:
r = s == sem(r) = sem(s)
Probar la equivalencia de expresiones regulares consiste en vericar la igualdad
de conjuntos de sus respectivas semnticas. A continuacin damos, sin prueba,
las propiedades bsicas de los operadores en trminos de equivalencia de expre-
siones regulares:
1) asociatividad de + :
(r +s) +t = r + (s +t) (er1)
2) conmutatividad de + :
r +s = s +r (er2)
3) idempotencia de + :
r +r = r (er3)
4) elemento neutro de + :
r +? = r = ?+r (er4)
4) asociatividad de : :
(rs) t = r (st) (er5)
5) elemento neutro de : :
r = r = r (er6)
6) cero de : :
r? = ? = ?r (er7)
12
7) distributividad de : con respecto a + :
(r +s) t = rt +st (er8)
t (r +s) = tr +ts (er9)
8) propiedades de + :
r
= r
(er9)
r
= (r
(er10)
r
= +rr
(er12)
Desde la perspectiva del lgebra abstracta el conjunto c
es un semianillo
idempotente.
El siguiente teorema es un resultado fundamental en la teora de las expre-
siones regulares.
Teorema 13 (Arden) Sean r,s y t expresiones regulares, entonces;
a) (r = s
t) == (r = sr +t)
b) si = sem(s) entonces (r = sr +t) == (r = s
t)
Prueba. a)
r = s
t
= ( +ss
) t
= t +ss
t
= s (s
t) +t
= sr +t
b) Se busca probar que
sem(r) _ sem(s
t) . sem(s
t) _ sem(r) :
dndose la igualdad de conjuntos sem(r) = sem(s
t. En efecto,
r = sr +t
= s (sr +t) +t
= s
2
r +st +t
= s
2
(sr +t) +st +t
= s
3
r +s
2
t +st +t
.
.
.
= s
k+1
r +s
k
t + +st +t
= s
k+1
r +
_
s
k
+ +s +
_
t
Dado que, por hiptesis, = sem(s), para todo x sem
_
s
k+1
r
_
necesaria-
mente [x[ _ k + 1.
13
Ahora bien, como la equivalencia
r = s
k+1
r +
_
s
k
+ +s +
_
t
se cumple para todo k _ 0, sin prdida de generalidad sea w sem(r) tal que
[w[ = k, de manera que
w = sem
_
s
k+1
r
_
por lo tanto,
w sem
__
s
k
+ +s +
_
t
_
pero, por denicin,
sem
__
s
k
+ +s +
_
t
_
_ sem(s
t)
con lo cual sem(r) _ sem(s
t).
Recprocamente, sea w sem(s
t = ( +s + +s
n
+ ) t
= t +st + +s
n
t +
por lo tanto,
w sem(t +st + +s
n
t + )
= sem(t) ' sem(st) ' ' sem(s
n
t) '
Luego, existe k N tal que w sem
_
s
k
t
_
. Dado que
r = s
n+1
r +s
n
t + +st +t
para todo n N, en particular
r = s
k+1
r +s
k
t + +st +t
es decir,
sem(r) = sem
_
s
k+1
r
_
' sem
_
s
k
t
_
' ' sem(st) ' sem(t)
Se tiene entonces que, como sem
_
s
k
t
_
_ sem(r) para todo k N, sem(s
t) _
sem(r).
Se demuestran equivalencias que relacionan los operadores : y + .
Proposicin 14 Sean r y s expresiones regulares, entonces;
a) (rs)
r = r (sr)
(er13)
b) (rs)
= +r (sr)
s (er14)
14
Figure 3: Mdulo de expresiones regulares
Prueba. a)
(rs)
r = ( +rs + + (rs)
n
+ ) r
= r +rsr + + (rs)
n
r +
= r +rsr + +r (sr)
n
+
= r ( +sr + + (sr)
n
+ )
= r (sr)
b)
+r (sr)
s = +r
_
+sr + + (sr)
n
+
_
s
= +
_
rs +rsrs + +r (sr)
n
s +
_
= +rs+(rs)
2
+ +(rs)
n+1
+
= (rs)
= (r
s)
(er15)
b) (r +s)
= r
(sr
(er16)
c) (r +s)
= (r +sr
s)
( +sr
) (er17)
2.2 Autmatas Finitos
2.2.1 Autmatas Finitos Determinsticos
Los autmatas son mquinas abstractas (representadas en forma de grafos di-
rigidos) que procesan cadenas para reconocer su pertenecia a un lenguaje. El
mecanismo se construye dividiendo el universo lingstico en un nmero nito de
15
clases disjuntas, representadas por los estados del sistema, algunas de las cuales
contienen las cadenas que pertenecen al lenguaje en cuestin, e ir recorriendo el
sistema en la lectura sucesiva de los smbolos de la cadena que se somete a eval-
uacin, segn el orden creciente de sus prejos desde hasta la cadena misma.
Si al nalizar este proceso el sistema se encuentra en una clase de aceptacin
entonces la cadena pertenece al lenguaje.
Considrese, por ejemplo, el alfabeto = 0; 1 y el lenguaje denotado por
la expresin regular (0 +1)
11:
1) las cadenas que terminan con el smbolo 0 as como no pertenecen
al lenguaje, pero en ambos casos se requieren dos smbolos 1 seguidos para
alcanzar una clase o estado de aceptacin, por lo tanto conforman un nico
lenguaje, que llamaremos
q
0
' w [ w = y0; y
11,
q
2
w [ w = y11; y
Obsrvese que q
0
; q
1
y q
2
suponen una particin de
: Q
(q; w) =
_
q ; si w =
(
(q; y); a) ; si w = ya , y
y a
La nalidad de un autmata es el reconocimiento de un lenguaje aceptando
o rechazando cadenas del universo lingstico. Una cadena w
es aceptada
(o reconocida) por un AFD M = (Q; ; q
0
; F; ) si
(q
0
; w) F. En caso
contrario se dice que w es rechazada por M. El conjunto
/(M) = w [
(q
i
; w) F
es el lenguaje reconocido por M.
El autmata Finito Determinstico M = (q
0
; q
1
; q
2
; 0; 1; q
0
; q
2
; ) que
acepta el lenguaje denotado por la expresin regular (0 +1)
11 tiene la siguiente
funcin descrita en una tabla de transiciones;
Q 0 1
q
0
q
0
q
1
q
1
q
0
q
2
q
2
q
0
q
2
Un esquema de representacin en forma de grafo constituye un diagrama
de transiciones (Figura 4: el estado incial se seala con una echa y los estados
de aceptacin o estados nales se marcan con un doble crculo).
Ejemplo 16 La cadena w = 011 pertenece al lenguaje que reconoce el AFD
17
anterior. En efecto,
(q
0
; 011) = (
(q
0
; 01); 1)
= ((
(q
0
; 0); 1); 1)
= (((
(q
0
; ); 0); 1); 1)
= (((q
0
; 0); 1); 1)
= ((q
0
; 1); 1)
= (q
1
; 1)
= q
2
por lo tanto,
(q
0
; 011) F:
2.2.2 Derivadas de una expresin regular
Nos interesa ahora extender a c
(?) = ?
() =
(a) = ?
(r +s) = (r) + (s)
(rs) = (r) (s)
(r
) =
Teorema 17 (Brzozowski) El operador de derivacin de una expresin reg-
ular en c
D
a
(?) = ?
D
a
() = ?
D
a
(b) =
_
; si a = b
? ; si (a = b)
D
a
(r +s) = D
a
r + D
a
s
D
a
(rs) = (D
a
r) s + (r) D
a
s
D
a
(r
) = (D
a
r) r
sem(D
a
(r)) = D
a
(sem(r))
(el operador de derivacin del miembro izquierdo actua sobre expresiones regu-
lares y el del lado derecho sobre lenguajes).
18
Prueba. D
a
(?) = ? si, y slo si, sem(D
a
(?)) = sem(?). En efecto,
sem(D
a
(?)) = D
a
(sem(?))
= D
a
?
= w [ aw ?
= ?
= sem(?)
D
a
() = ? si, y slo si, sem(D
a
()) = sem(?). En efecto,
sem(D
a
()) = D
a
(sem())
= D
a
= w [ aw
= ?
= sem(?)
Caso a = b: D
a
(b) = si, y slo si, sem(D
a
(a)) = sem(). En efecto,
sem(D
a
(a)) = D
a
(sem(a))
= D
a
a
= w [ aw b
=
= sem()
Caso (a = b): D
a
(b) = ? si, y slo si, sem(D
a
(b)) = sem(?). En
efecto,
sem(D
a
(b)) = D
a
(sem(b))
= D
a
b
= w [ aw b
= ?
= sem(?)
D
a
(r +s) = D
a
r + D
a
s si, y slo si, sem(D
a
(r +s)) = sem(D
a
r + D
a
s).
En efecto,
sem(D
a
(r +s)) = D
a
(sem(r +s))
= D
a
(sem(r) ' sem(s))
= D
a
(sem(r)) ' D
a
(sem(s))
= sem(D
a
r) ' sem(D
a
s)
= sem(D
a
r + D
a
s)
19
D
a
(rs) = (D
a
r) s+(r) D
a
s si, y slo si, sem(D
a
(rs)) = sem((D
a
r) s + (r) D
a
s).
En efecto,
sem(D
a
(rs)) = D
a
(sem(rs))
= D
a
(sem((r
0
+ (r)) s)) ; con (r
0
) = ?
= D
a
(sem(r
0
s + (r) s))
= D
a
(sem(r
0
s) ' sem((r) s))
= D
a
sem(r
0
s) ' D
a
sem((r) s)
= D
a
(sem(r
0
) sem(s)) ' (r) D
a
sem(s)
= (D
a
sem(r
0
)) sem(s) ' (r) D
a
sem(s)
= (D
a
sem(r
0
)) sem(s) ' (r) D
a
sem(s)
= (sem(D
a
r
0
)) sem(s) ' (r) sem(D
a
s)
= sem((D
a
r
0
) s) ' sem((r) D
a
s)
= sem((D
a
r
0
) s + (r) D
a
s)
ntese que
D
a
r = D
a
(r
0
+ (r))
= D
a
r
0
+ D
a
(r)
= D
a
r
0
+?
= D
a
r
0
D
a
(r
) = (D
a
r) r
)) = sem((D
a
r) r
). En efecto,
sem(D
a
(r
)) = D
a
(sem(r
))
= D
a
_
sem(r)
_
= (D
a
(sem(r))) sem(r)
= sem(D
a
r) sem(r
)
= sem((D
a
r) r
)
Ahora extendemos la operacin de derivacin de una expresin regular del
alfabeto al universo lingstico:
D
w
r =
_
r ; si w =
D
a
(D
y
r) ; si w = ya
Es evidente que en la derivacin extendida se preserva la propiedad: para todo
r c
sem(D
w
(r)) = D
w
(sem(r))
A continuacin algunas propiedades importantes de la derivacin.
Proposicin 18 Sea la expresin regular r c
, y sea w
. Entonces,
w sem(r) si, y slo si, sem(D
w
r).
20
Prueba. (=) w sem(r) implica que w sem(r), y por lo tanto,
D
w
(sem(r)) = sem(D
w
r) :
(=) sem(D
w
r) = D
w
(sem(r)) implica que w = w sem(r) :
Segn esta proposicin, probar que w sem(r) es vericar que (D
w
r) = .
Toda expresin regular admite una representacin equivalente en trminos
de sus derivadas, como se prueba en la siguiente proposicin.
Proposicin 19 Sea la expresin regular r c
, entonces
r = (r) +
a2
a(D
a
r)
El siguiente teorema garantiza que para toda expresin regular la cantidad
de lenguajes denotados por sus derivadas es nita.
Teorema 20 Para toda expresin regular r c
[
es nita.
El procedimiento para derivar una expresin regular r y obtener la cantidad
card (r) de expresiones regulares derivadas distintas consiste en ir derivando r
con respecto a las cadenas en el orden de
. Para el caso = a; b :
D
r; D
a
r; D
b
r; D
aa
r; D
ab
r; D
ba
r; D
bb
r; D
aaa
r; : : : ; D
w
r; : : :
Ahora, si para todas las cadenas w
k
de la misma longitud k, para algn
k, no se consiguen nuevas expresiones derivadas, quiere decir que D
w
r =D
y
r
para algna cadena y tal que [y[ < k, de modo que
D
wa
r = D
a
(D
w
r) = D
a
(D
y
r) = D
ya
r
con [ya[ _ k. Por lo tanto, si no hay nuevas derivadas para cadenas w en
k
,
tampoco las habr para cadenas wa en
k+1
. De hecho, el menor k para el cual
lo anterior se cumple es card (r) 1.
Se deduce de este razonamiento una regla general: Si para algn w, D
w
r
es equivalente a una derivada que ya existe, no tiene sentido seguir explorando
D
wx
r porque siempre sern derivadas ya conocidas.
2.2.3 El autmata nito determinstico de una expresin regular us-
ando derivadas
Se describe un mtodo, basado en la derivacin, para construir un AFD que
reconoce el lenguaje denotado por una expresin regular dada.
Dada una expresin regular r c
r = r es el estado inicial
F = D
w
r [ (D
w
r) =
21
: Q Q
(D
w
r; a) = D
a
(D
w
r)
Se prueba que
/(M) = sem(r)
Ejemplo 21 Sea de nuevo la expresin regular (0 +1)
11 que llamaremos r.
Se deriva sucesivamente hasta conseguir el conjunto nito de sus derivadas:
D
r = r
D
0
r = (D
0
(0 +1)
) 11 +((0 +1)
) D
0
(11)
= (D
0
(0 +1)(0 +1)
) 11 + (D
0
1) 1
= ((D
0
0 + D
0
1)(0 +1)
) 11 +?1
= (( +?)(0 +1)
) 11
= (0 +1)
11
= r
= D
r
por lo tanto no se sigue derivando con cadenas que comiencen en 0.
D
1
r = (D
1
(0 +1)
) 11 +((0 +1)
) D
1
(11)
= (D
1
(0 +1)(0 +1)
) 11 + (D
1
1) 1
= ((D
1
0 + D
1
1)(0 +1)
) 11 +1
= ((?+)(0 +1)
) 11 +1
= (0 +1)
11 +1
= r +1
D
1
r es una nueva expresin regular, por lo cual se sigue derivando con cadenas
con prejo 1.
D
10
r = D
0
(D
1
r)
= D
0
(r +1)
= D
0
r + D
0
1
= r +?
= r
= D
r
se descartan las derivadas con cadenas que tengan 10 como prejo.
D
11
r = D
1
(D
1
r)
= D
1
(r +1)
= D
1
r + D
1
1
= r +1 +
22
D
11
r es otra expresin regular distinta, entonces se sigue derivando con cadenas
con prejo 11.
D
110
r = D
0
(D
11
r)
= D
0
(r +1 +)
= D
0
r + D
0
1 + D
0
= r +?+?
= r
= D
r
elimininadas las derivadas con cadenas que comienzan con 110.
D
111
r = D
1
(D
11
r)
= D
1
(r +1 +)
= D
1
r + D
1
1 + D
1
= r +1 + +?
= r +1 +
= D
11
r
Se detiene el proceso porque para todas las cadenas con longitud 3 no hay
derivadas nuevas. El conjunto de derivadas distintas de r es D
r; D
1
r; D
11
r
o, si se preere, r; r +1; r +1 + : Adems,
card (r) = [sem(r) ; sem(r +1) ; sem(r +1 +)[ = 3
por ello, la ltima cadena en producir una derivada distinta, 11, tiene longitud
card (r) 1 = 2.
Se construye el AFD M
r
cuyos valores son:
i) Q = D
r; D
1
r; D
11
r
ii) = 0; 1
iii) D
r Q estado inicial
iv) D
11
r Q estado nal, por ser el nico cuyo lenguaje contiene
(v. proposicin 17)
v)
: Q Q
(D
r; 0) = D
r ; porque D
0
(D
r) = D
r
(D
r; 1) = D
1
r ; porque D
1
(D
r) = D
1
r
(D
1
r; 0) = D
r ; porque D
0
(D
1
r) = D
r
(D
1
r; 1) = D
11
r ; porque D
1
(D
1
r) = D
11
r
(D
11
r; 0) = D
r ; porque D
0
(D
11
r) = D
r
(D
11
r; 1) = D
11
r ; porque D
1
(D
11
r) = D
11
r
El diagrama de transiciones del nuevo AFD es el mismo que la gura 4, salvo
cambio de nombre en los estados.
23
2.2.4 La expresin regular de un autmata nito determinstico
Dado un AFD M = (Q; ; q
0
; F; ) que reconoce el lenguaje L T (
), es
decir, L = /(M), se dene para cada q
i
Q un AFD M
i
= (Q; ; q
i
; F; ),
similar a M salvo el cambio de estado inicial, que reconoce el lenguaje L
i
es
decir, L
i
= /(M
i
). En este sentido, se entiende M
0
= M y L
0
= L . Obsrvese
que, para todo smbolo a , por la transicin (q
0
; a)
q
0
a
q
i
se tiene que L
i
= D
a
L. Tambin, para todo w
, la transicin extendida
(q
0
; w) donde w = a
i1
a
i2
a
i
k
para algn k _ 0;
q
0
ai
1
q
i1
ai
2
q
i2
ai
3
ai
k
q
i
k
determina que
L
i
k
= D
w
L = D
ai
k
_
D
ai
k1
D
ai
2
_
D
ai
1
L
_
_
Sea r la expresin regular que denota el lenguaje L sobre el alfabeto =
a
1
; : : : ; a
n
, es decir, sem(r) = L. Se construye un sistema de ecuaciones
siguiendo la informacin de la siguiente tabla:
D
w
r
(q
0
; w)
(q
0
; w) F (D
y
r = D
w
r) . (y < w)
D
r q
0
si o no no
w
1
D
w1
r
(q
0
; w
1
) si o no no o D
y1
r
w
2
D
w2
r
(q
0
; w
2
) si o no no o D
y1
r
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
w
k
D
w
k
r
(q
0
; w
k
) si o no no o D
y1
r
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Para , sem(D
r) = L = D
L; es decir,
(q
0
; ) = q
0
. Si q
0
es estado nal
se marca si en la cuarta colunma.
Para cualquier w
r; D
wi
1
r; : : : ; D
wi
k
r
24
donde k = [Q[ 1. Para cada una de las expresiones regulares asociadas a las
cadenas w de menor longitud que alcanzan cada uno de los estados del AFD,
por la proposicin 8, (aplicando conmutatividad)
D
r = a
1
D
a1
(D
r) + +a
n
D
an
(D
r) + (r)
= a
1
D
a1
r + +a
n
D
an
r + (r)
D
wi
1
r = a
1
D
a1
_
D
wi
1
r
_
+ +a
n
D
an
_
D
wi
1
r
_
+ (r)
= a
1
D
wi
1
a1
r + +a
n
D
wi
1
an
r + (r)
.
.
.
D
w
ik
r = a
1
D
a1
(D
w
ik
r) + +a
n
D
an
_
D
wi
k
r
_
+ (r)
= a
1
D
wi
k
a1
r + +a
n
D
wi
k
an
r + (r)
haciendo las sustituciones correspondientes segn la tabla y renombrando las
ecuaciones resultantes
X
0
= D
r
X
1
= D
wi
1
r
.
.
.
X
k
= D
wi
k
r
se tiene el sistema de ecuaciones en expresiones regulares que representa el
AFD :
X
0
= s
00
X
0
+s
01
X
1
+ +s
0k
X
k
+ (r)
X
1
= s
10
X
0
+s
11
X
1
+ +s
1k
X
k
+ (r)
.
.
.
X
k
= s
k0
X
0
+s
k1
X
1
+ +s
kk
X
k
+ (r)
donde s
ij
= a para algn a , o s
ij
= ?.
La solucin del sistema de ecuaciones en expresiones regulares se consigue
por sustitucin y aplicacin del teorema de Arden (para todo s
ij
se cumple que
(s
ij
) = ?).
Ejemplo 22 Sea el AFD M = (q
0
; q
1
; q
2
; 0; 1; q
0
; q
2
; ) que acepta el
lenguaje denotado por la expresin regular (0 +1)
D
w
r
(q
0
; w)
(q
0
; w) F (D
y
r = D
w
r) . (y < w)
D
r q
0
no no
0 D
0
r q
0
no D
r
1 D
1
r q
1
no no
10 D
10
r q
0
no D
r
11 D
11
r q
2
si no
110 D
110
r q
0
no D
r
111 D
111
r q
2
si D
11
r
Construccin del sistema:
D
r = 0D
0
(D
r) +1D
1
(D
r) + (D
r)
= 0D
0
r +1D
1
r +?
= 0D
0
r +1D
1
r
= 0D
r +1D
1
r
(D
r) = ? porque
(q
0
; ) = q
0
= F,
D
1
r = 0D
0
(D
1
r) +1D
1
(D
1
r) + (D
1
r)
= 0D
10
r +1D
11
r +?
= 0D
r +1D
11
r
(D
1
r) = ? porque
(q
0
; 1) = q
1
= F,
D
11
r = 0D
0
(D
11
r) +1D
1
(D
11
r) + (D
11
r)
= 0D
110
r +1D
111
r +
= 0D
r +1D
11
r +
(D
11
r) = porque
(q
0
; 11) = q
2
F
Introduciendo los nombres de las variables
X
0
= D
r
X
1
= D
1
r
X
2
= D
11
r
se tiene el sistema de ecuaciones
X
0
= 0X
0
+1X
1
X
1
= 0X
0
+1X
2
X
2
= 0X
0
+1X
2
+
Solucin del sistema:
26
1. Resolviendo X
2
por el Teorema de Arden:
X
2
= 0X
0
+1X
2
+
= 1X
2
+0X
0
+
= 1X
2
+ (0X
0
+)
entonces
X
2
= 1
(0X
0
+)
= 1
0X
0
+1
2. Sustituyendo X
2
en la ecuacin de X
1
:
X
1
= 0X
0
+1X
2
= 0X
0
+1(1
0X
0
+1
)
= 0X
0
+11
0X
0
+11
= (0 +11
0) X
0
+11
3. Sustituyendo X
1
en la ecuacin de X
0
:
X
0
= 0X
0
+1X
1
= 0X
0
+1((0 +11
0) X
0
+11
)
= 0X
0
+1((0 +11
0) X
0
+11
)
= 0X
0
+ (1(0 +11
0) X
0
+111
)
= 0X
0
+ (1(0 +11
0) X
0
+111
)
= (0 +10 +111
0) X
0
+111
0) X
0
+111
se tiene que
X
0
= (0 +10 +111
0)
111
0)
111
r; D
wi
1
r; : : : ; D
wi
k
r
27
y
D
s; D
wj
1
s; : : : ; D
wj
t
s
[...]
Ejemplo 23 Sean las expresiones r = (0 +1)
11 y s = (0 +10 +111
0)
111
.
Se buscan las derivadas de r y de s respectivamente:
_
_
_
D
r = r;
D
1
r = r +1;
D
11
r = r +1 +
_
_
_
y
_
_
_
D
s = s;
D
1
s = (0 +11
0) s +11
;
D
11
s = (1
0) s +1
_
_
_
Se construye el sistema compuesto de ecuaciones
_
r
s
_
=
_
D
r
D
s
_
= 0
_
D
0
r
D
0
s
_
+1
_
D
1
r
D
1
s
_
+
_
(r)
(s)
_
= 0
_
r
s
_
+1
_
r +1
(0 +11
0) s +11
_
+
_
?
?
_
_
r +1
(0 +11
0) s +11
_
=
_
D
1
r
D
1
s
_
= 0
_
D
10
r
D
10
s
_
+1
_
D
11
r
D
11
s
_
+
_
(r +1)
((0 +11
0) s +11
)
_
= 0
_
r
s
_
+1
_
r +1 +
(1
0) s +1
_
+
_
?
?
_
_
r +1 +
(1
0) s +1
_
=
_
D
11
r
D
11
s
_
= 0
_
D
110
r
D
110
s
_
+1
_
D
111
r
D
111
s
_
+
_
(r +1 +)
((1
0) s +1
)
_
= 0
_
r
s
_
+1
_
r +1 +
(1
0) s +1
_
+
_
_
Las expresiones regulares son equivalentes porque
_
(r)
(s)
_
=
_
?
?
_
_
(r +1)
((0 +11
0) s +11
)
_
=
_
?
?
_
_
(r +1 +)
((1
0) s +1
)
_
=
_
_
28
Figure 5: Diagrama de transiciones de un AFN que reconoce el lenguaje
(0+1)*11
2.2.6 Autmatas Finitos No-Determinsticos
Si se relajan algunas restricciones, como se ver, en la denicin de autmata
nito determinstico, se pierde el caracter algortmico pero se gana inteligibili-
dad en la representacin de los lenguajes. Un autmata nito es determinstico
porque contiene transiciones nicas para todo smbolo del alfabeto, de tal man-
era que su desempeo est determinado inequvocamente por su propia congu-
racin. Si se permite la ausencia de transiciones innecesarias y la multiplicidad
de transiciones por cada smbolo, entonces el autmata nito dejar de ser de-
terminstico porque para cada palabra podr haber diversidad de recorridos,
no todos necesariamente de aceptacin. Sin embargo, el dispositivo para el
reconocimiento de lenguajes se simplica considerablemente y facilita su ma-
nipulacin para nes tericos. As por ejemplo, un autmata nito en estos
trminos para el lenguaje L = (0 +1)
11 se muestra en la Figura 5.
Un Autmata Finito No-Determinstico AFN es una 5-upla M =
(Q; ; q
0
; F; ) donde
1) Q = q
0
; q
1
; :::; q
k
conjunto nito de estados
2) = a
1
; :::; a
n
alfabeto nito
3) q
0
Q estado inicial
4) F _ Q conjunto de estados nales
5)
: Q T (Q)
(q; a) (q; a) _ Q
funcin de transiciones
Sea M = (Q; ; q
0
; F; ) un AFN: Se dene la funcin extendida de
29
transiciones de la siguiente manera ;
: Q
(q; w) =
_
_
_
q ; si w =
_
p2
(q;y)
(p; a) ; si w = ya , y
y a
Sea M = (Q; ; q
0
; F; ) un AFN:
1) Una palabra w
(q
0
; w)
F. En caso contrario se dice que w es rechazada por M.
2) El conjunto
L(M) = w
(q
i
; w) F ,= ?
es el lenguaje reconocido por M.
Los autmatas nitos determinsticos y los no-determinsticos se pueden rem-
plazar los unos por los otros, segn la circunstancia, porque denen la misma
familia de lenguajes, como lo conrma el siguiente teorema.
Teorema 24 Sea M = (Q; ; q
0
; F; ) un AFN. Existe un AFD M
0
= (Q
0
; ; q
0
0
; F
0
;
0
)
tal que L(M) = L(M
0
).
Prueba. Se dene el AFD M
0
a partir del AFN M de la siguiente manera.
Q
0
= T (Q)
q
0
0
= q
0
F
0
= q
0
Q
0
[ q
0
F ,= ?
0
: Q
0
Q
0
0
(q
0
; a) =
_
p2q
0
(p; a)
Para mostrar que L(M) = L(M
0
) basta vericar que, para toda palabra
w
, se cumple
0
(q
0
0
; w) =
(q
0
; w)
Razonando inductivamente en la longitud de w;
1) Base de la induccin: [w[ = 0
0
(q
0
0
; w) =
(q
0
0
; ) ; porque [w[ = 0
= q
0
0
; por denicin de
para un AFD
= q
0
; por denicin de q
0
0
=
(q
0
; ) ; por denicin de
para un AFN
=
(q
0
; w) ; porque w =
1) Paso inductivo: [w[ > 0
Hiptesis inductiva: Dado n N, para toda y
0
(q
0
0
; y) =
(q
0
; y)
30
Sea w
y a tales
que w = ya. Luego,
0
(q
0
0
; w) =
0
(q
0
0
; ya) ; porque w = ya
=
0
(
0
(q
0
0
; y); a) ; por denicin de para un AFD
=
0
(
(q
0
; y); a) ; por hiptesis inductiva
= '
p2
(q0;y)
(p; a) ; por denicin de
0
=
(q
0
; ya) ; por denicin de para un AFN
=
(q
0
; w) ; porque w = ya
La construccin del autmata nito determinstico en la prueba anterior sug-
iere un mtodo sistemtico, un algoritmo, para derivar una mquina de la otra.
Si un AFN tiene n estados entonces un AFD equivalente tiene, a lo sumo,
2
n
estados. Tantos como subconjuntos tiene un conjunto de cardinalidad n.
Sin embargo, no siempre son necesarios todos los estados denidos a partir de
los subconjuntos, por ser inaccesibles desde el estado inicial. Es ms sensato
comenzar, precisamente, desde el estado inicial del AFN concebido ahora como
conjunto unitario e incorporar al conjunto de estados del AFD aquellos subcon-
junto que aparezcan en el proceso de recorrer el AFN para todos los smbolos
del alfabeto. Este algoritmo puede sintetizarse de la siguiente manera:
M = (Q; ; q
0
; F; ) un AFN
Paso 1: q
0
Q
0
Paso 2: \a :
0
(q
0
; a) = (q
0
; a) Q
0
Paso 3: \A Q
0
y \a :
0
(A; a) = ('
p2A
(p; a)) Q
0
Paso 4: Si ? Q
0
entonces \a :
0
(?; a) = ?
Paso 5: \A Q
0
si A F ,= ? entonces A F
0
Este procedimiento se detiene cuando todo A Q
0
hace que
0
(A; a) Q
0
,
que, en el peor de los casos, sucede si [Q
0
[ = 2
n
.
Ejemplo 25 Sea L = 0
(01)
0 y M = (q
0
; q
1
; q
2
; q
3
; 0; 1; q
0
; q
0
; q
2
; ) el
AFN que lo reconoce para el cual
Q 0 1
q
0
q
0
; q
1
; q
2
; q
3
?
q
1
q
2
; q
3
?
q
2
q
2
?
q
3
? q
1
; q
2
Ver Figura 6.
31
Aplicando el algoritmo se tiene que:
0
(q
0
; 0) = q
0
; q
1
; q
2
; q
3
0
(q
0
; 1) = ?
0
(q
0
; q
1
; q
2
; q
3
; 0) = q
0
; q
1
; q
2
; q
3
0
(q
0
; q
1
; q
2
; q
3
; 1) = q
1
; q
2
0
(?; 0) = ?
0
(?; 1) = ?
0
(q
1
; q
2
; 0) = q
2
; q
3
0
(q
1
; q
2
; 1) = ?
0
(q
2
; q
3
; 0) = q
2
0
(q
2
; q
3
; 1) = q
1
; q
2
0
(q
2
; 0) = q
2
0
(q
2
; 1) = ?
Entonces, M
0
= (q
0
0
; q
0
1
; q
0
2
; q
0
3
; q
0
4
; q
0
5
; 0; 1; q
0
0
; q
0
0
; q
0
1
; q
0
3
; q
0
4
; q
0
5
;
0
) donde
q
0
0
= q
0
q
0
1
= q
0
; q
1
; q
2
; q
3
q
0
2
= ?
q
0
3
= q
1
; q
2
q
0
4
= q
2
; q
3
q
0
5
= q
2