Ejercicios - Repaso - Temas 1-5

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

Grado de Ingeniería Informática Teoría de la Computación

Ejercicios de repaso: temas 1-5

Ejercicio 1

Dada una gramática para el siguiente lenguaje:

𝐿 = {𝑎2𝑚 𝑏 𝑛 𝑐 𝑚 |𝑛 > 0, 𝑚 > 0, 𝑚 impar}


Demuestra que la gramática realmente genera L.

Solución ejercicio 1

Una gramática que genera el lenguaje del enunciado es la siguiente:

Procedemos a demostrar que 𝐿(𝐺) = 𝐿.

• 𝐿(𝐺) ⊆ 𝐿
Cualquier palabra generada por esta gramática tendrá que aplicar una vez la regla 𝑆 → 𝑎𝑎𝑇𝑐 y
a continuación una serie, 𝑖 ≥ 0, de veces la regla 𝑇 → 𝑎𝑎𝑎𝑎𝑇𝑐𝑐 posteriormente se puede aplicar
una cierta cantidad, 𝑗 ≥ 0, de veces la regla 𝐹 → 𝐹𝑏 y finalmente una sola vez la regla 𝐹 → 𝑏
que eliminará todas las variables.

Entonces, las palabras generadas por esta gramática tendrán la forma 𝑎4𝑖+2 𝑏 𝑗+1 𝑐 2𝑖+1 . Ahora,
comprobamos si estas palabras pueden ser de L o no. Si son se L, resulta que:

Por lo tanto, se tiene que cumplir que:

Y también se tiene que cumplir que 2𝑖 + 1 debe ser impar. Eso es cierto ∀𝑖 ≥ 0 que es el número
de veces que se aplica la regla 𝑇 → 𝑎𝑎𝑎𝑎𝑇𝑐𝑐. Por lo tanto, parece aceptable que 2𝑖 + 1 = 𝑚,
por lo tanto, 2(2𝑖 + 1) = 4𝑖 + 2 = 2𝑚.

De esta forma, solo queda comprobar si 𝑗 + 1 puede ser un valor válido para representar el
número de b de la palabra. La restricción es que sea estrictamente un valor mayor que 0, y
seguro que ya lo es, ya que 𝑗 ≥ 0 es el número de veces que se aplica la regla 𝐹 → 𝐹𝑏 y si 𝑗 ≥ 0,
entonces 𝑗 + 1 > 0.
Grado de Ingeniería Informática Teoría de la Computación

Entonces, las palabras generadas por la gramática cumplen con todas las condiciones para ser
de L, y por lo tanto 𝐿(𝐺) ⊆ 𝐿.

• 𝐿 ⊆ 𝐿(𝐺)

Todas las palabras de L son de la forma 𝑎2𝑚 𝑏 𝑛 𝑐 𝑚 siendo n>0, es decir, al menos hay una b, y
siendo m>0 e impar, por lo tanto el número de c será 1, 3, 5, 7,… y el correspondiente número
de a será 2, 6, 10, 14,…

Si n>0 significa que se puede expresar 𝑛 = 𝑗 + 1 > 0 ∀𝑗 ≥ 0. Por otro lado, si m es impar,
entonces se puede expresar como 𝑚 = 2𝑖 + 1 > 0 ∀𝑖 ≥ 0. Entonces:

Que es la forma que tienen las palabras generadas por la gramática. Por lo tanto, 𝐿 ⊆ 𝐿(𝐺).

Como 𝐿(𝐺) ⊆ 𝐿 y 𝐿 ⊆ 𝐿(𝐺), queda demostrado que 𝐿 = 𝐿(𝐺).

Ejercicio 2

Proporcionar una gramática para el siguiente lenguaje definido sobre Σ = {𝑎, 𝑏, 𝑐, 𝑑}:

𝐿 = {𝑎𝑚 𝑏 𝑛 𝑐 𝑝 𝑑 𝑞 |𝑚 + 𝑛 = 𝑝 + 𝑞}
Demuestra que la gramática realmente genera L.

Solución ejercicio 2

Una posible solución completa al ejercicio es la gramática siguiente:

𝑆 → 𝑎𝑆𝑑 | 𝑆1 |𝑆3
𝑆1 → 𝑎𝑆1 𝑐 | 𝑆2
𝑆2 → 𝑏𝑆2 𝑐 | 𝜆
𝑆3 → 𝑏𝑆3 𝑑 | 𝑆2
Una vez definida la gramática, falta demostrar que 𝐿(𝐺) = 𝐿.

