Está en la página 1de 16

Primer ciclo 2018

Lenguajes formales y autómatas

Lenguajes y
gramáticas
formales
Mgtr. Diana Alejandra Gutiérrez
3.
Lenguajes formales
Operaciones y propiedades
Lenguaje (L)
▷ Conjunto de cadenas de algún ∑*,
donde ∑ es un alfabeto.
▷ Las cadenas puede que NO
contengan todos los símbolos de ∑.
▷ Puede contener un número infinito
de cadenas, cada una extraída de un
alfabeto finito.
Lenguaje vacío (∅)
▷ Lenguaje para cualquier alfabeto,
compuesto por ninguna cadena.
▷ ∅ ≠ {ε}
Lenguajes formales
▷ Es cualquier subconjunto de ∑∗ sobre el alfabeto
∑. Por tanto, ∑∗, Ø, y ∑ pueden considerarse
como lenguajes.
▷ Se especifica un lenguaje finito por extensión,
enumerando sus elementos entre llaves.
○ Si ∑ = {a, b, c, ..., z} ⇒ L = {aba, czr, d, f} es un
lenguaje sobre ∑.
▷ Un lenguaje infinito se puede describir por
comprensión.
○ Si Σ={0,1} ⇒
■ L1={x/|x|=4},
■ L2={0n1n/ n>0}
■ L3={x/x no contenga un número par de 0’s }
Unión de lenguajes
▷ Definidos L1 y L2 sobre el mismo alfabeto Σ la
unión de ambos es otro lenguaje, también
definido sobre ese alfabeto, que contiene
todas las palabras de L1 y todas las de L2
(pertenecen a uno o el otro lenguaje).
○ L = L1 ∪ L2 = { x / x ∈ L1 ∨ x ∈ L2 }

▷ Ejemplo:
○ Si L1= {001, 10, 111} y L2 = {λ, 001}
○ L1 ∪ L2 = {λ, 10, 001, 111}
Unión de lenguajes
▷ Propiedades
○ Operación cerrada
■ L1 ∪ L2 está definido sobre el mismo
alfabeto que L1 y L2
○ Asociativa
■ (L1∪L2)∪L3 = L1∪(L2∪L3)
○ Conmutativa
■ L1∪L2=L2∪L1
○ Elemento neutro (Ø)
■ L∪Ø = Ø∪L = L
○ Idempotencia
■ L∪L=L
Concatenación de lenguajes
▷ Definidos L1 y L2 sobre el mismo alfabeto Σ, la
concatenación de ambos estará formada por
todas las palabras obtenidas al concatenar una
palabra cualquiera de L1 con otra de L2.
○ L = L1L2 = { xy / x ∈ L1 ∧ y ∈ L2}.

▷ Ejemplo
○ Si L1 = {001, 10, 111} y L2 = {λ, 001}
○ L1L2 = {001, 10, 111, 001001, 10001,
111001}
Concatenación de lenguajes
▷ Propiedades
○ Operación cerrada
■ L1L2 está definido sobre el mismo
alfabeto que L1 y L2 .
○ Asociativa
■ (L1L2)L3 = L1(L2L3)
○ Elemento neutro (Lλ={λ})
■ LλL = LLλ = L
○ No Conmutativa
■ L1L2 ≠ L2L1
Concatenación de lenguajes
▷ Dados los lenguajes A,B,C sobre un alfabeto
∑, la concatenación de lenguajes es
distributiva con respecto a la unión. Es decir,
se cumple que:
○ A ・ (B ∪ C) = (A ・ B) ∪ (A ・ C)
○ (B ∪ C) ・ A = (B ・ A) ∪ (C ・ A)
Potencia i-esima
▷ Concatenar un lenguaje consigo mismo un
número i de veces. La definición inductiva es:
○ L0 = {λ}
○ Li = L・Li−1, ∀ i > 0

▷ Ejemplo: Si L = {ab, c} está definido sobre el


