Você está na página 1de 13

LENGUAJES FORMALES Y AUTÓMATAS

CURSO 2006/2007 - BOLETÍN DE EJERCICIOS


Vı́ctor J. Dı́az Madrigal y José Miguel Cañete
Departamento de Lenguajes y Sistemas Informáticos
Universidad de Sevilla

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.

2. Na : Σ∗ → Natural, que cuenta el número de aes que tiene una cadena.

3. vacı́a : Σ∗ → {0, 1}, detecta si una cadena es vacı́a.

4. final : Σ∗ → Σ∗ , que calcula el sufijo de longitud n − 1 de una cadena de longitud n.

5. cola : Σ∗ → Σ∗ , que calcula el último sı́mbolo de una cadena.

6. inicio : Σ∗ → Σ∗ , que calcula el prefijo de longitud n − 1 de una cadena de longitud


n.
Curso 05/06: Ejercicios de LFA 2

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

Sean L1 , L2 y L3 tres lenguajes arbitrarios descritos sobre un cierto alfabeto Σ. Com-


pruebe si la igualdad L1 (L2 ∩ L3 ) = L1 L2 ∩ L1 L3 es o no cierta.

EJERCICIO 2

Sea el lenguaje L = {λ, a}. Calcular Ln en el caso de que n sea 0, 1, 2 y 3. ¿Cuántas


cadenas hay en el lenguaje Ln para un n arbitrario? ¿Cuáles son las cadenas incluidas en
Ln para un n arbitrario?

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

¿ Qué debe cumplir un lenguaje L para que sea cierto L+ = L∗ ?

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 3

EJERCICIO 7

Sea L un lenguaje descrito sobre {a, b} cuyas cadenas no acaban en b y no contienen


la subcadena bb. Encuentre un lenguaje finito L0 sobre {a, b} que cumpla que L = L0∗ .

3. Expresiones Regulares
EJERCICIO 1

Dadas las expresiones regulares E1 = a∗ + b∗ y E2 = ab∗ + ba∗ + b∗ a + (a∗ b)∗

Encuentre una cadena que encaje con E2 pero no con E1

Encuentre una cadena que encaje con E1 pero no con E2

Encuentre una cadena que encaje con E1 y con E2

Encuentre una cadena que no encaje ni con E1 ni con E2

EJERCICIO 2

Encuentre la cadena más corta que no se encuentre en el lenguaje descrito por la


expresión regular b∗ (abb∗ )∗ a∗

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∗

2. a((ab)∗ cb∗ ) ∗ +a(abababcb∗ )∗ a∗

3. aab∗ (ab)∗ + ab∗ + a∗ bba∗

4. aaba∗ + aaaba + aabba∗ + a

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 4

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

3. (a∗ b)∗ + (b∗ a)∗

4. (a + b)∗ a(a + b)∗

EJERCICIO 5

Escriba expresiones regulares para los siguientes lenguajes:

1. Cadenas del alfabeto {a, b} de longitud par.

2. Cadenas del alfabeto {a, b} de longitud impar.

3. Cadenas del alfabeto {a, b} con un número par de aes.

4. Cadenas del alfabeto {a, b} con un número impar de aes.

5. Cadenas del alfabeto {a, b} que no tengan dos aes consecutivas.

6. Cadenas del alfabeto {a, b} que no tengan ni dos aes consecutivas ni dos bes con-
secutivas.

7. Cadenas del alfabeto {a, b} que no tengan tres aes consecutivas.

8. Cadenas del alfabeto {a, b, c} que no contengan la subcadena bc.

9. Cadenas del alfabeto {a, b, c, d} que no contengan la subcadena bc.

10. Cadenas del alfabeto {a, b} con no más de tres aes.

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.

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 5

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.

Intersección E1 ∩ E2 es una expresión regular que representa el lenguaje de todas las