𝑳(𝑮) ⊆ 𝑳
Las palabras generadas por 𝐿(𝐺) son las producidas a partir de la aplicación sucesiva de las
producciones. En primer lugar, se aplica una cierta cantidad, 𝑥1 , de veces la regla 𝑆 → 𝑎𝑆𝑑 i a
continuación o bien se aplica otra cantidad, 𝑥2 , a veces la regla 𝑆1 → 𝑎𝑆1 𝑐 o bien una cantidad
𝑥4 de veces la regla 𝑆3 → 𝑏𝑆3 𝑑, siendo 𝑥1 ≥ 0 i 𝑥4 ≥ 0. Después, tanto en un caso como en
otro, se aplica una serie de veces la regla 𝑆2 → 𝑏𝑆2 𝑐 (𝑥3 i 𝑥5 veces respectivamente) i finalmente
se aplica la regla 𝑆2 → 𝜆, de forma que la palabra queda construida:
Grado de Ingeniería Informática Teoría de la Computación

En el primer caso la palabra generada es de la forma: 𝑎 𝑥1 +𝑥2 𝑏 𝑥3 𝑐 𝑥3 +𝑥2 𝑑 𝑥1 i evidentemente,


𝑥1 + 𝑥2 + 𝑥3 = 𝑥3 + 𝑥2 + 𝑥1 . Lo mismo podemos decir para el segundo caso, las palabras son
de la forma 𝑎 𝑥1 𝑏 𝑥4+𝑥5 𝑐 𝑥5 +𝑥4 𝑑 𝑥1 y 𝑥1 + 𝑥4 + 𝑥5 = 𝑥5 + 𝑥4 + 𝑥1 .

Por lo tanto, las palabras generadas por 𝐿(𝐺) son de L y en consecuencia 𝐿(𝐺) ⊆ 𝐿.

𝑳 ⊆ 𝑳(𝑮)
Partiendo de una palabra 𝑤 ∈ 𝐿, y que por lo tanto tiene igual número de a y b que de c y d, se
tiene que comprobar si esta palabra puede ser generada a partir de G. Para ello, se tienen que
encontrar una combinación de producciones que genere la palabra.

Esta gramática necesariamente utiliza una cierta cantidad de veces, 𝑥1 ≥ 0, la producción


𝑆 → 𝑎𝑆𝑑 y a continuación se tiene que optar por escoger la producción 𝑆 → 𝑆1 o la producción
𝑆 → 𝑆3 .

• Siguiendo la producción 𝑆 → 𝑆1 → la producción 𝑆1 → 𝑎𝑆1 𝑐 se aplica 𝑥2 veces y después


se aplica la producción 𝑆2 → 𝑏𝑆2 𝑐 un total de 𝑥3 veces, es decir:

Entonces, tenemos que comprobar:

𝑥1 + 𝑥2 = 𝑚
𝑥3 = 𝑛
𝑥3 + 𝑥2 = 𝑝
𝑥1 = 𝑞
Por lo tanto, como 𝑤 ∈ 𝐿, entonces 𝑚 ≥ 0, 𝑛 ≥ 0, 𝑝 ≥ 0 y 𝑞 ≥ 0:

𝑞 ≥ 0 → 𝑥1 ≥ 0
𝑛 ≥ 0 → 𝑥3 ≥ 0
𝑥2 = 𝑚 − 𝑞
𝑥2 + 𝑥3 = 𝑝 → 𝑥2 = 𝑝 − 𝑛
𝑚 − 𝑞 = 𝑝 − 𝑛 ≥ 0 ⇔ 𝑚 ≥ 𝑞 AND 𝑝 ≥ 𝑛
Por lo tanto, esta manera de construir la palabra es correcta si el número de a es mayor o igual
al número de d y el número de c es mayor que el número de b (los casos se dan a la vez, debido
a que 𝑚 + 𝑛 = 𝑝 + 𝑞 ya que 𝑤 ∈ 𝐿).

• Siguiendo la producción 𝑆 → 𝑆3 → En este otro caso, la producción 𝑆3 → 𝑏𝑆3 𝑑 se aplica


𝑥4 veces y después se aplica la producción 𝑆2 → 𝑏𝑆2 𝑐 un total de 𝑥5 veces, es decir:

Entonces, tenemos que comprobar que:


𝑥1 = 𝑚
𝑥4 + 𝑥5 = 𝑛
𝑥5 = 𝑝
𝑥4 + 𝑥1 = 𝑞
Por lo tanto, como 𝑤 ∈ 𝐿, entonces 𝑚 ≥ 0, 𝑛 ≥ 0, 𝑝 ≥ 0 y 𝑞 ≥ 0:
Grado de Ingeniería Informática Teoría de la Computación

