6 ACI1323 18 Full
6 ACI1323 18 Full
6 ACI1323 18 Full
net/publication/337428965
CITATIONS READS
0 492
4 authors, including:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
Modelo para la Predicción de Deserción Escolar de los Estudiantes del Instituto Tecnológico de Zitácuaro View project
All content following this page was uploaded by Noel Enrique Rodríguez-Maya on 21 November 2019.
RESUMEN
En este trabajo se presenta un prototipo de software para resolver el Problema de Asignación de Horarios
Académicos (PAHA) en Instituciones de Educación Superior (IES) de manera automática. El software
implementa Algoritmos Genéticos (AG) con un operador de mutación adaptativa para la generación de los
horarios académicos. Las pruebas se realizaron utilizando información académica de la Unidad de Estudios
Superiores Villa Victoria, Estado de México, México. Los horarios académicos generados cumplieron con las
restricciones establecidas y se generaron en un lapso de tiempo corto. La configuración de AG utilizado resolvió
el PAHA de manera eficiente, además, el software puede ser fácilmente adaptado en otras IES.
ABSTRACT
In this paper it is presented a software prototype to solve the Problem of Assignment of Academic Schedules
(PAAS) in Higher Education Institutions (HEI) automatically. The software implements Genetic Algorithms (GA)
with an adaptive mutation operator for the generation of academic schedules. The tests were conducted using
academic information of the Villa Victoria Superior Studies Unit, State of Mexico, Mexico. The academic schedules
generated fulfill the established constraints and were generated in a short period of time. The used GA
configuration solved the PAAS in an efficient manner, also, the software can be easily implemented in other IES.
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 73
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
INTRODUCCIÓN
En la actualidad, la carga de trabajo en las Instituciones de Educación Superior (IES) ha incrementado; por un
lado, la oferta educativa se diversifica de acuerdo a las necesidades económicas/sociales de la comunidad, y por
otro lado, la necesidad de un mercado laboral más competitivo y complejo ha aumentado el número de
estudiantes, y todo lo anterior trae como consecuencia que la administración de los recursos académicos se
vuelva compleja. El Problema de Asignación de Horarios Académicos (PAHA) consiste en la correcta aplicación
de recursos (profesores, espacios, horarios, materias, entre otros) de tal manera que se cubran las necesidades
académicas. Por su naturaleza, este problema se vuelve complejo al tener un número finito de recursos,
necesidades con ciertas características y un conjunto de restricciones que deben cumplirse.
El Cómputo Evolutivo (CE) es una rama de la Inteligencia Artificial (IA) que se especializa en la solución de
problemas de optimización; de manera general trabaja con un conjunto de soluciones (poblaciones de
individuos), las cuales son seleccionadas y mejoradas (evolucionadas) utilizando ciertas estrategias hasta
encontrar una solución óptima o muy cerca del óptimo (Haupt et al., 2004). Dentro del CE se encuentran
algoritmos que usan modelos inspirados en la naturaleza (bioinspirados) para resolver problemas de
optimización, tal es el caso de los Algoritmos Evolutivos (AE); en diversas investigaciones los AE han demostrado
ser efectivos para dar solución a diferentes casos de estudio del PAHA (Abdullah et al., 2007; Rodríguez et al.,
2014; Raghavjee & Pillay, 2013).
En la literatura se pueden encontrar múltiples estrategias basadas en CE para dar solución a diferentes problemas
de optimización: Estrategias Evolutivas (EE), usada para problemas de ruteo y redes de comunicaciones,
problemas de bioquímica, óptica, ingeniería, magnetismo e hidrodinámica (Coello, 2016); Programación Evolutiva
(PE) aplicada en problemas de predicción, optimización, planeación de rutas, entrenamiento de redes neuronales,
reconocimiento de patrones y aprendizaje automático (Coello, 2016); Algoritmos Genéticos (AG) usados para
problemas de optimización, predicción, asignación de recursos, sistemas clasificadores, aprendizaje, entre otros
(Coello, 2016). Beligiannis et al. (2008), desarrollaron una solución basada en AE para resolver un conjunto de
instancias griegas del PAHA, compararon sus resultados en contra de otros algoritmos obteniendo resultados de
manera más rápida. Dino Matijas et al. (2010), propusieron una solución basada en Optimización por Colonia de
Hormigas (OCH) la cual fue puesta a prueba en 5 instancias PAHA, las soluciones fueron comparados contra
soluciones basadas en enfoques GRASP, los resultados muestran un mejor desempeño de la solución basada en
OCH. Chen & Shih (2013), proponen una solución basada en Optimización por Enjambre de Partículas (OEP). La
propuesta está basada en una versión especial de OEP, el Estándar OEP (EOEP), el cual es aplicado a una
búsqueda local, los resultados muestran mejor desempeño para EOEP. De manera particular se han empleado
diversas técnicas basadas en CE/AG para resolver el PAHA: Búsqueda Local (Raghavjee & Pillay, 2013), AG con
reparación de genes (Rodriguez et al., 2014), AG combinados con Recocido Simulado y Escalado de Colina
(Raghavjee & Pillay, 2013; Cubillos et al., 2013), AG con representación binaria y real (Flores et al., 2004), entre
otras. También existen métodos heurísticos los cuales son eficientes para refinar la búsqueda global en un tiempo
corto: recocido simulado, búsqueda tabú, algoritmos evolutivos, entre otros (Arntzen & Løkketangen, 2005; Chmait
& Challita, 2013; Daskalaki & Birbas, 2005).
Los AG originalmente fueron desarrollados por John Henry Holland con el propósito de resolver problemas de
aprendizaje de máquinas (Coello, 2016). El funcionamiento básicamente consiste en: 1) generar aleatoriamente
un conjunto de soluciones iniciales (población inicial), 2) calcular el valor de aptitud de cada individuo de la
población, 3) realizar una selección probabilística de las mejores soluciones (individuos) basados en su aptitud, 4)
aplicar operadores genéticos (cruce y mutación) para generar el siguiente conjunto de soluciones, y, repetir
hasta que cierta condición se satisfaga (por ejemplo encontrar la solución óptima). Existen diferentes variantes
de AG, siendo los más populares: AG Binarios, AG Continuos, AG Adaptativos, AG Híbridos, AG no
Generacionales, entre otros (Haupt et al., 2004). Para poder aplicar un AG se requiere: una representación de
las mejores soluciones potenciales del problema, un método para crear una población inicial de soluciones
(normalmente es aleatorio), una función de evaluación que permita clasificar una solución en base a su aptitud,
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 74
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
la aplicación de operadores genéticos que permitan alterar la composición genética de los descendientes de las
nuevas generaciones y los parámetros de configuración (tamaño de la población, método de selección, tipo y
tasa de cruce y mutación). El proceso de búsqueda de los AG se puede refinar/mejorar a través de diferentes
técnicas: Búsqueda Local (BL), Búsqueda Tabú (BT), Escalador de Colina (EC), Recocido Simulado (RS), entre
otras (Raghavjee & Pillay, 2013).
Existen diferentes aplicaciones de software para generar horarios de forma automática o semiautomática.
Algunos de estos son comerciales y libres; entre los prototipos de software comercial más populares se tiene:
aschorarios® (AscHorarios, 2017), Peñalara® (Peñalara, 2017), UntisExpress® (UntisExpress, 2017) entre otros,
sin embargo, no se conoce con precisión los algoritmos implementados. Los prototipos de software libre de
código abierto se tienen a FET (Lalescu, 2017), uniTime (Unitime, 2018), KHE (KHE, 2018) y GOAL (Group of
Optimization and Algorithms - GOAL, 2018), estos prototipos iniciaron con los primeros resultados con
algoritmos genéticos, sin embargo, con el transcurso de tiempo y de diversas pruebas y aportaciones han
realizado diversas mejoras. Aunque todos los prototipos mencionados presentan buenas soluciones al PAHA uno
de los principales problemas que presentan es que son de alto costo y poca adaptación a diferentes necesidades
de las universidades en México.
En esta investigación se presenta un prototipo de software para dar solución al PAHA. El prototipo integra un AG
y un Operador de Mutación Adaptativo (OMA). El OMA refina la exploración conforme avance el proceso de
búsqueda para generar soluciones que cumplan con los requerimientos y condiciones establecidas. Se tiene
como caso de estudio la Universidad Mexiquense del Bicentenario (UMB) específicamente en la Unidad de
Estudios Superiores Villa Victoria (UESVV) del Estado de México, México. Los experimentos se realizaron
utilizando diferentes configuraciones iniciales del AG y aplicando variantes en las estrategias de búsqueda
adaptativa (AG-OMA y AG-RS)
METODOLOGÍA
El PAHA consiste en asignar cursos a profesores con restricciones de tiempo y aulas, de tal manera que se
satisfagan las necesidades académicas. Las principales variables del problema son: los profesores, los cursos, las
aulas de clase y los periodos de tiempo. Todas las variables se pueden asignar de múltiples maneras (Coello,
2016). En general existen dos tipos de restricciones: fuertes y débiles (Abdullah et al., 2007). Las restricciones
fuertes son aquellos requisitos que deben ser cumplidos forzosamente, mientras que las restricciones débiles
son requisitos deseables pero su cumplimiento no es obligatorio, en la medida que se cumplan ofrecerán una
mayor calidad en la solución encontrada.
Este tipo de problemas se formula como un problema de optimización combinatoria, los cuales usualmente son
NP-Completos (Ponce et al., 2014; Gen & Cheng, 1999), en donde se busca encontrar la mejor solución posible
minimizando la violación de restricciones (Raghavjee & Pillay, 2013 Gen & Cheng, 1999). Existen dos tipos de
soluciones: válidas y factibles. Las soluciones válidas son aquellas que cumplen con las restricciones fuertes,
mientras que las soluciones factibles son aquellas que cumplen las restricciones fuertes y la mayor parte de las
restricciones débiles (Abdullah et al., 2007).
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 75
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
una hora de lunes a sábado. La asignación de horarios académicos se realiza de forma manual por el personal
administrativo, el cual carece de las herramientas e información necesarias para satisfacer las necesidades
académicas. Lo anterior ocasiona que los horarios académicos generados no sean óptimos (por ejemplo, que no
se cumpla a tiempo con la carga académica docente, que haya empalmes, etc.), además del excesivo tiempo
que se invierte en corregir los errores de los horarios generados (aproximadamente 200 horas/persona).
b) Restricciones débiles:
1. Los profesores imparten cátedra de las asignaturas acordes a su perfil y experiencia profesional.
2. Los profesores proponen las asignaturas que puede impartir.
3. El horario se basa en la disponibilidad de tiempo del profesor.
4. Se debe evitar horas muertas (sin actividad) para profesores y estudiantes.
5. Se debe evitar que un mismo profesor imparta clase de la misma asignatura en horas discontinuas.
Los recursos con los que cuenta la universidad se definen de la siguiente manera:
• P es el conjunto de un número de Np Profesores ; Cada profesor se distingue con pi donde i es un índice que
toma valores [1, 2, ..., Np].
• C es el conjunto de un número Nc de cursos o asignaturas ci; donde i es un índice asociado a cada
asignatura con valores [1, 2, ..., Nc].
• T es el conjunto de un número Nt espacios de tiempo tm (días de la semana y horas del día); donde m es un
índice asociado a un espacio de tiempo que toma valores [1, 2, …, Nt] y el total de tiempo de espacios, se
pueden identificar en número de días dt y número de horas de cada espacio por día ht.
• A es el conjunto de Na Aulas de clase na; donde n es un índice que toma valores [1, 2, …, Na] y Na es el
número total de aulas disponibles.
• 𝑿: 𝑪 → 𝑷 × 𝑻 × 𝑨 se define como el horario 𝑿 en donde para cada asignatura 𝒄 ∈ 𝑪 se asigna un profesor 𝒑 ∈
𝑷, un espacio de tiempo 𝒕 ∈ 𝑻 y una aula de clase 𝒂 ∈ 𝑨.
El objetivo principal es minimizar la violación de restricciones fuertes y débiles. Las Ecuaciones 1, 2 y 3 muestran
el modelo matemático del problema:
𝑀𝑖𝑛𝑖𝑚𝑖𝑧𝑎𝑟 𝑓(𝑋), 𝑋 ∈ ℝ𝑛
5 5
(1)
𝑓(𝑋) = ∑ 𝑅𝐹𝑖 (𝑋) + ∑ 𝑅𝐷𝑖 (𝑋)
𝑖=1 𝑖=1
𝑆𝑢𝑗𝑒𝑡𝑜 𝑎:
5
(2)
∑ 𝑅𝐹𝑖 (𝑋) = 0
𝑖=1
5
(3)
∑ 𝑅𝐷𝑖 (𝑋) ≥ 0
𝑖=1
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 76
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
En donde, la Ecuación 1 define la función objetivo 𝑓(𝑋) a minimizar y 𝑋 es un arreglo definido en ℝ𝑛 . 𝑅𝐹(𝑋) es
una función que permite contabilizar la violación de las 5 restricciones fuertes y 𝑅𝐷(𝑋) es una función que
permite contabilizar el número de violaciones de las 5 restricciones débiles; la violación de cada restricción tiene
asociado una ponderación o peso específico, en donde la ponderación de las restricciones fuertes es mayor que
el de las restricciones débiles. La Ecuación 2 establece el cumplimiento de las restricciones fuertes y la Ecuación
3 establece el cumplimiento no obligatorio de las restricciones débiles.
Para el desarrollo del software se emplearon cuatro fases iterativas: análisis, diseño, desarrollo, pruebas e
implementación; en el proceso se incluyeron técnicas y herramientas de ingeniería de software y CE.
a) Fase de análisis
La Fig. 1 muestra los actores principales del proceso de creación y asignación de horarios académicos (basado
en la extensión de Erikkson y Penker (Hans-Erik & Magnus, 2000)). En el modelo se puede observar que, para
realizar el proceso de creación y asignación de horarios académicos, se requiere información referente a
profesores, estudiantes y materias. En el caso de los profesores, se requiere conocer los resultados de la
evaluación docente (desempeño en clase). Además, se requiere la disponibilidad de horario para conocer los
días y horas disponibles de los profesores. Otra información importante es el perfil profesional del profesor para
conocer las asignaturas que pueden impartir. En cuanto a los estudiantes, se necesita conocer la cantidad de
estudiantes por grupo, así como las asignaturas que se ofrecerán para un determinado periodo escolar.
b) Fase de diseño
La Fig. 3 muestra el diagrama de clases del sistema para poder crear un horario grupal e individual: aulas de
clase, profesores, asignaturas, grupos, tiempos y asignaturas. Las clases Individuo, Población y Ag contienen la
información y métodos necesarios para ser utilizados por el AG.
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 77
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
c) Fase de desarrollo
Se emplean arreglos de objetos con las características principales de profesores, asignaturas, horas, días y aulas
de clase. Un aula o salón de clase está compuesto por un identificador, un nombre de aula y la capacidad para
albergar estudiantes (Tabla 1). Para la definición de los espacios de tiempo (de impartición de cursos) se utiliza
un arreglo que contiene un número identificador clave y la especificación del periodo de tiempo (día/hora)
(Tabla 2).
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 78
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
Las asignaturas constan de identificador, clave, nombre de la asignatura y un identificador del profesor que
impartirá el curso. La tabla profesor tiene definido un identificador, nombre y la disponibilidad de horario
indicada por su id (Tabla 3).
Finalmente, a los grupos se les realiza una carga de asignaturas, para ello se tiene que asignar: un identificador
al grupo, conocer el número de alumnos que lo conforman y las asignaturas que tendrán establecidas (Tabla 4).
El cromosoma del AG se genera con los valores de las variables que representen a los objetos que forman parte
de un horario de clases, definiendo a un individuo como se muestra en la Tabla 5; ci corresponde al conjunto de
cursos que se tiene necesidad de asignar recurso, px el profesor, ty el espacio de tiempo y az el aula asignados.
El proceso evolutivo inicia con la generación de una población definida de individuos. Posteriormente se calcula
el valor de la función aptitud (Ecuación 1) de acuerdo al número de Violaciones de las Restricciones Fuertes
(VRF) y al número Violaciones de las Restricciones Débiles (VRD) (Ecuaciones 2 y 3). Posteriormente se realiza
la selección por torneo de los mejores individuos, los cuales son sometidos a un proceso de cruce uniforme que
permitirá una combinación de genes para generar nuevos individuos. En el proceso de mutación se crea un
nuevo individuo válido de forma aleatoria, se seleccionan algunos de sus genes los cuales son copiados al
individuo a mutar (seleccionado); esta técnica permite asegurar que todos los individuos mutados sean válidos
(véase Algoritmo 1).
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 79
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
En el proceso de mutación se utiliza el Operador de Mutación Adaptativo (OMA); el OMA usa una tasa adaptativa
que cambia en el tiempo para mejorar el proceso de búsqueda. El Algoritmo 3 muestra el procedimiento general
que implementa OMA y el Algoritmo 2 calcula la aptitud media de la población.
Otra técnica utilizada en el proceso de mutación es el método de Recocido Simulado (RS). Con el uso de RS se
busca reducir la tasa de mutación empezando con valores considerables los cuales van disminuyendo de forma
paulatina para refinar la búsqueda (Gen & Cheng, 1999) (véase Algoritmo 4).
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 80
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
RESULTADOS Y DISCUSIÓN
Para el desarrollo del prototipo de software se empleó el lenguaje de programación Java con el sistema
operativo Microsoft® Windows 10 de 64 bits, en una computadora portátil con memoria RAM de 8gb, con
procesador Intel Core i7 a una velocidad de reloj de 2.4 Ghz. En el proceso de experimentación se calibraron los
parámetros del AG: tamaño de población, el método de selección (elitismo), tasa de cruce y mutación, y un
tamaño de torneo para la selección. Para realizar la selección de los mejores parámetros de inicio, se tomó como
referencia el desempeño del algoritmo conociendo de antemano que el óptimo global es 0.0. La configuración
inicial del AG considerada es: tasa de mutación de 0.001 y tasa de cruce de 1.0. Todos los experimentos fueron
repetidos 30 veces y se reporta la media de los valores obtenidos (por ejemplo configuraciones de AG,
desempeño, entre otros.). La primera parte de la experimentación consistió en definir la tasa de cruza (con
valores de 0.1 a 1.0) y mutación (con valores de 0.001 y 0.009) utilzando diferentes tamaños de población (de
100 a 500). La configuración que presentó mejor desempeño se muestra en la Tabla 6.
Parámetro Valor
Tamaño de la Población 400
Tasa de Mutación 0.003
Tasa de Cruce 0.08
Elitismo 4
Tamaño del Torneo 12
La Fig. 4 muestra el desempeño del AG-OMA utilizando diferentes tamaños de población (desde 100 hasta 500
individuos). Como se puede observar, el desempeño del AG obtuvo mejores resultados con una población de
500 individuos, logrando alcanzar un desempeño de 0.1. La configuración utilizada en el AG-OMA se muestra en
la Tabla 7.
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 81
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
Para cada una de las estrategias se realizó el mismo proceso para seleccionar los mejores parámetros. La Tabla
8 concentra la mejor configuración de cada estrategia.
Como se puede observar todas las estrategias cumplieron con las restricciones de VRF y el AG-RS fue el que
mejor desempeño mostró con las restricción de VRD. En referencia al tiempo de ejecución, el AG mostró mejor
desempeño seguido de la estrategia AG-RS. La Fig. 5 muestra parte de un horario generado por el prototipo de
software de acuerdo a los datos que fueron almacenados en la base de datos utilizando la estrategia AG-RS.
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 82
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
Para la selección o adaptación de metodologías para el diseño y desarrollo de software se deben de tomar en
cuenta las necesidades y características del problema a resolver con el fin de asegurar que el producto sea
funcional y cumpla con las expectativas del usuario final; durante el desarrollo del software, que implementa un
AG, se siguieron los procedimientos definidos en metodologías de ingeniería de software. El prototipo propuesto
se puede extender, por ejemplo, se puede implementar el proceso de impresión de horarios y la manipulación
de horarios después de haber sido generados. Además, se pueden agregar restricciones (fuertes o débiles),
asignándoles un peso específico (definido) para que sean consideradas en el proceso de búsqueda. En
comparación con otros prototipos de software, la presente propuesta se puede adaptar a distintas IES.
Un método para evitar los óptimos locales (horarios no óptimos) es realizar una adecuada configuración de los
parámetros del AG; los principales parámetros son tasa de cruce, tasa de mutación y tamaño de la población. Se
observó que con el uso de las estrategias adaptativas (AG-OMA y AG-RS) se mejora el proceso de búsqueda del
óptimo global. Con el uso de RS se busca reducir la tasa de mutación para que el AG realice el proceso de
búsqueda de manera controlada y pueda converger satisfactoriamente (la tasa de mutación disminuye hasta
encontrar el mejor valor). Además, debe haber un compromiso entre el uso de los recursos computacionales,
por ejemplo, con el uso de tamaños de población adecuada.
CONCLUSIONES
Con el desarrollo del software se logró minimizar el tiempo de diseño de horarios académicos para el caso de
estudio propuesto; se cumplieron todas las restricciones fuertes y la mayoría de las restricciones débiles (al
menos la mitad de las restricciones débiles definidas). El Algoritmo Genético implementa una configuración
óptima de los parámetros de entrada y utiliza dos estrategias de mutación adaptativa (operador de mutación
adaptativa y recocido simulado). El software fue implantado en la Universidad Mexiquense del Bicentenario
(UMB) campus Unidad de Estudios Superiores Villa Victoria (UESVV) del Estado de México, México. Algunos de
los trabajos futuros que se desprenden de esta investigación son la adaptación del prototipo para otras
Unidades de Estudios Superiores de la UMB; realizar una revisión de todas las posibles restricciones (fuertes y
débiles) que se aplican en las universidades, para generar una base de conocimiento que permita al usuario
seleccionar y ponderar las restricciones fuertes y débiles; y la implementación de un módulo para la
calendarización automática de exámenes.
AGRADECIMIENTOS
Los autores agradecen a las autoridades de la Unidad de Estudios Superiores Villa Victoria por facilitar la
información relacionada en el proceso de creación y asignación de horarios académicos, necesaria para el
desarrollo de esta investigación, así como al Consejo Mexiquense de Ciencia y Tecnología por el apoyo a través
de sus programas de becas para llevar a cabo esta investigación.
REFERENCIAS
Abdullah, S., Burke, E.K. & McCollum, B. (2007). A hybrid evolutionary approach to the university course
timetabling problem. In Evolutionary Computation 2007. CEC 2007. IEEE. pp. 1764-1768.
Arntzen, H. & Løkketangen, A. (2005). A tabu search heuristic for a university timetabling problem . In
Metaheuristics: progress as real problem solvers (pp. 65-85). Springer, Boston, MA.
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 83
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
Beligiannis, G.N., Moschopoulos, C.N., Kaperonis, G.P. & Likothanassis, S. D. (2008). Applying evolutionary
computation to the school timetabling problem: The Greek case. Computers & Operations Research, 35 (4),
1265-1280.
Chen, R.M. & Shih, H.F. (2013). Solving university course timetabling problems using constriction particle swarm
optimization with local search. Algorithms, 6 (2), 227–244.
Chmait, N. & Challita, K. (2013). Using simulated annealing and ant-colony optimization algorithms to solve the
scheduling problem. Computer Science and Information Technology, 1 (3), 208-224.
Coello, C.A. (2016). Introducción a la Computación Evolutiva. Instituto Politécnico Nacional no. 2508 México.
Disponible en http://delta.cs.cinvestav.mx/~ccoello/compevol/apuntes.pdf [consultado en junio 2018].
Cubillos, M.A.G., Quiroga, E.H.P. & Ruiz, R.E.S. (2013). Problema del School Timetabling y algoritmos genéticos:
una revisión. Revista Vínculos, 10 (2), 259-276.
Daskalaki, S. & Birbas, T. (2005). Efficient solutions for a university timetabling problem through integer
programming. European Journal of Operational Research, 160 (1), 106-120.
Dino Matijas, V., Molnar, G., Cupic, M., Jakobovic, D. & Dalbelo Basic, B. (2010). University Course Timetabling
Using ACO: A Case Study on Laboratory Exercises, volume 6276, chapter Knowledge-Based and Intelligent
Information and Engineering Systems. Springer Berlin Heidelberg, Berlin, Heidelberg, pp. 100–110.
Flores, P., Brau, E., Monteverde, J., Salazar, N., Figueroa, J., Cadena, E., et al. (2004). Experimentos con
Algoritmos Genéticos para resolver un problema real de Programación Maestros-Horarios-Cursos. Revista
iberoamericana de sistemas, cibernética e informática, 1, 42-46.
Fontela, C. (2016). UML Modelado de Software para Profesionales. México. Alfaomega. ISBN: 978-987-1609-22-2
Gen, M. & Cheng, R. (1999). Genetic Algorithms & Engineering Optimization. John Wiley & Sons, Inc. ISBN:978-
0471-3153-5
Hans-Erik, E. & Magnus, P. (2000). Business Modeling with UML: Business Patterns at Work. OMG Press. John
Wiley & Sons, 459 pag.
Haupt, R.L., Haupt, S.E. & Haupt, S.E. (2004). Practical genetic algorithms. Sec. Ed. New York: Wiley.
KHE. A Software Library for High School Timetabling. Disponible en: http://www.it.usyd.edu.au/~jeff/khe/
[consultado en julio 2018].
Lalescu L. FET Free timetabling software. Disponible en: https://lalescu.ro/liviu/fet/ [consultado en diciembre
2017].
Ponce, J.C., Torres, A., Quezada, F.S., Silva, A., Martínez, E., Casali, A., et al. (2014). Inteligencia Artificial. 1ra.
Ed. Iniciativa Latinoamericana de Libros de Texto Abiertos. 225 pag.
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 84
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
Raghavjee, R. & Pillay, N. (2013). A study of genetic algorithms to solve the school timetabling problem . In
Mexican International Conference on Artificial Intelligence (pp. 64-80). Springer, Berlin, Heidelberg.
Rodríguez, N., Martinez, J., Flores, J.J. & Graff, M. (2014). Solving a scholar timetabling problem using a genetic
algorithm-study case: Instituto Tecnológico de zitacuaro. In Artificial Intelligence (MICAI), 2014 13th Mexican
International Conference on, IEEE (pp. 197-202).
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 85
Avances en Ciencias e Ingeniería - ISSN: 0718-8706
Av. cien. ing.: 10(1), 73-85 (Enero/Marzo, 2019) Viñas et al.
http://www.exeedu.com/publishing.cl/av_cienc_ing/ 86