You are on page 1of 34

LENGUAJES REGULARES

Apuntes para el curso CI3725


Traductores e Interpretadores
Luis Astorga Junquera
Departamento de Computacin y Tecnologa de la Informacin
Universidad Simn Bolvar
May 13, 2008
1
1 Alfabetos, cadenas y lenguajes
1.1 Operaciones con cadenas
Un alfabeto es un conjunto nito ordenado no vaco de smbolos a
1
; a
2
; : : : ; a
n
.
El universo lingstico

generado por es el conjunto de las se-


cuencias nitas a
i1
a
i2
: : : a
i
k
de smbolos de , llamadas cadenas, que incluye
tambin la secuencia sin smbolos o cadena vaca.
La operacin de concatenacin entre cadenas es cerrada en

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

con la operacin de concatenacin y la cadena vaca como elemento neutro


forma un monoide.
La n-sima potencia (n _ 0) de una cadena se dene inductivamente:
w
n
=
_
; si n = 0
ww
n1
; si n > 0
La longitud de una cadena w

es el nmero de ocurrencias de smbolos


de y se denota por [w[. A su vez, el nmero de ocurrencias de un smbolo
especco a se denota por [w[
a
. La longitud de la cadena vaca es cero,
y la longitud del resultado de concatenar dos cadenas x y w es la suma de las
longitudes de las cadenas concatenadas:
[xw[ = [x[ +[w[
Dadas x y y cadenas, se dice que y es prejo (sujo) de x si para alguna
cadena w se tiene que x = yw (x = wy):
Una cadena w es una subcadena de otra cadena z si existen cadenas x y
y tales que z = xwy: Como x y y pueden ser eventualmente , los prejos, los
sujos y la misma cadena son subcadenas.
Ejemplo 1 (Cadenas de Langford) Dados los smbolos 1; 1; 2; 2; 3; 3; :::; n; n se
busca ordenarlos de tal manera que los dos 1 estn separados por un smbolo,
los dos 2 por dos smbolos, y sucesivamente, los dos smbolos i estn separados
por i smbolos. As, para n = 4 se tiene, por ejemplo,
41312432
2
Una generalizacin consiste en permitir m copias de cada smbolo. Formal-
mente, el lenguaje de Langford L
n
sobre un alfabeto = a
1
; :::; a
n
contiene
todas las cadenas que satisfacen
i) [w[
ai
_ 2 ; 1 _ i _ n
ii) [w[
ai
= [w[
aj
; 1 _ i; j _ n
iii) si w = xa
i
ya
i
z entonces [y[
ai
= 0 y [y[ = i ; 1 _ i _ n
Los lenguajes de Langford tienen aplicaciones sorprendentes en la construc-
cin de cdigos resistentes a ruidos (i.e. teledireccin de misiles)
Teorema 2

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)

de todas las cadenas sobre : Identicando


con 0, y a
k
con k para 1 _ k _ n se tiene que
= 0
a
i1
a
i2
: : : a
i
k
= i
1
n
k1
+ i
2
n
k2
+ + i
k1
n
1
+ i
k
n
0
N
Ejemplo 3 Si = a; b entonces identicando con 0, a con 1 y b con 2 se
tiene
= 0
a = 1 2
0
= 1
b = 2 2
0
= 2
aa = 1 2
1
+ 1 2
0
= 3
ab = 1 2
1
+ 2 2
0
= 4
.
.
.
abaa = 1 2
3
+ 2 2
2
+ 1 2
1
+ 1 2
0
= 19
.
.
.
El orden a
1
< a
2
< : : : < a
n
de induce un orden lexicogrco en

:
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

se deduce de la denicin que la imagen especular se deshace a si misma: (w


r
)
r
=
w:
Proposicin 4 Dado un alfabeto , y w; y cadenas cualesquiera de

; 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

tal que [z[ = n y (zw)


r
= w
r
z
r
.
Sea y = az de modo que [y[ = n + 1 y, por denicin,
y
r
= (az)
r
= z
r
a
Luego,
(yw)
r
= (azw)
r
= (zw)
r
a
= w
r
z
r
a
= w
r
y
r
1.2 Operaciones con lenguajes
Un lenguaje L es un subconjunto de

; y un lenguaje -libre es un subcon-


junto de
+
:
Ejemplo 5 Sea el alfabeto = a; b; c; entonces
L
1
= a
n
b
n
[ n N
L
2
= w [ [w[
a
= [w[
b

L
3
= xx
r
[ x

son lenguajes sobre .


4
Heredadas de la teora de conjuntos se denen para dos lenguajes cua-
lesquiera L y M sobre un alfabeto las operaciones booleanas usuales de unin,
interseccin, diferencia y complemento:
L ' M = w [ (w L) . (w M)
L M = w [ (w L) . (w M)
L M = w [ (w L) . (w M)
L
c
= w [ (w L)
Se dene tambin la relacin de inclusin (relacin de orden parcial) L _ M
cuando todas las cadenas de L son tambin cadenas de M:
Si L y M son lenguajes sobre un alfabeto , se dene la concatenacin de
L y M
LM = xy [ (x L) . (y M)
como el conjunto de todas las cadenas que se forman concatenando cada
cadena de L con todas las cadenas de M: Si L y M son lenguajes sobre distintos
alfabetos
1
y
2
, LM es un lenguaje sobre
1
'
2
:Para cualquier lenguaje
L se tiene que L = L = L; siendo el lenguaje ; cuyo nico elemento
es la cadena vaca ; el lenguaje neutro de la concatenacin entre lenguajes. El
conjunto de todos los lenguajes sobre un mismo alfabeto es el conjunto de
partes del universo lingstico T (

).
T (

) con la operacin de concatenacin de lenguajes y el lenguaje neutro


forma un monoide.
Se dene naturalmente la potencia de un lenguaje por
L
n
=
_
si n = 0
LL
n1
si n > 0
_
El lenguaje neutro es distinto del lenguaje vaco O. De hecho, por deni-
cin, O
0
= :
La concatenacin es distributiva con respecto a la unin, es decir, dados los
lenguajes L; M y N sobre un mismo alfabeto se cumple que:
i) L(M ' N) = LM ' LN
ii) (L ' M)N = LN ' MN
La concatenacin no es distributiva con respecto a la interseccin. Como
contraejemplo sean L = ; a, M = y N = a;
L(M N) = O , = a = LM LN
Se denen tambin la Kleene-clausura + de un lenguaje y la clausura positiva
+
L

=
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

es inmediata por denicin. Basta probar que


_ L
+
con lo cual 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
)

Denimos ahora la derivada de un lenguaje L T(

) 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

El operador de derivacin se extiende recurrentemente del alfabeto al uni-


verso lingstico

: 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

. Demuestre por induccin que


D
xy
L = D
y
(D
x
L)
Finalizamos esta seccin sobre lenguajes con un resultado fundamental en
la teora de lenguajes formales que ser de gran utilidad ms adelante.
Teorema 12 El conjunto T(

) de todos los lenguajes sobre el alfabeto no


es numerable.
Prueba. Supngase que T() es numerable, entonces puede ser enumerado de
la forma L
0
; L
1
; L
2
; : : : Por otra parte, vimos que

es numerable con lo cual


puede numerarse de la forma w
0
; w
1
; w
2
; : : :
9
Sea el lenguaje L = w
i
: w
i
= L
i
, \L
i
/() formado por las cadenas
que no pertenecen al lenguaje que tiene el mismo ndice. Obviamente L T()
y por ello existe k N tal que L = L
k
:
Ahora bien, si w
k
L entonces por denicin w
k
= L
k
= L; lo cual es una
contradiccin. Si w
k
= L entonces por denicin w
k
L
k
= L; de nuevo una
contradiccin. Dado que w
k

debe estar o no estar en L; la suposicin


original es falsa.
Para cada alfabeto hay un sinnmero de lenguajes a especicar, pero el
resultado anterior demuestra que no existe ningn mtodo de especicacin de
lenguajes que sea capaz de denir todos los lenguajes sobre ese alfabeto. Es
decir, dado un mtodo de representacin de lenguajes existen siempre lenguajes
que no son representables en l.
2 Lenguajes Regulares
De todas las operaciones entre lenguajes, tres tienen una importancia capital en
la teora de lenguajes formales: la unin, la concatenacin y la Kleene-clausura.
A estas operaciones se les llama operaciones regulares.
Los lenguajes regulares son aquellos que se constituyen por medio de op-
eraciones regulares a partir de lenguajes bsicos nitos. La coleccin de lengua-
jes regulares /

T (

) sobre el alfabeto se dene de manera recurrente:


i) ? /

ii) /

iii) para todo a : a /

iv) para todos L; M /

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

sobre un alfabeto se de-


termina por recurrencia con los operadores +, : y + ;
1) ? 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

Las expresiones regulares denotan lenguajes regulares, es decir, una expre-


sin sintcticamente correcta reere a un lenguaje regular, que constituye su
semntica. Denimos una funcin que asocia a cada expresin regular su sig-
nicado como lenguaje regular:
sem : c

sem(?) = ?
sem() =
sem(a) = a
sem(r +s) = sem(r) ' sem(s)
sem(rs) = sem(r) sem(s)
sem(r

) = sem(r)

Expresiones distintas pueden referir al mismo lenguaje regular en cuyo caso


se dicen equivalentes. Se dene entonces la relacin de equivalencia en c

:
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) que dene la equivalencia


r = 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). Recurdese que


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)

Se demuestran equivalencias que relacionan los operadores + y + .


Proposicin 15 Sean r y s expresiones regulares, entonces;
a) (r +s)

= (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

2) la cadena 1 o todas aquellas que terminan en 01 forman un mismo


lenguaje por cuanto requieren de un slo smbolo 1 en la secuencia de la cadena
para alcanzar un estado de aceptacin,
q
1
1 ' w [ w = y01; y

3) las cadenas que terminan en 11 forman la clase de aceptacin, esto


es, el lenguaje descrito por (0 +1)

11,
q
2
w [ w = y11; y

Obsrvese que q
0
; q
1
y q
2
suponen una particin de

, es decir, la unin de los


lenguajes disjuntos que ellos representan es el universo lingstico.
Si el sistema se encuentra en el estado q
0
y el prximo smbolo de la cadena
a leer es 0 entonces permanece all. Si por el contrario, el smbolo que se lee es
1 entonces el sistema cambia al estado q
1
: Desde ah, con 0 volver a q
0
y con 1
alcanzar el estado de aceptacin q
2
. Desde q
2
, con 1 permanece y con 0 vuelve
a q
0
.
Un autmata nito determinstico AFD 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 Q
(q; a) (q; a)
funcin de transiciones
La funcin extendida de transiciones

es la clausura reexiva y tran-


sitiva de , por lo tando, dado un estado y una cadena su imagen es el estado
alcanzado luego de agotar la cadena smbolo a smbolo. Si la cadena es ,
obviamente, el sistema no cambia de estado:
16
Figure 4: Diagrama de transiciones de un AFD que reconoce el lenguaje de
(0+1)*11

: 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

el concepto de derivada denido previa-


mente en /

. Para ello, es necesario saber cuando el lenguaje que denota una


expresin regular contiene la cadena vaca :
: c

(?) = ?
() =
(a) = ?
(r +s) = (r) + (s)
(rs) = (r) (s)
(r

) =
Teorema 17 (Brzozowski) El operador de derivacin de una expresin reg-
ular en c

con respecto a un smbolo a se construye recurrentemente de


la siguiente manera:
D
a
: 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

y cumple la siguiente propiedad: para todo r c

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

si, y slo si, sem(D


a
(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

, la cardinalidad del conjunto


card (r) = [sem(D
w
r) [ w

[
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

, considrese el AFD M donde


Q = D
w
r [ w

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

distinto de , si despus de leer w el autmata


termina en un estado q que ya ha sido alcanzado por otra cadena y anterior a
w en

, con lo cual ya gura en una posicin arriba de la tercera colunma, se


marca la entrada en la quinta columna con D
y
r. Si q es estado nal se marca
si en la cuarta colunma. En lo sucesivo no se consideran cadenas con prejo w.
Si no es el caso anterior, al termino de la lectura de w el autmata alcanza
un estado nuevo y se marca no en la entrada de la quinta coulmna. Se continua
vericando las cadenas wa para todo a .
Dado que el nmero de estados del AFD es nito, el procedimiento termina
en el momento en el cual todas las cadenas de una cierta longitud hacen alcanzar
al autmata estados ya visitados previamente por cadenas de menor longitud.
Ahora bien, las variables de un sistema de ecuaciones de expresiones regulares
se corresponden con las cadenas cuya entrada en la quinta columna es no
D

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)

11 con la funcin de transi-


cin
(q
0
; 0) = q
0
(q
0
; 1) = q
1
(q
1
; 0) = q
0
(q
1
; 1) = q
2
(q
2
; 0) = q
0
(q
2
; 1) = q
2
25
La tabla asociada a M es

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

4. Aplicando el Teorema de Arden a X


0
:
X
0
= (0 +10 +111

0) X
0
+111

se tiene que
X
0
= (0 +10 +111

0)

111

La solucin del sistema es (0 +10 +111

0)

111

, que es una expresin


regular denotando el lenguaje que reconoce el AFD M. Como hemos visto, M
tambin reconoce (0 +1)

11, pero un AFD slo acepta un lenguaje regular.


Se debe vericar que ambas expresiones son equivalentes. La siguiente seccin
presenta un algoritmo que automatiza la vericacin de equivalencias entre ex-
presiones regulares.
2.2.5 Equivalencia de expresiones regulares
Dadas dos expresiones regulares r y s, se quiere vericar que sem(r) = sem(s).
Primero, se calculan las diferentes derivadass de r y s
D

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

es aceptada (o reconocida) por M si

(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

tal que [y[ _ n se cumple

0
(q
0
0
; y) =

(q
0
; y)
30
Sea w

tal que [w[ = n + 1. Como [w[ > 0 existen y

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

y la tabla de transiciones de la funcin


0
es
Q
0
0 1
q
0
0
q
0
1
q
0
2
q
0
1
q
0
1
q
0
3
q
0
2
q
0
2
q
0
2
q
0
3
q
0
4
q
0
2
q
0
4
q
0
5
q
0
3
q
0
5
q
0
5
q
0
2
Ver Figura 7.
2.2.7 Derivadas parciales de una expresin regular
2.2.8 El autmata no-determinstico de una expresin regular us-
ando derivadas parciales
References
[1] Brzozowski, J. (1964). Derivatives of Regular Expressions. Journal of the
Association for Computing Machinery 11 (4), pp 481-494.
[2] Conway, J. H. (1971). Regular Algebra and Finite Machines. Chapman and
Hall. London, UK.
32
Figure 6: Diagrama de transiciones del AFN que reconoce el lenguaje 0*(01)*0*
[3] Ginzburg, A. (1968) Algebraic Theory of Automata, Academic Press, Lon-
don, UK.
[4] Hopcroft, J. E. and Ullman, J. D.(1979) Introduction to Automata Theory,
Languages, and Computation, Addison-Wesley, Reading MA, US.
[5] Perrin, D.(1990). Finite Automata in "Handbook of Theoretical Computer
Science, Volume B, Formal Models and Semantics. Elsevier, Amsterdam,
NE.
[6] Yu, S. (1997). Regular Languages, Handbook of Formal Languages, (Vol. I,
41-110), Springer-Verlag, Berling Heidelberg, DE.
[7] Kuich, W (1997). Semirings and Formal Power Series in "Handbook of
Formal Languages" (G. Rozenberg and A. Salomaa Eds.). Springer-Verlag,
Berlin-Heidelberg, DE.
[8] Mc Ilroy, D. (2004). Enumerating the Strings of Regular Languages. Journal
of Functional Programmig, Vol. 14-5, pp 503-518.
33
Figure 7: Diagrama de transiciones del AFD que reconoce el lenguaje 0*(01)*0*
34