𝑚 ≥ 0 → 𝑥1 ≥ 0
𝑝 ≥ 0 → 𝑥5 ≥ 0
𝑥4 = 𝑛 − 𝑝
𝑥4 + 𝑥5 = 𝑞 → 𝑥4 = 𝑞 − 𝑚
𝑛 − 𝑝 = 𝑞 − 𝑚 ≥ 0 → 𝑛 ≥ 𝑝 𝐴𝑁𝐷 𝑞 ≥ 𝑚
Como podemos observar es el caso complementario a la otra opción, por tanto, es la
manera de construir la palabra en el caso en que el número de b sea mayor o igual al de
c y el número de d sea mayor o igual al de a.

Según sea la cantidad de a, de b, de c y de d de la palabra 𝑤 ∈ 𝐿 se tendrá que escoger una de


las dos opciones. Sim embargo, siempre habrá una forma de obtener 𝑤 con G. Por lo tanto, 𝐿 ⊆
𝐿(𝐺).

Como 𝐿 ⊆ 𝐿(𝐺) y 𝐿(𝐺) ⊆ 𝐿, queda demostrado que 𝐿 = 𝐿(𝐺).

Ejercicio 3

Proporcionar un autómata finito determinista para la expresión regular (𝑎∗ + 𝑏 ∗ )𝑐 ∗ definida


sobre Σ = {𝑎, 𝑏, 𝑐}. Detalla las operaciones que realices para generar dicho autómata.

Solución ejercicio 3

Ejercicio 4

Dados los lenguajes 𝐿1 = {𝑎𝑛 𝑏𝑏 | 𝑛 ≥ 0} i 𝐿2 = {𝑏𝑎2𝑖 𝑏 2𝑗+1 | 𝑖, 𝑗 ≥ 0}, calcula cual es:

Solución ejercicio 4. En los apartados b y c, hacer uso de los autómatas del apartado a.

a. El autómata finito que reconoce 𝐿1 𝐿2

𝐿1 𝐿2
Grado de Ingeniería Informática Teoría de la Computación

𝐿1 𝐿2

b. El autómata finito determinista que reconoce 𝐿1 ∩ 𝐿2


c. El autómata finito que reconoce 𝐿𝑡1 𝐿𝑐2

Ejercicio 5

Indica cuál es el lenguaje aceptado por el autómata finito 𝐴 = {𝑄, Σ, 𝛿, 𝐼, 𝐹) siendo:

𝑄 = {𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 } 𝛿 𝑎 𝑏 𝑐
Σ = {𝑎, 𝑏, 𝑐} 𝑞0 𝑞1 ∅ ∅
𝐼 = {𝑞0} 𝑞1 ∅ 𝑞2 𝑞1
𝐹 = {𝑞1 , 𝑞3 } 𝑞2 𝑞2 ∅ 𝑞3
𝑞3 ∅ ∅ 𝑞3

Proporciona un AFD equivalente.

Solución ejercicio 5

Ejercicio 6

Proporciona una gramática que genere expresiones aritméticas con los operadores +, -, * y / de
forma que los operadores * y / tiene preferencia sobre los operadores + y -, y que sea de forma
que haya una asociatividad:

- Hacia la izquierda por + y –


- Hacia la derecha por * y /

Modifica la gramática que permita hacer un cambio de signo.


Grado de Ingeniería Informática Teoría de la Computación

Ejercicio 7

Proporciona una gramática que permita generar los siguientes números:

1. En base 10, por ejemplo “10”

2. En base 16. Los valores en base 16 comienzan por “0x” o bien por “0X”, por ejemplo
“0x10” (vale 16)

3. En base 2, los valores en base 2 comienzan por “0b” o bien por “0B”, por ejemplo “0b10”
(vale 2)

4. En base 8, los valores en base 8 empiezan por 0, por ejemplo “010” (vale 8)
Grado de Ingeniería Informática Teoría de la Computación

5. Una combinación de todas las posibilidades, es decir, que se pueda expresar el nombre
en cualquier base

Ejercicio 8

Considera el siguiente AFD del diagrama de transición siguiente:

1. Decir cuáles son los alfabetos de entrada, el conjunto de estados, estado inicial, estados
finales y función de transición.
2. Describe el lenguaje aceptado por este autómata.

Ejercicio 9

Diseña un AFD que acepte el lenguaje 𝐿 ⊆ {0,1}∗ formado por las representaciones binarias de
números naturales múltiples de 3 (incluidos numerales que empiecen por 0).

Ejercicio 10

Construir la intersección de los dos autómatas siguientes. Seguidamente, construye el AFD


asociado.

Repite la construcción a partir de los AFD individuales.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy