Documente Academic
Documente Profesional
Documente Cultură
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)
.
Adems,
i)
0
= `
ii)
k
= a
i1
a
i2
a
i
k
: 1 _ i
j
_ :, 1 _ , _ /
=
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
. 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 .
[ [n[
a
= [n[
b
1
3
= n
[ n = rr; \r
[ 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
=
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
_ 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
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
= 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
: 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
(
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)
(
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)
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
(
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
(
0
, j).
Sea n
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
(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)
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
(
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
(
0
, j).
Sea n
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
(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
, 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
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
(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
. Se
dice que un 11 acepta una palabra n
si n = n
1
n
s
para algunas
palabras n
1
, ..., n
s
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
[ 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 .
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
;
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
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 .
(
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
. 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
([r], .) = [r.].
Sea j = .a para algn smbolo a , de modo que [j[ = : + 1. Entonces,
c
([r], j) = 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
([`], 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
;
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 .
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
(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
(r, an) 1 y c
(r, an) , 1 y c
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) = c
(, `c) =
_
_
_
p2
(q;)
c(j, c)
_
_
=
_
_
_
p2(fqg)
c(j, c)
_
_
Entonces,
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
(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