Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Cadenas
EJERCICIO 1
La operación reversa aplicada sobre una cadena v, denotada por v R , calcula la cadena
inversa de v. Es decir, aquella que contiene los mismos sı́mbolos que v pero en orden
inverso. Podemos aprovechar la secuencialidad de los sı́mbolos de una cadena para definir
operaciones de manera inductiva. Por ejemplo, dado el alfabeto Σ = {a, b} la operación
reversa : Σ∗ → Σ∗
se puede definir de la siguiente forma:
reversa(λ) = λ
reversa(aw) = reversa(w)a
reversa(bw) = reversa(w)b
Como se ve hay un caso base sobre la cadena vacı́a, y tantos casos generales como
sı́mbolos tenga el alfabeto, que se describen con el patrón cw, donde w es cualquier cadena
perteneciente a Σ∗ . Haciendo uso de este esquema, defina las siguientes operaciones sobre
cadenas del alfabeto Σ = {a, b}:
1. longitud : Σ∗ → Natural, que cuenta el número de sı́mbolos que tiene una cadena.
7. palı́ndroma : Σ∗ → {0, 1}, que detecta si una cadena es palı́ndroma o no (es decir,
si se cumple v = v R ).
2. Lenguajes
EJERCICIO 1
EJERCICIO 2
EJERCICIO 3
Sean los lenguajes L1 = {λ, ab} y L2 = {cd}. Dado un n arbitrario ¿cuántas cadenas
hay en Ln1 L2 ?.
EJERCICIO 4
Encuentre dos lenguajes L1 y L2 descritos sobre {a, b} tales que (L1 ∪ L2 )∗ 6= L∗1 ∪ L∗2 .
EJERCICIO 5
Encuentre dos lenguajes disjuntos L1 y L2 descritos sobre {a, b} tales que que (L1 ∪
L2 ) = L∗1 ∪ L∗2 .
∗
EJERCICIO 6
EJERCICIO 7
3. Expresiones Regulares
EJERCICIO 1
EJERCICIO 2
EJERCICIO 3
Se dice que una expresión regular es ambigua si una misma cadena puede ser obtenida
de dos formas distintas a partir de ella. Determine cuál de las siguientes expresiones son
ambiguas:
1. a∗ bb∗ + b∗ bc∗
EJERCICIO 4
Escribe expresiones regulares equivalentes a las siguientes lo más simplificadas que sea
posible:
1. ∅∗ + a∗ + b∗ + (a + b)∗
2. ((a∗ b∗ )∗ (b∗ a∗ )∗ )∗
EJERCICIO 5
6. Cadenas del alfabeto {a, b} que no tengan ni dos aes consecutivas ni dos bes con-
secutivas.
11. Cadenas del alfabeto {a, b} con exactamente una sola ocurrencia de la subcadena
aaa.
12. Todas las posibles formas de escribir la cadena reservada M ODU LO con letras
mayúsculas o minúsculas.
EJERCICIO 6
Las expresiones regulares clásicas se definen mediante las operaciones unión, concate-
nación y clausura. Sin embargo, es posible añadir nuevas operaciones como por ejemplo
las siguientes:
Complementario ¬E es una expresión regular que representa el lenguaje de todas las
cadenas que no forman parte del lenguaje descrito por la expresión regular E.
4. Gramáticas Incontextulaes
EJERCICIO 1
EJERCICIO 2
EJERCICIO 3
1. S → aSb | ab
2. S → aS | λ
4. S → ABC, A → aA | λ, B → bB | λ, C → cC | λ
EJERCICIO 4
1. S → aS | Sa | bS | Sb | a | b
2. S → aSa | bSb | λ
3. S → aB | c, B → Sb
EJERCICIO 5
1. S → aSbS | aS | c
2. S → SbS | SaS | c
4. S → AA, A → AAA | bA | Ab | a
EJERCICIO 6
Dada la siguiente gramática que genera el lenguaje de las expresiones regulares sobre
el alfabeto {a, b, c, d}:
EJERCICIO 7
EJERCICIO 8
EJERCICIO 9
EJERCICIO 10
5. Autómatas Finitos
EJERCICIO 1
EJERCICIO 2
EJERCICIO 3
1. Cadenas del alfabeto {a, b} que finalicen con b y que no tengan dos bes consecutivas.
6. Cadenas del alfabeto {a, b} con un número par de aes y un número impar de bes.
7. Cadenas del alfabeto {a, b} en las que cada instancia del sı́mbolo a está precedida
y seguida de al menos una instancia del sı́mbolo b.
8. Cadenas del alfabeto {a, b} que tienen como subcadena la cadena abab.
EJERCICIO 4
Dadas las parejas de autómatas finitos de la figura, justifique que parejas de autómatas
reconocen exactamente el mismo lenguaje.
EJERCICIO 5
Escribe un AFD que acepte el lenguaje de todas aquellas cadenas que cumplen si-
multáneamente las siguientes dos condiciones:
EJERCICIO 6
Construye un autómata finito no determinista que acepte todas aquellas cadenas del
alfabeto {a, b} que contengan la subcadena ababa, o contengan la subcadena bbbb.
EJERCICIO 7
6. Autómatas de Pila
EJERCICIO 1
2. Todos los palı́ndromos de longitud impar que se pueden formar con el alfabeto {a, b}.
3. Todos los palı́ndromos de longitud par que se pueden formar con el alfabeto {a, b}.
4. {x | N a(x) = N b(x)}
5. {aN b2N | N ≥ 0}
6. {aN bN +M aM | N, M ≥ 0}
EJERCICIO 2
EJERCICIO 3
Sean M1 y M2 son dos autómatas de pila que aceptan los lenguajes L1 y L2 , respectiva-
mente. Describe un procedimiento para construir un AP que acepte los lenguajes L1 ∪ L2 ,
L1 L2 y L∗1
EJERCICIO 4
EJERCICIO 5
7. La jerarquı́a de Chomsky
EJERCICIO 1
S → Aa | bA | a | b, A → Aa | a
S → aA | bB | c, A → aB, B → bA | λ
S → aA | bB | λ, A → aB | a, B → bA | b
S → Ba | a, Sa → Bb, Sb → λ, B → bS | BB | b
EJERCICIO 2
Considere el lenguaje L = {ab, aab, abab}. Diseñe una gramática para generar L te-
niendo en cuenta que su tipo debe ser el más restrictivo posible dentro de la jerarquı́a de
Chomsky.
EJERCICIO 3
S → ACaB
Ca → aaC
CB → DB | E
P = aD → Da
AD → AC
aE → Ea
AE → λ
¿Qué lenguaje genera y a qué clase pertenece? ¿Cómo procede la gramática para
reconocer las cadenas que genera?
EJERCICIO 4
¿Qué lenguaje genera y a qué clase pertenece? ¿Cómo procede la gramática para
reconocer las cadenas que genera?
8. Máquinas de Turing
EJERCICIO 1
EJERCICIO 2
1. 01∗ + 10∗
2. 0n 1n con n > 0
EJERCICIO 3
Demostrar que todo autómata finito M puede ser transformado en una máquina de
Turing M 0 tal que L(M ) = L(M 0 ). Aplicar la transformación propuesta al siguiente
autómata:
a b
→ ∗q0 q1 q1
q1 q0 q0