cadenas que encajan en la expresión regular E1 y también en la expresión regular
E2
El hecho de incluir estas nuevas operaciones no amplı́a el poder descriptivo de las
expresiones regulares pero en algunas situaciones puede llegar a sustituir la potencia
expresiva de otros operadores. Apoyándose en los nuevos operadores introducidos describa,
sin usar las operaciones de unión ni de cierre estrella, los siguientes lenguajes sobre el
alfabeto {a, b}:

1. Todas las cadenas que se pueden construir con dicho alfabeto.

2. Cadenas que no contengan dos aes consecutivas.

3. Cadenas que no contengan dos aes consecutivas o dos bes consecutivas

4. Gramáticas Incontextulaes
EJERCICIO 1

Dada la gramática G = ({0, 1, 2}, {S, A}, S, P ) cuyas producciones P son {S →


0A | 2, A → 0S | 1}. Muestre si las cadenas 002 y 001 pertenecen al lenguaje de G.

EJERCICIO 2

Considere la siguiente gramática G = ({0, 1, 2}, {S, A, B}, S, P ) donde P se define


como:
S → 0A | 2
A → A1 | A2
B → 0B | 0

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 6

Justifique de qué forma puede ser simplificada la gramática manteniendo intacto el


lenguaje que genera.

EJERCICIO 3

Describe verbalmente los lenguajes que generan las siguientes gramáticas:

1. S → aSb | ab

2. S → aS | λ

3. S → 0S1 | 0S0 | 1S1 | 1S0 | 0 | 1

4. S → ABC, A → aA | λ, B → bB | λ, C → cC | λ

EJERCICIO 4

Comprueba si alguna de las siguientes gramáticas genera un lenguaje palindrómico:

1. S → aS | Sa | bS | Sb | a | b

2. S → aSa | bSb | λ

3. S → aB | c, B → Sb

EJERCICIO 5

Demuestra que las siguientes gramáticas son ambiguas:

1. S → aSbS | aS | c

2. S → SbS | SaS | c

3. S → aBS | AS | c, B → ab, A → bAa | aAb | a

4. S → AA, A → AAA | bA | Ab | a

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 7

EJERCICIO 6

Dada la siguiente gramática que genera el lenguaje de las expresiones regulares sobre
el alfabeto {a, b, c, d}:

E | E · E | E + E | (E) | E ∗ | a | b | c | d | lambda | vacı́o


1. Obtenga los árboles de derivación de las expresiones d + λ + b y a∅∗∗ y (b + ad)∗ .
Obtén para cada árbol de derivación su correspondiente secuencia de derivaciones
por la izquierda y por la derecha
2. Justifique si la gramática es o no ambigua?. En caso afirmativo, obtenga un gramática
equivalente que no lo sea.

EJERCICIO 7

Escriba gramáticas incontextuales para los siguientes lenguajes:


1. Cadenas del alfabeto {a, b, c, d} que no contengan la subcadena bc.
2. Cadenas del lenguaje an bm .
3. Cadenas del lenguaje an bn .
4. Cadenas del lenguaje an bm con n ≤ m.
5. Cadenas del alfabeto {a, b} con el mismo número de aes y de bes.
6. Cadenas del alfabeto {a, b} con más aes que bes.
7. Cadenas del alfabeto {a, b} con un número par de aes.
8. Cadenas del alfabeto {a, b} que no tengan dos aes consecutivas.
9. Cadenas del alfabeto {a, b} que no tengan dos aes consecutivas ni dos bes consecu-
tivas

EJERCICIO 8

Dadas dos gramáticas incontextuales, G1 y G2 , que comparten el mismo alfabeto de


sı́mbolos terminales y cuyos alfabetos de sı́mbolos no terminales son disjuntos, obtenga
aquella gramática incontextual G que verifica L(G) = L(G1 ) ∪ L(G2 )

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 8

EJERCICIO 9

Dadas dos gramáticas incontextuales, G1 y G2 , que comparten el mismo alfabeto de


sı́mbolos terminales y cuyos alfabetos de sı́mbolos no terminales son disjuntos, obtenga
aquella gramática incontextual G que verifica L(G) = L(G1 )(G2 )