∑ = {a, b, c}
○ L0 = {λ}
○ L1 = L = {ab, c}
○ L2 = L ・ L1 = {abab, abc, cab, cc}
○ L3 = L ・ L2 = {ababab, ababc, abcab, abcc,
cabab, cabc, ccab, ccc}
Clausuras y reflexión de un
lenguaje
Cierre de Clausura Reflexión (L-1)
Kleene (L*) positiva (L+)
Resultado de Unión de todas Formada por
unir todas las las potencias, las inversas de
potencia de excepto la todas las
dicho lenguaje. potencia cero. palabras de un
lenguaje.
Lenguajes formales - Ejercicios
1. Sea L = {λ, a}. Obtener Ln para n = 0, 1, 2, 3.
a. ¿Cuántos elementos tiene Ln, en general?
b. Describir por comprensión L+.
2. Sean los lenguajes A = {a} y B = {b}. Describir (AB)∗ y (AB)+.
3. Demostrar que la concatenación de lenguajes no es
distributiva respecto de la intersección. Tip: use tres
conjuntos así:
A・ (B∩C) = (A・B)∩(A・C)
4. Sea el alfabeto ∑ = {0, 1} y los lenguajes:
L1 = {w ∈ {0, 1}∗ | ceros(w) es par}
L2 = {w ∈ {0, 1}∗ | w = 01n, n ≥ 0}
a. ¿Qué lenguaje produce la concatenación L1L2?
5. Sean los siguientes lenguajes: L1 = {0,1} y L2 = {0, 11}
¿Tendrán la misma clausura, es decir, L1*= L2*? ¿Por qué?
Lenguajes formales - Ejercicios
Solución ejercicio 1:
▷ L0 = {λ}
▷ L1 = L ・ L0 = {λ, a} ・ {λ} = {λ, a}
▷ L2 = L ・ L1 = {λ, a} ・ {λ, a} = {λ, a, aa}
▷ L3 = L ・ L2 = {λ, a} ・ {λ, a, aa} = {λ, a, aa, aaa}
▷ Para todo n ≥ 0 se tiene que |Ln| = n + 1. Podemos
definir la clausura positiva de L como:
Lenguajes formales - Ejercicios
Solución ejercicio 2:
▷ (AB)∗ = {(ab)n | n ≥ 0} = {λ, ab, abab, ababab, . . .}
▷ (AB)+ = {(ab)n | n > 0} = {ab, abab, ababab, . . .}
Solución ejercicio 3:
▷ No se cumple que para tres lenguajes cualesquiera:
A・ (B∩C) = (A・B)∩(A・C). Se usa un contraejemplo.
○ Sean los lenguajes A = {a, λ}, B = {λ}, C = {a}.
Tenemos que:
■ A ・ (B ∩ C) = {a, λ} ・ ({λ} ∩ {a}) = Ø
■ (A ・ B) ∩ (A ・ C) = {a, λ} ∩ {aa, a} = {a}
○ Se obtienen resultados diferentes y por tanto la
concatenación no es distributiva respecto de la
intersección.
Lenguajes formales - Ejercicios
Solución ejercicio 4:
▷ Sea el alfabeto ∑ = {0, 1} y los lenguajes:
L1 = {w ∈ {0, 1}∗ | ceros(w) es par}
L2 = {w ∈ {0, 1}∗ | w = 01n, n ≥ 0}
▷ Al hacer la concatenación, hagamos algunos
ejemplos de las posibles cadenas resultantes de L1L2:
○ 000001
○ 000111
○ 00000011111111
▷ Se observa que la cantidad de 0 de L1L2 siempre será
impar, independiente del número de 1. Por tanto:
▷ L1L2 = {w ∈ {0, 1}∗ | ceros(w) es impar}
Lenguajes formales - Ejercicios
Solución ejercicio 5:
▷ Las cerraduras de L1 y L2 no son iguales ya que:

L1 = {0,1} L2 = {0,11}

L11 = L1 = {0, 1} L21 = L1 = {0, 11}

L1 2= {00, 01, 10, 11} L2 2= {00, 011, 110, 111}

L1 3= {000, 010, 100, 110, 001, 011, L2 3= {000, 0011, 0110, 1100, 01111,
101, 111} 11011, 11110, 11111}

▷ L1* será el conjunto de todas las cadenas de ceros y unos.


▷ L2* será el conjunto de todas las cadenas de ceros y unos en
las que los unos aparecen en número par.

También podría gustarte