Sunteți pe pagina 1din 47

LENGUAJES REGULARES

Apuntes para el curso ci3725


Traductores e Interpretadores
Luis Astorga Junquera
Departamento de Computacin y Tecnologa de la Informacin
Universidad Simn Bolvar
October 4, 2007
1
1 Sobre alfabetos, palabras y lenguajes
1.1 Operaciones con palabras
Un alfabeto es un conjunto nito ordenado no vaco de smbolos a
1
, a
2
, . . . , a
n
,
con lo cual, [[ = : para algn : N.
El universo lingstico

generado por es el conjunto de secuencias


nitas a
i1
a
i2
. . . a
i
k
de smbolos de , llamadas palabras, que incluye tambin
la secuencia sin smbolos ` o palabra vaca.
La operacin de concatenacin entre palabras 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
donde, para todos 1 _ t _ / y 1 _ r _ :, 1 _ i
t
, i
r
_ : y a
it
, a
jr
.
La palabra vaca ` es el elemento identidad con respecto a la operacin de
concatenacin:
`n = n` = n
La :-sima potencia (: _ 0) de una palabra se dene recursivamente po r:
n
n
=
_
` si : = 0
nn
n1
si : 0
La longitud de una palabra n

es el nmero de ocurrencias de smbolos


de y se denota por [n[. A su vez, el nmero de ocurrencias de un smbolo es-
pecco a se denota por [n[
a
. Por extensin, se dene, para un subconjunto
l _
[n[
U
=

a2U
[n[
a
La longitud del resultado de concatenar dos palabras r y n es la suma de
las longitudes de las palabras concatenadas:
[rn[ = [r[ +[n[
Ejemplo 1 (Cadenas de Langford) Dados los smbolos 1, 1, 2, 2, 3, 3, ..., :, : 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 : = 4 se consigue, por ejemplo, 41312432. Un problema
general se consigue permitiendo : copias de cada smbolo. Formalmente, el
lenguaje de Langford 1
n
sobre un alfabeto = a
1
, ..., a
n
contiene todas las
cadenas que satisfacen
i) [n[
ai
_ 2 ; 1 _ i _ :
ii) [n[
ai
= [n[
aj
; 1 _ i, , _ :
iii) si n = ra
i
ja
i
. y [j[
ai
= 0 entonces [j[ = i ; 1 _ i _ :
Los lenguajes de Langford tienen aplicaciones sorprendentes en la construc-
cin de cdigos resistentes a ruidos (i.e. teledireccin de misiles)
2
Dadas r y j palabras, se dice que j es prejo (sujo) de r si para alguna
cadena n se tiene que r = jn (r = nj).
Una palabra n es una subpalabra de otra palabra . si existen palabras r
y j tales que . = rnj. Como r y j pueden ser eventualmente ` los prejos, los
sujos y la misma palabra son subpalabras.
Teorema 2 Para todo alfabeto se tiene que

es innito numerable.
Prueba. Dado un alfabeto = a
1
, a
2
, . . . , a
n
de : smbolos, se puede siempre
denir una correspondencia biyectiva entre los nmero naturales y el conjunto
universo (innito)

de todas las palabras sobre . Identicando ` con 0, y a


k
con / para 1 _ / _ : se tiene que
` = 0
a
i1
a
i2
. . . a
i
k
= i
1
:
k1
+i
2
:
k2
+ +i
k1
:
1
+i
k
:
0
N
Por ejemplo, si = a, / entonces identicando ` con 0, a con 1 y / con 2
se tiene
` = 0
a = 1 2
0
= 1
/ = 2 2
0
= 2
aa = 1 2
1
+ 1 2
0
= 3
a/ = 1 2
1
+ 2 2
0
= 4
.
.
.
a/aa = 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
= a
i1
a
i2
a
i
k
: 1 _ i
j
_ :, 1 _ , _ /

de manera que se puede denir el universo lingstico como

=
1
_
k=0

k
y por ello recibe tambin el nombre de Kleene-clausura

de . Se dene
tambin la clausura positiva
+
=

`, o equivalentemente,

+
=
1
_
k=1

k
3
El recproco o imagen especular de una palabra n se dene recursiva-
mente:
n =
_
n si n = `
ja si n = aj : con a y j

se deduce de la denicin que la imagen especular se deshace a si misma: (n) =


n.
Proposicin 3 Dado un alfabeto , y n, j palabras cualesquiera de

. El
recproco de la concatenacin es la concatenacin de los recprocos en orden
invertido, es decir,
jn = n j
.
Prueba. Se razona inductivamente en la longitud de j.
1) Base de la induccin: [j[ = 0
Si [j[ = 0 entonces j = ` y por denicin j = j = `. Luego,
jn = `n = n = n` = n j
2) Paso inductivo: [j[ 0
Hiptesis inductiva: Sea : 0 y sea .

tal que [.[ = : y .n = n .


Sea entonces j = a. de modo que [j[ = : + 1 y, por denicin,
j = a. = .a (1)
Luego,
jn = a.n por construccin
... = .na por denicin
... = n .a por hiptesis inductiva
... = n j por (1)
Por lo tanto, jn = n j.
La operacin de concatenacin entre palabras no es conmutativa excepto
cuando el alfabeto base contiene un solo smbolo. Sin embargo algo se puede
decir sobre ciertas condiciones de conmutatividad. Los siguientes resultados,
conocidos como teoremas de Lyndon, son tiles cuando se analiza la estrucutura
de palabras que contienen subpalabras repetidas.
Qu se puede decir cuando una misma subpalabra es sujo y prejo?
Teorema 4 Supngase que, para algunas palabras r ,= `, j y ., se tiene que
rj = j.. Entonces, existen palabras n, y un nmero natural / tales que;
i) r = n
ii) . = n
iii) j = (n)
k
n = n(n)
k
4
Prueba. Caso 1: [r[ [j[
Dado que rj = j. y [r[ [j[ existe tal que r = j. Si se toma n = j y
/ = 0 entonces
i) r = n ,
ii) . = n, y
iii) j = (n)
0
n = n(n)
0
.
Caso 2: [r[ _ [j[
Hacemos induccin en [j[.
Base de la induccin: [r[ = [j[, entonces = `, y r = j = .. Haciendo
j = n y / = 0 se verican las tres ecuaciones.
Paso inductivo: Sea : 0, por hiptesis inductiva el teorema es cierto para
todo n

tal que [n[ _ :.


Se considera el caso [j[ = : + 1. Dado que rj = j. y [r[ < [j[ existe n tal
que j = rn. Luego rrn = rn., de donde rn = n.. Obsrvese que [n[ _ :, en
virtud de que r ,= ` y [r[ < [j[ (v. Figura 1).
Ahora bien, por hiptesis inductiva, aplicada a r, n y . se tiene que, para
algunos n, y /;
i) r = n ,
ii) . = n, y
n = (n)
k
n = n(n)
k
Por lo tanto,
j = rn
= (n)(n)
k
n
= (n)
k+1
n
de tal forma que;
iii) j = (n)
k
0
n donde /
0
= / + 1.
Finalmente, ntese que
(n)
k
0
n = (n) (n)
. .
k
0
- veces
n
= n(n) (n)
. .
k
0
- veces
= n(n)
k
0
Ejemplo 5 Sobre el alfabeto binario = 0, 1;
1) Sean r = 01001, j = 01 y . = 00101 de manera que rj = j.. Entonces
existen n = 01, = 001 y / = 0 tales que
5
Figure 1: Teorema de Lyndon
6
r = 01
..
u
001
..
v
. = 001
..
v
01
..
u
j = (n)
0
n = 01
2) Sean r = 011, j = 0110110 y . = 110 de manera que rj = j.. Entonces
existen n = 0, = 11 y / = 2 tales que
r = 0
..
u
11
..
v
. = 11
..
v
0
..
u
j =
_
_
0
..
u
11
..
v
_
_
_
_
0
..
u
11
..
v
_
_
0
..
u
En base a este resultado, cuando es posible conmutar dos subpalabras?
Teorema 6 Si rj = jr para dos subpalabras r, j ,= `, entonces, existe una
palabra n y nmeros naturales i y , tales que r = n
i
y j = n
j
.
Prueba. Hacemos induccin en [rj[.
Base de la induccin: [rj[ = 2, entonces r = n y j = n, es decir, i = , = 1.
Paso inductivo: por hiptesis inductiva el teorema es cierto para [n[ _ :
y se considera el caso [rj[ = : + 1. Entonces, como rj = jr se tiene que, por
el teorema anterior; existen n, y / tales que r = n y j = (n)
k
n. Luego,
sustituyendo,
n(n)
k
n = (n)
k
nn
de donde nn = nn, y por lo tanto, n = n.
Ahora, dado que r, j ,= ` necesariamente [n[ < [rj[, por lo que [n[ _ :.
Por hiptesis inductiva, existe n y nmeros naturales j y tales que n = n
p
y
= n
q
. Se sigue que
r = n = n
p+q
j = (n)
k
n = n
k(p+q)+p
Si tomamos i = j + y , = /(j +) +j se tiene que r = n
i
y j = n
j
.
Una interpretacin del resultado anterior expresa que la ecuacin rj = jr
solo admite soluciones peridicas.
Ejemplo 7 Sobre el alfabeto binario = 0, 1 sean r = 101101 y j = 101 de
manera que rj = jr. Entonces existe n = 101 y nmeros naturales i = 2 y
, = 1 tales que r = n
2
y j = n
1
7
1.2 Operaciones con lenguajes
Un lenguaje 1 es un subconjunto de

, y un lenguaje `-libre es un subcon-


junto de
+
.
Ejemplo 8 Sea el alfabeto = a, /, c, entonces
1
1
= a
n
/
n
[ : _ 1
1
2
= n

[ [n[
a
= [n[
b

1
3
= n

[ n = rr; \r

son lenguajes sobre .


Heredadas de la teora de conjuntos se denen para dos lenguajes cua-
lesquiera 1
1
y 1
2
sobre un alfabeto las operaciones booleanas usuales de
unin, interseccin, diferencia y complemento:
1
1
' 1
2
= n

[ n 1
1
o n 1
2

1
1
1
2
= n

[ n 1
1
y n 1
2

1
1
1
2
= n

[ n 1
1
y n , 1
2

1
0
1
= n

[ n , 1
1

Se dene tambin la relacin de inclusin (relacin de orden parcial) 1
1
_
1
2
cuando todas las palabras de 1
1
son tambin palabras de 1
2
. Adems, la
igualdad entre los conjuntos cualesquiera 1
1
y 1
2
, 1
1
= 1
2
, se da s y slo s,
1
1
_ 1
2
y 1
2
_ 1
1
.
Si 1
1
y 1
2
son lenguajes sobre un alfabeto , se dene la concatenacin de
1
1
y 1
2
por
1
1
1
2
= rj : r 1
1
y j 1
2

como el conjunto de todas las palabras que se forman concatenando cada


palabra de 1
1
con todas las palabras de 1
2
. Si 1
1
y 1
2
son lenguajes sobre
distintos alfabetos
1
y
2
, 1
1
1
2
es un lenguaje sobre
1
'
2
.
Para cualquier lenguaje 1 se tiene que 1` = `1 = 1, siendo el lenguaje
`, cuyo nico elemento es la palabra vaca `, el conjunto identidad de la
operacin de concatenacin entre lenguajes.
Se dene naturalmente la potencia de un lenguaje por
1
n
=
_
` si : = 0
11
n1
si : 0
_
El lenguaje identidad ` es distinto del lenguaje vaco O. De hecho, por
denicin, O
0
= `.
La concatenacin es distributiva con respecto a la unin, es decir, dados los
lenguajes 1
1
, 1
2
y 1
3
sobre un mismo alfabeto se cumple que:
i) 1
1
(1
2
' 1
3
) = 1
1
1
2
' 1
1
1
3
ii) (1
1
' 1
2
)1
3
= 1
1
1
3
' 1
2
1
3
8
La concatenacin no es distributiva con respecto a la interseccin. Por ejem-
plo, 1
1
= `, a, 1
2
= ` y 1
3
= a;
1
1
1
2
= `, a
1
1
1
3
= a, aa
1
1
1
2
1
1
1
3
= a
1
2
1
3
= O
1
1
(1
2
1
3
) = O , = 1
1
1
2
1
1
1
3
Se denen tambin la Kleene clausura + de un lenguaje y la clausura positiva
+
1
k+1
= 11
k
1

=
1
_
k=0
1
k
1
+
=
1
_
k=1
1
k
Si 1 es un lenguaje sobre , se tiene que 1 _

y adems
i) 1
0
=

1
ii) 1
+
= 11

= 1

1
iii) 1
n
_

; : _ 0.
Tambin, como O
0
= ` y O
n
= O para todo : _ 1, se tiene que O

= ` y
O
+
= O.
Proposicin 9 Si ` 1 entonces 1
+
= 1

.
Prueba. La inclusin 1
+
_ 1

es inmediata por denicin. Basta entonces


probar que ` _ 1
+
con lo cual 1

_ 1
+
.
En efecto, como ` / 1, para cualquier r 1 se tiene que `
k1
r 1
k
, con
lo cual 1 _ 1
k
para todo / _ 1. De donde,
1 _
1
_
k=1
1
k
= 1
+
pero 1
0
= ` _ 1, por lo tanto, ` _ 1
+
.
El cociente izquierdo de 1
1
con respecto a 1
2
es el lenguaje
1
2
1
1
= n

[ r 1
2
: rn 1
1

El cociente derecho de 1
1
con respecto a 1
2
es el lenguaje
1
1
,1
2
= n

[ r 1
2
: nr 1
1

9
Figure 2: Cdigos de Gauss
Ejemplo 10 Sea = a, / y los lenguajes 1
1
= a, aa, a/, //a y 1
2
=
`, a, / :
1
2
11 = `, a, /, aa, a/, /a, //a
1
1
1
2
= `
1
1
,1
2
= `, a, aa, a/, //, //a
1
2
,1
1
= `
Por extensin, el lenguaje recproco 1 de un lenguaje 1 sobre un alfabeto
es el lenguaje sobre el mismo alfabeto formado por los recprocos de las palabras
de 1, es decir,
1 = n [ n 1
Ejemplo 11 (Lenguajes de Gauss) Sea una curva plana cerrada con puntos
de cruce simples, es decir, sin encuentros tangenciales ni cruces multiples. Se
numeran los : 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 _ :), y se le llama cdigo de Gauss.
El lenguaje nito formado por los cdigos de Gauss de la curva de la Figura
10
2 es el siguiente:
1 =
_

_
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 1 = 1.
Proposicin 12 1
1
1
2
= 1
2
1
1
Prueba. Sea r 1
1
1
2
. Entonces, r 1
1
1
2
= 1
1
1
2
, por lo que r = j. para
palabras j 1
1
y . 1
2
. Por lo tanto,
r = r = j. = . j
Pero . 1
2
y j 1
1
con lo cual r 1
2
1
1
. Esto prueba la inclusin de
lenguajes 1
1
1
2
_ 1
2
1
1
Recprocamente, si r 1
2
1
1
entonces r = n para palabras n 1
2
y
1
1
. Pero entonces r = n 1
1
1
2
por lo cual r 1
1
1
2
lo que prueba la
inclusin 1
2
1
1
_ 1
1
1
2
. Luego 1
1
1
2
= 1
2
1
1
.
Ejercicio 13 Se verican sin dicultad las siguientes igualdades entre los lengua-
jes 1, 1
1
y 1
2
sobre un mismo alfabeto :
i) 1
1
' 1
2
= 1
1
' 1
2
ii) 1
1
1
2
= 1
1
1
2
iii) 1
0
= 1
0
iv) 1
+
= 1
+
v) 1

= 1

Teorema 14 La familia /() de todos los lenguajes sobre un alfabeto no es


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

es numerable con lo cual


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

debe estar o no estar en 1, la suposicin


original es falsa.
Para cada alfabeto hay un universo innumerable de lenguajes a especi-
car, 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.
2 Expresiones Regulares
Dentro de todas las operaciones con lenguajes, se llaman operaciones reg-
ulares a la unin, la concatenacin y la klenee-clausura. Todo alfabeto =
a
1
, . . . , a
n
dene un conjunto de lenguajes bsicos;
i) ?
ii) `
iii) a
i
; \a
i

Un lenguaje regular es aquel que se obtiene de las operaciones regulares a
partir de los lenguajes bsicos de tal manera que puede ser expresado con una
frmula explcita.
Denicin 15 El conjunto de lenguajes regulares c( sobre un alfabeto
se determina de la siguiente manera;
1) ? c(
2) ` c(
3) a
i
c( ; \a
i

4) Si 1 y ' pertenecen a c( entonces
i) 1 ' ' c(
ii) 1' c(
iii) 1

c(
Las expresiones regulares constituyen un sistema de representacin alge-
braica que simplica la notacin conjuntista de lenguajes y operadores regulares
segn el siguiente esquema de codicacin;
Lenguajes Exp. Reg.
? ?
`
a a
a ' / = a, / a +b
a/ = a/ ab
a

1, ', . . . r, s, . . .
1 ' ' r +s
1' rs
1

12
Denicin 16 El conjunto de expresiones regulares ER

sobre un alfa-
beto se determina de la siguiente manera;
1) ? ER

2) ER

3) a ER

; \a
4) Si r y s pertenecen a ER

entonces
i) r +s ER

ii) rs ER

iii) r

ER

Proposicin 17 Sean r y s expresiones regulares, entonces;


i) r

= r
+
+
ii) r
+
= rr

iii) (r +s)

= r

(sr

Prueba. i)
1

k=0
r
k
=
_
1

k=1
r
k
_
+r
0
ii)
1

k=1
r
k
= r
_
1

k=0
r
k
_
= r
_
+r +r
2
+
_
iii) Consideremos primero la ecuacin
A = uA +v (2)
para cualesquiera expresiones regulares u y v, entonces
u

= u
+
+ por (i)
u

= uu

+ por (ii)
u

v = u(u

v) +v concatenando con v
por lo tanto, A = u

v es solucin de (2).
Ahora bien,
r

(sr

=
_
r
+
+
_
(sr

= r
+
(sr

+ (sr

= r
+
(sr

+ (sr

)
+
+
= (r
+
+sr

)(sr

+
= (r +s)r

(sr

+
Por lo tanto, la igualdad
[r

(sr

] = (r +s) [r

(sr

] +
implica, por la solucin de (2), que r

(sr

= (r +s)

.
13
3 Autmatas Finitos
3.1 Autmatas Finitos Determinsticos
Los autmatas son mquinas abstractas representadas en forma de grafos dirigi-
dos que abordan el problema de la membresa de una palabra en un lenguaje.
El mecanismo consiste en dividir el universo lingstico en un nmero nito de
clases disjuntas, representadas por lo estados del sistema, algunas de las cuales
contienen las palabras que pertenecen al lenguaje en cuestin, e ir recorriendo el
sistema en la lectura de los smbolos de la palabra que se somete a evaluacin,
segn el orden creciente de sus prejos desde ` hasta la palabra misma. Si al
nalizar este proceso el sistema se encuentra en una clase de aceptacin entonces
la palabra pertenece al lenguaje.
Considrese el alfabeto binario y el lenguaje 1 = (0 +1)

11;
1) las palabras 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 una nica clase, que
llamaremos
0
,
2) la palabra 1 o todas aquellas que terminan en 01 forman una misma
misma clase, que llamamos
1
, por cuanto requieren de un slo smbolo 1 en la
secuencia de la palabra para alcanzar un estado de aceptacin,
3) las palabras que terminan en 11 forman la clase de aceptacin y al estado
que la representa le llamamos
2
.
Si el sistema se encuentra en el estado
0
y el prximo smbolo de la palabra
es 0 entonces permanece all. Si por el contrario, el smbolo que se lee es 1
entonces el sistema cambia al estado
1
. Desde ah, con 0 volver a
0
y con 1
alcanzar el estado de aceptacin
2
. Desde
2
, con 1 permanece y con 0 vuelve
a
0
.
Denicin 18 Un Autmata Finito Determinstico 11 es una 5-upla
' = (Q, ,
0
, 1, c) donde
1) Q =
0
,
1
, ...,
k
conjunto nito de estados
2) = a
1
, ..., a
n
alfabeto nito
3)
0
Q estado inicial
4) 1 _ Q conjunto de estados nales
5)
c : Q Q
c(
i
, a) =
j
; 1 _ i, , _ /
funcin de transiciones
La funcin extendida de transiciones c

es la clausura reexiva y transitiva de


c, por lo tando, dado un estado y una palabra su imagen es el estado alcanzado
luego de agotar la palabra smbolo a smbolo. Si la palabra es `, obviamente, el
sistema no cambia de estado.
Denicin 19 Sea ' = (Q, ,
0
, 1, c) un 11. Se dene la funcin exten-
14
Figure 3: Diagrama de transiciones de un AFD que reconoce el lenguaje
(0+1)*11
dida de transiciones de la siguiente manera ;
c

: Q

Q
c

(
i
, n) =
_

i
; si n = `
c(c

(
i
, j), a) ; si n = ja , j

y a
La nalidad de un autmata es el reconocimiento de un lenguaje aceptando
o rechazando palabras del universo lingstico.
Denicin 20 Sea ' = (Q, ,
0
, 1, c) un 11.
1) Una palabra n

es aceptada (o reconocida) por ' si c

(
0
, n) 1.
En caso contrario se dice que n es rechazada por '.
2) El conjunto
1(') = n

[ c

(
i
, n) 1
es el lenguaje reconocido por '.
El autmata Finito Determinstico ' = (
0
,
1
,
2
, 0, 1,
0
,
2
, c) que
acepta el lenguaje 1 = (0 +1)

11 tiene la siguiente funcin c descrita en una


tabla de transiciones;
Q 0 1
q
0

0

1
q
1

0

2
q
2

0

2
Un esquema de representacin en forma de grafo constituye un diagrama
de transiciones (Figura 3: el estado incial se seala con una echa y los estados
de aceptacin o estados nales se marcan con un doble crculo).
15
Figure 4: Diagrama de transiciones de un AFN que reconoce el lenguaje
(0+1)*11
Ejemplo 21 La palabra n = 011 pertenece al lenguaje que reconoce el autmata
nito determinstico anterior. En efecto,
c

(
0
, 011) = c(c

(
0
, 01), 1) ; por denicin de c

... = c(c(c

(
0
, 0), 1), 1) ; por denicin de c

... = c(c(c

(
0
, `0), 1), 1) ; por propiedades de `
... = c(c(c(c

(
0
, `), 0), 1), 1) ; por denicin de c

... = c(c(c(
0
, 0), 1), 1) ; por denicin de c

... = c(c(
0
, 1), 1) ; por denicin de c en '
... = c(
1
, 1) ; por denicin de c en '
... =
2
; por denicin de c en '
por lo tanto, c

(
0
, 011) 1 y as 011 1(').
3.2 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 para el lenguaje 1 = (0 +1)

11 est diagramado en la Figura 4.


16
Denicin 22 Un Autmata Finito No-Determinstico 1 es una 5-
upla ' = (Q, ,
0
, 1, c) donde
1) Q =
0
,
1
, ...,
k
conjunto nito de estados
2) = a
1
, ..., a
n
alfabeto nito
3)
0
Q estado inicial
4) 1 _ Q conjunto de estados nales
5)
c : Q 2
Q
c(
i
, a) =
_
?

i1
, ...,
ij
; 1 _ i, , _ /
funcin de transiciones
Denicin 23 Sea ' = (Q, ,
0
, 1, c) un 1. Se dene la funcin exten-
dida de transiciones de la siguiente manera ;
c

: Q

Q
c

(
i
, n) =
_
_
_

i
; si n = `
_
qj2

(qi;y)
c(
j
, a) ; si n = ja , j

y a
Denicin 24 Sea ' = (Q, ,
0
, 1, c) un 1.
1) Una palabra n

es aceptada (o reconocida) por ' si c

(
0
, n) 1.
En caso contrario se dice que n es rechazada por '.
2) El conjunto
1(') = n

[ c

(
i
, n) 1 ,= ?
es el lenguaje reconocido por '.
Los autmatas nitos determinsticos y los no-determinsticos se pueden rem-
plazar los unos con los otros, segn la circunstancia, porque denen la misma
familia de lenguajes, como lo conrma el siguiente teorema.
Teorema 25 Sea ' = (Q, ,
0
, 1, c) un 1. Existe un 11 '
0
= (Q
0
, ,
0
0
, 1
0
, c
0
)
tal que 1(') = 1('
0
).
Prueba. Se dene '
0
determinstico a partir de ' no-determinstico de la
siguiente manera.
Q
0
= 2
Q

0
0
=
0

1
0
=
0
Q
0
:
0
1 ,= ?
c
0
: Q
0
Q
0
c
0
(
0
, a) =
_
p2q
0
c(j, a)
Para demostrar que 1(') = 1('
0
) basta vericar que, para toda palabra
n

, se cumple c
0
(
0
0
, n) = c

(
0
, n). Razonando inductivamente en la
longitud de n,
1) Base de la induccin: [n[ = 0
17
c
0
(
0
0
, n) = c

(
0
0
, `) ; porque [n[ = 0
... =
0
0
; por denicin de c

para un 11
... =
0
; por denicin de
0
0
... = c

(
0
, `) ; por denicin de c

para un 1
... = c

(
0
, n) ; porque n = `
1) Paso inductivo: [n[ 0
Hiptesis inductiva: Dado : N, para toda j

tal que [j[ _ : se cumple


c
0
(
0
0
, j) = c

(
0
, j).
Sea n

tal que [n[ = : + 1. Como [n[ 0 existen j

y a tales
que n = ja. Luego,
c
0
(
0
0
, n) = c
0
(
0
0
, ja) ; porque n = ja
... = c
0
(c
0
(
0
0
, j), a) ; por denicin de c para un 11
... = c
0
(c

(
0
, j), a) ; por hiptesis inductiva
... = '
p2

(q0;y)
c(j, a) ; por denicin de c
0
... = c

(
0
, ja) ; por denicin de c para un 1
... = c

(
0
, n) ; porque n = ja
La construccin del autmata nito determinstico en la prueba anterior
sugiere un mtodo sistemtico, un algoritmo, para derivar una mquina de la
otra. Si un 1 tiene : estados entonces un 11 equivalente tiene, a lo
sumo, 2
n
estados. Tantos como subconjuntos tiene un conjunto de cardinalidad
:. 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 1 concebido ahora como
conjunto unitario e incorporar al conjunto de estados del 11 aquellos subcon-
junto que aparezcan en el proceso de recorrer el 1 para todos los smbolos
del alfabeto. Este algoritmo puede sintetizarse de la siguiente manera:
' = (Q, ,
0
, 1, c) un 1
Paso 1:
0
Q
0
Paso 2: \a : c
0
(
0
, a) = c(
0
, a) Q
0
Paso 3: \ Q
0
y \a : c
0
(, a) = ('
p2A
c(j, a)) Q
0
Paso 4: Si ? Q
0
entonces \a : c
0
(?, a) = ?
Paso 5: \ Q
0
si 1 ,= ? entonces 1
0
Este procedimiento se detiene cuando todo Q
0
hace que c
0
(, a) Q
0
,
que, en el peor de los casos, sucede si [Q
0
[ = 2
n
.
Ejemplo 26 Sea 1 = 0

(01)

0 y ' = (
0
,
1
,
2
,
3
, 0, 1,
0
,
0
,
2
, c) el
1 que lo reconoce para el cual
Q 0 1
q
0

0
,
1
,
2
,
3
?
q
1

2
,
3
?
q
2

2
?
q
3
?
1
,
2

18
Ver Figura 5.
Aplicando el algoritmo se tiene que:
c
0
(
0
, 0) =
0
,
1
,
2
,
3

c
0
(
0
, 1) = ?
c
0
(
0
,
1
,
2
,
3
, 0) =
0
,
1
,
2
,
3

c
0
(
0
,
1
,
2
,
3
, 1) =
1
,
2

c
0
(?, 0) = ?
c
0
(?, 1) = ?
c
0
(
1
,
2
, 0) =
2
,
3

c
0
(
1
,
2
, 1) = ?
c
0
(
2
,
3
, 0) =
2

c
0
(
2
,
3
, 1) =
1
,
2

c
0
(
2
, 0) =
2

c
0
(
2
, 1) = ?
Entonces, '
0
= (
0
0
,
0
1
,
0
2
,
0
3
,
0
4
,
0
5
, 0, 1,
0
0
,
0
0
,
0
1
,
0
3
,
0
4
,
0
5
, c
0
) donde

0
0
=
0

0
1
=
0
,
1
,
2
,
3

0
2
= ?

0
3
=
1
,
2

0
4
=
2
,
3

0
5
=
2

y la tabla de transiciones de la funcin c


0
es
Q
0
0 1
q
0
0

0
1

0
2
q
0
1

0
1

0
3
q
0
2

0
2

0
2
q
0
3

0
4

0
2
q
0
4

0
5

0
3
q
0
5

0
5

0
2
Ver Figura 6.
3.3 Autmatas Finitos No-Determinsticos con -Transiciones
Si se le permite ahora a un autmata nito no-determinstico que cambie de
estado sin que consuma smbolos de la palabra, es decir, sin que avance en el
barrido de los prejos, esto es, si se permiten transiciones cuya etiqueta sea
`, entonces los dispositivos de reconocimiento pueden ser an ms sencillos y
esquemticos. La Figura 7 es el diagrama de transiciones de un autmata nito
no-determinstico con `-transiciones que reconoce el lenguaje 0

(01)

0.
19
Figure 5: Diagrama de transiciones del AFN que reconoce el lenguaje 0*(01)*0*
Denicin 27 Un Autmata Finito No-Determinstico con `-Transiciones, de-
notado por `-1, es una 5-upla ' = (Q, ,
0
, 1, c) donde
1) Q =
0
,
1
, ...,
k
conjunto nito de estados
2) = a
1
, ..., a
n
alfabeto nito
3)
0
Q estado inicial
4) 1 _ Q conjunto de estados nales
5)
c : Q( ' `) 2
Q
c(
i
, a) =
_
?

i1
, ...,
ij
; 1 _ i, , _ /
funcin de transiciones
Denicin 28 Sea ' un `-1. Se dene la `-clausura de un subconjunto
o _ Q como el conjunto (o) segn;
: 2
Q
2
Q
(o) = o '
_
_
_
qi2(S)
c(
i
, `)
_
_
Esta denicin recurrente adquiere sentido si se piensa como un proced-
imiento;
Paso 1: Si
i
o entonces
i
(o)
Paso 2: Para todo
i
(o) entonces c(
i
, `) (o)
20
Figure 6: Diagrama de transiciones del AFD que reconoce el lenguaje 0*(01)*0*
21
Figure 7: AFN con transiciones lambda que reconoce el lenguaje 0*(01)*0*
Supngase que j es un estado del autmata, la `-clausura de j es el con-
junto que contiene el estado mismo y aquellos estados a los que puede cambiar
el sistema sin consumir smbolos de la palabra, es decir, (j) = j'c

(j, `).
Ejemplo 29 Sea ' = (
0
,
1
,
2
,
3
, 0, 1,
0
,
2
, c)) el `-1 que re-
conoce el lenguaje 0

(01)

(Figura 7) cuya tabla de transiciones es


Q 0 1
q
0

0
?
1

q
1

3
?
2

q
2

2
? ?
q
3
?
1
?
Luego, (
0
) = (
0
,
1
) = (
0
,
1
,
2
) =
0
,
1
,
2
y (
2
) = ? por
tomar slo cuatro ejemplos.
Denicin 30 Sea ' = (Q, ,
0
, 1, c) un `-1. Se dene la funcin ex-
tendida de transiciones de la siguiente manera ;
c

: Q

Q
c

(
i
, n) =
_

_
(
i
) ; si n = `

_
_
_
qj2

(qi;y)
c(
j
, a)
_
_
; si n = ja ; j

y a
22
Ntese que, a diferencia de los autmatas nitos determinsticos y no-determinsticos,
c(
i
, a) ,= c

(
i
, a), porque, en trminos generales,
c(
i
, a) _ c

(
i
, a)
tal y como se inere de la denicin de c

.
Ejemplo 31 Vericamos que la palabra 001 pertenece al lenguaje reconocido
por el `-1 del ejemplo anterior;
c

(
0
, `) = (
0
) =
0
,
1
,
2

(
0
, 0) = (c(
0
, 0) ' c(
1
, 0) ' c(
2
, 0)) =
0
,
1
,
2
,
3

(
0
, 00) = (c(
0
, 0) ' c(
1
, 0) ' c(
2
, 0) ' c(
3
, 0)) =
0
,
1
,
2
,
3

(
0
, 001) = (c(
0
, 1) ' c(
1
, 1) ' c(
2
, 1) ' c(
3
, 1)) =
1
,
2

De modo que
c

(
0
, 001) 1 =
2
, = ?
por lo tanto 001 1(').
Teorema 32 Sea ' = (Q, ,
0
, 1, c) un `-1. Existe un 1 '
0
=
(Q, ,
0
, 1
0
, c
0
) tal que 1(') = 1('
0
).
Prueba. Se dene '
0
no determinstico a partir de ' no-determinstico con
transiciones lambda de la siguiente manera; Q, y
0
son comunes y
1
0
=
_
1 '
0
si (
0
) 1 ,= ?
1 otro modo
c
0
: Q
0
Q
0
c
0
(
0
i
, a) = c

(
i
, a)
Para demostrar que 1(') = 1('
0
) basta vericar que, para toda palabra
n

, se cumple c
0
(
0
, n) = c

(
0
, n).
Antes de comenzar un razonamiento inductivo en la longitud de n para pro-
bar la igualdad debe observarse el caso particular n = `. Ntese que c
0
(
0
, `) =

0
por ser c
0
funcin de transiciones de un 1 y c

(
0
, `) = (
0
) por la
denicin de funcin extendida de transiciones de un `-1 , con lo cual, en
general se tiene que c
0
(
0
, `) _ c

(
0
, `). Ahora bien, si ` 1(') es porque

0
1 o existe un camino con ` transiciones desde
0
hasta un estado de 1,
y en ambos casos (
0
) 1 ,= ?, situacin en la que se hace 1
0
= 1 '
0

para que ` pertenezca a 1('


0
). Por otra parte, si (
0
) 1 = ? es porque
` , 1('), y en consecuencia ` no debe pertenecer a 1('
0
). Situacin en la
cual probar la igualdad c
0
(
0
, `) = c

(
0
, `) no tiene caso.
1) Base de la induccin: [n[ = 1.
c
0
(
0
, n) = c
0
(
0
, a) ; para algn a porque [n[ = 1
... = c
0
(
0
, a) ; por propiedad de c

para un 1
... = c

(
0
, a) ; por denicin de c
0
... = c

(
0
, n) ; porque n = a
23
1) Paso inductivo: [n[ 0
Hiptesis inductiva: Dado : N, para toda j

tal que [j[ _ : se cumple


c
0
(
0
, j) = c

(
0
, j).
Sea n

tal que [n[ = : + 1. Como [n[ 0 existen j

y a tales
que n = ja. Luego,
c
0
(
0
, n) = c
0
(
0
, ja) ; porque n = ja
... = '
p2
0
(q
0
0
;y)
c
0
(j, a) ; por denicin de c

para un 1
... = '
p2

(q0;y)
c
0
(j, a) ; por hiptesis inductiva
... = '
p2

(q0;y)
c

(j, a) ; por denicin de c


0
... = '
p2

(q0;y)
_

_
'
r2

(p;)
c(r, a)
_
; por denicin de c

para un `-1
... =
_
'
p2

(q0;y)
_
'
r2(fpg)
c(r, a)
_
; por resultado de ejercicio
... =
_
'
p2

(q0;y)
c(r, a)
_
; porque j c

(
0
, j) y (j) _ c

(
0
, j)
... = c

(
0
, ja) ; por denicin de c

para un `-1
... = c

(
0
, n) ; porque n = ja
Ejemplo 33 Comprese las tablas de transiciones de los autmatas equiva-
lentes `-1 y 1 que reconocen el lenguaje 1 = 0

(01)

:
Q 0 1
q
0

0
?
1

q
1

3
?
2

q
2

2
? ?
q
3
?
1
?
[

(_, 0)

(_, 1)

0
,
1
,
2
,
3
?

2
,
3
?

2
?
?
1
,
2

La tabla de la derecha es la denicin c para el 1 expresada en trminos de


c

del `-1 como se dene en el teorema anterior.


3.4 Teorema de Kleene
El teorema de Kleene establece la equivalencia entre los lenguajes representa-
dos por las expresiones regulares y los lenguajes reconocidos por los autmatas
nitos. Para su mejor comprensin se despliega en dos teoremas: De las ex-
presiones regulares a los autmatas nitos no-determinsticos con transiciones
lambda, y de los autmatas nitos determinsticos a las expresiones regulares.
Las equivalencias ya probadas entre los diferentes tipos de autmatas nitos
hace completa la demostracin.
Teorema 34 Sea 1 un lenguaje regular y r su expresin regular. Existe un
`-1 que reconoce a 1, es decir, tal que 1(') = 1.
Prueba. Se prueba por induccin estructural en el nmero de operadores de
la expresin regular r. Sea #(r) el nmero de operadores regulares (uniones,
concatenaciones y estrellas de kleene) de una expresin regular.
Base de induccin: #(r) = 0
24
Figure 8: Autmatas Finitos para las E.R bsicas
En este caso r debe ser alguna de las tres expresiones regulares bsicas; ?,
o a para algn a

. Los `-1 respectivos que reconocen sus correspon-


dientes lenguajes son:
1) '
?
= (
0
, ,
0
, ?, c), donde c(
0
, a) = ? para todo a

, de modo
que 1('
?
) = ?
2) '

= (
0
, ,
0
,
0
, c), donde c(
0
, a) = ? para todo a

, de modo
que 1('

) = `
3) Sea a
i

: '
a
= (
0
, ), ,
0
, ), c), donde c(
0
, a
i
) = ) y
c(
0
, a
j
) = ? para todo a
j
,= a
i
, de modo que 1('
a
) = a
i

Los diagramas de transiciones de estos tres autmatas nitos estn dibujados


en la Figura 8.
Paso inductivo: La hiptesis inductiva consiste en suponer que para toda
expresin regular no bsica cuyo nmero de operadores regulares es menor que
: existe un `-1 que reconoce el lenguaje regular que ella representa. Sea
: 0 tal que #(r) = :, de modo que existen E.R. s y t que satisfacen la
hiptesis inductiva tales que #(s) + #(t) = :.
Asumiendo que Q Q
0
,= ?, sean ' = (Q, ,
0
, )
1
, . . . , )
s
, c) y '
0
=
(Q
0
, ,
0
0
, )
0
1
, . . . )
0
t
, c
0
) los `-1 correspondiente a s y t respectivamente
cuyos diagramas de transiciones estn representados en la Figura 9.
Se presentan entonces tantos casos como operaciones regulares hay:
1) Caso 1: r = s +t
Se contruye '
u
= (Q
u
, ,
u
, 1
u
, c
u
) de la siguiente manera;
i) Q
u
= Q' Q
0
'
u
,
ii) 1
u
= 1 ' 1
0
iii)
c
u
(
u
, `) = ,
0
Q y
0
Q
0
c
u
(
u
, a) = ? \a
c
u
(, c) =
_
c(, c) si Q
c
0
(, c) si Q
0
\ Q' Q
0
, \c ' `
25
Figure 9: Autmatas Finitos para las E.R. s y t
La Figura 10 contiene el diagrama de transiciones de '
u
.
Ahora bien, si n s o n t, '
u
acepta a n segn se aplique la transicin
c(
u
, `) =
0
o la transicin c(
u
, `) =
0
0
. Por otra parte, si n r existe una
secuencia de transiciones `n que comienza en
u
y termina en algn estado de 1
o de 1
0
. En el primer caso ' acepta a n, y en el segundo es '
0
quien reconoce
la palabra.
2) Caso 2: r = st
Se contruye '
c
= (Q
c
, ,
c
, 1
c
, c
c
) de la siguiente manera;
i) Q
c
= Q' Q
0
,
ii) 1
c
= 1
0
y
iii)
c
c
(, `) = c(, `) '
0
0
si 1
c
c
(, a) = c(, a) ; \a si 1
c
c
(, c) =
_
c(, c) si Q1
c
0
(, c) si Q
0
\ Q' Q
0
, \c ' `
La Figura 11 contiene el diagrama de transiciones de '
u
.
Si n = rj de tal manera que r s y j t, entonces '
c
acepta a n gracias
a que alguna de las transiciones c
c
()
i
, `) = c()
i
, `) '
0
0
(1 _ i _ r) efecta
el cambio de autmata al cambiar n del ltimo smbolo de r al primero de j.
Ahora, si n es reconocido por '
c
es porque existe una secuencia de transiciones
desde
0
hasta algn elemento de 1
0
. Una de esas transiciones debe ser alguna
entre las c
c
()
i
, `) = c()
i
, `) '
0
0
(1 _ i _ r), de tal manera que existen r
y j tales que n = r`j donde, por construccin, r es reconocido por ' y j es
reconocido por '
0
.
26
Figure 10: Autmata Finito para la unin
27
Figure 11: Autmata Finito para la concatenacin
1) Caso 3: r = s

Se contruye '
s
= (Q
s
, ,
s
, 1
s
, c
s
) de la siguiente manera;
i) Q
s
= Q'
s
,
ii) 1
s
=
s
y
iii)
c
s
(
s
, `) =
0

c
s
(
s
, o) = ? \o
c
s
(, _) = c(, _) si Q
c
s
(, `) = c(, `) '
s
si 1
La Figura 12 contiene el diagrama de transiciones de '
s
.
Dado que el estado inicial
s
de '
s
es estado nal, ` es aceptada. Si n s

,
y n ,= `, existe un natural : tal que n = n
1
n
m
, donde n
1
, , n
m
_ s,
de manera que cada n
i
(1 _ i _ :) es reconocida, pasando por algn )
j
(1 _ , _ r) en un ciclo

s


0

wi
)
j


s
de '
s
. Reciprocamente, si n 1('
s
) entonces es ` o es de la forma (`n
1
`) (`n
t
`)
para algn t N. Por la construccin de '
s
cada n
i
s y dado que
n = (`n
1
`) (`n
t
`) = n
1
n
t
entonces n s

.
Teorema 35 Para todo 11 ' existe una expresin regular r que representa
a 1(').
28
Figure 12: Autmata Finito para la Kleene-estrella
29
Prueba. Sea ' = (Q, ,
0
, 1, c) un 11 con = a
1
, . . . , a
n
y [Q[ = /. Sin
perdida de generalidad se renombran con nmeros naturales los estados de '
obtenindose Q = 1, 2, . . . , / con 1 como estado inicial. Se concibe la expresin
regular r
t
ij
como el lenguaje de las subpalabras n

que reconoce ' entre


los estados i y , sin estados intermedios mayores que t, es decir, c

(i, n) = ,,
y para todo r prejo propio de n (r ,= ` y r ,= n) se cumple que c

(i, r) _ t
(la relacin de orden proviene del orden total en los naturales). Se dene r
t
ij
inductivamente:
Base: t = 0
r
0
ij
=
_

_
si i = , y c(i, c
s
) = ? ; \c
s

+
i1
+ +
is
si i = , y c(i, c
i
h
) = i ; 1 _ / _ : y c
i1
, , c
is
_
? si i ,= , y c(i, c
s
) ,= , ; \c
s

i1
+ +
is
si i ,= , y c(i, c
i
h
) = , ; 1 _ / _ : y c
i1
, , c
is
_
Construccin inductiva:
Sea r
t1
ij
la expresin regular de todas las subpalabras que recorre el aut-
mata entre los estados i y , sin sobrepasar al estado t 1. Entonces
r
t
ij
= r
t1
ij
+r
t1
it
_
r
t1
tt
_

r
t1
tj
La Figura 13 representa la descomposicin de caminos entre los estados i
y , etiquetados por las expresiones regulares de los lenguajes de subpalabras
que determina cada camino. Por una parte, en los caminos que van de i a ,
sin alcanzar t (r
t1
ij
), y por la otra, en los caminos que alcanzan el estado t, al
menos una vez, antes de llegar a , (r
t1
it
_
r
t1
tt
_

r
t1
tj
). Ntese que r
t
ij
se forma
con cuatro operaciones regulares entre expresiones regulares.
Ahora bien, sea
1
m
= n

[ c

(1, n) = :
el sublenguaje de 1(') de aquellas palabras que son aceptadas en el estado
nal : 1, de manera que
1(') =
_
m2F
1
m
Entonces, dado que r
k
1m
es una expresin regular de 1
m
se tiene nalmente que
1(') =

m2F
r
k
1m
Aunque la prueba anterior ofrezca un procedimiento para construir la ex-
presin regular del lenguaje aceptado por un 11, ste es, sin embargo, muy
extenso y complejo. Su valor en la prueba es demostrar la existencia de la
expresin regular. Pero puede abordarse el problema de la extraccin de la ex-
presin regular de un 11 de una manera ms expedita, y para ello se necesita
introducir un nuevo concepto de autmata nito.
30
Figure 13: Representacin de r
t
ij
en los distintos recorridos que la construyen
31
Denicin 36 Un Autmata Finito Extendido 11 es una 5-upla (Q, ,
0
, 1, c)
donde
1) Q =
0
,
1
, ...,
k
es el conjunto nito de estados
2) = a
1
, ..., a
n
es el alfabeto nito
3)
0
Q es el estado inicial
4) 1 _ Q es el conjunto de estados nales
5) 0 : QQ ER

funcin de asignacin
siendo ER

el conjunto de las expresiones regulares sobre el alfabeto .


Si no hay transiciones entre estados j y entonces 0(j, ) = ? ER

. Se
dice que un 11 acepta una palabra n

si n = n
1
n
s
para algunas
palabras n
1
, ..., n
s

y una secuencia de estados


0
,
i1
, ...,
is
con
is
1
tales que n
1
0(
0
,
i1
), ..., n
s
0(
is1
,
is
).
El algoritmo de eliminacin de estados que se describe a continuacin
considera de partida cualquier autmata nito (11, 1 o `-1) como un
11 asumiendo los smbolos de transicin como expresiones regulares bsicas:
Paso 1: Si
0
1 o si 0(,
0
) ,= ? para algn Q entonces se agrega un
nuevo estado : a Q (que sustituye a
0
como estado inicial) con 0(:,
0
) = .
Paso 2: Si [1[ 1 entonces se agraga un nuevo estado ) a Q (que sustituye
a todo j 1 como estado nal) con 0(j, )) = para todo j 1.
Paso 3: Mientras Q ,= :, ), se selecciona Q tal que ,= : y ,= ). Se
elimina el estado del 11 incorporando para cada par de estados j, t Q
las asignaciones
0(j, t) = r
pt
+r
pq
(r
qq
)

r
qt
donde r
ij
es la expresin regular asignada a la transicin del estado i al estado
,.
Paso 4: Cuando Q = :, ) la expresin regular resultante para el 11 '
es
1(') = r
sf
(r
ff
)

donde, obviamente, r
sf
= 0(:, )) y r
ff
= 0(), )).
Ejemplo 37 Sea el 1 ' = (
0
,
1
,
2
, a, /,
0
,
1
,
2
, c) cuya tabla de
transiciones es
Q a b
q
0

1
,
2
?
q
1

2

1

q
2
? ?
Si se considera ' como un 11 se tiene entonces la tabla de asignaciones
Q
0

1

2

0
? a a

1
? b a

2
? ? ?
32
Aplicando el algoritmo de eliminacin de estados se simplica progresiva-
mente el 11 tal como muestra la Figura 14;
Q
0

1

2

0
? a a

1
? b a

2
? ? ?
==
Q :
0

1

2
)
: ? ? ? ?

0
? ? a a ?

1
? ? b a

2
? ? ? ?
) ? ? ? ? ?
... ==
Q :
0

2
)
: ? ? ?

0
? ? a +ab

a ab

2
? ? ?
) ? ? ? ?
... ==
Q :
2
)
: ? a +ab

a ab

2
? ?
) ? ? ?
... ==
Q : )
: ? ab

+a +ab

a
) ? ?
Finalmente se simplica la expresin regular resultante
a +ab

a +ab

= a( +b

a +b

)
... = ab

(a +)
4 Minimizacin
Sea 1 lenguaje en un alfabeto dado y r

. El cociente izquierdo de 1 con


respecto a r se dene como el lenguaje
r1 = n

[ rn 1
Denicin 38 Sea 1 lenguaje en un alfabeto , y sean las palabras r, j

.
1) Se dice que r y j son distinguibles en relacin a 1 si
r1 ,= j1
en cuyo caso existe .

que distingue r de j, es decir, es tal que si r. 1


(r. , 1) entonces j. , 1 (j. 1).
2) Si r1 = j1, entonces r y j son indistinguibles en relacin a 1.
33
Figure 14: Algoritmo de eliminacin de estados en un 11
34
Ejemplo 39 Retomemos el anlisis del lenguaje 1 = (0 +1)

11. Se diferen-
ciaron tres clases distintas de palabras observando hasta dos smbolos terminales;
Clase 1 (prejos a dos pasos para llegar a 1): Las palabras `, 0 y los tipos
r00 y r10 para cualquier r (0 +1)

.
Clase 2 (prejos a un paso para llegar a 1): La palabra 1 y el tipo r01 para
cualquier r (0 +1)

.
Clase 3 (prejos en 1): las palabras del tipo r11 para cualquier r (0 +1)

.
Sean = 01010, n = ` y . = 01001. Se verica que;
1) 1 = n1. Porque no existe n en

tal que n , 1 y n 1. Si
as fuera, n = :11 para alguna : (0 +1)

con lo cual
n = :11 1
2) 1 ,= .1. Basta encontrar una palabra n que distinga de ., y
esa puede ser n = 1. Entonces n .1 y n , 1 porque n , 1.
Proposicin 40 Sea 1 un lenguaje en el alfabeto . La relacin de indistin-
guibilidad dene, en

, una relacin de equivalencia que denotamos por ~


L
,
es decir, para todos r,j

;
r ~
L
j si y slo si r1 = j1
Prueba. Sean r, j, .

.
i) Reexividad: r ~
L
r porque r1 = r1
ii) Simetra: Si r ~
L
j entonces j ~
L
r porque r1 = j1 implica que
j1 = r1
iii) Transitividad: Si r ~
L
j y j ~
L
. entonces r ~
L
. porque r1 = j1
y j1 = .1 iimplica que r1 = .1
Obsrvese que la relacin ~
L
determina clases disjuntas de equivalencia, to-
das ellas formando una particin de

, es decir,
i) [r] [j] = ? o [r] = [j] para todos r, j

,
ii)

w2
[n]
iii)

, ~
L
= [n] [ n

es el conjunto cociente de las clases.


Proposicin 41 Para todos r, j

y a , la relacin ~
L
es invariante
por la derecha respecto a la concatenacin, esto es; si [r] = [j] entonces
[ra] = [ja].
Prueba. Si [r] = [j], se decir, si r ~
L
j es porque r1 = j1. Luego, para
todo .

, r. y j. pertenecen a 1 ambas o ninguna.


Ahora, suponiendo que . = an, como . es arbitrario n tambin lo es, y tanto
ran como jan pertenecen a 1 ambas o ninguna. En consecuencia, ra1 =
ja1, con lo cual ra ~
L
ja, o lo que es equivalente, [ra] = [ja].
Teorema 42 Sea 1 lenguaje de un alfabeto dado , y, para algn entero :, sean
r
1
, . . . , r
n

palabras distinguibles dos a dos en relacin a 1. Entonces, todo


11 que acepta al lenguaje 1 tiene, al menos, : estados.
35
Prueba. Sea ' = (Q, ,
0
, 1, c) un 11 tal que 1(') = 1 y [Q[ < :.
Entonces, en el conjunto c

(
0
, r
1
), . . . , c

(
0
, r
n
) existen 1 _ i, , _ : tales
que c

(
0
, r
i
) = c

(
0
, r
j
) siendo i ,= ,.
Ahora bien, si c

(
0
, r
i
) = c

(
0
, r
j
) entonces r
i
1 = r
j
1. En efecto, para
todo .

(
0
, r
i
.) = c

(c

(
0
, r
i
), .)
= c

(c

(
0
, r
j
), .)
= c

(
0
, r
j
.)
con lo cual si r
i
. 1 entonces r
j
. 1. Por lo tanto, r
i
y r
j
no seran
distinguibles en relacin a 1, contradiciendo la hiptesis del teorema. Luego,
[Q[ _ :.
Se inere de la demostracin anterior que, para cualesquiera r y j en

,
si r1 ,= j1 entonces c

(
0
, r) ,= c

(
0
, j). Sin embargo, como se ver, no
necesariamente c

(
0
, r) ,= c

(
0
, j) implica que r1 ,= j1.
Teorema 43 Sea 1 un lenguaje sobre un alfabeto dado . Sea : N y
[

, ~
L
[ = :,entonces el 11 ' = (Q, ,
0
, 1, c) denido por
Q =

, ~
L
,

0
= [`] Q,
1 = [n] Q : [n] 1 ,= ?,
c([n], a) = [na] ; \[n] Q y \a ,
acepta a 1, y adems, [Q[ es mnimo.
Prueba. Para probar que 1(') = 1 es suciente ver que para todo j 1
c

([`], j) = [j] 1
pero antes debe demostrarse que c

([r], j) = [rj] para todos r, j

. Razon-
amos inductivamente en la longitud de j.
Base de induccin: [j[ = 0.
c

([r], j) = c

([r], `) ; porque j = `
... = [r] ; por la denicin de c

para un 11
... = [r`] ; por ser ` elemento neutro de la concatenacin
... = [rj] ; porque j = `
Paso inductivo: Sea : N y n

tal que [n[ = :. La hiptesis inductiva


consiste en suponer que c

([r], .) = [r.].
Sea j = .a para algn smbolo a , de modo que [j[ = : + 1. Entonces,
c

([r], j) = c

([r], .a) ; porque j = .a


... = c (c

([r], .) , a) ; por la denicin de c

para un 11
... = c ([r.], a) ; por la hiptesis inductiva
... = [r.a] ; por la denicin de c
... = [rj] ; porque j = .a
36
Ahora bien, de la igualdad c

([r], j) = [rj] se sigue que c

([`], j) = [j].
Veamos ahora que j 1 si y slo si j 1('), es decir, [j] 1.
(=) Si [j] 1 es porque [j] 1 ,= ?. Sea entonces r [j] 1, con lo cual
r [j] y r 1, y por lo tanto j 1, de lo contrario ` dintinguira r de j , y
as no perteneceran a la misma clase.
(=) Por otra parte, si j 1 entonces [j] 1 ,= ?, puesto que j [j].
En consecuencia, 1(') = 1. Finalmente, debemos probra que [Q[ es mn-
imo. Como [

, ~
L
[ = : entonces
Q = [r
1
], . . . , [r
n
]
donde [r
i
] ,= [r
j
], 1 _ i, , _ : y i ,= ,, para palabras r
1
, . . . , r
n

que son
distinguibles dos a dos. Por el teorema anterior ' tiene al menos : estados,
pero ese es precisamente el nmero de estados del 11, luego no puede tener
menos.
Dado un 11 ' = (
0
, . . . ,
n
, ,
0
, 1, c) se denen, para cada uno de
los estados
i
, 0 _ i _ :, los lenguajes
1
qi
= n

[ c

(
0
, n) =
i

Sea un 11 ' = (
0
, . . . ,
n
, ,
0
, 1, c). Los lenguajes 1
qi
, 0 _ i _ :,
denen en

una relacin de equivalencia, denotada por ~


M
, de la siguiente
manera; para todos r,j

;
r ~
M
j si y slo si .

: 1
p
[.].1
q
[.] donde j = c

(
0
, r) y = c

(
0
, j)
Esta relacin de equivalencia induce de manera natural una relacin de equiva-
lencia en Q;
j ~
Q
si y slo si .

: 1
p
[.] . 1
q
[.]
Luego, sean r y j tales que c

(
0
, r) = j y c

(
0
, j) = , de manera que
r 1
p
y j 1
q
, entonces, si j ~
Q
quiere decir que 1
p
y 1
q
son subconjuntos
de una clase [.] para algn .

que, por lo tanto, contiene a r y j, con lo


cual r ~
L
j, o, dicho de otra manera, r1 = j1. Siendo esto cierto, para todo
n

se tiene que
c

(j, n) 1 si y slo si c

(, n) 1
Si, por el contrario, j
Q
, entonces, por el razonamiento anterior, n

tal que, bien c

(j, n) 1 y c

(, n) , 1, o bien c

(j, n) , 1 y c

(, n) 1.
En particular, si n = ` se tiene la situacin; j 1 y , 1, j , 1 y 1.
Descrita as la relacin entre j y se considera luego la relacin entre estados r
y : tales que c(r, a) = j y c(:, a) = para algn smbolo a . Luego,
c

(r, an) = c

(c

(r, a), n)
= c

(c(r, a), n)
= c

(j, n)
37
y c

(:, an) = c

(, n), pero como j


Q
; c

(r, an) 1 y c

(:, an) , 1, o bien


c

(r, an) , 1 y c

(:, an) 1, por lo cual r


Q
:.
En base a este razonamiento se construye el algoritmo de minimizacin
de un 11 :
Paso 1: o es el conjunto de todos los pares de estados (j, ) para los cuales
j ,= y bien j o (pero no ambos) pertenece a 1.
Paso 2: Para cada par (j, ) o se incluye en o el par (r, :) si existe a
tal que c(r, a) = j y c(:, a) = .
Paso 3: Un estado Q representa una nueva clase de equivalencia slo si
el par (j, ) o para cada estado previo j.
Ejemplo 44 Sea 1 = (a +/)

(a/ +/a) el lenguaje de las palabras que teminan


con los pares de smbolos a/ o /a, y sea
' = (
0
,
1
,
2
,
3
,
4
,
5
,
6
, a, /,
0
,
4
,
5
, c)
un 11 que reconoce a 1 con tabla de transiciones
Q a b
q
0

1

2
q
1

3

4
q
2

5

6
q
3

3

4
q
4

5

6
q
5

3

4
q
6

5

6
El diagrama de transiciones se muestra en la Figura 15 (1).
Aplicando el algoritmo de minimizacin se identican (subraya) los estados
que no se pueden fusionar (j
Q
)
(
1
,
3
)
a
(
0
,
1
)
b
(
2
,
4
)
(
1
,
5
)
a
(
0
,
2
)
b
(
2
,
6
)
(
1
,
3
)
a
(
0
,
3
)
b
(
3
,
4
)
(
1
,
5
)
a
(
0
,
6
)
b
(
2
,
6
)
(
3
,
5
)
a
(
1
,
2
)
b
(
4
,
6
)
(
3
,
3
)
a
(
1
,
3
)
b
(
4
,
4
)
(
3
,
5
)
a
(
1
,
6
)
b
(
4
,
6
)
(
5
,
3
)
a
(
2
,
3
)
b
(
6
,
4
)
(
5
,
5
)
a
(
2
,
6
)
b
(
6
,
6
)
(
3
,
5
)
a
(
3
,
6
)
b
(
4
,
6
)
38
de modo que el par del medio se incorpora a o si alguno de sus derivados
(izquierda o derecha) pertenece a o, obtenindose el conjunto o de los pares
(j, ) de estados no equivalentes en la segunda iteracin (o = o
3
) ;
q
1
o
2
q
2
o
2
o
2
q
3
o
2
o
2
q
4
o
1
o
1
o
1
o
1
q
5
o
1
o
1
o
1
o
1
o
1
q
6
o
2
o
2
o
2
o
1
o
1
(q
i
, q
j
) q
0
q
1
q
2
q
3
q
4
q
5
o
1
=
_
(
0
,
4
) , (
0
,
5
) , (
1
,
4
) , (
1
,
5
) , (
2
,
4
) ,
(
2
,
5
) , (
3
,
4
) , (
3
,
5
) , (
6
,
4
) , (
6
,
5
)
_
o
2
= o
1
'
_
(
0
,
1
) , (
0
,
2
) , (
0
,
3
) , (
0
,
6
) ,
(
1
,
2
) , (
1
,
6
) , (
2
,
3
) , (
3
,
6
)
_
o
3
= o
2
En la tabla anterior se muestra como se marcan primero los pares de o
1
, despus
los que aparecen en o
2
, y as sucesivamente hasta que no se consigan ms pares.
Vemos entonces como slo los pares (
1
,
3
) y (
2
,
6
) no pertenecen a o, y por
lo tanto tanto
1
y
3
como
2
y
6
se fusionan respectivamente en dos estados.
Luego, tenemos un 11 '
0
=
_
, 1, C, 1, 1, a, /, , 1, 1, c
0
_
tal que
1(') = 1('
0
) donde
=
0
,
1 =
1;

3
,
C =
2
,
6
,
1 =
4
,
1 =
5

y la tabla de transiciones es
Q a b
A 1 C
B 1 1
C 1 C
D 1 C
E 1 1
La Figura 15 muestra el 11 '
0
minimizado equivalente al original .
Ejemplo 45 Sea ' = (1, 2, 3, 4, a, /, 1, 4, c) un `-1 con tabla de
39
Figure 15: 11 ' y, su equivalente, el 11 '
0
minimizado
40
transiciones
Q a b

(q, a)

(q, b)
1 3 ? 2 1, 2, 3, 4 1, 2, 4
2 2 4 ? 2 1, 2, 4
3 ? 3 4 1, 2, 3, 4 1, 2, 3, 4
4 ? ? 1 1, 2, 3, 4 1, 2, 4
La Figura 16 (1) muestra el diagrama de transiciones de '.
Primero, se construye un 1 '
0
=
_
1, 2, 3, 4, a, /, 1, 4, c
0
_
equiva-
lente a ', es decir, tal que 1(') = 1('
0
):
Las clausuras de los estados son necesarias para calcular la funcin de tran-
siciones c
0
a partir de la denicin
c
0
: Q Q
(, c) c
0
(, c) = c

(, c)
Luego,
(1) = 1 ' c

(1, `) = 1, 2
(2) = 2 ' c

(2, `) = 2
(3) = 3 ' c

(3, `) = 1, 2, 3, 4
(4) = 4 ' c

(4, `) = 1, 2, 4
Ahora se calcula c

(, c) para todo 1, 2, 3, 4 y para todo c a, / segn


la frmula
c

(, c) = c

(, `c) =
_
_
_
p2

(q;)
c(j, c)
_
_
=
_
_
_
p2(fqg)
c(j, c)
_
_
Entonces,
c

(1, a) = (c (1, a) ' c (2, a)) = (2, 3) = 1, 2, 3, 4


c

(1, /) = (c (1, /) ' c (2, /)) = (4) = 1, 2, 4


c

(2, a) = (c (2, a)) = (2) = 2


c

(2, /) = (c (2, /)) = (4) = 1, 2, 4


c

(3, a) = (c (1, a) ' c (2, a) ' c (3, a) ' c (4, a)) = (2, 3) = 1, 2, 3, 4
c

(3, /) = (c (1, /) ' c (2, /) ' c (3, /) ' c (4, /)) = (3, 4) = 1, 2, 3, 4
c

(4, a) = (c (1, a) ' c (2, a) ' c (4, a)) = (2, 3) = 1, 2, 3, 4


c

(4, /) = (c (1, /) ' c (2, /) ' c (4, /)) = (4) = 1, 2, 4


Estos son los valores de c

(, c) que aparecen en la tabla derecha anterior, que


puede interpretarse como la tabla de transiciones de '
0
. La Figura 16 (2)
muestra el diagrama de transiciones de '
0
.
Segundo, se construye, con el algoritmo de los subconjuntos, un 11 '
00
=
_
Q
00
, a, /,
00
0
, 1
00
, c
00
_
equivalente a '
0
, es decir, tal que 1('
0
) = 1('
00
). Se
41
calcula la funcin de transiciones c
00
a partir de la frmula
c
00
: Q
00
Q
00
c
00
(
00
, c)
_
p2q
00
c
0
(j, c)
para todo
00
Q
00
= 2
Q
0
y para todo c . Ntese que, por la construccin
anterior, c
0
(j, c) = c

(j, c), por lo tanto, c


00
(
00
, c) =

p2q
00 c

(j, c). Luego,


los valores de c
00
(
00
, c) se obtienen de la primera tabla:
c
00
(1 , a) = c

(1, a) = 1, 2, 3, 4
c
00
(1 , /) = c

(1, /) = 1, 2, 4
c
00
(1, 2, 3, 4 , a) =

p2f1;2;3;4g
c

(j, a) = 1, 2, 3, 4
c
00
(1, 2, 3, 4 , /) =

p2f1;2;3;4g
c

(j, /) = 1, 2, 3, 4
c
00
(1, 2, 4 , a) =

p2f1;2;4g
c

(j, a) = 1, 2, 3, 4
c
00
(1, 2, 4 , /) =

p2f1;2;4g
c

(j, /) = 1, 2, 4
Entonces, haciendo
= 1
1 = 1, 2, 4
C = 1, 2, 3, 4
se tiene el 11 equivalente con tabla de transiciones
Q
00
a b
A C 1
B C 1
C C C
La Figura 16 (3) muestra el diagrama de transiciones de '
00
=
_
, 1, C , a, / , , 1, C , c
00
_
.
Tercero, se minimiza el 11 '
00
con el algoritmo de minimizacin:
o
1
= (, 1) , (, C) y como el nico par de estado distintos que falta por
analizar es (C, 1) ,
(C, C)
a
(C, 1)
b
(C, 1)
se verica que (C, 1) , o
2
con lo cual o = o
1
.
B o
1
C o
1
(
Q
j) A B
Por lo tanto, como se verica en la tabla, 1 y C pueden fusionarse en un
solo estado. Asi, haciendo

0
=
) = 1, C
42
se obtiene el 11 mmino '
000
=
_

0
, ) , a, / ,
0
, ), c
000
_
donde c
000
se
especica en la siguiente tabla de transiciones;
Q
000
a b
q
0
) )
f ) )
La Figura 16 (4) muestra el diagrama de transiciones de '
000
.
Finalmente, se obtiene, con el algoritmo de eliminacin de estados, una
expresin regular que represente al lenguaje que reconoce el 11 mnimo '
000
.
Obsrvese que '
000
tiene slo dos estados, uno inicial
0
y otro nal ), y a
0
no
llegan transiciones de ) ni pertenece a 1
000
, entonces, entendiendo '
000
como
un 11 se tiene la tabla de asignaciones
Q
000
Q
000

0
)

0
? a +b
) ? a +b
Luego, por el paso 4 del algoritmo, 1('
000
) = r
q0f
(r
ff
)

= (a +b) (a +b)

dando
el resultado nal
1(') = 1('
0
) = 1('
00
) = 1('
000
) = (a +b)
+
5 Lema de bombeo
El siguiente lema, llamado lema del bombeo, ofrece un mtodo para identicar
lenguajes que no son regulares.
Lema 46 Sea 1 lenguaje regular en un alfabeto = a
1
, . . . , a
n
y sea ' =
(Q, ,
0
, 1, c) un 11 mnimo con [Q[ = / N que reconoce a 1, es decir,
1(') = 1. Si existe r 1 tal que [r[ _ / entonces r = nn para algunas
subcadenas n, y n en

que satisfacen:
i) [n[ _ /
ii) [[ 0
iii) \: _ 0 ; n
m
n 1
Prueba. Dado que [r[ _ / entonces r = a
i1
a
12
a
i
k
j para smbolos a
ij

donde 1 _ i _ : , 1 _ , _ / y para alguna j

. Luego,
c

(
0
, `) =
0
=
i0
c

(
i0
, a
i1
) =
i1
.
.
.
c

(
i0
, a
i1
a
i
k
) =
i
k
_

_
/ + 1
c

(
i0
, a
i1
a
i
k
j) =
f
1
43
Figure 16: Etapas del ejemplo
44
Figure 17: Recorrido de r = a
i1
a
i
k
j en '
Como existen slo / estados en ', en el conjunto
i0
,
i1
, . . . ,
i
k
de los
(/ + 1)-estados del recorrido del prejo a
i1
a
12
a
i
k
de r (v. Figura 14), se
tiene necesariamente que, para algn 0 _ , _ / 1,

ij
=
ij+p
(1 _ j _ / ,)
de tal modo que , < , +j _ /.
La palabra r se puede descomponer entonces en tres subpalabras n, y n
tales que n = a
i1
a
ij
, = a
ij+1
a
ij+p
y n = a
ij+p+1
a
i
k
j, como se
aprecia en la Figura 15. Tomando en cuenta que
ij
=
ij+p
se tiene que
c

(
i0
, n) =
ij
c

(
ij
, ) =
ij
c

(
ij
, n) =
f
Ahora bien, cuando se da el caso extremo , = / 1, se tiene que [n[ = / y
n = j, puesto que j = 1 y
i
k1
=
i
k
, con lo cual
c

(
i0
, n) =
i
k
c

(
i
k
, ) =
i
k
lo cual prueba que, en trminos generales, [n[ _ / (i). Adems, dado que
, < , + j hay al menos una transicin entre
ij
y
ij+p
, que son el comienzo
y el nal de un ciclo (
ij
=
ij+p
), y en consecuencia se tiene que [[ 0
(ii). Finalmente, ntese que si c

(
ij
, ) =
ij
entonces, para todo : 0 se
da c

(
ij
,
m
) =
ij
. Esto prueba que n
m
n 1. Como c

(
i0
, n) =
ij
y
c

(
ij
, n) =
f
se tiene que c

(
i0
, nn) =
f
conrmando que nn = n
0
n 1.
Asi se concluye la prueba de (iii).
Ejemplo 47 Supngase que 1 = a
n
/
n
[ : 0 es regular, y sea / N el
nmero de estados del 11 ' que lo reconoce. Consideramos la palabra r =
45
Figure 18: Descomposicin de r = a
i1
a
i
k
j en r = nn
a
k
/
k
de manera que [r[ / sasfaciendo as las condiciones del lema de bombeo.
Existen entonces subpalabras n, , n

tales que r = nn y
i) [n[ _ /
ii) [[ 0
iii) \: _ 0 ; n
m
n 1
Ahora, por (i) existe i _ / tal que n = a
i
, y como por (ii) [[ 0 tambin
existe 0 < , < i tal que = a
j
. Luego, para : = 2 debe cumplirse, por (iii),
que n
2
n 1. Obsrvese que
r = nn = a
ij
a
j
a
ki
/
k
= a
k
/
k
pero
n
2
n = a
ij
a
2j
a
ki
/
k
= a
k+j
/
k
y a
k+j
/
k
, 1 contradiciendo el enunciado del lema de bombeo. Por lo tanto, 1
no puede ser un lenguaje regular.
References
[1] Hopcroft, J. E. and Ullman, J. D.(1979) Introduction to Automata Theory,
Languages, and Computation, Addison-Wesley, Reading MA, US.
[2] Maatescu, A. and Salomaa, A. (1997). Formal Languages: and Introduction
and a Synopsis, Handbook of Formal Languages, (Vol. I, 1-39), Springer-
Verlag, Berling Heidelberg, DE.
46
[3] Martin, J.(2004). Lenguajes Formales y Teora de la Computacin, McGraw-
Hill Interamericana, Mxico DF, Mexico.
[4] Yu, S. (1997). Regular Languages, Handbook of Formal Languages, (Vol. I,
41-110), Springer-Verlag, Berling Heidelberg, DE.
47

S-ar putea să vă placă și