Вы находитесь на странице: 1из 59

Notas de Clase.

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

, denotada con |u|, se dene como el n umero de smbolos


de u, incluyendo smbolos repetidos. Recursivamente se dene como:
|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

, la concatenacion de u y v, es la cadena que


se forma al escribir los smbolos de u y a continuacion los smbolos de v. Se denota por
uv. Por lo tanto si v = , entonces u = u = u. Si u = a
1
a
2
a
k
y v = b
1
b
2
b
s
entonces
uv = a
1
a
2
a
k
b
1
b
2
b
s
.
En particular, si u

, 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

, |uv| = |u| + |v|.


Solucion: Induccion sobre la longitud de v.
Para |v| = 0, |uv| = |u| = |u| = |u| +0 = |u| + |v|. Asumamos que se tiene para toda cadena 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

, el conjunto de todas las


cadenas tales que L, y si x L entonces xa L para todo a . Entonces, L =

.
Demostracion. Supongamos que L

. Sea w una cadena de longitud minima, tal que


w

L. Como L entonces w y por lo tanto existe a , tal que w = ua, con u

.
Como w es de longitud minima en

L, entonces u L y por la denicion de L se tiene


que ua = w L, lo cual es una contradiccion ya que w L.
El siguiente teorema da condiciones necesarias y sucientes para saber si dos cadenas con-
mutan.
Teorema 1.5.2. Sean x, y dos cadenas de L

, entonces las siguientes armaciones son


equivalentes:
1. xy = yx;
2. Existe una cadena z L, y enteros m, n 0, tales que x = z
m
y y = z
n
;
3. Existen enteros t, s 0 tales que las cadenas x
t
y y
s
tiene un prejo com un de longitud
|x| + |y|.
Demostracion. (1) (2) El argumento es por induccion sobre k = |x| +|y|. Si k = 0, entonces
|x| = |y| = 0, luego x = y = y se tiene la conclusion inmediatamente. Asumamos que se tiene
para todo k < n y sean x, y L tales que xy = yx. Entonces se tiene los siguientes tres casos:
1. Caso 1: |x| = |y|, entonces x = y, y la conclusion es inmediata.
2. Caso 2: |x| < |y|, entonces existe w L tal que y = xw, lo cual implica que xxw = xwx,
luego xw = wx. Por la hipotesis de induccion existe una cadena z L tal que x = z
p
y
w = z
q
. Por lo tanto, y = z
p+q
, quedando demostrado.
3. Caso 3: |x| > |y|. Analogo al caso 2.
(2) (3) Se escogen enteros t y s tales que tm (m+n)|z| = |x|+|y| y sn (m+n)|z| = |x|+|y|,
y se tiene la conclusion inmediatamente.
(3) (1) Supongamos que existen enteros t y s tales que x
t
y y
s
tiene un prejo com un de
longitud |x| +|y|. Entonces las cadenas yx
t
y y
s+1
tiene un prejo com un de longitud |x| +2|y|
y por lo tanto yx
t
y y
s
tiene un prejo com un de longitud |x| + |y|. Analogamente, se prueba
que x
t
y xy
s
tienen un prejo com un de longitud |x| + |y|. Esto implica que xy
s
y yx
t
tienen
un prejo com un de longitud |x| + |y|, por lo tanto xy = yx.
Ejemplo 1.5.3. Demostrar que no existe una cadena x a, b

, tal que ax = xb.


4
Solucion: Supongamos que existe una cadena x a, b

, tal que ax = xb. Entonces existen


cadenas u, v

, tales que x = au y x = vb, por lo tanto avb = aub, as u = v, es decir que


au = ub, con |u| < |x|. Repitiendo este procedimiento (el cual es claro que se lleva a cabo en un
n umero nito de pasos) se llega a que a = b, lo cual es contradictorio.
1.6. Ejercicios
1. Dar una denicion recursiva de u
R
.
2. Demostrar que para todo u, v

, (uv)
R
= v
R
u
R
.
3. Demostrar que para todo u

, (u
R
)
R
= u.
4. Sean x, y, u, v

tales que xy = uv y |x| |u|. Demostrar que existe una cadena


z

tal que u = xz y y = zv.


5. Sean x, y

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

tales que xay = ybx.


7. Se dene la funcion f

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

son conjugadas si existen cadenas u, v

