Está en la página 1de 5

Prueba de evaluación continua

Autómatas, Gramáticas y Lenguajes


2023-2024
Introducción
El objetivo de esta prueba de evaluación es realizar una serie de ejercicios
prácticos que permita al estudiante afianzar los conceptos de la asignatura
definiendo desde cero autómatas finitos y a pila y respondiendo a las cuestiones
prácticas que se plantean.
Para cada ejercicio de la práctica habrá varios apartados. En todos se pedirá
un autómata que se definirá utilizando el programa JFLAP y unas cuestiones
adicionales. El autómata de cada ejercicio se evaluará con una batería de ejemplos
de entrenamiento. Si el autómata cumple con los requisitos del enunciado, la
nota del apartado correspondiente se obtendrá en función de los ejemplos bien
clasificados por el autómata.
Esta prueba de evaluación continua tiene una ponderación del 20 % en la
calificación definitiva de la asignatura. Así, sumará un máximo de 2 puntos a
la nota final siempre que se obtenga una nota superior o igual a 5 puntos en el
examen presencial.

Intrucciones
La práctica sólo podrá entregarse a través del curso virtual. La entrega será
un archivo comprimido en formato *.zip, nombrado de la siguiente manera:
“Apellido1Apellido2Nombre(DNI).zip”. El archivo comprimido deberá contener:

Un documento en formato PDF con las respuestas a los ejercicios.

Un archivo *.jff, que es el resultado del programa JFLAP, por cada uno
de los ejercicios de la práctica. Cada archivo *.jff debe nombrarse de la
siguiente manera:
“NombreApellido1_ejercicio<numejercicio>”.jff donde <numejercicio>
será el número del ejercicio que corresponda (1,2,3,4 o 5).

Cualquier práctica que no se entregue siguiendo estas instrucciones será


considerada ”NO APTA” y evaluada con una nota de 0 puntos.
Las prácticas son individuales, por lo tanto, está completamente prohibido
la entrega de la misma práctica por varios alumnos. En el caso de detectarse
dos o más prácticas iguales, ambas prácticas serán consideradas ”NO APTA” y
evaluadas con una nota de 0 puntos.
Por último, la versión recomendada a utilizar en esta asignatura es la
versión 7 de JFLAP.

1
Ejercicio 1
Dado el alfabeto Σ = {a, b, c}, sea L el lenguaje compuesto por todas aquellas
cadenas que cumplen las siguientes condiciones (NOTA: La condición 2c requiere
un mayor número de estados o plantearlo como intersección de dos autómatas):

1. Las cadenas empiezan y terminan por el mismo símbolo.

2. Dependiendo del símbolo por el que empiezan las cadenas se cumple que:

a) Si la cadena empieza por a y termina por a, entonces la cadena debe


tener un número par de b’s (al menos 2 b’s).
b) Si la cadena empieza por b y termina por b, entonces la cadena debe
tener un número par de a’s (al menos 2 a’s).
c) Si la cadena empieza por c y termina por c, entonces la cadena debe
tener un número par de a’s y un número par de b’s (al menos dos).

3. Las cadenas del lenguaje tienen una longitud mayor que 2.

(a). (0,25 puntos) Dar 5 cadenas que pertenecen al lenguaje L y 5 cadenas que
no pertenecen al lenguaje L.

(b). (1,5 puntos) Indicar qué clase de lenguaje es L y definir en JFLAP un


autómata que lo reconozca. En este caso hay que definir el autómata más
sencillo (con menos capacidad de reconocimiento), esto es, si L es regular
hay que definir un autómata finito que lo reconozca y si L es independiente
del contexto, hay que definir un autómata a pila que lo reconozca.

(c). (0,25 puntos) Definir un lenguaje L1 independiente del contexto no regular


que cumpla que L1 ⊂ L.

Ejercicio 2
Dado el alfabeto Σ = {x, y, z}, sea L el lenguaje definido de la siguiente
manera:

L = {xm (xy)n (yz)n xm : n > 0, m > 0}

(a). (0,25 puntos) Dar 5 cadenas que pertenecen al lenguaje L y 5 cadenas que
no pertenecen al lenguaje L.

