Está en la página 1de 3

Usted deberá crear un Algoritmo genético que resuelva el siguiente problema:

Usted junto con sus compañeros del curso ha formado una academia de idiomas de
nombre UPC-Idiomas que se ofrece al público en general. Los idiomas que se enseñan en su
academia son los siguientes:

1. Inglés
2. Alemán
3. Francés
4. Italiano
5. Portugués
6. Chino mandarín
7. Ruso
8. Japonés
9. Árabe
10. Español

Cada uno de los cursos ofrecido tiene 3 modalidades: básico, intermedio y avanzado. El
alumno que se matricula en el curso intermedio debe haber aprobado el básico y el que se
matricula en el curso avanzado deberá haber previamente aprobado el intermedio. Los cursos
en sus tres modalidades se ofrecen en dos formatos: intensivo y normal. El curso intensivo es
para el tipo de estudiante que tiene la urgencia de aprender un idioma de forma rápida, ya sea
porque se va de viaje en poco tiempo o por una exigencia laboral. Mientras que le curso
normal es para el estudiante que desea aprender sin un apuro. En el caso del curso intensivo la
duración es de 4 horas semanales en sesiones de 2 horas cada una. En el caso del curso normal
la duración es de 2 horas semanales en una sesión de 2 horas. La duración del semestre en
ambos casos es la misma: 4 meses.

Dado que su academia tiene un éxito muy alto en el país, la demanda por sus cursos es
bastante elevada. El inconveniente que tiene es que solo posee un profesor especialista por
cada idioma (10) y modalidad (3): en total son 30 profesores. Para el formato intensivo y
normal el profesor es el mismo. Por esta razón, solo se brinda un horario a la vez para un
idioma en una modalidad y formato específico. Sin embargo, es muy común que varios
estudiantes se matriculen en más de un idioma a la vez. Por lo cual también se debe tener
cuidado que el horario de un idioma no se cruce con el de otros idiomas.

Dentro del grupo de estudiantes que se matriculan en su academia usted presenta tres tipos
muy diferenciados: el estudiante universitario que en su mayoría se matricula de 07:00 a
13:00, el estudiante escolar que se matricula en horarios entre las 15:00 a 19:00 y el
estudiante adulto que trabaja durante el día y solo puede estudiar entre las 19:00 y 23:00
horas. Cabe señalar que la academia ofrece los cursos de lunes a sábado.

El objetivo del algoritmo genético a diseñar es el siguiente: Se le dará una demanda de


estudiantes que generará un número de cursos a proponer en un determinado bloque de
horarios (mañana, tarde o noche). Usted deberá diseñar un algoritmo genético que pueda
proponer un horario en el cual dadas las condiciones especificadas anteriormente los horarios
cumplan con no cruzarse y permitir que los estudiantes puedan llevar todos los cursos en los
que se han matriculado.

Deberá subir al Blackboard 3 archivos de resolución del proyecto:


1. Archivo en Excel donde plantea la solución al Algoritmo genético: Debe detallar la
descripción de los genes, población, individuos, función objetivo (Fitness), codificación
numérica de cada gen, tipo de Crossover utilizado, método de eliminación de
individuos, factor de mutación utilizado, criterio para detener el algoritmo. Las
condiciones del problema a solucionar se detallan en el archivo en Excel “Tareas 1
asignadas 2020-2” que se adjunta en el Blackboard. Dentro de este archivo encontrará
su nombre y las condiciones del horario que deberá solucionar.
2. Archivo de video de no más de 5 minutos de duración en donde explica su lógica de
planteamiento tanto para el Excel como para la implementación del programa. En el
audio debe decir lo siguiente:
a. ¿Cómo planteó la solución al problema?
b. Explicar los elementos de su algoritmo genético. ¿Cuál es el criterio de diseñó de
su función objetivo?
c. ¿Cuál es el criterio para detener las iteraciones? ¿Cuándo considero que ha llegado
a una solución correcta? Responda en base a los resultados que su programa
arrojó.
d. Conclusiones en base a los resultados obtenidos. ¿Funcionó bien o no? ¿Por qué?
¿Los resultados son correctos? ¿Obtuvo resultados con pocas iteraciones? ¿Cómo
influyó el factor de mutación, Crossover (de 1, 2, 3 o 4 puntos), criterio de
selección de parejas en el número de iteraciones?
3. Programa en Python (extensión .py) o C++ (extensión .cpp) con la implementación de
su lógica. El programa deberá ejecutarse en el Python IDLE o en Visual Studio con el
código enviado (solo archivo fuente). El programa deberá tener una interfaz que
muestre los resultados en formato texto en una tabla ordenada mostrando el Fitness y
la cantidad de productos por cada iteración.

Rúbrica de evaluación:

Criterio Puntaje
Archivo Excel correctamente detallado 5 puntos
mostrando todas las partes del
planteamiento de su Algoritmo genético
Archivo de video con una explicación clara y 5 puntos
concisa del planteamiento del problema.
Tiene que ser una descripción sobre el
archivo en Excel y al programa realizado
cumpliendo los incisos a, b, c y d. OJO
DEBERÁ SER SU VOZ O SU ROSTRO, NO VALE
QUE SU COMPAÑERO HABLE POR USTED.
Programa en funcionamiento cumpliendo 5 puntos
con tener una interfaz de presentación de
resultados y con los requerimientos del
problema asignado. Así también debe
comentar las partes de su algoritmo en
donde indique la población inicial, método
de selección de parejas, Crossover,
mutación, cálculo del Fitness y método para
detectar la mejor solución. EL PROGRAMA
DEBE ITERAR MOSTRANDO A LOS
INDIVIDUOS Y EL FITNESS DE FORMA
ENTENDIBLE (No debe mostrar números sin
sentido que solo pueden ser entendidos por
el diseñador del programa). EL CÓDIGO
DEBE SER ORDENADO Y UTILIZAR
FUNCIONES CREADAS POR USTED.
Verificación de los resultados del problema. 5 puntos
El programa deberá mostrar el mejor
resultado tratando de hacerlo con la menor
cantidad de iteraciones posibles. Los
resultados deben ser coherentes con lo
solicitado. SU SOLUCIÓN Y PLANTEAMIENTO
DEBE SER ORIGINAL mientras más se
parezca a las soluciones de sus compañeros
no alcanzará el puntaje ideal en este criterio.

También podría gustarte