tales que x = uv
y y = vu. Demuestre que x, y

son conjugadas si y solo si x = f


n
(y) para alg un
entero n 0.
8. Utilice el Principio de Induccion para Cadenas, para demostrar que para todo x

,
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

. Todo lenguaje L satisface


L

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

, las operaciones usuales entre


conjuntos son tambien operaciones validas entre lenguajes. As, si A y B son lenguajes sobre
, entonces los siguientes tambien son lenguajes sobre :
7
A B = v v A o v B Union
A B = v v A y v B Interseccion
A B = v v A y v B Diferencia

A =

A Complemento
Para todo lenguaje nito A

, se escribe |A| al n umero de cadenas en A.


2.1. Concatenacion de Lenguajes
La concatenacion de dos lenguajes A y B sobre , notada AB, se dene como
AB = uv u A, v B
En general AB BA.
Ejemplo 2.1.1. Si = 0, 1, A = 0, 01, B = 1, 10, entonces
AB = 01, 010, 011, 0110 .
BA = 10, 101, 100, 1001 .
Ejemplo 2.1.2. Si = 0, 1, 2, A = 01, 12, B = 1
n
n 0, entonces
AB = 01
n
n 1 121
n
n 0.
BA = 1
n
01 n 0 1
n
2 n 1.
Proposicion 2.1.3. Sean A, B, C lenguajes sobre , entonces:
1. A = A = .
2. A = A = A.
3. Propiedad Asociativa: A(BC) = (AB)C.
4. Distributividad de la concatenacion con respecto a la union:
A(B C) = AB AC
(B C)A = BA CA
5. Propiedad distributiva generalizada. Si B
i

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

) y un n umero natural n, se dene A


n
de la siguiente
forma
A
0
= ,
A
n
= AA. . . A
---
n veces
= u
1
u
n
u
i
A, para todo i, 1 i n
2.2. Estrella de Kleene de un Lenguaje
La estrella de Kleene o simplemente estrella de un lenguaje A, 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

consta de todas las concatenaciones de cadenas de A consigo mismas, de


todas las formas posibles. Por lo tanto
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

. Por tanto se tiene la igualdad de


conjuntos.
3. Se tiene por la propiedad anterior.
4. (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

2.3. Otras Operaciones entre Lenguajes


Hasta el momento hemos denido las operaciones usuales entre lenguajes, como lo son la
union, interseccion, concatenacion y estrella de kleene. A continuacion se muestran otros
ejemplos de operaciones entre lenguajes, los cuales no son usuales.
11
2.3.1. Inverso de un Lenguaje
El inverso de un lenguaje A sobre , notado A
R
, se dene como
A
R
= u
R
u A
Proposicion 2.3.1. Sean A, B lenguajes sobre , entonces:
1. (AB)
R
= B
R
A
R
.
2. (A B)
R
= A
R
B
R
.
3. (A B)
R
= A
R
B
R
.
4. (A
R
)
R
= A.
5. (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

(

)). Si entonces el n umero de lenguajes sobre


es no contable.
Demostracion. El conjunto de todos los lenguajes sobre es

(

), as el n umero de len-
guajes es el cardinal de

(

), como

es numerable, entonces por el Teorema de Cantor

) 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

es una relacion 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

todas las as preceden a todas las bs. El orden lexi-


cograco, si se toma que a < b, es , a, b, aa, ab, bb, aaa, aab, ...
A partir del orden lexicograco se puede construir una funcion biyectiva de

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)

8. Sean A, B, C, D lenguajes sobre , demuestre que


a) Para k 1,
k
i=0
A
i
= ( A)
k
.
15
b) Si A, entonces para n 1, (A
+
)
n
= A
n
A

.
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 comienza con a respecto a el inverso.


e) L = w a, b

w naliza con a respecto la concatenacion.


10. Sea 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

. As el lenguaje se puede escribir


como: A = 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)

(R S) representa la union de los lenguajes representados por R, S; (R) (S) representa


su concatenacion, y (R)

representa la clausura de Kleene del lenguaje representado


por R. Los parentesis ( y ) son smbolos de agrupacion y se pueden omitir si no hay
peligro de ambig uedad.
Ejemplo 3.1.1. Los dos lenguajes del ejemplo 3.0.2 se pueden representar con expresiones
regulares de la siguiente manera:
(i) El lenguaje A de todas las cadenas que tienen exactamente un 0: A = 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.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) (ver ejercicio 3.2.7).


