Documentos de Académico
Documentos de Profesional
Documentos de Cultura
La Funcionde Progresion
La Funcionde Progresion
Alfabetos y cadenas
Ejemplo Sea = {a, b} el alfabeto que consta de los dos smbolos a y b. Las
siguientes son cadenas sobre :
aba
ababaaa
aaaab.
Observese que aba 6= aab. El orden de los smbolos en una cadena es significativo
ya que las cadenas se definen como sucesiones, es decir, conjuntos secuencialmente
ordenados.
Ejemplo El alfabeto = {0, 1} se conoce como alfabeto binario. Las cadenas
sobre este alfabeto son secuencias finitas de ceros y unos, llamadas
secuencias binarias, tales como
001
1011
001000001.
Teora de la Computacion
2003-II
Ejemplo
= {, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, abc, baa, . . .}.
En la siguiente tabla aparecen las convenciones de notacion corrientemente utilizadas en la teora de lenguajes formales. De ser necesario, se emplean subndices.
Notaci
on usada en la teora de lenguajes
,
denotan alfabetos.
denota el conjunto de todas las cadenas que se pueden formar con los smbolos del alfabeto .
a, b, c, d, e,. . .
u, v, w, x, y, z, . . .
, , , . . .
Captulo 1
1.2.
Concatenaci
on de cadenas
1.3.
Ejercicio
Teora de la Computacion
1.4.
2003-II
Ejemplo
Ejemplo
|aba| = 3, |baaa| = 4.
Si w , n, m N, demostrar que
|wn+m | = |wn | + |wm |
Solucion:
Caso n, m 1. |wn+m | = | ww
w} | = (n + m)|w|. Por otro lado,
| {z
n+m veces
|w | + |w | = | ww
w} | + | ww
w} | = n|w| + m|w|.
| {z
| {z
n veces
Caso n = 0, m 1. |w
n+m
| = |w
0+m
m veces
1.5.
Reflexi
on o inversa de una cadena
La reflexi
on o inversa de una cadena u se denota uR y se define descriptivamente as:
,
si u = ,
R
u =
an a2 a1 , si u = a1 a2 an .
De la definicion se observa claramente que la reflexion de la reflexion de una
cadena es la misma cadena, es decir,
Ejercicio
(uR )R = u,
para u .
R
R R
Ejercicio Si u, v , demostrar que (uv) = v u . Generalizar esta propie
dad a la concatenaci
on de n cadenas.
Captulo 1
1.6.
Ejemplo
1.7.
Prefijos de u :
Sufijos de u :
b
bc
bcb
bcba
bcbaa
bcbaad
bcbaadb
b
db
adb
aadb
baadb
cbaadb
bcbaadb
Lenguajes
lenguaje vaco.
lenguaje de todas las cadenas sobre .
Teora de la Computacion
2003-II
Ejemplo Los siguientes son ejemplos de lenguajes sobre los alfabetos especifi
cados.
= {a, b, c}. L = {a, aba, aca}.
= {a, b, c}. L = {a, aa, aaa, . . .} = {an : n 1}.
= {a, b, c}. L = {, aa, aba, ab2 a, ab3 a, . . .} = {abn a : n 0} {}.
= {a, b, c, . . . , x, y, z}. L = {u : u aparece en el diccionario espa
nol DRA}.
L es un lenguaje finito.
= {a, b, c}. L = {u : u no contiene el smbolo c}. Por ejemplo,
abbaab L pero abbcaa
/ L.
= {0, 1}. L = conjunto de todas las secuencias binarias que contienen un
n
umero impar de unos.
= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. El conjunto N de los n
umeros naturales se
puede definir como un lenguaje sobre , en la siguiente forma:
N = {u : u = 0 o 0 no es un prefijo de u}.
Captulo 1
El concepto abstracto de lenguaje, tal como se ha definido, no es exactamente la misma nocion utilizada en la expresion lenguaje de programacion. Para precisar la relacion entre estos conceptos, consideremos el
alfabeto de los caracteres ASCII. Un programa en C o en Pascal, por
ejemplo, es simplemente una cadena de smbolos de y, por lo tanto, un
conjunto de programas es un lenguaje (en el sentido formal definido en
esta seccion).
1.8.
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 (es decir A, B ), entonces los siguientes tambien son
lenguajes sobre :
AB
AB
AB
A = A
Union
Interseccion
Diferencia
Complemento
Estas operaciones entre lenguajes se llaman operaciones conjuntistas o booleanas para distinguirlas de las operaciones ling
usticas (concatenacion, potencia,
inverso, clausura) que son extensiones a los lenguajes de las operaciones entre
cadenas.
1.9.
Concatenaci
on de lenguajes
La concatenaci
on de dos lenguajes A y B sobre , notada A B o simplemente
AB se define como
AB = {uv : u A, v B}.
En general AB 6= BA.
Ejemplo
Ejemplo
Teora de la Computacion
2003-II
, es decir A, B, C . Entonces
1. A = A = .
2. A {} = {} A = A.
3. Propiedad Asociativa.
A (B C) = (A B) C.
4. Distributividad de la concatenacion con respecto a la union.
A (B C) = A B A C.
(B C) A = B A C A.
5. Propiedad distributiva generalizada. Si {Bi }iI es una familia cualquiera de
lenguajes sobre , entonces
S
S
A Bi = (A Bi ),
iI
S
iI
Bi A =
iI
(Bi A).
iI
Demostracion:
1. A = {uv : u A, v } = .
2. A {} = {uv : u A, v {}} = {u : u A} = A.
3. Se sigue de la asociatividad de la concatenacion de cadenas.
4. Caso particular de la propiedad general, demostrada a continuacion.
S
S
5. Demostracion de la igualdad A Bi = (A Bi ):
iI
iI
S
Bi x = u v, con u A & v iI Bi
x = u v, con u A & v Bj , para alg
un j I
x A
B
,
para
alg
u
n
j
I
S j
x iI (A Bi ).
S
S
La igualdad
Bi A = (Bi A) se demuestra de forma similar.
xA
iI
iI
iI
Captulo 1
1.10.
Potencias de un lenguaje
1.11.
Ejercicio
10
Teora de la Computacion
2003-II
Ai = A1 A2 A n
i1
A A = A (A0 A1 A2 )
= A1 A2 A3
= A+ .
Captulo 1
11
0
1
2
= A+ A + A+
= {} A+ A+ A+
= A (conjuntos contenidos en A+ )
= A .
+
1
2
3
= A+ A + A+ ,
= A+ (conjuntos contenidos en A+ )
= A+ .
7.
A+
8.
A+
12
Teora de la Computacion
Ejercicio
2003-II
1.12.
Reflexi
on o inverso de un lenguaje
4.
R
= A.
5. (A )R = AR .
R
6. (A+ ) = AR
+
Demostracion:
x (A B)R x = uR ,
1.
x = u ,
donde u A B
donde u = vw, v A, w B
x = (vw)R ,
R R
x = w v ,
R
donde v A, w B
R
x B A .
2.
3.
Ejercicio
Ejercicio
donde v A, w B
Captulo 1
4.
Ejercicio
13
x (A )R x = uR , donde u A
5.
x (AR ) .
6.
Ejercicio
1.13.
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.
Podemos dar una definicion recursiva de los lenguajes regulares. Sea un
alfabeto.
1. , {} y {a}, para cada a , son lenguajes regulares sobre . Estos son
los denominados lenguajes regulares basicos.
2. Si A y B son lenguajes regulares sobre , tambien lo son
AB
AB
A
(union)
(concatenacion)
(estrella de Kleene).
Ejemplos
14
Teora de la Computacion
2003-II
{a} {b} {b} .
1.14.
Expresiones regulares
Las expresiones regulares representan lenguajes regulares y su proposito es simplificar la escritura de los lenguajes regulares.
La siguiente es la definicion recursiva de las expresiones regulares sobre un
alfabeto dado.
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}, a .
2. Si R y S son expresiones regulares sobre , tambien lo son:
(R)(S)
(R S)
(R)
(R)(S) representa la concatenacion de los lenguajes representados por R y
S; (R S) representa su union, 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.
Captulo 1
15
Ejemplo
Ejemplo
Ejemplos
16
Teora de la Computacion
2003-II
Ejemplos
Ejemplos
Ejemplo Sea = {a, b, c}. Encontrar una expresion regular que represente el
lenguaje de todas las cadenas que no contienen la cadena bc.
Solucion: Una b puede estar seguida solamente de otra b o de una a, mientras
que las aes y las ces pueden estar seguidas de cualquier smbolo. Esto se puede
visualizar por medio del siguiente diagrama:
Captulo 1
17
tinuaci
on:
Ejercicios
1. = {0, 1, 2}. Lenguaje de todas las cadenas que comienzan con 2 y terminan con 1.
2. = {a, b, c}. Lenguaje de todas las cadenas que tienen un n
umero par de
smbolos.
3. = {a, b}. Lenguaje de todas las cadenas que tienen un n
umero impar de
smbolos.
4. = {a, b, c}. Lenguaje de todas las cadenas que tienen un n
umero impar
de smbolos.
5. = {a, b}. Lenguaje de todas las cadenas que tienen un n
umero impar de
aes.
6. = {0, 1}. Lenguaje de todas las cadenas que tienen por lo menos un 0 y
por lo menos un 1.
7. = {0, 1}. Lenguaje de todas las cadenas que tienen a lo sumo dos ceros
consecutivos.
8. = {0, 1}. Lenguaje de todas las cadenas cuyo quinto smbolo, de izquierda
a derecha, es un 1.
9. = {0, 1}. Lenguaje de todas las cadenas de longitud par 2 formadas
por ceros y unos alternados.
10. = {0, 1}. Lenguaje de todas las cadenas cuya longitud es 4.
18
Teora de la Computacion
2003-II
11. = {0, 1}. Lenguaje de todas las cadenas de longitud impar que tienen
unos u
nicamente en las posiciones impares.
12. = {a, b}. Lenguaje de todas las cadenas que tienen la cadena ab un
n
umero par de veces.
13. = {a, b}. Lenguaje de todas las cadenas que tienen un n
umero par de aes
o un n
umero impar de bes.
14. = {0, 1}. Lenguaje de todas las cadenas cuya longitud es un m
ultiplo de
tres.
15. = {0, 1, 2}. Lenguaje de todas las cadenas que no contienen dos unos
consecutivos.
No todos los lenguajes sobre un alfabeto dado son regulares. Mas
adelante se mostrara que el lenguaje
L = {, ab, aabb, aaabbb, . . . } = {an bn : n 0}
sobre = {a, b} no se puede representar por medio de una expresion
regular, y por lo tanto, no es un lenguaje regular.