Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejemplos
1.3 Cadena
Se define una cadena como una secuencia finita de símbolos de un determinado alfabeto,
también se conoce como palabra sobre dicho alfabeto.
Ejemplos
Si ∑ = { a , b }
s = ‘ bbaa’
t = ‘ ababab’
Si ∑ = { 0 , 1 }
m = ‘ 01011’
h = ‘ 1001’
Ejemplo
Para el alfabeto español Σ = {A, B, C, . . . , Z}
s = 'HOLA'
x = 'AZATTX'
λ = ''
1.4 Longitud
Si w es una cadena sobre cualquier alfabeto, su longitud se denota mediante el símbolo |w| (Se
lee longitud de w o módulo de w o cardinal de w).
Ejemplo
Sea ∑ = {a, p, t, u}
1.5 Construcción de Σ*
Sea Σ un alfabeto.
Para cada n entero no negativo, sea Σn el conjunto de todas las cadenas s sobre Σ, tal que |s| = n.
Ejemplos
Si Σ = {a, b, c }
Por lo tanto:
Σ0 = { λ }
Σ1 = Σ
Σ0 U Σ1 U Σ2 U ••• U Σn = Conjunto de cadenas sobre Σ de longitud mayor o igual a 0 y menor o
igual que n.
Conjunto de cadenas sobre Σ de longitud mayor o igual a 0 y menor o igual que n.
Es necesario tener en cuenta que el lenguaje compuesto por todas las cadenas sobre el alfabeto
Σ se conoce como cerradura de Σ o lenguaje universal sobre Σ y se denota por Σ*.
Para cualquier alfabeto, Σ* es infinito (ya que los alfabetos son no vacíos).
Ejemplos
1.6 Concatenación
Sea Σ un alfabeto.
Ejemplo
Sea Σ = { a, b, c, . . . , z}
x + y = 'bananarama'
y + x = 'ramabanana'
En general:
1. w + x ≠ x + y ( es decir la concatenación no es conmutativa)
2. No se pueden concatenar dos palabras de distinto alfabeto.
w + x = z
+: Σ* x Σ* --> Σ*
Es asociativa
w + ( x + z ) = ( w + x ) + z
w + λ = w
λ + w = w
"Sea P[s] un predicado en Σ*. P[s] es válido en todo Σ* sí y sólo sí es posible probar que:
1. P[λ] es verdadero
2. Si P[w] es verdadero (Hipótesis Inductiva), entonces P[ w+a ] (ó P[ a+w ]) es
verdadero", donde (w ∈∈ Σ*, a ∈∈ Σ)
Teorema de Kleene
Ejemplos
Realmente el teorema de Kleene afirma que hacer inducción sobre Σ*, es hacer inducción sobre
la longitud de las cadenas de Σ*.
Hacer:
Ejemplo
Demostración
P[y] = “|y+v|=|y|+|v|”
Justificaciones
Invertir por definición w = ‘abc’
= ‘c’ + (‘ab’)’
= ‘c’ + (‘a’+’b’)’
= 'cba'
Demostrar que:
Demostración
1. Probemos P[λ]
por tanto P[u] es válida para todo Σ*
Probar que:
Demostración
1. Probemos P[λ]
Justificaciones
Cadena inversa
= ‘c’ + (‘ab’)’
= ‘c’ + (‘a’+’b’)’
= 'cba'
Demostrar que:
P[u] = "|u| = |u'|", u ∈∈ Σ*
es válido en todo Σ*
Demostración
1. Probemos P[λ]
Probar que:
Demostración
1. Probemos P[λ]
Potencias en cadenas
x0 = λ
x1 = x
x2 = x + x
.
.
.
xn = x + xn-1, n>1
En otras palabras
xn = x + x + x + . . . + x
n - veces
Ejemplos
Sea s = 'aba'
s = 'aba'
s0 = λ
s1 = 'aba'
s2 = 'abaaba'
s3 = 'abaabaaba'
.
.
.
Prefijo
u + w = x
Ejemplo
Sufijo
Se dice que u es sufijo de x (u suf x ), si y solo si, existe ∃∃ w ∈∈ Σ*, tal que:
w + u = x
Ejemplo
Subpalabra
Se dice que u es subpalabra de x (u sub x ), si y solo si, existe ∃∃ w, z ∈∈ Σ*, tal que:
w + u + z = x
Ejemplo
Lema
Sea x ∈∈ Σ*.
1. x pref x
2. x suf x
3. x sub x
Demostración
Demostración
Demostración
Ejemplos
Demostración
Demostración
y + z = (x + w) + z Aplicando asociación
y + z = x + (w + z)
2 Lenguajes
2.1 Lenguaje
Lenguaje
Sea Σ un alfabeto. Se dice que L es un lenguaje sobre el alfabeto Σ si L es un
subconjunto de Σ*.
Nótese que los conjuntos { λ } y ∅ (conjunto vacío) son lenguajes con cualquier alfabeto,
además de que Σ* también es un lenguaje.
Obsérvese que si Σ es un alfabeto, también es un lenguaje (el formado por todas las cadenas
con un único símbolo).
Los lenguajes pueden ser bastantes grandes, como es el caso de todas las palabras inglesas
“correctas” o el lenguaje {1, 11, 111, 1111, 11111, ...} formado por todas las cadenas
finitas de unos. Obsérvese que este lenguaje es infinito (aunque cada cadena del mismo
tenga longitud finita).
Cuando un lenguaje tiene un tamaño muy grande es difícil especificar que palabras le
pertenecen.
Por tanto,
121 ∈ {1,12,121,1212,12121}
Es necesario tener en cuenta el lenguaje compuesto por todas las cadenas sobre el alfabeto
Σ. Se conoce como cerradura de Σ o lenguaje universal sobre Σ y se denota por Σ*.
Para cualquier alfabeto, Σ* es infinito (ya que los alfabetos son no vacíos).
Ejemplo
Por lo tanto, debido a que un lenguaje es un conjunto, entonces todas las siguientes
definiciones, teoremas y proposiciones de la teoría de conjuntos se aplican sobre ellos.
Unión
Intersección
Diferencia
Complemento
Inclusión o subconjunto
Igualdad
1. A ⊆ B
2. B ⊆ A
Concatenación
Ejemplo
B = { 'bb', 'a' }
En general:
A + B ≠ B + A
Ejercicio
del hecho de que z ∈ A ∩ B, se deriva por definición de intersección, z ∈ A y z ∈ B, por lo
tanto z ∈ A, luego se tiene que:
Lo que muestra que, por definición de concatenación entre lenguajes, x ∈ (A + A).
Lenguaje inverso
Ejemplo
Demostración
Por lo tanto:
Sea x ∈∈ (A U B)', por definición de lenguaje inverso, x' ∈∈ A U B, luego por definición de
unión, x' ∈∈ A o x' ∈∈ B, aplicando nuevamente la definición de lenguaje inverso, x ∈∈ A' o
x ∈∈ B', finalmente por definición de unión, x ∈∈ (A' U B').
Sea x ∈∈ A' U B', por definición de unión, x ∈∈ A' ó x ∈∈ B', luego por definición de
lenguaje inverso, x' ∈∈ A ó x' ∈∈ B, aplicando ahora la definición de unión, x' ∈∈ A U B,
finalmente por definición de lenguaje inverso, x ∈∈ (A U B)'.
Demostración
x' ∈ A + B, luego por definición de concatenación entre lenguajes ∃ w, z ∈ Σ* tal que:
x' = w + z, donde, w ∈∈ A y z ∈∈ B ,luego a esta última igualdad aplicamos cadena
inversa,
x ∈ B' + A'.
Sea x ∈∈ B' + A', aplicando definición de concatenación entre lenguajes ∃∃ w, z ∈∈ Σ* tal
que:,
x' = (w + z)', donde, w ∈∈ B' y z ∈∈ A' ,luego aplicamos propiedad (u + v)' = v' + u'
x' = z' + u', donde, z' ∈∈ A y w' ∈∈ B, lo cual muestra por definición de concatenación entre
lenguajes que,
x ∈∈ (A + B)'.
Potencias en lenguajes
Al igual que en las cadenas, se definen potencias en los lenguajes para la operación de
concatenación entre lenguajes.
Sea L ⊆⊆ Σ*.
Se define:
Es decir:
L0 = { λ }
L1 = L
L2 = L + L
L3 = L + L + L
.
.
.
Ejemplo
se obtiene:
A0 = { λ }
A3 = A + A2 = { 'ababab', 'ababcd', 'abcdab', 'abcdcd', 'cdabab', 'cdabcd', 'cdcdab', 'cdcdcd' }
Sea L un lenguaje sobre Σ, se define la cerradura de Kleene o cerradura de estrella del lenguaje
L como:
Nota.-
Cerradura positiva
Ejemplo
Proposición:
∅∅* = { λ }
Demostración
∅∅ = { λ }
0
∅∅ = ∅∅
1
∅∅ = ∅∅ + ∅∅ = ∅∅
2
∅∅ = ∅∅ + ∅∅ = ∅∅
3 2
.
.
.
∅∅ = { λ } ∪∪ ∅∅ ∪∪ ∅∅ ∪∪ ∅∅ ∪∪ . . .
*
∴∴ ∅∅* = { λ }
Proposición
L + ∅∅ = ∅∅
Demostración
Sea w ∈∈ L*, entonces existen: x1, x2, x3, . . ., xn ∈∈ L, tal que:
El teorema dice que si una cadena w ∈∈ L*, entonces dicha cadena es el resultado de una
concatenación finita de cadenas( elementos) de L.
Lema
Sea L ⊆⊆ Σ*, luego L ⊆⊆ L*
Demostrar que:
(L*)' = (L')*
Demostración
i) Probar que (L*)' ⊆⊆ (L')*
Sea w ∈∈ (L*)', por definición de lenguaje inverso, w' ∈∈ L*, luego por teorema de
Kleene, ∃∃ x1, x2, x3, . . ., xn ∈∈ L, tal que:
(w')' = (x1 + x2 + x3 + . . . + xn)', donde xi ∈∈ L, posteriormente luego de aplicar las
propiedades de idempotencia en la inversa y la propiedad ( u + v )' = v' + u' se tiene que:
∴∴ (L*)' ⊆⊆ (L')*
Sea w ∈∈ (L')*, por teorema de Kleene, ∃∃ x1, x2, x3, . . ., xn ∈∈ L', tal que:
w' = (x1 + x2 + x3 + . . . + xn)', donde xi ∈∈ L', posteriormente luego de aplicar la propiedad
( u + v )' = v' + u' se tiene que:
w' = x'n + . . . + x'3 + x'2 + x'1, donde x'i ∈∈ L
luego nuevamente por el teorema de Kleene(se ve que w' es una concatenación finita de
elementos de L), se tiene que, w' ∈∈ L*, finalmente por definición de lenguaje inverso,
w ∈∈ (L*)'.
∴∴ (L')* ⊆⊆ (L*)'