Este puede ser representado como: (01 1)

( 0 000

) = (01 1)

3.2.1. Mas ejemplos


A continuacion presentamos algunos ejemplos mas complejos.
19
Ejemplo 3.2.9. Encontrar una expresion regular para el lenguaje de todas las cadenas con
a lo mas un par de consecutivos 0s y a lo mas un par de consecutivos 1s, denidas sobre el
alfabeto = 0, 1.
Solucion: Una cadena x en este lenguaje, puede tener cualquiera de las siguientes formas:
1)
2) u
1
0 3) u
1
00v
1
4) u
1
00w
1
11v
0
5) u
0
1 6) u
0
11v
0
7) u
0
11w
0
00v
1
donde u
0
, u
1
, v
0
, v
1
, w
0
, w
1
son cadenas que no contienen la subcadenas 00 ni 11, u
0
naliza con
0, u
1
naliza con 1, v
0
comienza con 0, v
1
comienza con 1, w
0
comienza con 0 y termina en 1 y
w
1
comienza con 1 y naliza con 0.
Cada una de las cadenas puede ser representado por las siguientes expresiones regulares (Por
conveniencia, se agrego en cada expresion):
u
1
0 ( 0)(10)

0v
1
(01)

( 0) 0w
1
1 (01)

u
0
1 ( 1)(01)

1v
0
(10)

( 1) 1w
0
0 (10)

Ahora vamos a combinar 1), 2), 3) y 4):


( 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 tienen la propiedad P.


Ejemplo 3.2.12. Para todo lenguaje L sobre el alfabeto , sea L

el conjunto de todos los


prejos de cadenas de L, es decir, L

= w wu L para alguna cadena u. Demuestre que si


L es regular entonces L

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

= , a es un lenguaje regular, para todo a .


4. Supongamos que L
1
y L
2
son lenguajes regulares, tales que (L
1
)

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
}

Utilizando la parte b) se tiene que (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
}

De la parte b), se sabe que (L


i
1
)

es regular para todo i 0. As (L

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

se coloca en la cinta de tal manera que el primer smbolo de


w ocupa la primera casilla de la cinta. La cabeza lectora esta inicialmente en el estado q
0
escaneando la primera celda, ver gura 4.2.
~- -
w
a
1
a
2
. . . a
n

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

esto signica que al leer el smbolo


27
a
i
la cabeza lectora pasa del estado q al estado q

y se desplaza hacia la derecha. Esta accion


constituye un paso computacional.
La cadena se procesa completamente ya que la funcion esta denida para toda pareja
(q, a) Q. Ademas, la cadena es aceptada por el automata si al terminar el procesamiento
de la cadena w la cabeza lectora queda en un estado de aceptacion. Por lo tanto el lenguaje
aceptado por el automata , se denota por L() y es el conjunto de todas las cadenas
w de

tal que termina el procesamiento de w en un estado de aceptacion.


Ejemplo 4.1.2. Sea el automata = (, Q, q
0
, F, ), donde = 0, 1, Q = q
0
, q
1
, q
2
,
F = q
2
y esta denida tabularmente por:
0 1
q
0
q
0
q
1
q
1
q
1
q
2
q
2
q
2
q
2
Por ejemplo el procesamiento de la cadena de entrada w = 10100 es el que se muestra en la
gura 4.3.
~ - -
w
1 0 1 0 0

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

entonces el diagrama de transicion tiene una arista que va del vertice


q al vertice q

y esta etiquetada con el smbolo a. Este se representa como:


q
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

o si w = bau entonces u debe tener al menos una a o un n umero par de a y tantas bs


como quiera. Se concluye que el lenguaje aceptado por es:
29
q
0
q
1
q
3
q
2
b b
b
a
a
a
a, b
Figura 4.6: Ejemplo 4.1.4.
L() = w

w = bu, tal que |u|


a
0 mod 2
4.1.2. 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 .
Denicion 4.1.5. Sea = (, Q, q
0
, F, ) un AFD, la funcion de transicion Q Q
se extiende a una funcion

Q

Q por medio de la siguiente denicion recursiva

(q, ) = q,

(q, a) = (q, a),

(q, wa) = (

(q, w), a),


para todo q Q, a y w

.
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) =

