Академический Документы
Профессиональный Документы
Культура Документы
Introducci
on a
la Teor
a de la Computaci
on:
Lenguajes, Automatas y Gramaticas
Jose Luis Ramrez Ramrez
Version: 28/Junio/2011
1
Indice general
1. Cadenas o Palabras 1
1.1. Longitud e Igualdad de una Cadena . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Concatenacion de una Cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Inversa de una Cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Subcadenas, Prejos y Sujos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5. Otras Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.7. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2. Lenguajes 7
2.1. Concatenacion de Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2. Estrella de Kleene de un Lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3. Otras Operaciones entre Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1. Inverso de un Lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2. Mas ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4. Cardinalidad de los Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.1. Orden Lexicograco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3. Lenguajes Regulares 17
3.1. Expresiones Regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2. Ejemplos de Lenguajes Regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.1. Mas ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4. Automatas Finitos Deterministas (AFD) 26
4.1. Automatas Finitos Deterministas (AFD) . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.1. Diagrama de Transicion de un Automata . . . . . . . . . . . . . . . . . . 29
4.1.2. Lenguaje aceptado por un AFD . . . . . . . . . . . . . . . . . . . . . . . 30
i
4.2. Ejemplos de Automatas Finitos Deterministas . . . . . . . . . . . . . . . . . . . 33
4.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5. Automatas Finitos No Deterministas (AFND) 40
5.1. Automatas Finitos No Deterministas (AFN) . . . . . . . . . . . . . . . . . . . . 40
5.1.1. Lenguaje aceptado por un AFD . . . . . . . . . . . . . . . . . . . . . . . 42
5.2. Ejemplos de AFN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6. Equivalencia entre AFD y AFN 46
6.1. Eliminacion Transiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7. Gramaticas Regulares 47
8. Soluciones a algunos ejercicios 50
8.1. Soluciones Lectura 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
8.2. Solucion Ejercicios Lectura 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
ii
Lectura 1
Cadenas o Palabras
Contents
1.1. Longitud e Igualdad de una Cadena . . . . . . . . . . . . . . . . . . . 2
1.2. Concatenacion de una Cadena . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Inversa de una Cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Subcadenas, Prejos y Sujos . . . . . . . . . . . . . . . . . . . . . . . 3
1.5. Otras Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.7. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Uno de los objetos claves en la teora de automatas y lenguajes son las cadenas o palabras,
las cuales son una secuencia nita de smbolos. Para ello se ja un conjunto nito no vaco
cuyos elementos se denominan smbolos, los cuales se utilizan para formar las palabras. El
conjunto se denomina alfabeto, ademas las cadenas se denotan por las letras u, v, w, x, ....
Se supone la existencia de una unica cadena que no tiene smbolos, denominada cadena
vaca y se denota con
1
.
Ejemplo 1.0.1. Sea = a, b, c el alfabeto que consta de los smbolos a, b y c, entonces
a, aa, abccc son cadenas sobre .
Hay que aclarar que un alfabeto debe satisfacer que dos sucesiones diferentes de smbolos
forman dos cadenas diferentes, as por ejemplo el conjunto aa, ab, bb es un alfabeto, pero
aa, a, bb no es un alfabeto ya que las sucesiones (a, a) y (aa) forman la misma cadena aa.
El conjunto de todas las cadenas sobre un alfabeto , incluyendo la cadena vaca, se denota
por
.
1
Algunos autores utilizan el smbolo
1
1.1. Longitud e Igualdad de una Cadena
La longitud de una cadena u
0, si u =
|w| + 1, si u = wa
para todo a y u
.
Notaremos |u|
a
a la cantidad de veces que aparece el smbolo a en la cadena u.
Ejemplo 1.1.1. Sea = 0, 1 el alfabeto binario, entonces |00| = 2, |101011| = 6, |001|
0
=
2, |001|
1
= 1.
Ejemplo 1.1.2. Cuantas cadenas sobre un alfabeto = a
1
, a
2
, . . . , a
k
se pueden formar
de longitud n, (n 0) ?
Solucion: Para cada smbolo de la cadena existen k posibilidades, como la cadena es de longitud
n, entonces hay un total de k
n
cadenas de longitud n.
Sean x = x
1
x
2
x
n
y y = y
1
y
2
y
m
dos cadenas sobre un alfabeto , entonces x y y son iguales
si
1. |x| = |y|.
2. x
i
= y
i
para todo i = 1, 2, . . . n.
1.2. Concatenacion de una Cadena
Dado un alfabeto y dos cadenas u, v
, entonces uuu
-
n veces
se denotara como u
n
. Es decir
u
0
=
u
n
= u
n1
u = uuu
-
n veces
2
Ejemplo 1.2.1. Demostrar que para toda cadena u, v
,
entonces debemos probarla para toda cadena va con a .
|uva| =|uv| + 1 Def. de Longitud de una Cadena.
=|u| + |v| + 1 Hipotesis de Induccion.
=|u| + |va|, a Def. de Longitud de una Cadena.
Ejemplo 1.2.2. Demostrar que para toda cadena u
y n 0, |u
n
| = n|u|.
Solucion: Induccion sobre n.
Para n = 0, |u
0
| = || = 0 = 0|u|. Asumamos que se tiene para n, entonces
|u
(n+1)
| =|u
n
u| Def. de Potencia de una Cadena.
=|u
n
| + |u| Ejercicio 1.2.1.
=n|u| + |u| Hipotesis de Induccion.
=(n + 1) |u|
1.3. Inversa de una Cadena
La inversa de una cadena u
se denota u
R
y se dene como
u
R
=
Si u =
u
n
u
n1
u
1
Si u = u
1
u
2
u
n
.
con u
1
, u
2
, ..., u
n
.
1.4. Subcadenas, Prejos y Sujos
Una cadena v es una subcadena de u si existen cadena x, y tales que u = xvy. Es claro que
x o y pueden ser , as la cadena vaca es subcadena de cualquier cadena y toda cadena es
subcadena de s misma.
Si u = vw entonces las subcadenas v y w se llaman prejo y sujo de u, respectivamente.
Ejemplo 1.4.1. Si u = 100110 entonces , 1, 10, 100, 1001, 10011, 100110 es el conjunto de
todos los prejos de u y , 0, 10, 110, 0110, 00110, 100110 es el conjunto de todos los sujos
de u.
3
1.5. Otras Propiedades
Teorema 1.5.1 (Principio de Induccion para Cadenas). Sea L
.
Demostracion. Supongamos que L
.
Como w es de longitud minima en
, (uv)
R
= v
R
u
R
.
3. Demostrar que para todo u
, (u
R
)
R
= u.
4. Sean x, y, u, v
tales que x
m
= y
n
para m, n > 0. Demostrar que x y y son potencias
de la misma cadena z.
6. Sea = a, b. Demostrar que no existen cadenas x, y
por
f() =
f(ax) = xa,
para todo x
y a .
a) Demuestre que f es biyectiva.
b) Demuestre que f
x
(xy) = yx para todo x, y
. Concluya que f
x
(x) = x para
todo x
.
c) Dos cadenas x, y
tales que x = uv
y y = vu. Demuestre que x, y
,
si xa = ax , con a , entonces existe un entero m 0, tal que x = a
m
.
1.7. Referencias
Algunos textos recomendados que tienen este contenido son [3, 1, 7, 2]. Para profundizar en
propiedades combinatorias sobre cadenas puede consultar: M. Lothaire: Combinatorics on
5
Words. Addison-Wesley, 1983, M. Lothaire: Algebraic Combinatorics on Words. Cambridge
University Press, 2002, M. Lothaire: Applied Combinatorics on Words. Cambridge University
Press, 2005. Tambien puede consultar la pagina http://www.math.utu.fi/projects/fundim/wa/
es de uno de los grupos de investigacion que trabaja en dicha area. Tambien puede consultar
el libro J.-P. Allouche, J. Shallit: Automatic Sequences: Theory, Applications, Generaliza-
tions. Cambridge University Press, 2003; el cual abarca lneas actuales de investigacion, o los
paginas web de los autores del libro.
6
Lectura 2
Lenguajes
Contents
2.1. Concatenacion de Lenguajes . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2. Estrella de Kleene de un Lenguaje . . . . . . . . . . . . . . . . . . . . 9
2.3. Otras Operaciones entre Lenguajes . . . . . . . . . . . . . . . . . . . . 11
2.3.1. Inverso de un Lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3.2. Mas ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4. Cardinalidad de los Lenguajes . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.1. Orden Lexicograco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Un lenguaje L sobre un alfabeto es un subconjunto de
y puede ser nito o innito. Los lenguajes se denotan con letras may usculas
A, B, C, . . . L, M, N, . . ..
Ejemplo 2.0.1. Los siguientes son ejemplos de lenguajes sobre los alfabetos especicados.
= 0, 1. L = 0, 1, 00, 01, 10, 11.
= 0, 1. L = 1, 11, 1111, 11111111, . . . = 1
2
n
n 0.
= a, b. L = w w = w
R
(Palndromos).
= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. L = u
u = 0 o 0 no es prejo de u = N.
Puesto que los lenguajes sobre son subconjuntos de
A =
A Complemento
Para todo lenguaje nito A
iI
es una familia cualquiera de lenguajes
8
sobre , entonces
A
iI
B
i
=
iI
(AB
i
).
|
iI
B
i
1A =
iI
(B
i
A).
Demostracion. 1. A = uv u A, v = .
2. A = uv u A, v = u u A = A.
3. Es consecuencia de la asociatividad de la concatenacion de cadenas.
4. Es consecuencia de la propiedad general.
5.
w A
iI
B
i
w = uv, con u A, v
iI
B
i
w = uv, con u A, v B
j
, j I
w AB
j
, j I
w
iI
(AB
i
).
La segunda igualdad se demuestra analogamente.
Dado un lenguaje A sobre (A
, es la union de
todas las potencias de A y se denota por A
.
A
=
i0
A
i
= A
0
A
1
A
2
A
n
9
Es decir que A
= u
1
u
2
u
n
u
i
A, n 0
De manera similar se dene la clausura positiva de un lenguaje A, denotada por A
+
.
A
+
=
i1
A
i
= A
1
A
2
A
n
Ejemplo 2.2.1. Sea L = w |w|
a
es impar y |w|
b
es par sobre el alfabeto = a, b, enton-
ces L
= w |w|
b
es par.
Proposicion 2.2.2. Sean A, B lenguajes sobre , entonces:
1. A
+
= A
A = AA
.
2. A
= A
.
3. (A
)
n
= A
, para todo n 1.
4. (A
= A
.
5. A
+
A
+
A
+
.
6. (A
)
+
= A
.
7. (A
+
)
= A
.
8. (A
+
)
+
= A
+
.
9. (A B)
= (A
Demostracion.
1. A
+
= A A
2
A
3
= A A A
2
}
= AA
.
Similarmente se demuestra que A
+
= A
A.
2. Sea w A
w = uv, con u A
, v A
w = uv, con u A
i
, v A
j
, (i, j 0)
w A
ya que A
i
A
j
A
10
Recprocamente, si w A
, entonces w = w A
=(A
)
0
(A
)
1
(A
)
2
= A
=A
5. Similar a la propiedad 2.
6. (A
)
+
=(A
)
1
(A
)
2
(A
)
3
=(A
) A
=A
7. (A
+
)
=(A
+
)
0
(A
+
)
1
(A
+
)
2
= A
+
A
+
A
+
= A
+
=A
8. (A
+
)
+
=(A
+
)
1
(A
+
)
2
(A
+
)
3
=A
+
A
+
A
+
A
+
A
+
A
+
=A
+
9. Sea w (A B)
w (A B)
n
con n 0
w = w
1
w
2
w
n
con i 0, w
1
, w
2
, . . . , w
n
A B
w = u
1
v
1
u
2
v
2
u
n
v
n
con u
1
, u
2
, . . . , u
n
A
, v
1
, v
2
, . . . , v
n
B
w (A
)
n
(A
)
R
= (A
R
)
.
6. (A
+
)
R
= (A
R
)
+
.
Demostracion.
1. w (AB)
R
w = u
R
, donde u AB
w = u
R
, donde u = xy, x A, y B
w = (xy)
R
, donde x A, y B
w = y
R
x
R
, donde x A, y B
w B
R
A
R
2. w (A B)
R
w = u
R
, donde u A B
w = u
R
, donde u A o u B
w A
R
B
R
3. Similar a la propiedad 2.
4. w (A
R
)
R
w = u
R
, donde u A
R
w = u
R
, donde u = v
R
, v A
w = (v
R
)
R
, donde v A
w = v A
12
5. w (A
)
R
w = u
R
, donde u A
w = u
R
, donde u = u
1
u
2
u
n
, u
i
A, n 0
w = (u
1
u
2
u
n
)
R
, donde u = u
1
u
2
u
n
, u
i
A, n 0
w = u
R
n
u
R
2
u
R
1
, donde u = u
1
u
2
u
n
, u
i
A, n 0
w (A
R
)
6. Similar a la propiedad 5.
2.3.2. Mas ejemplos
Funcion Chop
Sea L un lenguaje denido sobre el alfabeto , entonces
Chop(L) = w (x L) [x = uav, |u| = |v|, w = uv, u, v
, a |
en otras palabras Chop(L) es el conjunto de todas las cadenas de longitud impar de L sin el
smbolo de la mitad.
Ejemplo 2.3.2. Sean L
1
= 0
n
1
n
n 0 y L
2
= 0
n
1
n
2
n
n 0, entonces Chop(L
1
)= y
Chop(L
2
)=0
2n+1
1
2n
2
2n+1
n 0.
Funcion Perm
Sea L un lenguaje denido sobre el alfabeto , entonces
Perm(L) = w w = perm(x), x L
donde perm(x) es una permutacion de los smbolos de x.
Ejemplo 2.3.3. Sean L
1
= 0
n
1
n
n 0, entonces Perm(L
1
)=w |w| es par y |w|
0
= |w|
1
.
Funcion Sqrt
Sea L un lenguaje denido sobre el alfabeto , entonces
Sqrt(L) = x (y) ||y| = |x|
2
, xy L|
Ejemplo 2.3.4. Sean L
1
= 0
n
1
n
n 0, entonces Sqrt(L
1
)=0
n
n 0.
13
2.4. Cardinalidad de los Lenguajes
El lenguaje mas peque no sobre un alfabeto es , cuyo cardinal es cero y el lenguaje mas
grande es
. Si = entonces
= y por lo tango |
| = 1. En el siguiente teorema
resolvemos el caso en que .
Teorema 2.4.1 (Cardinalidad de
). Si entonces
es un conjunto numerable.
Demostracion. Sea
n
= el conjunto de todas las cadenas sobre de longitud n, n 0,
(
0
= ). Si || = m, entonces existen m
n
cadenas en
n
. Como
=
n0
n
entonces
es
la union numerable de conjuntos nitos disjuntos dos a dos, por lo tanto
es numerable.
As todos los lenguajes son nitos o numerables.
Teorema 2.4.2 (Cardinalidad de
(
), as el n umero de len-
guajes es el cardinal de
(
), como
) es no contable.
Como existen tantos lenguajes sobre un alfabeto como n umeros reales, entonces en los
proximos captulos comenzaremos a estudiar algunas clases de lenguajes que guardan ciertas
propiedades.
2.4.1. Orden Lexicograco
Sea = a
0
, a
1
, . . . , a
n1
entonces denimos un orden total sobre , por ejemplo, a
0
< a
1
<
< a
n1
.
Denicion 2.4.3. El orden lexicograco sobre
denida como,
u v si y solo si |u| < |v| o u = wa
i
u
y v = wa
j
v
, para alg un w, u
, v
y i < j.
Ejemplo 2.4.4. Sea L = x a, b
en N, se deja
como ejercicio para el lector.
2.5. Ejercicios
1. Sea = a, b. Encuentre una cadena que este y otra que no, en el lenguaje L
,
donde L es:
14
a) ww
R
w w .
b) w
w
2
= w
3
.
c) w
w
3
= v
2
, v
.
d) w
uvw = wuv, u, v
.
2. Si |A| = n 0 y |B| = m 0 entonces |AB| = nm?.
3. Encuentre la cadena de menor longitud sobre el alfabeto = 0 que no pertenece a
, 0, 00, 00000
3
.
4. Dar un ejemplo de un alfabeto y dos lenguajes diferentes A, B sobre tales que
AB = BA.
5. Para cada una de las siguientes armaciones, decida si es verdadera o no. Justique su
respuesta.
Para todo lenguaje L se tiene que:
a) L
= L
.
b) L
R
= L
R
.
c) LL
R
L
R
L =
.
d) LL LL =
.
e) Si L
1
= L
2
, entonces L
1
= L
2
para todo lenguaje L
1
y L
2
.
f ) AB = A B.
6. Dar un ejemplo de un alfabeto y tres lenguajes diferentes A, B, C sobre tales que
A(B C) AB AC. Una de la dos concatenaciones siguientes es verdadera y la otra
es falsa. Demostrar o refutar, seg un sea el caso:
a) A(B C) AB AC.
b) AB AC A(B C).
7. Verique que en general las siguientes igualdades no se tienen para cualquier lenguaje
A y B sobre
a) (A A
R
)
= A
(A
)
R
b) A
2
B
2
= (A B)
2
c) A
= (A B)
.
c) A(BA)
= (AB
)A.
9. Son los siguientes conjuntos cerrados para las operaciones que aparecen?.
a) El lenguaje a, b respecto a la concatenacion.
b) Las cadenas de longitud impar sobre el alfabeto a, b respecto a la estrella de
Kleene.
c) L = w a, b
respecto a el inverso.
d) L = w a, b
w = w
R
. Encuentre Chop(L).
16
Lectura 3
Lenguajes Regulares
Existe una clase especial de lenguajes conocidos como lenguajes regulares. Los lenguajes
regulares sobre un alfabeto dado son todos los lenguajes que se pueden formar a partir de
los lenguajes basicos , , a , a , por medio de las operaciones de union, concatenacion
y estrella de Kleene. A continuacion presentamos una denicion recursiva de los lenguajes
regulares.
Denicion 3.0.1. Sea un alfabeto:
1. , , a, para todo a , son lenguajes regulares sobre . Estos se denominan
lenguajes regulares basicos.
2. Si A y B son lenguajes regulares sobre , tambien lo son
A B Union
AB Concatenacion
A
estrella de Kleene
Ejemplo 3.0.2. Sea = 0, 1. Los siguientes son lenguajes regulares sobre :
(i) El lenguaje A de todas las cadenas que tienen exactamente un 0: Una cadena en este
lenguaje se puede escribir de la forma x0y, donde x, y 1
01
(ii) El lenguaje B de todas las cadenas que tienen un n umero impar de smbolos:
B = [(0 1) (0 1)|
(0 1)
3.1. Expresiones Regulares
Para simplicar la descripcion de los lenguajes regulares se denen las expresiones regu-
lares, cuya denicion recursiva sobre un alfabeto dado es:
17
1. Expresiones regulares basicas:
es una expresion regular que representa al lenguaje .
es una expresion regular que representa al lenguaje .
a es una expresion regular que representa al lenguaje a , para todo a .
2. Si R y S son expresiones regulares sobre , tambien lo son
(R S)
(R) (S)
(R)
01
.
(ii) El lenguaje B de todas las cadenas que tienen un n umero impar de smbolos:
B = [(0 1) (0 1)|
(0 1)
3.2. Ejemplos de Lenguajes Regulares
Ejemplo 3.2.1. Encontrar una expresion regular para el lenguaje de todas las cadenas que
comienzan con 2 y terminan con 1, denidas sobre el alfabeto = 0, 1, 2.
Solucion: Cualquier cadena en este lenguaje se puede escribir de la forma 2x1, donde x
0, 1, 2
.
Este puede ser representado como: 2(0 1 2)
1
Ejemplo 3.2.2. Encontrar una expresion regular para el lenguaje de todas las cadenas que
tienen un n umero par de aes, denidas sobre el alfabeto = a, b.
Solucion: Cualquier cadena en este lenguaje esta formada por solo bes o es concatenacion de
cadenas de la forma xayaz, donde x, y, z b
.
Este puede ser representado como: (b
ab
ab
= (ab
a b
Ejemplo 3.2.3. Encontrar una expresion regular para el lenguaje de todas las cadenas que
tienen un n umero impar de aes, denidas sobre el alfabeto = a, b.
18
Solucion: A partir del ejemplo 3.2.2, se concluye que este lenguaje puede ser representado como:
(b
ab
ab
(b
ab
) = (ab
a b
ab
Ejemplo 3.2.4. Encontrar una expresion regular para el lenguaje de todas las cadenas que
tiene un n umero par de aes o un n umero impar de bes, denidas sobre el alfabeto = a, b.
Solucion: A partir de los ejemplos 3.2.2 y 3.2.3, se concluye que este lenguaje puede ser repre-
sentado como: (ab
a b
(ba
b a
ba
Ejemplo 3.2.5. Encontrar una expresion regular para el lenguaje de todas las cadenas que
tienen por lo menos un 0 y por lo menos un 1, denidas sobre el alfabeto = 0, 1.
Solucion: Cualquier cadena en este lenguaje contiene las subcadenas 01 o 10 y recprocamente
si una cadena contiene una subcadena 01 o 10 entonces pertenece al lenguaje.
Este puede ser representado como:
(0 1)
01
(0 1)
(0 1)
10
(0 1)
= (0 1)
(01 10)
(0 1)
Ejemplo 3.2.6. Encontrar una expresion regular para el lenguaje de todas las cadenas que
tienen a lo sumo dos ceros consecutivos, denidas sobre el alfabeto = 0, 1.
Solucion: Cualquier cadena en este lenguaje es concatenacion de las cadenas: 1, 01, 001; esto
con el n de que 0 o 00 siempre esten separadas por al menos un 1. Hay que tener en cuenta que
las cadenas pueden nalizar con 1s, con un 0 o con dos 0.
Este puede ser representado como: (1 01 001)
( 0 00)
Ejemplo 3.2.7. Encontrar una expresion regular para el lenguaje de todas las cadenas que
no tienen la subcadena 00, denidas sobre el alfabeto = 0, 1.
Solucion: Cualquier cadena en este lenguaje es concatenacion de las cadenas: 1, 01.
Este puede ser representado como: (01 1)
( 0)
Ejemplo 3.2.8. Encontrar una expresion regular para el lenguaje de todas las cadenas que
no tienen la subcadena 001, denidas sobre el alfabeto = 0, 1.
Solucion: Una cadena en este lenguaje no tiene la subcadena 00, excepto que esta tenga un
sujo 0
k
con k 2. El conjunto de cadenas que no tienen la subcadena 00 se puede representar
por (01 1)
( 0 000
) = (01 1)
0v
1
(01)
( 0) 0w
1
1 (01)
u
0
1 ( 1)(01)
1v
0
(10)
( 1) 1w
0
0 (10)
( 0)(10)
(01)
( 0)( 0)(10)
(01)
(10)
( 1)
= ( 0)(10)
( (01)
( 0) (01)
(10)
( 1))
= ( 0)(10)
((01)
(01)
0 (01)
(10)
(01)
(10)
1)
= ( 0)(10)
(01)
( 0 (10)
(10)
1)
= ( 0)(10)
(01)
(0 (10)
(10)
1)
= ( 0)(10)
(01)
(0 (10)
( 1))
Los casos 1), 5), 6) y 7) tiene una forma simetrica. As este lenguaje puede ser
representado como: ( 0)(10)
(01)
(0 (10)
( 1)) ( 1)(01)
(10)
(1 (01)
( 0))
Ejemplo 3.2.10. Encontrar una expresion regular para el lenguaje de todas las cadenas tal
que ning un prejo tiene mas de dos 0s que de 1s, ni mas de dos 1s que de 0s, denidas
sobre el alfabeto = 0, 1.
Solucion:Sea x = x
1
x
2
x
n
una cadena en este lenguaje, donde cada x
i
0, 1. La propiedad
de estos lenguajes implica que para todo entero positivo i
n
2
, x
2i1
x
2i
. En efecto, si no fuera
as, existira al menos un entero i
n
2
tal que x
2i1
= x
2i
. Supongamos que i
es el menor de
estos enteros. sin perdida de generalidad, asumamos que x
2i
1
= x
2i
= 0. Entonces cada pareja
20
x
1
x
2
, x
3
x
4
, . . . , x
2i
3
x
2i
2
es 01 o 10 y por lo tanto el prejo x
1
x
2
x
2i
2
tiene igual n umero
de 0s y 1s. Por lo tanto, la cadena x
1
x
2
x
2i
tiene dos 0s mas que 1s, lo cual es contradictorio.
Recprocamente si una cadena satisface que para todo entero positivo i
n
2
, x
2i1
x
2i
, entonces
pertenece al lenguaje, ya que toda cadena x
2i1
x
2i
es 10 o 01.
As este lenguaje puede ser representado como: (01 10)
(1 0 )
Ejemplo 3.2.11. Sea
3
=
0
0
0
0
0
1
0
1
0
, . . . ,
1
1
1
3
contiene todas las matrices columna de tama no 3 formadas por ceros y unos. Una palabra
de smbolos en
3
esta formada por tres las de 0s y 1s. Considere cada la como un n umero
binario y sea:
B = w
3
la ultima la de w es igual a la suma de las dos primeras las
Por ejemplo:
0
0
1
0
1
0
1
1
0
B pero
0
0
1
1
0
1
B
Muestre que B es regular.
Solucion: Es claro que la concatenacion de dos cadenas que pertenecen a B tambien
esta en B. Por lo tanto el problema se reduce a analizar las cadenas mas peque nas
del lenguaje.
El primer smbolo de la izquierda tiene solo las siguientes opciones:
0
0
0
0
1
1
1
0
1
0
0
1
.
En los tres primeros casos, estos smbolos pertenecen al lenguaje y seran las cadenas mas cadenas
peque nas de longitud 1. El cuarto smbolo no pertenece al lenguaje, as debe tener mas smbolos.
En este caso el primer smbolo de la derecha debe ser.
1
1
0
21
y el segundo smbolo mas a la derecha debe existir, y tiene cuatro opciones
0
0
1
0
1
0
1
0
0
1
1
1
.
Si el segundo smbolo mas a la derecha es el primer caso, entonces esta cadena pertenece al
lenguaje, y por lo tanto es la cadena mas peque na de longitud 2. En los otros tres casos, debe
existir el tercer smbolo mas a la derecha y tiene las mismas cuatro opciones.
As este lenguaje puede ser representado como:
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
El principio de induccion puede ser generalizado a otros tipos de conjuntos cuyos elementos
se denen recursivamente. Como los lenguajes regulares se denen recursivamente, entonces
el principio de induccion puede ser utilizado para probar una propiedad P de los lenguajes
regulares, de la siguiente manera:
1. Probar que tiene la propiedad P.
2. Probar que tiene la propiedad P.
3. Probar que a tiene la propiedad P, para todo a .
4. Probar que si A y B tienen la propiedad P, entonces
a) A B
b) AB
c) A
tambien lo es.
Solucion: La demostracion es por induccion sobre la denicion de lenguaje regular.
1.
= es un lenguaje regular.
2.
= es un lenguaje regular.
22
3. a
y (L
2
)
tambien son
regulares. Entonces
a) (L
1
L
2
)
= w (u) [wu L
1
L
2
|
= w (u) [wu L
1
| o [wu L
2
|
= w (u) [wu L
1
| w (u) [wu L
2
|
= L
1
L
2
b) (L
1
L
2
)
= w (u) [wu L
1
L
2
|
= w w L
1
o w = xy, x L
1
, y L
= L
1
L
1
L
2
c) (L
1
)
= |
i0
L
i
1
1
=
i0
L
i
1
}
Por la parte a)
=
i1
L
i
1
}
= L
1
L
1
L
1
L
2
1
L
1
L
i1
1
L
1
. Por lo tanto
(L
1
)
=
i1
L
1
L
1
L
1
L
2
1
L
1
L
i1
1
L
1
}
= L
1
L
1
As L
1
L
2
, L
1
L
2
y L
1
son regulares.
Un error habitual en la demostracion de la parte c) es el siguiente
(L
1
)
= |
i0
L
i
1
1
=
i0
L
i
1
}
1
)
es la union de lenguajes
regulares, por lo tanto es regular.
El error radica en extender la siguiente regla:
L
1
, L
2
son regulares L
1
L
2
es regular.
23
a un hecho que no es cierto, como veremos mas adelante.
L
1
, L
2
, . . . son regulares
i0
L
i
es regular.
3.3. Ejercicios
1. Describa el lenguaje expresado por las siguientes expresiones regulares:
a) (0
0.
b) (01
0.
2. Simplique las siguientes expresiones regulares:
a) (00)
0 (00)
.
b) (0 1)( 00)
+
(0 1).
c) (0 )0
1.
3. Encontrar expresiones regulares para los lenguajes descritos a continuacion:
a) = a, b, c. Lenguaje de todas las cadenas que tienen un n umero par de smbolos.
b) = a, b, c. Lenguaje de todas las cadenas que tienen un n umero impar de smbo-
los.
c) = a, b. Lenguaje de todas las cadenas que tienen la cadena ab un n umero par
de veces.
d) = 0, 1, 2. Lenguaje de todas las cadenas que no contienen dos unos consecuti-
vos.
e) = 0, 1. Lenguaje de todas las cadenas cuyo quinto smbolo, de izquierda a
derecha, es un 1.
f ) = 0, 1. Lenguaje de todas las cadenas de longitud par 2 formadas por ceros
y unos alternados.
g) = 0, 1. Lenguaje de todas las cadenas cuya longitud es 4.
h) = 0, 1. Lenguaje de todas las cadenas de longitud impar que tienen unos
unicamente en las posiciones impares.
i ) = a, b. Lenguaje de todas las cadenas cuya longitud es un m ultiplo de tres.
j ) = a, b. Lenguaje de todas las cadenas que no contienen tres ceros consecutivos.
k) = 0, 1. Lenguaje de todas las cadenas que no contienen la subcadena 101.
l ) = 0, 1. Lenguaje de todas las cadenas que no contienen las subcadenas 000 y
111.
24
m) = 0, 1. Lenguaje de todas las cadenas que no contienen la subcadena 010.
4. Sea
3
=
0
0
0
0
0
1
0
1
0
, . . . ,
1
1
1
Demuestre que
B = w
3
la ultima la de w es igual a la diferencia de las dos primeras las
es regular
5. Sea L un lenguaje regular. Demuestre que los siguiente regulares son tambien regulares.
a) L
impar
= x L |x| es impar .
b) L
par
= x L |x| es par .
c) L
= u v, uv L.
6. Una expresion regular esta en forma normal disyuntiva si es de la forma
1
2
n
donde cada
i
, para i = 1, 2, . . . , n, es una expresion regular que no contiene el
operador . Demuestre que todo lenguaje regular tiene una expresion regular en forma
normal disyuntiva. (Sug: Usar induccion.)
25
Lectura 4
Automatas Finitos Deterministas
(AFD)
Contents
4.1. Automatas Finitos Deterministas (AFD) . . . . . . . . . . . . . . . . 26
4.1.1. Diagrama de Transicion de un Automata . . . . . . . . . . . . . . . . . 29
4.1.2. Lenguaje aceptado por un AFD . . . . . . . . . . . . . . . . . . . . . . 30
4.2. Ejemplos de Automatas Finitos Deterministas . . . . . . . . . . . . 33
4.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4. Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Los automatas nitos son modelos de maquinas abstractas que procesan cadenas de entrada,
leyendo un smbolo a la vez; despues de leer toda la cadena decide si la acepta o rechaza.
El automata consiste de dos partes: una cinta semi-innita, dividida en celdas, sobre la cual
se escribe una cadena de entrada un smbolo por casilla, y una cabeza lectora que tiene un
n umero nito de conguraciones o estados, la cual escanea cada celda de la cinta de entrada,
leyendo el smbolo de la celda, moviendose a la derecha y cambiando su conguracion interna,
ver gura 4.1. Despues de leer toda la cadena y dependiendo la conguracion con la que
nalice, decide si acepta la cadena o no.
4.1. Automatas Finitos Deterministas (AFD)
Formalmente se tiene que:
Denicion 4.1.1. Un automata nito determinista (AFD) es una quintupla =
(, Q, q
0
, F, ), donde:
26
a
1
a
2
. . . a
k
. . . a
n Cinta semi-infinita
Cabeza Lectora
q
0
q
1
q
2
q
n
q
n1
Figura 4.1: Automata Finito
es un alfabeto llamado alfabeto de cinta. Todas las cadenas que procesa pertenecen
a
.
Q = q
0
, q
1
, . . . , q
n
es un conjunto de estados internos del automata.
q
0
Q es el estado inicial.
F Q es un conjunto de estados nales o de aceptacion. F .
La funcion de transicion del automata
Q Q
(q, a) (q, a)
Una cadena de entrada w
q
0
Figura 4.2: Funcionamiento Automata
La funcion de transicion indica el estado al cual debe pasar la cabeza lectora, dependiendo el
smbolo ledo y de su estado actual. Es decir si (q, a
i
) = q
q
0
q
1
q
1
q
2
q
2
Figura 4.3: Procesamiento Cadena w
Como q
2
es un estado de aceptacion entonces la cadena w es aceptada por el automata. En
la gura 4.4 aparece el procesamiento de la cadena v = 01000.
~ - -
v
0 1 0 0 0
q
0
q
0
q
1
q
1
q
1
Figura 4.4: Procesamiento Cadena v
Como el estado q
1
no es de aceptacion entonces la cadena es rechazada.
28
4.1.1. Diagrama de Transicion de un Automata
Un diagrama de transicion de un automata es un tipo especial de grafo que sirve como una
forma alternativa de representar . Especcamente para un automata = (, Q, q
0
, F, )
el diagrama de transicion de es un grafo etiquetado o dirigido con |Q| vertices, donde cada
uno de los vertices del grafo esta etiquetado con cada uno de los estados de Q.
Es decir, si q Q este se representa por:
q
Si q F este se representa por:
q
El estado inicial q
0
se representa como:
q
Ademas, si (q, a) = q
a
Es claro que una cadena w es aceptada por un automata si y solo si existe una trayectoria
en el diagrama de transicion del automata etiquetada con los smbolos de w que comienza
en el vertice q
0
y termina en un estado de aceptacion.
Ejemplo 4.1.3. El diagrama de transicion del automata del ejemplo 4.1.2 es:
q
0
q
1
q
2
0
1
1
0
0, 1
Figura 4.5: Diagrama de Transicion del Automata .
Observando el diagrama de transicion podemos vericar que la entrada 0010110 es aceptada,
mientras que la cadena 001000 es rechazada. Es claro que L() = w
|w|
1
2.
Ejemplo 4.1.4. Describa el lenguaje aceptado por el automata sobre el alfabeto = a, b
que se muestra en el diagrama 4.6:
Solucion: El automata rechaza todas las cadenas que inician con a. Una cadena w L()
si w = bb
(q, ) = q,
(q, wa) = (
.
Denicion 4.1.6. Sea = (, Q, q
0
, F, ) un AFD, entonces el lenguaje aceptado por
esta denido como L() = w
(q, w) F.
Ejemplo 4.1.7. Considere el AFD del ejemplo 4.1.4, veriquemos si la cadena w = 1011 es
aceptada o rechazada por el AFD.
30
(q
0
, 1011) = (
(q
0
, 101), 1)
= ((
(q
0
, 10), 1), 1)
= (((
(q
0
, 1), 0), 1), 1)
= ((((
(q
0
, ), 1), 0), 1), 1)
= ((((q
0
, 1), 0), 1), 1)
= (((q
1
, 0), 1), 1)
= ((q
1
, 1), 1)
= (q
2
, 1)
= q
2
F
Luego w = 1011 es aceptada por el AFD.
Proposicion 4.1.8. Sea = (, Q, q
0
, F, ) un AFD, entonces
(q, uv) =
(
y q Q.
Demostracion. El argumento es por induccion sobre |v|.
Para |v| = 0,
(q, u) =
(
(q, u), ) =
(q, u). Asumamos que se tiene para toda cadena v
,
entonces debemos probar para toda cadena va con a .
(q, uva) = (
. Recprocamente, si w = 0u0,
entonces :
(q
0
, 0u0) = (
((
(q
0
, )0), u), 0)
= (
((q
0
, 0), u), 0)
= (
(q
1
, u), 0)
= q
2
F
31
q
0
q
1
q
3
q
2
1 0
0
1
0
1
0, 1
Figura 4.7: Ejemplo 4.1.9.
As w = 0u0 L(). Se concluye que el lenguaje aceptado por es:
L() = w
w = 0u0, u
Ejemplo 4.1.10. Dise ne un AFD que acepte el lenguaje que contiene la subcadena aa, sobre
el alfabeto = a, b, c.
Solucion: Un automata que acepte ese lenguaje debe cumplir que cuando lea dos as conse-
cutivas llegue a un estado de aceptacion y de ah no vuelva a salir. Se verica que el automata
de la gura 4.8 acepta el lenguaje. Es decir
L() = w
w = uaav, u, v
q
0
q
1
q
2
b, c a, b, c
a
b, c
a
Figura 4.8: Ejemplo 4.1.10.
Ejemplo 4.1.11. Dise ne un AFD que acepte el lenguaje L
2
, donde L es el lenguaje del
ejemplo 4.1.9.
Solucion: Es claro que L
2
= 0u00v0 u, v
Ejemplo 4.1.12. Un AFD puede contar modulo un n umero jo. Por ejemplo el automata
de la gura 4.10 acepta todas las cadenas en 1
|w| 0 mod 4.
32
q
0
q
1
q
2
q
3
q
4
q
5
1 1 0
0, 1
0
1
0
1
0
0
1
Figura 4.9: Ejemplo 4.1.11.
q
0
q
1
q
2
q
3
1 1
1 1
Figura 4.10: Ejemplo 4.1.12.
En general el automata de la izquierda de la gura 4.11 cumple que acepta las cadenas cuya
longitud es m ultiplo de un entero jo n, es decir
L() = w 1
|w| 0 mod n
Similarmente el AFD de la derecha de la gura 4.11, acepta todas las cadenas en 0, 1
tal
que el n umero de 1s es un m ultiplo de un entero jo n, es decir
L() = w
|w|
1
0 mod n
4.2. Ejemplos de Automatas Finitos Deterministas
A continuacion presentamos otros ejemplos de AFD. En general estos ejemplos son de dos
tipos, el primero dado un lenguaje L dise nar un AFD que lo acepte; el segundo dado un
automata determinar el lenguaje aceptado por . Mas adelante se soluciona en general
estos dos problemas.
Para simplicar el dise no de los automatas en los diagramas de transicion solo apareceran
los arcos que intervengan en trayectorias de aceptacion, es decir si no aparece un arco es
33
q
0
q
1
q
2
q
n2
q
n1
q
0
q
1
q
2
q
n2
q
n1
1
1
1
1
1
1
1
1
0
0 0
0 0
Figura 4.11: Ejemplo 4.1.12.
porque este conduce a un estado n util. Por ejemplo la version simplicada del automata de
la gura 4.6 aparece en la gura 4.12:
q
0
q
1
q
2
b b
b
a
a
Figura 4.12: Ejemplo 4.1.4.
Ejemplo 4.2.1. Describa el lenguaje aceptado por el automata sobre el alfabeto = a, b
que se muestra en el diagrama 4.13:
q
0
q
1
q
2
q
3
a
a
b
b
b
a
a, b
Figura 4.13: Ejemplo 4.2.1.
Solucion: Para acceder al estado q
2
se debe partir de q
0
y pasar por q
1
o q
3
. Para llegar a q
1
se
puede con una cadena de la forma (a
2
(b
2
)
a y para llegar a q
3
se puede con una cadena de la
forma (b
2
(a
2
)
a (b
2
(a
2
)
b
34
Ejemplo 4.2.2. Describa el lenguaje aceptado por el automata sobre el alfabeto = 0, 1
que se muestra en el diagrama 4.14:
q
0
q
1
q
2
q
3
0 0 0 0
1 1 1
1
Figura 4.14: Ejemplo 4.2.2.
Solucion: Una cadena w es aceptada por si w = 0
|w|
1
0 mod 4 = 0
(10
10
10
10
|w|
a
0 mod 2, |w|
b
0 mod 2
Ejemplo 4.2.4. Dise ne un AFD que acepte el lenguaje de todas las cadenas que tienen como
prejo la cadena 010, sobre el alfabeto = 0, 1.
Solucion: Un automata que acepte ese lenguaje debe cumplir que cuando lea una cadena
que inicie con 010 la acepte, de lo contrario sea rechazada. Se verica que el automata de la
gura 4.16 acepta el lenguaje.
35
q
0
q
1
q
2
q
3
0, 1
0 1 0
Figura 4.16: Ejemplo 4.2.4.
Ejemplo 4.2.5. Dise ne un AFD que acepte el lenguaje de todas las cadenas que tienen como
sujo la cadena 101, sobre el alfabeto = 0, 1.
Solucion: Un automata que acepte ese lenguaje debe cumplir que cuando lea la subcadena
101 llegue a un estado de aceptacion; si no hay mas smbolos debe ser aceptada, si aparece el
smbolo 0 debe devolverse un estado, ya que en ese momento se ha computado una cadena de la
forma u1010 con u
tal que (q
0
, x) =
q
j
.
3. Dise nar AFD que acepten los siguientes lenguajes:
a) = a, b. Lenguaje de las cadenas sobre que contienen exactamente una a .
b) = a, b. Lenguaje de las cadenas sobre que contienen exactamente dos as y
mas de dos bs.
c) = 0, 1. Lenguaje de las cadenas sobre de longitud impar.
d) = 0, 1. Lenguaje de las cadenas sobre que inician con 10 y terminan con 01.
e) = 0, 1. Lenguaje de las cadenas sobre que contienen un n umero impar de 0s.
f ) = 0, 1. Lenguaje de las cadenas binarias w que satisfacen que |w|
1
+ 2|w|
0
es
divisible por 5.
g) = 1, 2, 3. Lenguaje de las cadenas sobre en la cual la suma de todos su
smbolos es divisible por 5.
h) = 0, 1, 2. Lenguaje de las cadenas sobre las cuales son la expansion ternaria
(base 3) de los enteros positivos que son congruentes a 2 modulo 7.
i ) = 0, 1. Lenguaje de las cadenas sobre tal que toda subcadena 010 es seguida
inmediatamente por la subcadena 111.
j ) = a, b. Para cada combinacion de las condiciones par e impa y las condi-
ciones o e y, dise nar un AFD que acepte el lenguaje de las cadenas con un
n umero par/impar de as y/o un n umero par/impar de bs.
k) = a, b. Que acepte el lenguaje L = ab
ab
a.
l ) = a, b. Que acepte el lenguaje L = ab
3
wb
2
w
.
m) = a, b. Que acepte el lenguaje L = ab
n
a
m
n 2, m 3.
n) = a, b. Que acepte el lenguaje L = w
1
aw
2
|w
1
| 3, |w
2
| 5.
38
4. Determinar los lenguajes por los siguientes AFD. Puede utilizar una expresion regular
o una propiedad caracterstica.
a) .
q
0
q
1
1
0
0
b) .
q
0
q
1
q
2
0
1
1
0
c) .
q
0
q
1
q
2
q
3
q
4
a
a
b
b
b
b
4.4. Referencias
Un texto introductorio y bueno para una primera lectura acerca de este tema es [1, 5, 4]. Un
texto recomendado por la profundidad de sus ejemplos es [2]. Un texto para profundizar en
este tema es [6].
39
Lectura 5
Automatas Finitos No
Deterministas (AFND)
Contents
5.1. Automatas Finitos No Deterministas (AFN) . . . . . . . . . . . . . 40
5.1.1. Lenguaje aceptado por un AFD . . . . . . . . . . . . . . . . . . . . . . 42
5.2. Ejemplos de AFN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Los automatas nitos no deterministas (AFN) son un modelo similar a los AFD, la diferencia
radica en que un estado tiene 0, 1 o mas posibilidades para cambiar de estado. Ademas, tiene
una clase especial de transiciones llamadas transiciones , las cuales permiten pasar de un
estado a otro sin consumir el smbolo.
5.1. Automatas Finitos No Deterministas (AFN)
Formalmente se tiene que:
Denicion 5.1.1. Un automata nito no determinista (AFND) es una quintupla
= (, Q, q
0
, F, ), donde:
es un alfabeto llamado alfabeto de cinta. Todas las cadenas que procesa M pertenecen
a
.
Q = q
0
, q
1
, . . . , q
n
es un conjunto de estados internos del automata.
q
0
Q es el estado inicial.
F Q es un conjunto de estados nales o de aceptacion. F .
40
La funcion de transicion del automata
Q ( )
(Q)
(q, a) (q, a) = q
i
1
, . . . , q
i
k
El signicado de (q, a) = q
i
1
, . . . , q
i
k
es que estando en el estado q y leyendo el smbolo
a, la cabeza lectora puede pasar a uno cualquiera de los estados q
i
1
, . . . , q
i
k
y se desplaza a
la derecha. En el caso que (q, a) = , esto signica que estando en el estado q y leyendo el
smbolo a el computo se aborta.
El signicado de (q, ) = q
i
1
, . . . , q
i
k
es que estando en el estado q y sin importar el
smbolo que se este leyendo, la cabeza lectora puede pasar a uno cualquiera de los estados
q
i
1
, . . . , q
i
k
sin desplazarse a la derecha. En el caso que (q, ) = , esto signica que no hay
transiciones .
El diagrama transicion de un AFN se dene de forma analoga, la unica diferencia es que de
un vertice pueden salir mas de una arista etiquetadas con un smbolo, ver gura 5.1 a), o
tambien puede pasar que no salgan aristas marcadas con alg un smbolo. Las transiciones
se simbolizan como en la gura 5.1 b).
a)
q
0
q
i
1
q
i
2
q
i
f
a
a
a
b)
q
0
q
i
1
q
i
2
q
i
f
q
1
q
0
, q
2
q
0
, q
2
, q
3
q
2
q
4
q
1
, q
3
q
3
q
3
q
4
q
2
El diagrama transicion correspondiente es:
q
0
q
1
q
3
q
2
q
4
0
0, 1
0, 1
1
1
0
1
1
0
Figura 5.2: Diagrama Transicion Ejemplo 5.1.2.
Por ejemplo el procesamiento de la cadena de entrada w = 01101 tiene varias opciones, por
ejemplo el computo de la gura 5.3 a) es un computo abortado, el de la gura 5.3 b) es un
computo aceptado, al igual que el de la graca 5.3 d) y el computo de la gura 5.3 c) es
rechazado.
5.1.1. Lenguaje aceptado por un AFD
Para denir con exactitud el lenguaje aceptado o reconocido por vamos a extender la
denicion de la funcion de transicion de manera analoga como se hizo en la denicion 4.1.5
.
Denicion 5.1.3. Sea = (, Q, q
0
, F, ) un AFN, la clausurade q, notada como [q|, es
el conjunto de estados de a los que se puede llegar desde q por cero, uno o mas transiciones
. Es decir:
[q| = p Q p = q, o (q
0
, q
1
, . . . , q
m
) [q
0
= q, q
m
= p, y q
i+1
(q
i
, ), i = 0, . . . , m 1|
La clausura de A Q se dene como
[A| =
qA
[q|
Denicion 5.1.4. Sea = (, Q, q
0
, F, ) un AFN, la funcion de transicion Q (
42
~ - -
w
0 1 1 0 1
q
0
q
1
q
3
~ - -
w
0 1 1 0 1
q
0
q
1
q
0
q
2
q
1
q
2
q
3
~ - -
w
0 1 1 0 1
q
2
q
0
q
4
q
2
q
1
q
2
q
1
~ - -
w
0 1 1 0 1
q
0
q
4
q
2
q
2
q
1
q
2
q
3
Figura 5.3: Procesamientos Cadena w
)
(Q) ( )
(Q)
(A, a)
(A, a) =
q[A]
(q, a)
para todo a .
Denicion 5.1.5. Sea = (, Q, q
0
, F, ) un AFN, la funcion de transicion
(Q)
( )
(Q) se extiende a una funcion
(Q)
(Q) de la siguiente
manera
(A, ) = [A|
(A, wa) =
(A, w), a}
para todo a y w
.
Denicion 5.1.6. Sea = (, Q, q
0
, F, ) un AFN, entonces el lenguaje aceptado por
esta denido como L() = w
(q
0
, w) F .
43
5.2. Ejemplos de AFN
Ejemplo 5.2.1. Un AFN que acepta el lenguaje del ejemplo 4.1.9 se muestra en la gura
5.4
q
0
q
1
q
2
0, 1
0 0
Figura 5.4: Ejemplo 5.2.1.
Ejemplo 5.2.2. Un AFN que acepta el lenguaje del ejemplo 4.1.10 se muestra en la gura
5.5
q
0
q
1
q
2
a, b, c a, b, c
a a
Figura 5.5: Ejemplo 5.2.2.
Ejemplo 5.2.3. Un AFN que acepta el lenguaje del ejemplo 4.1.11 se muestra en la gura
5.6
q
0
q
1
q
2
q
3
q
4
0, 1 0, 1
0 0 0 0
Figura 5.6: Ejemplo 5.2.3.
Ejemplo 5.2.4. Dise ne un AFN que acepte el lenguaje de todas las cadenas que comienzan
con 101 o nalizan con 001, sobre el alfabeto = 0, 1.
Solucion: El automata de la gura 5.7 a) acepta las cadenas que comienzan con 101. El automa-
ta de la gura 5.7 b) acepta las cadenas que nalizan con 001. La union de estos dos automatas
(gura 5.7 c)) es el automata pedido, este se obtiene con dos transiciones que salen del estado
inicial y se conectan con cada uno de los dos automatas anteriores.
Ejemplo 5.2.5. LIBRO JAPONESES
44
q
0
q
1
q
2
q
3
0, 1
1 0 1
q
0
q
1
q
2
q
3
0, 1
0 0 1
q
0
q
00
q
01
q
02
q
03
q
10
q
11
q
12
q
13
0, 1
0, 1
1 0 1
0 0 1
Figura 5.7: Ejemplo 5.2.4.
5.3. Ejercicios
45
Lectura 6
Equivalencia entre AFD y AFN
Contents
6.1. Eliminacion Transiciones . . . . . . . . . . . . . . . . . . . . . . . . . 46
En principio los AFD parecen tener una mayor capacidad computacional, es decir pareciera
que aceptaran lenguajes que los AFD no pueden aceptar, sin embargo, como se va a mostrar
en esta lectura, estos dos modelos computacionales son equivalentes. Para probar esto, vasta
con mostrar un algoritmo para convertir un AFN a un AFD, ya que es claro que todo AFD
es un AFN.
Denicion 6.0.1. Dos automatas
1
y
2
son equivalentes si L(
1
) = L(
2
).
6.1. Eliminacion Transiciones
En esta seccion vamos a mirar un algoritmo que elimina las transiciones .
46
Lectura 7
Gramaticas Regulares
Los automatas son dispositivos que procesan cadenas de entrada, sin embargo, existen otros
tipos de mecanismos que generan cadenas a partir de un smbolo inicial, las gram aticas
generativas. A continuacion presentaremos un tipo de gramatica generativa, denominada
gramatica independiente del contexto.
Denicion 7.0.1. Una gramatica independiente del contexto (GIC), es una cuadrupla,
G = (V, , S, P), donde:
V es un alfabeto, cuyos elementos se llaman variables o smbolos no terminales.
es un alfabeto, cuyos elementos se llaman smbolos terminales. y V son disyuntos.
S V es una variable especial, llamada smbolo inicial de la gramatica.
Un conjunto nito P V (V )
y A w es
una produccion, de dice que uwv se deriva directamente de uAv, lo cual se denota por
uAv =uwv. Si se quiere hacer referencia a la gramatica G, se escribe uAv
G
=uwv.
Si u
1
, u
2
, . . . , u
n
son cadenas en (V )
= u
n
. La anterior sucesion de derivaciones
directas se representa como
u
1
=u
2
=u
3
= =u
n1
=u
n
y se dice que es una derivacion o una generacion de u
n
a partir de u
1
. Para toda cadena w
se asume que w
= w; por lo tanto, u
= v signica que v se obtiene de u utilizando cero,
uno o mas producciones de la gramatica. Analogamente, u
+
= v signica que v se obtiene
de u utilizando uno o mas producciones de la gramatica.
El lenguaje generado por una gramatica G se denota por L(G) y se dene como
L(G) = w
S
+
=w.
Un lenguaje L sobre un alfabeto se dice que es un lenguaje independiente del contexto
(LIC) si existe una GIC G tal que L(G) = L.
Existe un tipo de particular de GIC, llamadas gramaticas regulares, las cuales son impor-
tantes ya que un lenguaje es regular si y solo si es generado por una gramatica regular.
Denicion 7.0.2. Una GIC G = (V, , S, P) se dice regular por la derecha si todas las
producciones son de la forma
A vB,
A v
donde A, B V y v
.
Una gramatica es regular si es una gramatica regular por la derecha o regular por la izquierda,
[2] .
Teorema 7.0.3. Un lenguaje es regular si y solo si es generado por una gramatica regular.
Demostracion. Ver [2].
Los lenguajes regulares en general se pueden caracterizar a partir de las expresiones regulares,
para lo cual se utilizan las expresiones regulares basicas y las operaciones union, concatenacion
48
y estrella de Kleene. Tambien, se pueden caracterizar a partir de automatas nitos (teorema
??) o de gramaticas regulares (teorema 7.0.3).
Esto se resume en la siguiente cuadro.
Lenguajes
Regulares
Aut omatas
Finitos
Gram aticas
Regulares
Expresiones
Regulares
49
Lectura 8
Soluciones a algunos ejercicios
8.1. Soluciones Lectura 1
1. Dar una denicion recursiva de u
R
.
Solucion:
u
R
=
, si u =
av
R
, si u = va
para todo a y v
.
2. Demostrar que para todo u, v
, (uv)
R
= v
R
u
R
.
Solucion: Por induccion sobre |v|. Si |v| = 0, entonces v = . As, (u)
R
= u
R
=
R
u
R
=
v
R
u
R
. Asumamos que se tiene para toda cadena v
, (u
R
)
R
= u.
Solucion: Por induccion sobre |u|. Si |u| = 0, entonces (
R
)
R
=
R
= . Asumamos que se
tiene para toda cadena u
tales que x
m
= y
n
para m, n > 0. Demostrar que x y y son potencias
de la misma cadena z.
Solucion:Si m = 1 o n = 1 se tiene claramente la conclusion. Supongamos que m, n 2
entonces |x
m
| = m|x| y |y
n
| = n|y| y por hipotesis m|x| = n|y| > |x| + |y|, de lo contrario si
|x| + |y| m|x|
|y| (m 1) |x| |y| |x|
Analogamente se prueba que |x| |y|. Entonces |y| = |x|, luego m = n y |x| + |y| = 2|x|
m|x|, es decir 2|x| = m|x|, lo cual es contradictorio.
Por lo tanto x
m
y y
n
tiene un prejo com un de longitud mayor o igual que |x| + |y|,
as por el teorema 1.5.2 existe z
tal que x = z
p
y y = z
q
.
6. Sea = a, b. Demostrar que no existen cadenas x, y
y y = t
bx, t
. Luego xat
bx = xatbx, t = t
, as xat = t
por
f() =
f(ax) = xa,
para todo x
y a .
a) Demuestre que f es biyectiva.
Solucion:
b) Demuestre que f
x
(xy) = yx para todo x, y
. Concluya que f
x
(x) = x para
todo x
.
c) Dos cadenas x, y
tales que x = uv
y y = vu. Demuestre que x, y
,
si xa = ax , con a , entonces existe un entero m 0, tal que x = a
m
.
51
Solucion:Sea L = x A
xa = ax implica que x = a
m
para alg un m N. L ya que
a = a y = a
0
. Supongamos que x L y consideremos la cadena y = xa. si ya ay
entonces la implicacion se tiene trivialmente, as y L. Si ya = ay, entonces xaa = axa
as xa = ax, lo cual implica que x = a
m
. As y = xa = a
m+1
, luego y L. As por el principio
de induccion para cadenas 1.5.1 L =
.
8.2. Solucion Ejercicios Lectura 2
1. Sea = a, b. Encuentre una cadena que este y otra que no, en el lenguaje L
,
donde L es:
a) ww
R
w w .
Solucion: w = ab, entonces abbaab L, es claro que si w L entonces |w| = 6. Por
otro lado a L, o cualquier cadena de longitud mayor de 6.
b) w
w
2
= w
3
.
Solucion: L, ademas es la unica cadena. Por otro lado a L, o cualquier cadena
diferente de .
c) w
w
3
= v
2
, v
.
Solucion: w = aa L con v = aaa. Por otro lado, w = a L ya que no existe una
cadena v tal que v
2
= aaa.
d) w
uvw = wuv, u, v
.
Solucion: Cualquier cadena sobre pertenece al lenguaje, escogiendo u, v , por
lo tanto no existen cadenas que no pertenezcan al lenguaje sobre .
2. Si |A| = n 0 y |B| = m 0 entonces |AB| = nm?. Solucion:No, sean A = a, aa y
B = aa, aaa entonces AB = aaa, aaaa, aaaaa, entonces |A| = 2, |B| = 2 y |AB| = 3.
3. Encuentre la cadena de menor longitud sobre el alfabeto = 0 que no pertenece a
, 0, 00, 00000
3
. Solucion:0
13
4. Dar un ejemplo de un alfabeto y dos lenguajes diferentes A, B sobre tales que
AB = BA. Solucion:Cualquier par de lenguajes sobre un alfabeto de una solo smbolo.
5. Para cada una de las siguientes armaciones, decida si es verdadera o no. Justique su
respuesta.
Para todo lenguaje L se tiene que:
a) L
= L
.
Solucion:Falso. Por ejemplo L
, pero L
.
52
b) L
R
= L
R
.
Solucion:Verdadero. Como = (
)
R
, es decir toda cadena es la inversa de alguna
cadena. Sea
w L
R
w L
R
w l
R
l L
w = (l
)
R
para alg un l
L
w L
R
c) LL
R
L
R
L =
.
Solucion:Falso. En efecto, sea L = a, ab sobre = a, b, entonces L
R
= a, ba,
as LL
R
= aa, aba, abba y L
R
L = aa, aab, baa, baab. Luego LL
R
L
R
L
.
d) LL LL =
.
Solucion:Falso. En efecto, sea L = 0 sobre = 0, entonces L =
0,
as LL = 0, 000, 0000, 00000, . . . = LL
.
e) Si L
1
= L
2
, entonces L
1
= L
2
para todo lenguaje L
1
y L
2
.
Solucion:Falso. En efecto, sean L
1
= 0 y L
2
= 0, 00, entonces L
1
= L
2
.
f ) AB = A B.
Solucion:Falso. En efecto, sean A = 0 y B = 0, 1 sobre = 0, 1, entonces
AB = 00, 01 AB =
00, 01 , A =
0 y B =
0, 1. As 00 A B
pero 00 AB.
6. Dar un ejemplo de un alfabeto y tres lenguajes diferentes A, B, C sobre tales que
A(B C) AB AC. Una de la dos concatenaciones siguientes es verdadera y la otra
es falsa. Demostrar o refutar, seg un sea el caso:
a) A(B C) AB AC. Solucion:Verdadero. En efecto, sea
w A(B C) w = uv, u A y v B C
w = uv, u A, v B y v C
w = uv AB y w = uv AC
w AB AC
b) AB AC A(B C). Solucion:Falso. Por ejemplo sean = a, A = , a , B =
y C = a, entonces A(B C) = A = . Por otro lado, AB = , a y AC =
a, aa, luego AB AC = a.
7. Verique que en general las siguientes igualdades no se tienen para cualquier lenguaje
53
A y B sobre .
a) (A A
R
)
= A
(A
)
R
.
Solucion:Sean = 0, 1 , A = 01, A
R
= 10 entonces A A
R
= 01, 10 , (A
A
R
)
=
, 10, 1010, 101010, . . ., as 0110 A
(A
)
R
pero 0110 (A A
R
)
.
b) A
2
B
2
= (A B)
2
Solucion:Sean = a, b , A = a, B = b entonces A
2
= aa, B
2
= bb, A
2
B
2
= aa, bb y (A B)
2
= aa, ab, ba, bb, as A
2
B
2
(A B)
2
.
c) A
= (A B)
Solucion:Sean = a, b , A = a, ab , B = a, b entonces AB = a, ab A
pero ab (A B)
.
8. Sean A, B, C, D lenguajes sobre , demuestre que
a) Para k 1,
k
i=0
A
i
= ( A)
k
.
Solucion:Induccion sobre k. Para k = 1 es claro.
Asumamos que se tiene para k, entonces debemos probarla para k + 1.
( A)
k+1
=( A)
k
( A)
=( A)
k
( A)
k
A
=
k
i=0
A
i
k+1
i=1
A
i
=
k+1
i=0
A
i
b) Si A, entonces para n 1, (A
+
)
n
= A
n
A
.
Solucion:Induccion sobre n. Para n = 1 es claro.
Asumamos que se tiene para n, entonces debemos probarla para n + 1.
(A
+
)
n+1
=A
+
(A
+
)
n
=AA
A
n
A
=AA
n
A
=A
n+1
A
c) A(BA)
= (AB
)A.
54
Solucion:
A(BA)
= A BA (BA)
2
(BA)
3
}
= A ABA A(BA)
2
A(BA)
3
Ademas se tiene que
A(BA)
i
= A(BA)(BA)(BA)
= (AB)(AB)(AB)A
= (AB)
i
A
luego
A(BA)
= A BA (BA)
2
(BA)
3
}
= A ABA A(BA)
2
A(BA)
3
Solucion:
9. Son los siguientes conjuntos cerrados para las operaciones que aparecen?.
a) El lenguaje a, b respecto a la concatenacion.
b) Las cadenas de longitud impar sobre el alfabeto a, b respecto a la estrella de
Kleene.
c) L = w a, b
respecto a el inverso.
d) L = w a, b
w = w
R
. Encuentre Chop(L). Solucion:
55
Bibliografa
[1] Rodrigo De Castro, Teora de la computacion, lenguajes, automatas, gramaticas, Univer-
sidad Nacional de Colombia, 2004.
[2] Ding-Zhu Du and Ker-I Ko, Problem solving in automata, languages, and comnplexity,
Jhon Wiley & Sons, 2001.
[3] Dexter Koxen, Automata and computability, Undergraduate Text in Computer Science,
Springer, 1997.
[4] Peter Linz, An introduction to formal languages and automata, 4 ed., Jones and Bartlett
Publishers, 2006.
[5] Elaine Rich, Automata, computability and comnplexity, theroy and aplications, Pearson,
Prentice Hall, 2008.
[6] Jerey Shallit, A second course in formal languages and automata theory, Cambridge
University Press, 2008.
[7] Dan Simovici and Richard Tenney, Theory of formal languages with applications, World
Scientic, 1999.
56