2
(b). (1,5 puntos) Indicar qué clase de lenguaje es L y definir en JFLAP un
autómata que lo reconozca. En este caso hay que definir el autómata más
sencillo (con menos capacidad de reconocimiento), esto es, si L es regular
hay que definir un autómata finito que lo reconozca y si L es independiente
del contexto no regular, hay que definir un autómata a pila que lo reconozca.

(c). (0,25 puntos) Definir una gramática independiente del contexto G


equivalente a L, esto es que cumpla que L(G) = L.

Ejercicio 3
Dado el alfabeto Σ = {a, b, c}, sea L el lenguaje formado por todas aquellas
cadenas que cumplen las siguientes condiciones:

Las cadenas empiezan y terminan por el símbolo c.

El número de símbolos a en las cadenas debe ser impar.

El número de símbolos b en las cadenas es igual al doble de símbolos a.

Todos los símbolos a’s de la cadena aparecen antes de los símbolos b’s

No hay condiciones en cuanto al número de símbolos c que puede haber en


la cadena.

(a). (0,25 puntos) Dar 5 cadenas que pertenecen al lenguaje L y 5 cadenas que
no pertenecen al lenguaje L.

(b). (1,5 puntos) Indicar qué clase de lenguaje es L y definir en JFLAP un


autómata que lo reconozca. En este caso hay que definir el autómata más
sencillo (con menos capacidad de reconocimiento), esto es, si L es regular
hay que definir un autómata finito que lo reconozca y si L es independiente
del contexto, hay que definir un autómata a pila que lo reconozca (Nota:
puede ayudar definir el lenguaje de manera formal, de manera similar al
enunciado del ejercicio 2).

(c). (0,25 puntos) Definir un lenguaje L1 recursivamente enumerable no


independiente del contexto que cumpla que L1 ⊂ L.

3
Ejercicio 4
Dado el alfabeto Σ = {0, 1, 2}, sea L el lenguaje definido de la siguiente
manera:
L = {0n (01)n (10)m 0m : n > 0, m > 0}.
(a). (0,25 puntos) Dar 5 cadenas que pertenecen al lenguaje L y 5 cadenas que
no pertenecen al lenguaje L.
(b). (1,75 puntos) Indicar qué clase de lenguaje es L y definir en JFLAP un
autómata que lo reconozca. En este caso hay que definir el autómata más
sencillo (con menos capacidad de reconocimiento), esto es, si L es regular
hay que definir un autómata finito que lo reconozca y si L es independiente
del contexto no regular, hay que definir un autómata a pila que lo reconozca.

Ejercicio 5
Dado el alfabeto Σ = {a, b}, hemos pedido a ChatGPT que defina un autómata
finito determinista para reconocer el lenguaje L formado por todas las cadenas que
empiezan y terminan con el símbolo a y tienen un número par de b’s (incluido el
caso en que no tengan b’s). Este es el resultado:
Respuesta de ChatGPT:
Un autómata finito determinista (AFD) para reconocer el lenguaje de cadenas
que empiezan y terminan con el símbolo ’a’ y tienen un número par de ’b’s se
puede representar mediante un conjunto de estados, un alfabeto y una función de
transición. Aquí tienes una descripción de un posible AFD para este lenguaje:
M = ({q0 , q1 , q2 , q3 }, {a, b}, δ, q0 , {q0 , q2 })
La función de transición que propone ChatGPT es la siguiente:
δ(q0 , a) = q0 δ(q1 , a) = q1 δ(q0 , b) = q1
δ(q1 , b) = q2 δ(q2 , a) = q2 δ(q2 , b) = q3
δ(q3 , a) = q3 δ(q3 , b) = q2
(a). (0,5 puntos) Indicar si la respuesta es correcta. Justificar la respuesta.
(b). (0,5 puntos) Si la respuesta es incorrecta definir el autómata que acepte
el lenguaje L. Si la respuesta es correcta indicar si se podría definir un
autómata equivalente con menos estados.
(c). (1 punto) Definir un autómata que acepte el lenguaje complementario de L.

También podría gustarte