(

(q, u), v), para


toda u, v

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

(q, uv), a) Def. de



.
= (

(q, u)v), a) Hipotesis de Induccion.


=

(

(q, u)va) Def. de



.
Ejemplo 4.1.9. Describa el lenguaje aceptado por el automata sobre el alfabeto = 0, 1
que se muestra en el diagrama 4.7:
Solucion: El automata acepta todas las cadenas que inician y nalizan con 0 . En efecto si
w L() debe iniciar y terminar en 0, ya que es la unica forma de llegar al estado q
2
, el cual
es el unico estado de aceptacion, luego w = 0u0, para alg un u

. 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

. Se puede vericar facilmente que el automata


de la gura 4.9 acepta el lenguaje pedido. Es decir
L() = 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

cuya longitud es m ultiplo de 4. Es decir


L() = w 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
)

b. Por lo tanto el lenguaje aceptado por es:


L() = (a
2
(b
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

o si existe un computo cclico de q


0
a
q
0
, pasando por los estados q
1
, q
2
y q
3
un n umero nito de veces. Ademas, el AFD cambia
de un estado q
i
(0 i 2) a un estado q
i+1
o de q
3
a q
0
si y solo si lee el smbolo 1. Asimismo,
entre cada 1 que lea puede procesar tantos os como se quiera. Por lo tanto, w L() si y solo
si |w|
1
es m ultiplo de 4. As:
L() = w

|w|
1
0 mod 4 = 0

(10

10

10

10

Ejemplo 4.2.3. Describa el lenguaje aceptado por el automata sobre el alfabeto = a, b


que se muestra en el diagrama 4.15:
q
0
q
1
q
2
q
3
a
a
b
b
b
a
b
a
Figura 4.15: Ejemplo 4.2.3.
Solucion: Una cadena w es aceptada por si y solo si tiene una cantidad par de as y una
cantidad par de bs. As:
L() = w

|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

; si en cambio el smbolo siguiente es 1 debe devolverse dos estados, ya


que en ese momento se ha computado una cadena de la forma u1011. Con estas condiciones se
verica que el automata de la gura 4.17 acepta el lenguaje.
q
0
q
1
q
2
q
3
0 1
1 0 1
0 0
1
Figura 4.17: Ejemplo 4.2.5.
Ejemplo 4.2.6. Dise ne un AFD que acepte el lenguaje de todas las cadenas binarias que
representan enteros positivos congruentes con cero modulo 5.
Solucion: La idea de un automata que acepte ese lenguaje es que tenga 5 estados principales
q
0
, q
1
, q
2
, q
3
y q
4
donde cada estado q
i
signica que el prejo y de la cadena leda hasta el momento
satisface que y i mod 5. As que necesitamos denir (q
0
, x
1
x
k
) = q
i
si x
1
x
k
i mod 5.
Como ( (q
0
, x) , a) = (q
0
, xa) para toda cadena x y a 0, 1. Supongamos que (q
0
, x) = q
i
y (q
0
, xa) = q
j
, entonces se tiene que:
x i mod 5 xa j mod 5
Como
xa = 2
n
x
n
+ 2
n1
x
n1
+ 2x
1
+ a = 22
n1
x
n
+ 2
n2
x
n1
+ x
1
} + a = 2x + a
36
as
j 2x + a mod 5
2i + a mod 5
Por lo tanto (q
i
, a) = q
j
donde j 2i +a mod 5. As por ejemplo (q
0
, 1) = q
1
y (q
3
, 0) = q
1
. Se
verica que el automata de la gura 4.18 acepta el lenguaje.
q
0
q
1
q
2
q
3
q
4
q
1
0
1
1
0
1
0
1
0
0
1
Figura 4.18: Ejemplo 4.2.6.
4.3. Ejercicios
1. Considere el AFD de la gura 4.19.
a) Determine si las cadenas 001, 010101, 0011101011101 son aceptadas o no por el
automata.
b) Del conjunto de cadenas (01)

, cuales pertenecen a L().