EJERCICIO 10

Dada un gramática incontextual G obtenga aquella gramática incontextual G0 que


cumple L(G0 ) = L(G)∗

5. Autómatas Finitos
EJERCICIO 1

Considere el siguiente autómata:


a b
→ q0 q0 q1
∗q1 q1 q1
∗q2 q1 q2

Justifique de qué forma puede ser simplificado el autómata manteniendo intacto el


lenguaje que acepta.

EJERCICIO 2

Demuestre, apoyándose en el concepto de autómata finito determinista y en las leyes


de Morgan, que:

1. La complementación de un lenguaje regular es un lenguaje regular.

2. La intersección de dos lenguajes regulares es un lenguaje regular

EJERCICIO 3

Construya autómatas finitos deterministas para los siguientes lenguajes regulares:

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 9

1. Cadenas del alfabeto {a, b} que finalicen con b y que no tengan dos bes consecutivas.

2. Cadenas del alfabeto {a, b} que finalicen con la subcadena ba.

3. Cadenas del alfabeto {a, b} que no tengan dos aes consecutivas.

4. Cadenas del alfabeto {a, b} cuya longitud sea múltiplo de cuatro.

5. Cadenas del alfabeto {a, b} con un número par de aes.

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:

Longitud igual a múltiplo de tres.

Comenzar con a y terminar con b

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.

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 10

EJERCICIO 7

Sea un AF M con un solo estado final que reconoce un determinado lenguaje L.


Queremos modificarlo para que acepte el lenguaje La∗ .

Plantea un AFND que demuestre que añadiendo simplemente a M una a-transición


desde el estado final a él mismo no siempre se consigue esto

¿Cómo se podrı́a modificar el autómata para que se consiga reconocer La∗ ?

6. Autómatas de Pila
EJERCICIO 1

Diseña autómatas de pila no deterministas que acepten los siguientes lenguajes:


1. Todos los palı́ndromos que se pueden formar con el alfabeto {a, b}.

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

Construya un APD para el lenguaje ak bm cn+1 bm+n con k, n ≥ 0 y m ≥ 1 con la


condición de que en la pila sólo podrá almacenarse la marca Z0 y los sı́mbolos a, b y c.

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

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 11

EJERCICIO 4

Encontrar un método general que obtenga un AP M 0 a partir de otro AP M de forma


que se cumpla LV (M 0 ) = LF (M ).

EJERCICIO 5

Encontrar un método general que obtenga un AP M 0 a partir de otro AP M de forma


que se cumpla LF (M 0 ) = LV (M ).

7. La jerarquı́a de Chomsky
EJERCICIO 1

Determine a qué clase pertenecen dentro de la jerarquı́a de Chomsky las siguientes


gramáticas:

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

S → abc | aAbc, Ab → bA, Ac → Bbcc, bB → Bb, aB → aa | aaA

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

Considere la siguiente gramática G = ({a}, {A, C, B, D, E, S}, S, P ) cuya produc-


ciones son:

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 12




 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

Considere la siguiente gramática G = ({a, b, c}, {A, B, S}, S, P ) cuya producciones


son:

 S → aBb

P = B → bA | aBb | c
bAb → Bb

¿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

Estudiar las siguientes máquinas de Turing y determinar qué realizan:


M1 0 1 4 M2 0 1 4
→ q0 q1 1D → q0 q0 4D q1 4D
q1 q0 0D q2 4D q1 q1 4D q2 4D
∗q2 ∗q2

EJERCICIO 2

Diseñe máquinas de Turing que acepten los siguientes lenguajes:

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete


Curso 05/06: Ejercicios de LFA 13

1. 01∗ + 10∗

2. 0n 1n con n > 0

3. wcwR con w ∈ {a, b}∗

4. wcw con w ∈ {0, 1}{0, 1}∗

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

Universidad de Sevilla Vı́ctor J. Dı́az y Jose Miguel Cañete

Você também pode gostar