2. Sean n, d Z
+
, considere un AFD
n,d
= (Q, , , q
0
, F) donde Q = q
0
, q
1
, . . . , q
n1
, =
a
0
, a
1
, . . . , a
n1
, (q
i
, a
k
) = q
(d
i
+k) m od n
y F = q
1
.
a) Dibuje el diagrama transicion de
7,2
.
b) Suponga que n = 7, d = 2, a
0
= 0 y a
1
= 1, encuentre (q
3
, 0101) y (q
1
, 11010).
c) Suponga que n = 7, d = 2, a
0
= 0 y a
1
= 1, encuentre todas las cadenas binarias u y
v tales que (q
0
, u) = q
5
y (q
0
, v) = q
6
.
37
q
0
q
1
q
2
q
3
q
4
q
5
0
1
0
11
1
1
0
0
1
0
0
1
Figura 4.19: AFD Ejercicio 1.
d) Demuestre que para todo estado q
j
Q, existe una cadena w

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

Figura 5.1: Diagrama Transicion de un AFN


Un AFN puede tener mas de una forma para procesar una cadena. Si al menos uno de estos
computos naliza en un estado de aceptacion, entonces la cadena es aceptada por el AFN,
por lo tanto el lenguaje aceptado por un automata , denotado por L(), es el conjunto
de todas las cadenas w

tal que termina al menos un procesamiento completo de w


en un estado de aceptacion.
Ejemplo 5.1.2. Sea el automata = (, Q, q
0
, F, ), donde = 0, 1, Q = q
0
, q
1
, q
2
, q
3
, q
4
,
F = q
0
, q
3
y esta denida tabularmente por:
41
0 1
q
0
q
1
q
2

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) se extiende a una funcion

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

de producciones o reglas de re-escritura. Una


produccion (A, w) P de G se denota por A w y se lee A produce w; su signicado
es: la variable A se puede reemplazar (sobre-escribir) por la cadena w. En la produccion
A w, A se denomina la cabeza y w el cuerpo de la produccion.
Las variables se denotan con letras may usculas A, B, C, . . . Los elementos de o smbo-
los terminales se denotan con letras min usculas a, b, c, . . .. Si u, 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 )

y hay una sucesion de derivaciones directas


u
1
G
=u
2
, u
2
G
=u
3
, . . . , u
n1
G
=u
n
47
se dice que u
n
se deriva de u
1
y se escribe u
1

= 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 GIC G = (V, , S, P) se dice regular por la izquierda si


todas las producciones son de la forma
A Bv,
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

, entonces debemos probarla para


toda cadena va con a .
(uva)
R
= a(uv)
R
Def. de inversa de una cadena.
= av
R
u
R
Hipotesis de induccion.
= (va)
R
u
R
Def. de inversa de una cadena.
3. Demostrar que para todo u

, (u
R
)
R
= u.
Solucion: Por induccion sobre |u|. Si |u| = 0, entonces (
R
)
R
=
R
= . Asumamos que se
tiene para toda cadena u

, entonces debemos probarla para toda cadena ua con a .


((ua)
R
)
R
= (au
R
)
R
Def. de inversa de una cadena.
= (u
R
)
R
a Def. de inversa de una cadena.
= ua Hipotesis de induccion.
50
4. Sean x, y, u, v

tales que xy = uv y |x| |u|. Demostrar que existe una cadena


z

tal que u = xz y y = zv.


Solucion:Por hipotesis xy = uv y |x| |u|, entonces x es un prejo de u, por lo tanto
u = xz con z

. As xy = xzv, por lo tanto y = zv.


5. Sean x, y

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

tales que xay = ybx.


Solucion:Supongamos que existen cadenas x, y

tales que xay = ybx. si |x| = |y|,


entonces a = b lo cual es contradictorio. Supongamos que |x| < |y| entonces y = xat, t

y y = t

bx, t

. Luego xat

bx = xatbx, t = t

, as xat = t

bx. Se repite este procedimiento


hasta concluir que ua = bu o au = ub con u

lo cual no puede suceder.


7. Se dene la funcion f

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

son conjugadas si existen cadenas u, v

tales que x = uv
y y = vu. Demuestre que x, y

son conjugadas si y solo si x = f


n
(y) para alg un
entero n 0.
8. Utilice el Principio de Induccion para Cadenas, para demostrar que para todo x

,
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
)

= , 01, 10, 0110, 0101, 1010, 1001, . . ., A

= , 01, 0101, 010101, . . . y B

=
, 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 comienza con a respecto a el inverso.


e) L = w a, b

w naliza con a respecto la concatenacion.


Solucion:
10. Sea 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

Вам также может понравиться