modelo para la programacion academica de la...
TRANSCRIPT
MODELO PARA LA PROGRAMACION ACADEMICA DE LA FACULTAD DE INGENIERIA, UNIVERSIDAD NACIONAL DE
COLOMBIA, SEDE BOGOTA
Pedro David Gutiérrez Quijano
Tesis de Maestría
Universidad Nacional de Colombia Facultad de Ingeniería, Departamento de Ingeniería de Sistemas e Industrial
Bogotá, Colombia 2016
MODELO PARA LA PROGRAMACION ACADEMICA DE LA FACULTAD DE INGENIERIA, UNIVERSIDAD NACIONAL DE
COLOMBIA, SEDE BOGOTA
Pedro David Gutiérrez Quijano
Tesis presentada como requisito parcial para optar al título de: Magíster en Ingeniería - Ingeniería Industrial
Director:
M.Sc. Luis Gerardo Astaiza Amado
Línea de Investigación
Investigación de Operación
Universidad Nacional de Colombia Facultad de Ingeniería
Bogotá, Colombia 2016
V
Este trabajo está dedicado a Dios, por fortalecer mi corazón, iluminar mi mente y por haber puesto en mi camino a aquellas personas que han sido mi soporte y compañía durante este ciclo de estudio. A mi familia, que es el motor de mi vida, a mis amigos, profesores y a todos aquellos que contribuyeron a la culminación exitosa de este trabajo de tesis. La vida está llena de ciclos, inicios y finales que no son más que retos y experiencias que alimentan nuestra experiencia personal de vida. Este documento se convierte en la prueba fidedigna de la culminación exitosa de un grandioso ciclo de la vida que me lleno de increíbles experiencias personales y profesionales, agradezco a Dios por haberme permitido completar este ciclo y espero con gran expectativa los siguientes ciclos que han de venir.
VII
Agradecimientos
Agradezco a mi familia por su apoyo incondicional, a mi director de tesis el ingeniero Luis Gerardo Astaiza Amado que, con su experiencia, paciencia y compromiso guio y realimento mi proceso de aprendizaje hacia la construcción de este trabajo, al profesor Wilson Adarme, a los integrantes del grupo SEPRO, al ingeniero Jairo Ramiro Barrera Velandia, a la División de Registro y a todos y cada uno de los que contribuyeron en la realización de este trabajo.
VIII
Contenido
Contenido IX
Lista de figuras X
Lista de tablas XI
1. Introduccion ................................................................................................................................................................ 1
1.1 Introducción .............................................................................................................................................................................. 1
1.2 Identificación del problema ................................................................................................................................................ 2
1.3 Objetivo de la investigación ................................................................................................................................................ 3
1.3.1. Objetivos específicos .................................................................................................................................................... 3
1.4 Acerca del documento ........................................................................................................................................................... 4
2. Estado del arte ............................................................................................................................................................ 5
2.1 Programación de horarios de clase ................................................................................................................................. 5
2.2 Revisión Literaria .................................................................................................................................................................... 6
2.3 Modelos básicos para la programación de cursos ..................................................................................................... 9
2.3.1. Algoritmos básicos aplicados al problema de programación de horarios ......................................... 10
3. Modelo de optimizacion ........................................................................................................................................ 16
3.1 El problema de investigación .......................................................................................................................................... 16
3.1.1. El contexto ..................................................................................................................................................................... 16
3.1.2. EL proceso de programación ................................................................................................................................. 16
3.1.3. Panorama actual.......................................................................................................................................................... 17
3.2 Descripción del modelo de optimización ................................................................................................................... 25
3.2.1. La propuesta ................................................................................................................................................................. 25
3.2.2. Los sistemas de información y su importancia en el mundo actual ..................................................... 25
3.2.3. El Sistema de Información para La programación Académica (SIPA) ................................................. 27
3.2.4. Avance de la implementación ................................................................................................................................ 28
4. Generador de programacion ............................................................................................................................... 30
4.1 La elección del método ....................................................................................................................................................... 30
IX
4.2 El algoritmo ............................................................................................................................................................................. 30
4.2.1. Resultados experimentales .................................................................................................................................... 34
5. Conclusiones .............................................................................................................................................................. 36
6. Bibliografía ................................................................................................................................................................ 38
X
Lista de figuras
Figure 3.2-1: Modelo de 4 bloques elementales para describir un sistema de información ............................ 26
Figure 3.2-2: Arquitectura general del Sistema de Información para la Programación Académica ............. 27
Figure 3.2-3: Screenshot de la vista de infraestructura universitaria del SIPA ...................................................... 28
Figure 4.2-1: Diagrama de flujo del algoritmo ...................................................................................................................... 31
XI
Lista de tablas
Tabla 3.1-1: Resumen general de uso de recursos facultad de ingeniería, semestre 2015-II .......................... 20
Tabla 3.1-2: Resumen general uso del tiempo facultad de ingeniería, semestre 2015-II .................................. 21
Tabla 3.1-3: Programación académica, pregrado - semestre 2015-II ........................................................................ 22
Tabla 3.1-4: Programación académica, postgrado - semestre 2015-II ...................................................................... 23
Tabla 3.1-5: Programación académica, pregrado y postgrado - semestre 2015-II .............................................. 24
Tabla 4.2-1: Descripción de los datos de prueba ................................................................................................................. 34
Tabla 4.2-2: Duración del algoritmo para diferentes valores de TT ........................................................................... 34
Tabla 4.2-3: Comparación del algoritmo con el estado del arte ................................................................................... 35
1
Capítulo 1
Introduccion
1.1 Introducción
Las instituciones educativas en el proceso de formación semestre a semestre proponen una serie de
asignaturas o eventos que deben ser impartidos a los estudiantes adscritos a ellas, cada asignatura
requiere de una infraestructura, un profesor u profesores y medios educativos específicos. Por lo tanto, las
instituciones de educación deben contar con recursos en infraestructura y personal docente suficientes,
que le permita impartir una educación de alta calidad a sus estudiantes; no obstante, la asignación de esos
recursos debería ser lo suficientemente planificada y estudiada, a fin que no se presente escasez o
sobreoferta de ellos, pues ocasionaría, en el primer caso deterioro en la calidad de la educación y en el
segundo, deterioro en las finanzas de la institución. Por otra parte, como reflejan comportamientos
históricos de la demanda de educación superior en Colombia no es una sorpresa, el crecimiento contante
durante la última década, en la demanda de cupos universitarios en instituciones de educación superior
en especiales en universidades públicas (1), esto exige de cuantiosas inversiones en infraestructura y
personal docente. Estas inversiones en muchos de los casos podrían diferirse en el tiempo si la institución
cuenta con herramientas adecuadas que le permita planificar el uso adecuado de sus recursos, entre los
que están la infraestructura física, la planta docente y medios educativos de soporte. Respecto a la primera,
se deberá contar con una adecuada dotación de salones, laboratorios, oficinas y auditorios que permitan
desarrollar las labores académicas con un adecuado grado de satisfacción, sin embargo, no basta con tener
una planta física adecuadamente dotada, su asignación deberá ser muy bien planificada a fin de establecer
un uso eficiente.
Al inicio de cada período académico los encargados de la planeación académica conocen con cierto grado
de precisión las asignaturas a las que los estudiantes desean asistir, la tarea que les queda es distribuirlas
dentro de su planta física en su totalidad, de modo que los interesados reciban las materias que solicitaron.
El modelo plantea un conjunto de restricciones que pueden ser clasificadas como duras o de obligatorio
cumplimiento y un conjunto de restricciones blandas cuyo cumplimiento es optativo. De ser satisfechas
2016 Universidad Nacional de Colombia, Sede Bogotá
2
estas restricciones, se dice que la propuesta planteada es factible y en estas condiciones se podrían iniciar
las labores académicas. Sin embargo, usualmente se desea que la comunicad académica, profesores y
estudiantes, desarrollen sus actividades de forma cómoda; para ello se plantean las restricciones
denominadas blandas, que no son de obligatorio cumplimiento y, por el contrario, miden el grado de
satisfacción por parte de la comunidad académica. Este problema combinatorial es clasificado como del
tipo no lineal entero mixto y es de difícil solución. Clasificado como NP completo de tamaño arbitrario,
existen variedad de enfoques para resolver este tipo de problemas, enfoques como: aproximación,
probabilístico, basados en restricciones, solución a casos particulares, algoritmos genéticos, algoritmos
heurísticos o meta-heurísticos, entre otros.
Dada la complejidad del problema, grupos de investigadores alrededor del mundo se han dado a la tarea
generar metodologías capaces de resolver este problema en casos específicos, tratando de mejorar los
resultados expuestos por otros equipos en cuanto a calidad y tiempo requerido para encontrar la solución;
cabe destacar que aún no se ha encontrado una solución global que aplique a cada caso, así que el problema
sigue sin resolverse por completo.
Una gran variedad de métodos se ha descrito en la literatura para resolver el problema, incluso probados
con casos reales. Estos métodos se dividen en cuatro tipos: métodos secuenciales (2; 3), métodos de
clusterización (4) , métodos basados en restricciones (5), y los métodos meta-heurísticos (6; 7; 8), estos
últimos cuentan con un gran desarrollo desde la últimas dos décadas, gracias a técnicas como recocido
simulado, búsqueda Tabú, algoritmos genéticos, métodos híbridos, entre otros. Otra característica
importante encontrada en los trabajos publicados, es el enfoque del desarrollo que han alcanzado. Se
pueden dividir en dos tipos: los modelos matemáticos y los heurísticos, es decir, los que tienen una base
matemática (9; 10) o se apoyan en ella, y los que utilizan métodos algorítmicos. En la literatura
especializada ambos enfoques tienen tanto adeptos como detractores. Una de las ventajas del método
matemático es que permite mencionarlo como el más riguroso y exacto, pero con la desventaja de su difícil
formulación matemática sumada a la gran cantidad de recursos computacionales que requiere. En cambio,
los heurísticos representan una facilidad para la puesta en marcha en el computador y en la confección
algorítmica; sin embargo, la principal desventaja es el poco énfasis que le da al modelo matemático aun
cuando este haya sido planteado desde el inicio del problema, lo cual impide el desarrollo de una aplicación
general.
1.2 Identificación del problema
Desde la perspectiva de la investigación de operaciones, este tipo de problemas se enmarcan dentro del
área conocida como Timetabling o programación horaria y se asocian a la labor de organizar una secuencia
de eventos en un período de tiempo determinado, satisfaciendo un conjunto de restricciones. Dentro de
estos problemas existe una rama específica, llamada Class Scheduling, que estudia problemas relacionados
con la programación horaria para entidades educativas, dentro de este contexto, existen tres tipos de
problemas (10):
Examinación Timetabling: programación de horarios de evaluaciones y exámenes.
School Course Timetabling: programación de horarios de clases para colegios.
2016 Universidad Nacional de Colombia, Sede Bogotá
3
University Course Timetabling: programación ón de horarios de clases para instituciones de
educaciónón superior.
El problema que nos ocupa en esta ocasión y al que dedicaremos este trabajo se relaciona con el problema de University Course Timetabling. La Facultad de Ingeniería de la Universidad Nacional y en general la todas las facultades de la universidad actualmente deben resolver el problema de generar la programación horaria de sus cursos y la asignación de salones de clase de manera óptima y eficiente. Esta programación debe satisfacer una serie de requerimientos impuestos por políticas propias de cada facultad. Actualmente, el proceso de programación se realiza de forma manual, demorando aproximadamente un mes desde la definición de las asignaturas hasta la final asignación a un salón en un bloque horario especifico. Cabe destacar que, la programación obtenida de esta manera no está libre de errores, detectándose en algunos casos ciertas ineficiencias e incumplimientos de los requerimientos básicos para el correcto funcionamiento de la institución educativa.
En consecuencia, una buena programación horaria genera una serie de beneficios para los principales actores que conviven en la institución, entre estos es posible mencionar por ejemplo: eliminar topes de horarios entre cursos del mismo semestre, respetar la disponibilidad de horarios de los profesores, respetar la capacidad de los salones de clase e incorporar condiciones deseables, como por ejemplo: favorecer las clases en bloque horarios específicos, optimizar el uso del tiempo que los estudiantes permaneces en la universidad ,minimizar la utilización de salones especiales, distribución proporcional de las asignaturas a lo largo de la semana favoreciendo el tiempo promedio que los estudiantes permanecen en la universidad y en ultimas mejorando la calidad de vida de los miembros de la comunidad académica, etc…
1.3 Objetivo de la investigación
El objetivo de esta investigación es en proponer un modelo de optimación para la programación académica
de los programas curriculares de pregrado adscritos a la facultad de ingeniería de la Universidad Nacional
de Colombia, sede Bogotá.
1.3.1. Objetivos específicos
1. Establecer los requerimientos y restricciones del sistema de programación académica mediante la
caracterización de los recursos humanos, físicos y curriculares de la facultad de ingeniería de la
Universidad Nacional de Colombia, sede Bogotá.
2. Analizar las tendencias en la solución del problema de University Course Timetabling, con el fin de
definir una técnica de solución al problema propuesto.
3. Diseñar un modelo de optimización para el sistema de asignación de programación académica de
la facultad de ingeniería de la universidad nacional de Colombia, sede Bogotá.
2016 Universidad Nacional de Colombia, Sede Bogotá
4
4. Evaluar el modelo mediante un prototipo en ambiente computacional en función de los
indicadores de desempeño del sistema.
1.4 Acerca del documento
Este documento está organizado de la siguiente forma. En el siguiente capítulo se presenta una breve
revisión del estado del arte en lo relacionado con el problema University Course Timetabling y la variedad
de enfoques para resolver este problema, esta revisión está organizada y clasificada por algoritmo de
solución. En el capítulo tres, el modelo de optimización propuesto para resolver el problema de asignación
de salones en la Facultad de Ingeniería de la Universidad Nacional de Colombia es presentado, se da una
explicación detallada del mismo de las partes que lo componen y se presenta una breve revisión acerca del
estado de implementación del mismo. El capítulo cuatro presenta resultados experimentales del algoritmo
de asignación diseñado, parte esencial del modelo de optimización propuesto.
Finalmente, en el capítulo cinco concluye el documento, las conclusiones y futuras investigaciones son
presentadas.
5
Capítulo 2
Estado del arte
2.1 Programación de horarios de clase
El problema de programar horarios y asignar salones de clase no es nuevo, por décadas este problema ha
sido sujeto de intensas investigaciones por tanto existe gran cantidad de literatura en el campo de
investigación de operaciones al respecto (11; 12; 13; 14; 15), esta clase de problema es un caso particular
de un conjunto más general de problemas conocidos como Scheduling o problemas de programación (16),
en términos generales scheduling puede describirse como la asignación de eventos o tareas a diferentes
recursos en bloques horarios con el objetivo de minimizar el costo total del conjunto de recursos usados
(17). Ejemplos de este tipo de problemas se pueden encontrar en diferentes ámbitos: programación de
transportes, ruteo de vehículos, programación de personal, programación de hospitales, programación de
máquinas, etc. Así, el termino scheduling cubre todos los aspectos de la actividad de asignar recursos y al
mismo tiempo satisfacer algunos objetivos predeterminados. Sin embargo, debido a la enorme cantidad
de problemas al respecto, se hace necesario clasificar el problema de programación en actividades
especializadas, como Timetabling, término que hace referencia a la asignación de recursos a objetos
ubicados en espacio-tiempo, sujeto a restricciones para satisfacer un conjunto deseable de posibles
objetivos (17). Class Timetabling y Exam Timetabling son ejemplos de este tipo de problemas donde todas
las restricciones duras deben ser satisfechas para generar una solución válida. En particular el problema
que nos atañe se conoce como University Class Timetabling.
Muchos enfoques se han propuesto para resolver diferente variedad de problemas de timetable. Un rango
de problemas que van desde la construcción de horarios de exámenes de fin de periodo, hasta horarios
semestrales o anuales para colegios y universidades. Como una primera aproximación, las actividades de
programación académica se llevaban a cabo manualmente, típicamente se construía una programación
semestral y esta permeancia estática con solo pequeños cambios necesarios para refinar la programación
cada semestre o año; muchas universidades en el país por no decir todas lo hacen de esta manera incluida
en ese grupo está la Universidad Nacional de Colombia. Sin embargo, la naturaleza de la educación ha
cambiado considerablemente durante los últimos años, de la misma forma los requerimientos de la
programación académica se han complicado mucho más, tanto que la aproximación manual está dejando
2016 Universidad Nacional de Colombia, Sede Bogotá
6
de ser eficiente. Consecuentemente la necesidad por automatizar el proceso está creciendo por lo que el
desarrollo de un sistema de generación de programación académica que genera soluciones validas es
esencial. Como resultado, durante las últimas tres décadas, gran cantidad de artículos sobre
automatización para timetable han sido publicados. Sin embargo, pocas han sido las implementaciones y
menos las implementaciones exitosas. (18).
2.2 Revisión Literaria
Las primeras técnicas utilizadas en la solución de problemas de horarios se basaron en una simulación con
enfoque humano en la resolución del problema. Estas incluyen técnicas basadas en el incremento sucesivo
denominadas heurísticas directas. Estas técnicas se basan en la idea de crear un calendario parcial
mediante la programación de los cursos con más restricciones primero y luego extender esta a los demás
esta solución parcial curso por curso hasta que todos los cursos estuvieran programados (14). En el
siguiente los investigadores comenzaron a aplican técnicas generales como número entero y
programación lineal, coloreado de grafos y flujo de red para resolver el problema de programación. Por lo
tanto, los dos primeros trabajos publicados en la construcción de calendario usando estas técnicas
generales se atribuyen generalmente a Kuhn (19) y Haynes (20). Kuhn adopta un enfoque matemático, en
contraste con el papel de Haynes, que se concentra, en los aspectos más prácticos del problema y presenta
la programación de eventos para una conferencia. El interés en los generadores de soluciones de
programación aumentó drásticamente en la década de 1960, debido principalmente a la disponibilidad de
los ordenadores para llevar a cabo el "cálculo de números" requerido por los algoritmos desarrollados.
Fue en estos papeles que se discutió el primer uso de técnicas de pre análisis. Por ejemplo, Appleby, Blake
y Newman en 1960 (21) y Lewis en 1961 (22) usaron una técnica de pre análisis primitivo que involucra
argumentos de conteo heurísticos.
El primer enfoque no heurístico fue desarrollado por Gotlieb en 1963 (23) y presentado en el Congreso de
Munich IFIP, Gotlieb discutía sobre el ahora famoso proceso de reducción de la matriz de disponibilidad.
Este fue sin duda el primer documento sobre el enfoque de partición del conjunto y se vio reforzada por
Berghuis, Van der Heiden y Becker en 1964 (24), donde se introdujo el concepto de clases o maestros
virtuales para obtener el problema bipartito clásico. Csima en 1965 (25) incluye este problema básico en
un problema estocástico doble que usa seudo-clases. Además de esto, Csima y Gotlieb en 1964 también
tratan el problema de generar horarios como un problema de asignación de tres dimensiones,
considerando la estrecha relación entre el problema y el problema de la coloración de vértices. Este fue el
primer trabajo que considerar la relación especial ya conocida entre los diversos problemas de
programación. Con la ayuda del enfoque Gotlieb en 1963, ambos Becker en 1964 (26) y Baraclough en
1965 (27), simularon sus respectivas implementaciones con los cálculos a “mano". Normalmente estos
documentos se basan en un enfoque heurístico. Debido a este trabajo muchos otros trabajos siguieron el
que problema discutido, sin embargo, tenía muy pocos nuevos aportes.
Alrededor de la década de los años 60 algunos intentos de limitar el problema general considerando casos
ejemplo comenzaron a ser publicados. Un ejemplo de esto es el trabajo presentado por Lawrie en 1969
(28), desarrolló un modelo para el problema de horario escolar mediante el uso de un enfoque de
programación lineal entera. Durante la década de 1970 varios autores adoptaron el uso de enfoques
heurísticos para abordar el problema. Por ejemplo, Junginger en 1972 (29), proporcionó una reducción
del problema aplicándolo a un problema de transporte de tres dimensiones. Este intento teórico orientado
2016 Universidad Nacional de Colombia, Sede Bogotá
7
a la planificación a largo plazo, en términos de la utilización de una matriz de iteración de Boole, extendió
el concepto de las descripciones y relaciones integrales dobles utilizadas anteriormente.
Schmidt y Strohlein en 1973 (30) publicaron la primera bibliografía comentada en la literatura de
investigación programación de horarios, incluyendo más de 200 trabajos publicados anteriormente.
Predijeron que la generación de horarios por ordenador estaría fuertemente influenciada por los
dispositivos a la mano, y como la programación de horarios pasaría de manipulación remota en grandes
centros de cálculo a micro centros informáticos de propiedad de las escuelas y directamente a cargo de los
profesores en sus escritorios. Las principales técnicas generales que parecían haber sido frecuente en las
décadas de 1970 y 1980 tienen sus raíces en la inteligencia artificial y se basan en algoritmos soportados
por recocido simulado, búsqueda tabú y métodos de algoritmos genéticos. Trabajos en la literatura
describen típicamente una implementación de software sustancial y esto es apoyado por la presentación
de resultados de la aplicación del método en uno o más casos (14).
De Werra en 1985 (31) enumera los diversos problemas relacionados con la generación de horarios de
una manera formal y proporciona diferentes formulaciones en un intento por resolverlos. También
describió los enfoques considerados más importantes en ese momento, haciendo hincapié en la teoría de
grafos. Carter en 1986 (32) analizó una encuesta, que discute las aplicaciones reales de los horarios en
varias universidades. También dio detalles de una guía tutorial para los profesionales de la elección y el
diseño de un algoritmo para sus propias instituciones.
En 1986 Junginger, describió el trabajo de investigación realizado en Alemania para resolver el problema
programación de horarios en colegios y los enfoques subyacentes que estaban basados en heurísticas. En
particular, describió los diferentes productos de software implementado, y su uso real en diversas
instituciones. Corne en 1994 (33) presentó un estudio de la aplicación de algoritmos genéticos al problema
de generación de horarios, discutió las perspectivas futuras de tales enfoques y compararon los resultados
obtenidos con respecto a otros enfoques. Aunque hubo artículos publicados en los 90, utilizando técnicas
basadas en inteligencia artificial superiores, un nuevo enfoque apareció, también enraizada en Inteligencia
Artificial, que ha ganado prominencia en nuestro tiempo llamada Programación con satisfacción de
restricciones (CSP).
Abramson en 1991 (34) utilizó recocido simulado como una técnica de optimización. La posibilidad de
añadir componentes de costos fue discutida en un intento de incluir las más complejas restricciones en la
programación de horarios para colegios. También describe la forma como el componente de costo permite
a un componente ser más importante que otro. El implementó este en un sistema informático paralelo y
demostró que la velocidad del algoritmo de optimización como resultado. Cooper y Kingston en 1993 (35)
describen un programa informático que resolvió un problema dentro de un gran y altamente restringido
colegio sin simplificaciones. Un lenguaje de especificación de calendario, se estableció que ayudó a evitar
muchas limitaciones de una manera uniforme. Tsang, Mills, Williams, Ford, y Borrett en 1999 (36) discuten
la importancia de las técnicas de satisfacción de restricciones en la solución del problema generación de
horarios y proporciona una breve introducción a este campo. (14) proporcionó un estudio de las diferentes
técnicas utilizadas en la generación de horarios. técnicas de satisfacción de restricciones se incluyeron
como una importante adición a las herramientas que se utilizan en la solución del problema.
En las últimas décadas los temas relacionados con el problema de generación de horarios de clase se
concentraron principalmente en la línea de investigación de operaciones. Las técnicas utilizadas han sido
de naturaleza matemática, siendo los dos más comunes de programación lineal (LP) y de programación
2016 Universidad Nacional de Colombia, Sede Bogotá
8
entera (IP). En la década actual, la contribución de la inteligencia artificial ha proporcionado heurísticas
modernas prometedoras, como algoritmos genéticos, recocido simulado y Búsqueda Tabú (14).
Los Algoritmos Genéticos (AG) son una clase de algoritmos de búsqueda estocásticos que imitan la
selección natural mediante el uso de una versión computacional de la supervivencia del más apto (37). Es
un método de resolución de problemas que utiliza la genética como modelo para la resolución de
problemas, la aplicación de reproducción, de cruce, y la mutación de estos pseudo-organismos para que
puedan pasar los rasgos beneficiosos y de supervivencia de mejora a las nuevas generaciones (38). De una
manera similar, el recocido simulado (SA) se ha descrito como "un método de optimización aleatorio, que
acepta deterioros de la función objetivo con una probabilidad en función de un parámetro de control,
basado en una analogía física" (39). SA se ha demostrado que es una buena técnica para resolver
problemas de optimización combinatoria complejos. Debido a su propia naturaleza del muestreo a través
de todo el espacio de búsqueda, SA puede ser extensivo en uso de recursos computacionales, como
intentos de acelerar los algoritmos de recocido se han usado sistemas multiprocesador de memoria
compartida. Por el contrario, Búsqueda Tabú (TS) es una técnica meta-heurística que guía a un
procedimiento de búsqueda heurística local para explorar el espacio de soluciones más allá de optimalizad
local." Un meta-heurística se refiere a una estrategia principal que guía y modifica otras heurísticas para
producir una solución que va más allá de los que normalmente se generan en una búsqueda de
optimización local" (40). Debido a que es la "reducción" del espacio de búsqueda de un TS normalmente
genera una solución mucho más rápido que un método SA. Otra contribución de la Inteligencia Artificial
en la década de 1990 ha visto la luz, se trata de un nuevo enfoque para resolver los problemas de horarios
llamadas técnicas de satisfacción de restricciones.
Las técnicas de satisfacción de restricciones han demostrado ser un método de investigación productiva
para los investigadores en las áreas de inteligencia artificial, investigación de operaciones y programación
lógica. Poco a poco, un marco teórico llamado el problema de satisfacción de restricciones (CSP) ha
evolucionado (41). El proceso de satisfacción de restricciones involucra valores hallazgo para las variables
en el marco del problema, sujeto a restricciones en las combinaciones aceptables de valores. Como en
algunos casos es imposible resolver el problema completamente, un subconjunto del problema se resuelve
que se llama satisfacción de restricciones parcial. CSP se resuelven mediante diferentes versiones de
backtracking, que intentan mejorar la eficiencia de la búsqueda. El enfoque CSP permite una mayor
flexibilidad en la formulación del problema, que es ampliamente reconocido como un tema crucial en la
generación de horarios con éxito. En la mayoría de los casos es difícil de definir las limitaciones del
problema, ya que son claras y requieren muchos refinamientos. Este nivel de flexibilidad permite que los
sistemas CSP puedan ser aplicados a nivel práctico. Además, debido a la naturaleza misma de las
definiciones de CSP, los problemas de los intervalos de tiempo irregulares se pueden acomodar fácilmente.
En muchos trabajos revisados de la última década, se describen implementaciones de software
sustanciales. Además, esta se apoya en la presentación de resultados de la aplicación del método en uno o
más casos de prueba. Los resultados obtenidos se miden contra los resultados manuales, pero por
desgracia, la falta de una definición común de los diversos problemas y los puntos de referencia
ampliamente aceptados impide la comparación de los algoritmos entre sí. La complejidad computacional
de los sistemas propuestos se determina solamente a través de tiempo de cálculo. Sin embargo, es difícil
establecer comparaciones como hardware varía de un caso a otro. Además, parece que hay una diferencia
sustancial entre la discusión teórica y la implementación del software para probar los casos en contraste
con la obtención de los horarios eficaces y realistas que se pueden utilizar en las operaciones diarias. Por
otra parte, la aplicación práctica se encuentra limitada por sucesos que no están previstos en la teoría,
2016 Universidad Nacional de Colombia, Sede Bogotá
9
pero en la práctica es común encontrarlos. Algunos de los principales problemas que se producen se
enumeran a continuación:
Los estudiantes tienden a cambiar su matrícula con bastante frecuencia, incluso hasta la quinta
semana del semestre, lo que puede requerir la regeneración del calendario con la esperanza de
encontrar una solución factible.
La disponibilidad de profesores, que generalmente tienen que hacer malabarismos entre dos o
más puestos de trabajo, puede proporcionar una complejidad adicional al problema de calendario,
incluso después de que se ha generado.
La mayoría de las técnicas utilizadas para generar horarios asumen que los bloques horarios son
de igual longitud, sin embargo, en la realidad hay una serie de cursos que no se ajustan a ese marco
de tiempo, por lo tanto, normalmente una porción de la asignación se hace de forma manual. Esta
acción reduce la eficiencia de la aplicación de generadores de horarios automático.
La mayoría de los algoritmos no permiten una ordenación temporal de las franjas horarias de
enseñanza para el mismo curso. Lo que puede conducir a insatisfacción con el sistema
automatizado de generación de horarios.
Por lo tanto, con el objetivo de generar un horario que sea practico y efectivo, es necesario ser lo
suficientemente flexible como para superar los problemas que se listaron anteriormente.
2.3 Modelos básicos para la programación de cursos
En su forma más simple, la programación de horarios consiste en asignar un bloque horario y salón de
clase a cada asignatura que se desea programar, considerando que existe una serie de requerimientos y
restricciones que deben cumplirse para permitir el normal funcionamiento de las instituciones
universitarias y algunas otras que no son de obligatorio cumplimiento, pero de ser posibles es deseable
que se cumplan. Dada la naturaleza combinatoria del problema, su solución no es nada trivial, por lo que
enfoques manuales basados en la prueba y error son ineficientes en escenarios caracterizados por una
enorme cantidad de cursos y salones de clase. Por ejemplo, (17) muestra que cuando se impone la
condición que los cursos deben mantener el mismo salón de clase para todas las sesiones, el problema se
transforma en NP-Complejo.
Uno de las perspectivas de solución más frecuentemente utilizadas para modelar el problema se basa en
modelos de programación lineal. En este sentido, (31) es uno de los primeros trabajos seminales de esta
área, el cual muestra una serie de modelos de optimización lineal que han servido de inspiración para una
serie de aplicaciones. Cabe destacar que además de los métodos exactos, se han propuesto diversos
enfoques heurísticos para resolver el problema de programación de horarios. Este tipo de enfoque busca
aproximar la solución óptima del problema mediante diferentes procedimientos. Los enfoques de solución
basados en heurísticas pueden ser divididos en 4 tipos (42), así:
1) Métodos Secuenciales: este tipo de métodos asignan cada curso en un bloque horario válido de
manera secuencial, tal que, en el mismo bloque, no existan conflictos horarios con otros cursos
que deban ser inscritos por un mismo grupo de estudiantes. Este tipo de enfoque generalmente se
formula como un problema de grafos, en donde los cursos son representados como vértices y los
conflictos horarios son representados mediante los arcos. Por ejemplo, si algunos estudiantes
tienen que asistir a dos eventos se incluye un arco entre los nodos que representa este conflicto.
2016 Universidad Nacional de Colombia, Sede Bogotá
10
Por tanto, la construcción de un calendario libre de conflictos puede ser modelado como un
problema de coloración de grafos. Cada período de tiempo en el horario corresponde a un color
en el problema de coloración de grafos y los vértices de un gráfico son de coloreados de tal manera
que no hay dos vértices adyacentes con el mismo color. Esta idea fue extendida por (42), quienes
presentan una meta-heurística que resuelve el problema de grafos utilizando la técnica Tabú
Search.
2) Métodos de Clúster: En este tipo de método se contemplan dos etapas secuenciales. En una primera
etapa particionan el conjunto de cursos en grupos que satisfacen las restricciones duras del
problema y, en una segunda etapa, se programan los cursos en los diferentes bloques horarios
tratando de satisfacer las restricciones blandas. Cabe destacar que una debilidad de este tipo de
enfoque es que los grupos de cursos se forman y fijan al comienzo del procedimiento lo que puede
provocar que la programación horaria sea de baja calidad.
3) Métodos basados en restricciones: En este tipo de enfoque, el problema se modela como un
conjunto de variables (eventos) y los valores (recursos como salones, periodos, docentes) tienen
que ser asignados para satisfacer una serie de restricciones. Por lo general una serie de reglas es
definen para la asignación de recursos a eventos. Cuando hay una regla que es aplicable a la
solución parcial actual se realiza un retroceso hasta que se encuentre una solución que satisfaga
todas las restricciones
4) Meta-Heurísticas: las meta-heurísticas han sido ampliamente utilizadas para resolver problemas
de programación horaria de cursos. Entre los principales desarrollos se puede mencionar, por
ejemplo: Recocido simulado, búsqueda Tabú, algoritmos genéticos, redes neuronales artificiales,
colonia de hormigas y, algunos enfoques híbridos que mezclan dos meta-heurísticas particulares.
En general, las meta-heurísticas comienzan con una o más soluciones factibles iniciales del
problema y, luego mediante diferentes estrategias de búsqueda, tratan de mejorar la calidad de la
solución evitando caer en mínimos locales. Las meta-heurísticas pueden encontrar soluciones de
buena calidad, sin embargo, a menudo tienen un considerable costo computacional y no permiten
saber qué tan lejos se encuentra de la solución óptima del problema.
2.3.1. Algoritmos básicos aplicados al problema de programación de horarios
Actualmente existe una gran variedad de algoritmos para abordar el problema de programar horarios de
clase. A continuación, se presenta una revisión general de estos algoritmos, En aras de la brevedad solo se
presentan los algoritmos fundamentales, nos los enfoques híbridos, (más detalles de este tipo de
algoritmos encuentran presentan (43; 44)). Las principales técnicas de solución encontradas en la
literatura son:
2.3.1.1. Programación Lineal
Las técnicas de programación lineal, fueron las primeras técnicas aplicadas al problema de definición
horarios, fueron desarrollas desde un planteamiento fundamentalmente matemático. La programación
matemática es aplicable a la clase de problemas caracterizados por un gran número de variables que se
cruzan dentro de los límites impuestos por un conjunto de condiciones de restricción (43). La
2016 Universidad Nacional de Colombia, Sede Bogotá
11
"programación" palabra significa en este contexto es sinónimo de planificación. Este esquema de la
programación se desarrolló durante la Segunda Guerra Mundial en relación con la búsqueda de estrategias
óptimas para llevar a cabo el esfuerzo de guerra y se utiliza después en los campos de la industria, el
comercio y los servicios gubernamentales. La programación lineal (LP) es el subconjunto dentro de la
programación matemática se ocupa de la asignación eficiente de los recursos limitados a actividades
conocidas, con el objetivo de alcanzar el objetivo deseado, tal como maximizar los beneficios o minimizar
los costos (43). Por otra parte, la Programación Entera (IP) se refiere a la solución de los problemas de
programación matemática en la que parte o la totalidad de las variables puede asumir sólo valores enteros.
Aunque los métodos de LP son muy valiosos en la formulación y resolución de problemas relacionados
con el uso eficiente de los recursos limitados, no se limitan solamente a estos.
La construcción de un modelo de programación lineal implica tres etapas sucesivas: En la primera etapa
se identifican las variables de decisión desconocidas o independientes. En la segunda etapa se identifican
las limitaciones y la formulación de estas limitaciones como ecuaciones lineales. Por último, en la etapa
tres, se identifica la función objetivo, como una función lineal de las variables de decisión.
Por ejemplo (14) presenta una formulación del problema de generación de horarios en términos de
programación lineal, así:
Hay 𝑞 asignaturas, representadas como 𝑆1 … . . 𝑆𝑞 y cada asignatura 𝑆𝑖 está compuesta de 𝑛𝑖 cursos. Por
otro lado, hay 𝑟 planes de estudio representados como 𝐾1 … . . 𝐾𝑟 , en el cual cada plan de estudios está
definido como un grupo de asignaturas que tienen estudiantes comunes. Esto significa que la asignatura
𝐾𝑖 debe ser programada en diferentes periodos de tiempo. Si el número de cursos en un periodo de tiempo
es 𝑝 y 𝑀𝑘 es el máximo número de cursos que pueden ser programados en el periodo de tiempo del curso
es 𝑘 , donde 𝑘 es el número de salones disponible en un periodo de tiempo, entonces la formulación del
problema de programación de horarios en términos de programación lineal es la siguiente:
𝐸𝑛𝑐𝑢𝑒𝑛𝑡𝑟𝑒
𝑦𝑖𝑘 (𝑖 = 1 … 𝑞 ; 𝑘 = 1 … 𝑝)
𝑇𝑎𝑙 𝑞𝑢𝑒:
∑ 𝑦𝑖𝑘 = 𝑘𝑖 (𝑖 = 1 … 𝑞)
𝑝
𝑘=1
(1)
∑ 𝑦𝑖𝑘 ≤ 𝑀𝑘 (𝑘 = 1 … 𝑝)
𝑝
𝑘=1
(2)
∑ 𝑦𝑖𝑘 ≤ 1 (𝑙 = 1 … 𝑟; 𝑘 = 1 … 𝑝)
𝑞
𝑖∈𝑘𝑙
(3)
𝑦𝑖𝑘 ∈ {0,1} (𝑖 = 1 … . 𝑞; 𝑘 = 1 … 𝑝) (4)
Donde 𝑦𝑖𝑘 = 1 es interpretado como si un curso de una asignatura 𝑆1 es programado en el periodo de
tiempo del curso 𝑘, y 𝑦𝑖𝑘 = 0 de otra forma.
2016 Universidad Nacional de Colombia, Sede Bogotá
12
El conjunto de limitaciones de (1), impone que cada asignatura está compuesta por el numero correcto de
cursos. El conjunto de limitaciones de (2), fuerza a que cada periodo de tiempo no tenga mas cursos que
salones. El conjunto de limitaciones de (3), previene conflictos entre cursos que son programados en el
mismo periodo de tiempo.
En 1970, la programación entera(IP), fue catalogada como menos eficiente que la programación linear (LP)
para resolver problemas de optimización, pero todavía es considerada buena técnica de solución.
2.3.1.2. Satisfacción de restricciones
El método de satisfacción de restricciones ha demostrado ser un área de investigación muy productiva
para los investigadores en las áreas de inteligencia artificial, investigación operativa, y la programación
lógica (45). Más recientemente un método teórico llamado Programación de Satisfacción de Restricciones
(CSP) ha evolucionado y se ha definido. El proceso de satisfacción de restricciones involucra valores
hallazgo de variables del problema sujetas a restricciones sobre las combinaciones aceptables de valores.
La satisfacción de todas las restricciones a veces puede dar lugar a conflictos. En estos casos las
restricciones tienen que ser priorizados de manera que las limitaciones más importantes son satisfechas
en primer lugar. Por otra parte, la satisfacción de algunas limitaciones también podría dar lugar a
conflictos con el objetivo establecido. Por lo tanto, en algunos casos es imposible resolver el problema por
completo y por lo tanto un subconjunto del problema se resuelve que se llama satisfacción de restricciones
parcial (45).
Los problemas de satisfacción de restricciones (CSP) involucran un conjunto de variables del problema,
un dominio de los valores posibles para cada variable y un conjunto de restricciones que especifican qué
combinaciones de valores son aceptables (41). Una solución, especifica una asignación de un valor a cada
variable que no viola ninguna de las restricciones (45). Un gran número de problemas en Inteligencia
Artificial (AI) y otras áreas de la informática se puede ver como casos especiales de CSP. Algunos ejemplos
son la visión artificial, programación de horarios, razonamiento temporal, problemas de grafos, la
planificación de los experimentos genéticos, diseño de circuitos, diseño y fabricación de máquinas.
Un problema de satisfacción de restricciones para la programación académica puede ser resuelto
parcialmente usando algoritmos de búsqueda que buscan mejores soluciones factibles y con la
comprobación de avance y propagación de restricciones. Una solución a CSP implica la asignación de
valores de los dominios de todas las variables tales que todas las restricciones son satisfechas. Una
solución al problema usando CSP la describe (46) ,así:
Cada plan de estudios presenta varias materias por semestre y cada asignatura tiene un numero especifico
de horas por semana. Cada lección se puede definir como las horas de reunión entre profesores y
estudiantes en un momento determina y en un lugar específico. Cada lección tiene una duración de un
periodo especifico de tiempo. Así, el problema de programación de horarios puede ser descrito, definido
como una asignación de tiempo 𝑡𝑗 , 1 ≤ 𝑗 ≤ 𝑚 y un salón 𝑟𝑘 , 1 ≤ 𝑘 ≤ 𝑝 a una lección 𝑠(𝑖) , 1 ≤ 𝑖 ≤ 𝑛
impartida por un profesor 𝐿(𝑆(𝑖)) tal que todas las restricciones 𝐶(𝑆(𝑖)) sean satisfechas. 𝐿(𝑆(𝑖)) y
𝐶(𝑆(𝑖)) son docentes y limitaciones de la lección respectivamente, mientras que 𝑚, 𝑝, 𝑛 son variables
infinitas. Así el problema general de programación de horarios de clase se puede representar como, un
conjunto de variables finita 𝑋1 … . . 𝑋𝑛, por cada variable 𝑋𝑖 un conjunto de dominios 𝐷1 … . . 𝐷𝑛 contienen
posibles valores de 𝑋𝑖. Un finito conjunto de limitaciones, 𝐶1 … . . 𝐶𝑞 representa la relación entre variables.
2016 Universidad Nacional de Colombia, Sede Bogotá
13
Una solución a la CSP implica asignar valores de los dominios de todas las variables tales que todas las
restricciones sean satisfechas. En términos de CSP, un problema de horarios se puede formular mediante
la representación de un intervalo de tiempo y una sala de una clase como variables del CSP, los intervalos
de tiempo disponibles y las habitaciones como los valores de CSP, mientras que las restricciones son las
diversas relaciones entre lecciones. Por lo tanto, el modelo CSP para los problemas de horarios se puede
formular al decidir las variables, los valores y limitaciones. CSP es una herramienta de toma de decisiones
que satisface todas las limitaciones y sus principales ventajas son las siguientes:
1) Propagación de restricciones reduce el espacio de búsqueda y toma menos tiempo buscar
2) Los requerimientos de memoria son pequeños ya que el espacio de búsqueda es reducido.
3) Todos los recursos disponibles son representados en la forma de limitación y desde el usuario
preferencias y requerimientos pueden ser fácilmente satisfechos.
2.3.1.3. Algoritmos generitos y evolutivos
Los algoritmos evolutivos (EA) son una clase de búsqueda y optimización de algoritmos probabilísticos
directos, recogidos a partir del modelo de la evolución orgánica. Un algoritmo genético (GA) es un tipo de
EA y está considerada como el EA más ampliamente conocido en los últimos tiempos. GA es una clase de
algoritmo estocástico de búsqueda basado en la evolución biológica que imita la selección natural
mediante el uso de una versión automatizada de la "supervivencia del más apto" análoga a la estrategia de
búsqueda. Se trata de utilizar el método de optimización que utiliza la genética, aplica las reglas de
reproducción, cruce y mutación a pseudo-organismos de modo que estos puedan pasar rasgos
beneficiosos y de supervivencia de mejora a las nuevas (generación.
Una visión abstracta de la solución del problema usando GA puede ser ilustrada como sigue (47):
genere una población inicial, G(t=0)
evalué la función de aptitud f[G(0)]
t = 0
repita
t = t + 1
genere G(t) usando G(t-1)
evalué f[G(t)]
hasta que se encuentre una solución aceptable o la población converja
fin
La representación del problema de programación de horarios en GA es un problema muy específico. El
siguiente es un esquema de la representación del problema presentado por (48):
3 7 0 11 5 0 5 1 0 9 9 1
Asignatura 0 Asignatura 1 Asignatura 2…… Asignatura i
a b c
Donde a es el índice del salón, b es el índice del día y c es el índice de la sesión. La combinación de salón,
día y sesión determina donde la asignatura es programada.
Se afirma que GA tiene mayor capacidad que cualquier otro método de búsqueda y que tiene mejores
resultados posibles. Algunas aplicaciones donde el GA se ha utilizado con éxito son circuitos analógicos,
lógica difusa, y redes neuronales.
2016 Universidad Nacional de Colombia, Sede Bogotá
14
2.3.1.4. Recosido simulado
El recocido simulado (SA) es una técnica de optimización de búsqueda local aleatoria, utilizada para
encontrar soluciones a los problemas de optimización. SA es muy intensivo en recursos y uno de sus
puntos en contra es su requisito de utilizar una gran cantidad de tiempo de cálculo para la obtención de
una solución óptima. Como tal, algunos intentos de acelerar los algoritmos de recocido se han basado en
sistemas multiprocesador de memoria compartida, y paralelización para ciertos problemas en sistemas
multiprocesador de memoria distribuida.
La aplicación del problema programación de horarios de clase usando SA es un procedimiento
relativamente sencillo. Los átomos son reemplazados por elementos y la energía del sistema se sustituye
por los costes horarios. se hace una asignación inicial en la que los elementos se colocan en un período
elegido al azar. El costo inicial y la temperatura inicial se calculan. El costo se utiliza para reflejar la calidad
del horario y la temperatura se utiliza para controlar la probabilidad de un aumento en el costo. En cada
iteración se escoge un período al azar, llamado desde el período y un elemento seleccionado al azar de ese
período. Otro período se elige al azar, llamado el período. El cambio en el costo se calcula entonces a partir
de estos dos componentes (34). Un ejemplo de este proceso con SA lo presento (34) , el objetivo es
disminuir el costo de una solución:
Calcule una temperatura inicial
Mientras (costo<>0) y el horario no este congelado repita
Seleccione una tupla Tn (clase, salón, periodo)
Seleccione un nuevo valor para Periodo llamado Periodo’
Evalué el costo de remover esa tupla del Periodo
Evalué el costo de insertar esa tupla en el Periodo’
Calcule el costo del cambio
Si el costo ≤ 0 o el costo del cambio es aceptable a esa temperatura, entonces
acepte el cambio y actualice el costo
Calcule la nueva temperatura
fin
2.3.1.5. Búsqueda Tabú
La búsqueda Tabú es una técnica meta-heurística que guía a un procedimiento de búsqueda heurística
local para explorar el espacio de soluciones más allá de optimalidad local (49). Formalmente, un meta-
heurística se define como una estrategia principal que guía y modifica otras heurísticas para producir
soluciones más allá de los que normalmente se generan en una búsqueda de la optimización local en
problemas de optimización (40). Los procedimientos meta-heurísticos han mejorado enormemente
debido a los avances en los últimos años, sobre todo debido a los desarrollos de nuevas implementaciones
de TS que son más eficaces en la solución de problemas difíciles, de lo que se considera posible (49).
El diseño y desarrollo inicial en el TS comenzaron a finales de 1960 y principios de 1970. Glover produjo
la actual forma de TS en su documento "Caminos de futuro de la programación entera y enlaces a la
Inteligencia Artificial". La investigación actual indica que TS ha convertido en un enfoque de optimización
bien establecido que se está extendiendo rápidamente en varios campos nuevos (40).TS ayuda a resolver
problemas en un área amplia de campos, tales como la planificación de recursos, las telecomunicaciones,
análisis financiero, la programación de horarios, la planificación del espacio, la distribución de energía, la
ingeniería molecular, la logística, la clasificación de patrones, fabricación flexible, gestión de residuos, la
exploración minera, biomédica, y decenas de otros problemas (40).
2016 Universidad Nacional de Colombia, Sede Bogotá
15
El método TS fue motivado en parte por la observación del comportamiento humano que parece operar
con un elemento de azar que lleva a un comportamiento inconsistente dado circunstancias similares. El
método TS funciona de esta manera con la excepción de que temas nuevos no se eligen al azar. En cambio,
el TS procede de acuerdo con la suposición de que no hay ningún punto en la aceptación de una nueva
solución de (mala) a menos que sea para evitar un camino ya investigado. Esto asegura que las nuevas
regiones del espacio de la solución de un problema se investigarán con el objetivo de evitar los mínimos
locales y que en última instancia debe conducir a la solución deseada. (50).
TS comienza por la búsqueda de un mínimo local. Para evitar volver sobre los pasos utilizados, el método
registra los movimientos recientes en una o más listas tabú. La intención original de las listas no era
impedir un movimiento anterior, sino más bien asegurarse de que no se invirtieron movimientos. Las listas
tabú son de naturaleza histórica y forman el núcleo de la memoria de búsqueda tabú. El papel de la
memoria puede cambiar a medida que avanza el algoritmo. En la inicialización el objetivo es hacer una
amplia exploración del espacio de soluciones, conocida como la "diversificación", pero a medida que se
identifican lugares candidatos la búsqueda se centra más para producir soluciones óptimas locales en un
proceso de "intensificación". En muchos casos, las diferencias entre las distintas implementaciones del
método de Tabú tienen que ver con el tamaño, la variabilidad y capacidad de adaptación de la memoria
Tabú a un dominio de problema particular.
Hertz en 1991 (51), un algoritmo general de la búsqueda Tabú, a continuación, se describe:
Inicio
S:= solución inicial en X
nbiter := 0 {current iteration}
bestiter := 0 {iteration when the best solution has been found}
bestsol := s {best solution}
inicialice la función de aspiración A
Mientras ( f(s)> f* ) y (nbiter-bestiter<nbmax) repita
nbiter := nbiter +1
genere un conjunto V* de soluciones s en n(s) tal que A(f(s))>= f(s)
seleccione una solucion s* minimizando f sobre V*
actualice la función de aspiración A y la lista tabu T
Si f(s*) < f(bestsol) entonces
bestsol := s*
bestiter := nbiter
s:= s*
fin
TS se basa en conceptos que unen los campos de la inteligencia artificial y la optimización. Además de
recocido simulado (SA) y Algoritmos Genéticos (GA), TS se evaluó en el informe ampliamente referenciado
por el Comité para la próxima década de Investigación de Operaciones por ser "extremadamente
prometedor" para el tratamiento futuro de aplicaciones prácticas (40).
16
Capítulo 3
Modelo de optimizacion
3.1 El problema de investigación
3.1.1. El contexto
Como demuestran estudios previos la actividad académica de la Facultad de Ingeniería durante la última
década ha experimentado un crecimiento considerable y parece mantenerse esa tendencia: (19) presenta
y analiza una revisión histórica de la evolución de indicadores relacionados, con estudiantes, actividad
académica, planta docente, numero de admitidos, etc. (22) presenta un modelo matemático sobre el
tránsito de los estudiantes a través su plan de estudios y se analiza el impacto que esto tiene sobre la
actividad académica de la facultad de ingeniería. Este incremento impacta directamente, sobre el proceso
de programación académica, incrementado su complejidad.
Por otra parte, a pesar que la demanda de cupos está en aumento la planta física y la planta docente
permanecen inmutables al tiempo. En este panorama es urgente encontrar una solución que a corto plazo
nos permita sostener el sistema y que nos dé la posibilidad de postergar inversiones en infraestructura y
personal docente a mediano y largo plazo.
3.1.2. EL proceso de programación
Históricamente el proceso de programación de cursos y asignación de salones es realizado manualmente
basado en ensayo y error. La facultad cuenta con un grupo de personas responsables de la programación
académica, por lo general existe una persona por departamento, el proceso es lento y tedioso con tiempos
de ejecución de alrededor de 4 semanas. El tiempo de ejecución es definido como el tiempo necesario para
programar el total de las asignaturas de un semestre académico, en términos generales se puede dividir
en las siguientes tres etapas:
Recolección de data necesaria, lo cual requiere en promedio 1 semana.
2016 Universidad Nacional de Colombia, Sede Bogotá
17
Construcción de horarios y generación de reportes, lo cual requiere en promedio de 1 a dos
semanas.
Validación del horario programado con directivos de la facultad, lo cual requiere en promedio 1
semana.
A grandes rasgos el proceso de construcción de horarios consiste en tomar una plantilla base de semestres
anteriores y refinarla de modo que se ajuste al periodo académico siguiente, sin embargo, el proceso no es
susceptible de errores, de hecho, no es poco frecuente que dos asignaturas se solapen en el mismo espacio-
tiempo ya sea por falta de sinergia entre diferentes programadores o por un error humano de un solo
programador. También existen casos de programación de cursos en espacios no disponibles o inexistentes.
Estos problemas afectan negativamente a la facultad y generalizan una percepción de desorganización que
dañan la imagen de la institución. Por otra parte, estos conflictos generados por mala programación
incrementan los costos operacionales ya que es necesario hacer una reprogramación.
3.1.3. Panorama actual
Según los últimos datos reportados por la Dirección Nacional de Admisiones (19), la Dirección Nacional
de Personal (20), datos obtenidos directamente de la División de Registro y trabajos de campo realizados
durante esta investigación (21), la Facultad de Ingeniera de la Universidad Nacional de Colombia, sede
Bogotá cuenta con 26 programas curriculares: 10 programas de pregrado y 16 programas de postgrado,
los cuales están soportados por una planta docente de 373 profesores que representan un 14.36% de la
planta docente de toda la sede y una planta física de 150 aulas de clase y 45 Laboratorios. Por otra parte,
para el periodo académico 2015-II, se ofrecieron 492 asignaturas para suplir una demanda de 7758
estudiantes de pregrado y postgrado.
Las tablas 3.1-1 y 3.1-2 muestra en forma agregada una visión de la programación académica de la facultad
de ingeniería para el periodo académico 2015-II, en la Tabla 3.1-1 se presenta una perspectiva global desde
el punto de vista del uso de recursos, basados en la información que nos brinda esta tabla podemos deducir
las siguientes conclusiones:
Los programas de pregrado representan cerca del 80% de la carga académica soportada por la
facultad de ingeniería durante el periodo académico 2015-II.
El plan de estudios de ingeniería química fue el más demandado durante periodo académico
2015-II.
Existe una relación proporcional entre el número de asignaturas ofertadas y el número de
recursos utilizados para suplir esa demanda, aunque no es una relación lineal.
En términos de utilización de recursos los programas de Ingeniería Civil e Ingeniería Industrial
son los que representan la mayor carga para el sistema.
Existe una relación proporcional entre el número de estudiantes que mantiene un plan de estudios
y la carga que representa para el sistema en términos de utilización de recursos.
2016 Universidad Nacional de Colombia, Sede Bogotá
18
La relación de reusó de personal docente de 2.3 (859:373) relación que se obtiene al comprar el
número total de docentes necesarios para dictar las asignaturas ofrecidas con el número total de
docentes con los que cuenta la facultad, es decir, en promedio cada profesor está dictando 2
asignaturas al semestre para suplir la demanda.
La relación de reusó de salones de clase de 3.8 (749:195) relación que se obtiene al comparar el
número total de salones necesarios para dictar las asignaturas ofrecidas con el número de salones
con los que cuenta la facultad, en otras palabras, en promedio cada salón de clase se utiliza para
dictar 4 asignaturas al semestre.
En la Tabla 3.1-2 se presenta una perspectiva global en relación al uso de del tiempo en la facultad de
ingeniera durante el periodo académico 2015-II, al respecto es importante resaltar algunas conclusiones:
Los programas de pregrado tienen una carga académica dos a tres veces mayor respecto a los
estudiantes de postgrado, en promedio un estudiante de pregrado recibe 3.3 horas de clase
semanal mientas que un estudiante de postgrado recibe solo 1.7 horas semanales de clase, en
promedio un estudiante de la facultad de ingeniería recibe 2.3 horas de clase, esos promedios
pueden verse afectados por cerca de 2000 estudiantes de pregrado y postgrado que inscribieron
la asignatura trabajo de grado, los se tomaron en cuenta para sacar el promedio.
Los estudiantes de ingeniería mecatrónica son los que reciben en promedio más horas de clase a
la semana.
En promedio una asignatura de la facultad de ingeniera ocupa 30.8 horas de clase a la semana, esto
considerando que cada asignatura está dividida en varios grupos.
En promedio un salón de clase en la facultad de ingeniería se usa 20.5 horas a la semana.
Las tablas 3.1-3, 3.1-4 y 3.1-5 presentan mapas de calor la programación académica agregada de la facultad
de ingeniería para una semana cualquiera del semestre académico 2015-II, la tabla 3.1-3 presenta la
programación únicamente de los programas de pregrado y la tabla 3.1-4 presenta únicamente la
programación académica de los programas de postgrado, la tabla 3.1-5 presenta la programación
académica completa que incluye los programas de pregrado y postgrado, con bases en estos mapas de
calor podemos llegar a las siguientes conclusiones:
En relación al número de asignaturas en un periodo de tiempo y el número de inscritos en ese
mismo periodo de tiempo se observa una relación directamente proporcional en todos los casos,
es decir a medida que aumenta el número de asignaturas aumenta el número de estudiantes
inscritos en un periodo de tiempo en particular.
El impacto de la programación académica de posgrado sobre la programación de toda la facultad
es menor, de hecho, se observa casi el mismo mapa de calor cuando se compara la programación
general con la programación únicamente de pregrado, este hecho ya lo anticipábamos
anteriormente y es muy importante ya que conocer esto no indica donde debemos centrar nuestra
atención.
Comparando la programación académica de postgrado y la de pregrado, se observa claramente
que la programación de postgrado tiene una mejor distribución de carga a lo largo de la semana,
2016 Universidad Nacional de Colombia, Sede Bogotá
19
sin embargo, se observa una sobrecarga en la franja de 7:00AM a 9:00AM en contraste se observa
que en la tarde en especial el viernes la carga del sistema es casi nula.
Respecto a la programación de posgrado
El número de inscritos incrementa a medida que aumenta los días de la semana de modo que el
lunes es el día de más concurrencia de estudiantes de postgrado a la facultad de ingeniería.
En promedia al día se dictan 24 cursos de postgrado y 227 estudiantes de postgrado concurren a
la facultad.
Respecto a la programación de pregrado
A lo largo del día existe una distribución irregular de la carga, pasando de estar sobrecargado en
la franja de 7:00AM a 9:00AM y paulatinamente a lo larga del día ir reduciendo la carga.
Desde el día viernes en la tarde hasta el sábado competo la carga es mínima.
A lo largo de la semana, los días martes, miércoles y jueves son los que más estudiantes concurren
a la facultad por tanto son los días que más estresan el sistema.
En promedio cada día concurren a la facultad 8140 estudiantes de pregrado para recibir clase en
263 asignaturas.
En resumen, con base a la programación académica de 2015-I, podemos concluir que:
La distribución de carga académica no es la más adecuada, se observan distribuciones de carga
irregulares que pueden ser corregidos con una mejor planeación de la programación académica.
Asumiendo que la disponibilidad diaria de un salón de clase es de 16 horas, desde las 6:00AM
hasta las 1:00PM y de 2:00PM a 10:00PM, y que la semana académica es de 6 días, se puede llegar
a la conclusión que la disponibilidad horaria de un salón de clase es de 96 horas a la semana. Y
conociendo que en promedio un salón de clase de la facultad de ingeniería es utilizado 30.8 horas
semanales, podemos encontrar una relación de eficiencia promedio del uso de los salones, así:
𝑈𝑠𝑜𝑆𝑎𝑙𝑜𝑛 = 𝑢𝑠𝑜 [ℎ]
𝑑𝑖𝑠𝑝𝑜𝑛𝑖𝑏𝑖𝑙𝑖𝑑𝑎𝑑 [ℎ]=
30.8
6 𝑑𝑖𝑎 ∗ 16ℎ
𝑑𝑖𝑎
= 32.08%
Esto quiere decir que un salón promedio en la facultad de ingeniería se usa solo un 32.8% del
tiempo disponible para su uso. A groso modo lo que refleja esta cifra es que hay un potencial de
uso de salones de más del 50% que no se está aprovechando.
2016 Universidad Nacional de Colombia, Sede Bogotá
20
Código Plan de Estudios No
Estudiantes No
Asignaturas
Número de Recursos Utilizados Relación de Utilización
No Docentes No Salones % Docentes % Salones
2879 INGENIERIA DE SISTEMAS 777 37 85 68 22.8% 34.9%
2542 INGENIERIA CIVIL 1164 42 92 83 24.7% 42.6%
2547 INGENIERIA MECANICA 771 37 87 74 23.3% 37.9%
2541 INGENIERIA AGRICOLA 415 31 43 42 11.5% 21.5%
2546 INGENIERIA INDUSTRIAL 492 28 48 42 12.9% 21.5%
2549 INGENIERIA QUIMICA 1166 36 92 83 24.7% 42.6%
2544 INGENIERIA ELECTRICA 615 36 63 68 16.9% 34.9%
2548 INGENIERIA MECATRONICA 486 20 47 30 12.6% 15.4%
2545 INGENIERIA ELECTRONICA 556 30 49 51 13.1% 26.2%
2505 INGENIERIA AGRONOMICA 648 52 81 70 21.7% 35.9%
2708 MAESTRIA EN INGENIERIA INDUSTRIAL 60 12 11 9 2.9% 4.6%
2562 MAESTRIA EN INGENIERIA AMBIENTAL 40 10 6 8 1.6% 4.1%
2704 MAESTRIA EN INGENIERIA QUIMICA 46 9 6 6 1.6% 3.1%
2709 MAESTRIA EN INGENIERIA MECANICA 60 10 20 7 5.4% 3.6%
2707 MAESTRIA EN TELECOMUNICACIONES 41 11 8 7 2.1% 3.6%
2706 MAESTRIA EN TRANSPORTE 23 5 10 8 2.7% 4.1%
2705 MAESTRIA EN RECURSOS HIDRAULICOS 51 11 17 22 4.6% 11.3%
2701 MAESTRIA EN INGENIERIA AGRICOLA 13 7 7 7 1.9% 3.6%
2703 MAESTRIA EN INGENIERIA ELECTRICA 50 11 18 11 4.8% 5.6%
2756 MAESTRIA EN INGENIERIA BIOMEDICA 22 6 9 9 2.4% 4.6%
2702 MAESTRIA EN INGENIERIA DE SISTEMAS 84 9 10 11 2.7% 5.6%
2865 MAESTRIA EN INGENIERIA ELECTRONICA 18 6 3 4 0.8% 2.1%
2698 MAESTRIA EN AUTO. INDUSTRIAL 58 16 21 11 5.6% 5.6%
2699 MAESTRIA EN ESTRUCTURAS 38 6 6 6 1.6% 3.1%
2700 MAESTRIA EN GEOTECNIA 64 14 20 12 5.4% 6.2%
Total 7758 492 859 749 230.3% 384.1%
Tabla 3.1-1: Resumen general de uso de recursos facultad de ingeniería, semestre 2015-II
2016 Universidad Nacional de Colombia, Sede Bogotá
21
Código Plan de Estudios No
Estudiantes No
Asignaturas No
Salones No Horas de
clase
Promedio semanal de horas de clase
Estudiante Asignatura Salón
2879 INGENIERIA DE SISTEMAS 777 37 68 2042 2.6 55.2 30.0
2542 INGENIERIA CIVIL 1164 42 83 2467 2.1 58.7 29.7
2547 INGENIERIA MECANICA 771 37 74 2338 3.0 63.2 31.6
2541 INGENIERIA AGRICOLA 415 31 42 1912 4.6 61.7 45.5
2546 INGENIERIA INDUSTRIAL 492 28 42 1817 3.7 64.9 43.3
2549 INGENIERIA QUIMICA 1166 36 83 2711 2.3 75.3 32.7
2544 INGENIERIA ELECTRICA 615 36 68 2244 3.6 62.3 33.0
2548 INGENIERIA MECATRONICA 486 20 30 2269 4.7 113.5 75.6
2545 INGENIERIA ELECTRONICA 556 30 51 2230 4.0 74.3 43.7
2505 INGENIERIA AGRONOMICA 648 52 70 1587 2.4 30.5 22.7
2708 MAESTRIA EN INGENIERIA INDUSTRIAL 60 12 9 123 2.1 10.3 13.7
2562 MAESTRIA EN INGENIERIA AMBIENTAL 40 10 8 57 1.4 5.7 7.1
2704 MAESTRIA EN INGENIERIA QUIMICA 46 9 6 99 2.2 11.0 16.5
2709 MAESTRIA EN INGENIERIA MECANICA 60 10 7 119 2.0 11.9 17.0
2707 MAESTRIA EN TELECOMUNICACIONES 41 11 7 83 2.0 7.5 11.9
2706 MAESTRIA EN TRANSPORTE 23 5 8 38 1.7 7.6 4.8
2705 MAESTRIA EN RECURSOS HIDRAULICOS 51 11 22 33 0.6 3.0 1.5
2701 MAESTRIA EN INGENIERIA AGRICOLA 13 7 7 44 3.4 6.3 6.3
2703 MAESTRIA EN INGENIERIA ELECTRICA 50 11 11 54 1.1 4.9 4.9
2756 MAESTRIA EN INGENIERIA BIOMEDICA 22 6 9 55 2.5 9.2 6.1
2702 MAESTRIA EN INGENIERIA DE SISTEMAS 84 9 11 121 1.4 13.4 11.0
2865 MAESTRIA EN INGENIERIA ELECTRONICA 18 6 4 29 1.6 4.8 7.3
2698 MAESTRIA EN AUTO. INDUSTRIAL 58 16 11 78 1.3 4.9 7.1
2699 MAESTRIA EN ESTRUCTURAS 38 6 6 43 1.1 7.2 7.2
2700 MAESTRIA EN GEOTECNIA 64 14 12 40 0.6 2.9 3.3
Total 7758 492 749 22633 2.3 30.8 20.5
Tabla 3.1-2: Resumen general uso del tiempo facultad de ingeniería, semestre 2015-II
2016 Universidad Nacional de Colombia, Sede Bogotá
22
Hora Cursos Inscritos Total
Lunes Martes Miércoles Jueves Viernes Sábado Lunes Martes Miércoles Jueves Viernes Sábado Cursos Inscritos
6:00 3 4 4 4 4 17 29 75 75 75 75 30 36 359
7:00 65 89 97 90 86 16 2,110 2,964 3,030 2,956 2,814 298 443 14,172
8:00 63 87 94 87 79 26 2,083 2,921 2,978 2,899 2,663 523 436 14,067
9:00 82 106 118 109 97 25 2,464 3,222 3,493 3,355 3,007 1,082 537 16,623
10:00 79 105 119 107 98 24 2,351 3,175 3,546 3,280 2,941 1,134 532 16,427
11:00 45 96 93 90 78 13 1,305 3,088 3,020 2,987 2,431 903 415 13,734
12:00 41 92 92 87 79 5 1,206 3,041 2,932 2,973 2,466 244 396 12,862
13:00 5 8 7 5 3 3 94 181 188 80 268 44 31 855
14:00 88 107 89 90 6 7 2,629 3,047 2,593 2,703 199 49 387 11,220
15:00 89 105 90 88 5 7 2,667 2,997 2,524 2,654 194 53 384 11,089
16:00 59 77 67 71 3 7 2,304 2,177 2,186 2,158 3 54 284 8,882
17:00 54 62 57 62 3 4 1,916 2,153 2,146 1,979 4 15 242 8,213
18:00 35 34 32 35 4 4 1,091 1,420 1,132 1,226 41 7 144 4,917
19:00 34 33 31 35 4 4 1,050 1,326 970 1,194 41 9 141 4,590
20:00 6 5 3 7 5 1 15 67 26 81 46 4 27 239
21:00 5 2 2 5 5 1 12 6 4 7 46 12 20 87
22:00 2 2 1 1 1 1 2 6 3 1 3 26 8 41
Promedio 44 60 59 57 33 10 1,372 1,874 1,814 1,800 1,014 264 263 8,140
Total 755 1,014 996 973 560 165 23,328 31,866 30,846 30,608 17,242 4,487 4,463 138,377
Tabla 3.1-3: Programación académica, pregrado - semestre 2015-II
2016 Universidad Nacional de Colombia, Sede Bogotá
23
Hora Cursos Inscritos Total
Lunes Martes Miércoles Jueves Viernes Sábado Lunes Martes Miércoles Jueves Viernes Sábado Cursos Inscritos
6:00 1 3 2 3 2 1 5 15 10 16 10 2 12 58
7:00 15 9 13 9 15 2 189 97 119 119 117 18 63 659
8:00 15 7 12 7 13 4 168 87 111 109 107 47 58 629
9:00 8 8 6 11 6 2 66 74 54 98 80 38 41 410
10:00 4 8 6 10 6 1 22 73 54 86 80 40 35 355
11:00 4 5 7 6 4 3 45 15 68 39 44 38 29 249
12:00 3 4 6 5 3 2 34 13 55 40 30 14 23 186
13:00 0 0 0 0 0 3 2 0 0 2 0 20 3 24
14:00 7 3 0 3 1 2 60 17 2 12 7 3 16 101
15:00 7 3 0 3 0 0 60 17 2 12 1 0 13 92
16:00 11 5 3 5 0 3 89 41 20 33 1 21 27 205
17:00 9 4 3 5 0 2 79 34 20 35 0 16 23 184
18:00 7 5 4 5 1 1 110 53 68 60 13 1 23 305
19:00 5 5 4 5 1 2 86 50 68 58 12 41 22 315
20:00 2 0 0 0 1 0 32 3 2 11 13 0 3 61
21:00 0 0 0 0 1 0 0 3 0 0 13 0 1 16
22:00 0 0 0 0 0 1 0 0 0 0 0 2 1 2
Promedio 6 4 4 5 3 2 62 35 38 43 31 18 23 227
Total 98 69 66 77 54 29 1,047 592 653 730 528 301 393 3,851
Tabla 3.1-4: Programación académica, postgrado - semestre 2015-II
2016 Universidad Nacional de Colombia, Sede Bogotá
24
Hora Cursos Inscritos Total
Lunes Martes Miércoles Jueves Viernes Sábado Lunes Martes Miércoles Jueves Viernes Sábado Cursos Inscritos
6:00 4 7 6 7 6 18 34 90 85 91 85 32 48 417
7:00 80 98 110 99 101 18 2,299 3,061 3,149 3,075 2,931 316 506 14,831
8:00 78 94 106 94 92 30 2,251 3,008 3,089 3,008 2,770 570 494 14,696
9:00 90 114 124 120 103 27 2,530 3,296 3,547 3,453 3,087 1,120 578 17,033
10:00 83 113 125 117 104 25 2,373 3,248 3,600 3,366 3,021 1,174 567 16,782
11:00 49 101 100 96 82 16 1,350 3,103 3,088 3,026 2,475 941 444 13,983
12:00 44 96 98 92 82 7 1,240 3,054 2,987 3,013 2,496 258 419 13,048
13:00 5 8 7 5 3 6 96 181 188 82 268 64 34 879
14:00 95 110 89 93 7 9 2,689 3,064 2,595 2,715 206 52 403 11,321
15:00 96 108 90 91 5 7 2,727 3,014 2,526 2,666 195 53 397 11,181
16:00 70 82 70 76 3 10 2,393 2,218 2,206 2,191 4 75 311 9,087
17:00 63 66 60 67 3 6 1,995 2,187 2,166 2,014 4 31 265 8,397
18:00 42 39 36 40 5 5 1,201 1,473 1,200 1,286 54 8 167 5,222
19:00 39 38 35 40 5 6 1,136 1,376 1,038 1,252 53 50 163 4,905
20:00 8 5 3 7 6 1 47 70 28 92 59 4 30 300
21:00 5 2 2 5 6 1 12 9 4 7 59 12 21 103
22:00 2 2 1 1 1 2 2 6 3 1 3 28 9 43
Promedio 50 64 62 62 36 11 1,434 1,909 1,853 1,843 1,045 282 286 8,366
Total 853 1,083 1,062 1,050 614 194 24,375 32,458 31,499 31,338 17,770 4,788 4,856 142,228
Tabla 3.1-5: Programación académica, pregrado y postgrado - semestre 2015-II
2016 Universidad Nacional de Colombia, Sede Bogotá
25
3.2 Descripción del modelo de optimización
3.2.1. La propuesta
Dada la naturaleza combinatoria del problema y su complejidad computacional, la cual es categorizada
como NP-Compleja, el enfoque basado en la solución manual de ensayo y error es considerado
naturalmente ineficiente en escenarios con gran número de cursos y salones de clase, como es el caso de
la facultad de ingeniería de la Universidad Nacional de Colombia. Por otra parte la optimización del
enfoque manual no es una tarea menos compleja, en aplicaciones en el mundo real, los métodos usados
deben estar direccionados no solo a la complejidad computacional sino también a una serie de factores
involucrados que varían en el tiempo, así como: las preferencias horarias del instructor, los prerrequisitos
del curso, la creación de nuevos cursos o nuevos programas académicos, la disponibilidad de los salones
de clase, la propia estructura del curso, etc. son temas que no se pueden dejar de lado cuando se está
pensando en una optimización aplicada a un caso real.
En este sentido no es sufriente con disponer un sistema computacional lo suficientemente avanzado para
entregar soluciones validas, es necesario complementarlo con un sistema de gestión de la información que
nos permita mantener actualizada los datos fuente para la generación de la programación académica y que
involucre en el proceso a todos los implicados en el procesos de programación académica que van desde
los encargados de la programación académica pasando por los directivos, hasta los profesores y
estudiantes y en general toda la comunica académica.
En respuesta a lo anterior esta tesis propone como modelo de optimización el Sistema Información para la
Programación Académica o SIPA por sus siglas en español. Como su nombre indica, SIPA es un sistema de
información, cuyo objetivo es optimizar el proceso de programación de asignaturas y asignación de
salones de clase, paralelamente busaca reducir costos operacionales en tiempo, personal y esfuerzo
necesarios para la generación de la programación académica semestre a semestre. El modelo propuesto
pretende centralizar toda la información necesaria para generar la programación académica, (relacionada
con salones, profesores, estudiantes, planes de estudio, políticas internas, pronósticos de demanda,
histórico de demanda, etc.), manteniendo un histórico de esta información que sirva para dos finalidades
especialmente: la primera es usar esta base de información para la generación de los horarios de clase y
en segunda instancia pero no menos importante que sirva de apoyo a nivel gerencial para toma de
decisiones.
3.2.2. Los sistemas de información y su importancia en el mundo actual
Durante los últimos años los sistemas de información (SI) constituyen una de las principales herramientas
de soporte y de competitividad de las organizaciones. En entornos cada vez más complejos gobernados
por la incertidumbre y el crecimiento exponencial de la demanda, donde la eficiencia en los procesos es de
vital importancia, Los sistemas de información han llegado para ayudarnos a adaptarnos a estos entornos
cambiantes. Si hasta ahora considerábamos como recursos básicos la tierra, el trabajo y el capital, ahora la
información aparece como otro insumo fundamental a valorar en las organizaciones.
Es extensa la documentación sobre organizaciones que han logrado ventajas competitivas basadas en las
tecnologías y sistemas de información. Incluso algunos sectores han visto modificada su estructura básica
2016 Universidad Nacional de Colombia, Sede Bogotá
26
como resultado de la introducción de los SI. El sistema financiero, por ejemplo, ha sufrido grandes cambios
asociados con estas tecnologías: la proliferación de nuevos productos, como el Cash Management Account,
nuevos canales como los ATM y, en general, nuevas formas de competir en el sector. Los sistemas de
reservas como el Sabre de American Airlines o el Apollo de United Airlines han modificado de forma
sustancial las barreras de entrada en el sector de líneas aéreas. Igualmente, la introducción del sistema
ASAP por parte de American Hospital Supply (actualmente Baxter Travenol) ha representado una
verdadera revolución en el sistema de pedidos de suministros hospitalarios. En estos sectores, como en
otros, los SI no solamente han sido una fuente de ventajas competitivas, sino que se han transformado en
una necesidad estratégica imprescindible para operar en los mismos. (23).
A la hora de definir un sistema de información existe un amplio abanico amplio de definiciones. Tal vez la
más precisa sea la propuesta por (23), en la cual un sistema de información se define como: “conjunto
formal de procesos que, operando sobre una colección de datos estructurada de acuerdo a las necesidades de
la organización, recopila, elabora y distribuyen selectivamente la información necesaria para la operación
de dicha organización y para las actividades de dirección y control correspondientes, apoyando, al menos en
parte, los procesos de toma de decisiones necesarios para desempeñar funciones de la organización de
acuerdo con su estrategia”.
El mayor beneficio de los sistemas de información es su capacidad para proporcionar a un usuario la
información necesaria para hacer cualquier tarea de manera efectiva y eficiente. Las bases de datos y
registros informáticos en papel proporcionan datos, pero los sistemas de información proporcionan los
datos adecuados acerca de las tareas de cada usuario en el formato que mejor se adapte al mismo. Los
sistemas de información pueden presentar los datos en tiempo real o históricos, según sea necesario, y se
adaptan a nuevas necesidades de información.
Todo sistema de información utiliza como materia prima los datos, los cuales almacena, procesa y
transforma para obtener como resultado final información, la cual será suministrada a los diferentes
usuarios del sistema, existiendo además un proceso de retroalimentación o “feedback”, en la cual se debe
valorar si la información obtenida se adecua a lo esperado, en la Figura 3.2-1 se presenta el modelo de 4
bloques que describe a groso modo un sistema de información(24).
Figure 3.2-1: Modelo de 4 bloques elementales para describir un sistema de información
2016 Universidad Nacional de Colombia, Sede Bogotá
27
3.2.3. El Sistema de Información para La programación Académica (SIPA)
De acuerdo a la clasificación definida por (25), SIPA es un sistema de información del tipo sistema de
soporte de toma de decisiones (DSS). Construido sobre un ambiente web, el sistema utiliza un modelo de
búsqueda local para generar soluciones de programación optimas basadas en una serie de restricciones.
Desde el punto de vista de su arquitectura, SIPA está compuesto por cinco módulos principales, los cuales
están representados en la figura 3.2-2. El primero es el módulo de interface de usuario, el cual es un
mecanismo de interacción entre el usuario y el sistema, donde el usuario puede chequear y ajustar los
parámetros del sistema y las opciones para administrar el mismo. A través de la interface, el usuario puede
definir los planes de estudio, especificar las características de los cursos en términos de recursos en
infraestructura y personal docente, también es posible especificar las restricciones.
Figure 3.2-2: Arquitectura general del Sistema de Información para la Programación Académica
El módulo de gestión de usuarios está encargado de administrar usuarios roles y permisos y dependiendo
de esto habilitar o deshabilitar características del módulo de interfaz de usuario, de modo que cada usuario
tenga la información necesaria para desempeñar su rol.
En tercer lugar, está el módulo de compilación de información, el cual se encarga de captar, filtrar,
transformar y almacenar la información necesaria para generar la programación académica. Algunos
ejemplos de data son: la disponibilidad de tiempo de los profesores, el tipo de salón, la disponibilidad de
los salones, los programas académicos, las características del curso, etc. Este módulo también está
2016 Universidad Nacional de Colombia, Sede Bogotá
28
encargado de mantener los registros históricos de la programación en semestres anteriores. Este módulo
tiene conexión directa con el SIA (Sistema de Información Académica), de forma que existe una
retroalimentación directa entre los dos sistemas. El sistema cuenta con varios filtros que rápidamente
descartar soluciones no factibles de modo que se reduzca el tiempo computacional necesario para
encontrar una solución.
El cuarto modulo, es el generador de programación, como su nombre lo sugiere este módulo tiene la tarea
de generar soluciones válidas de programación académica, baso en la oferta de cursos, disponibilidad de
recursos y las restricciones configuradas en el sistema. La comunicación entre este módulo y el SIA, es muy
importante ya que habilita una publicación automática de la programación académica.
Finalmente, el quinto módulo, el módulo de reportes está encargado de generar reportes a pedido,
reportes que van desde reportes gerenciales para toma de decisión de alto nivel(eficiencia en el uso de los
recursos, condiciones de los salones de clase, promedio de uso de los salones de clase, numero de salones
disponible en un periodo de tiempo, etc.), reportes históricos, hasta reporte de bajo nivel relacionados con
indicadores para evaluar la programación que ha sido generada por el sistema, así como valor de la función
objetivo, numero de variables y restricciones, tiempos computacionales para generar solución.
3.2.4. Avance de la implementación
La iniciativa SIPA ha sido bien recibida por la comunidad académica, desde su concepción hace cerca de
año y medio ha tenido el apoyo de la Dirección Académica y la División de Registro de la Universidad
Nacional de Colombia.
Figure 3.2-3: Screenshot de la vista de infraestructura universitaria del SIPA
2016 Universidad Nacional de Colombia, Sede Bogotá
29
Actualmente se encuentra en el proceso de implementación y puesta en producción, a la fecha se han
implementado tres de los cinco módulos que componen el sistema: el módulo de interfaz de usuario, el
modulo compilación de información y el generador de programación. El módulo de interfaz de usuario y
el módulo de compilación de información se encuentran en fase de preproducción en un servidor de
dedicado en la división de registro, por otra parte, el módulo de generación de programación actualmente
se encuentra en fase de pruebas. Se espera en para el próximo año tener el sistema complemente
implementado y puesto en producción a disposición de la comunidad académica en general.
La figura 3.2-3 es una impresión de pantalla de la vista de infraestructura universitaria del SIPA, esta vista
da la opción al usuario de consultar información relacionada con cada uno de los salones de Universidad
Nacional de Colombia, la siguiente es una lista de información que se puede consultar para cada uno de los
salones:
Nombre y código del salón.
Nombre y código del edificio donde está ubicada el salón.
Horario semanal del salón.
Imágenes del salón.
Ubicación del salón dentro del campus universitario.
Recursos de infraestructura con los que cuenta el salón y el edificio.
Indicadores de eficiencia del uso del salón y del edificio en relación con el número de horas que se
utiliza el salón a la semana.
Indicador de eficiencia en el uso del salón y del edificio para cada uno de los días de la semana.
30
Capítulo 4
Generador de programacion
Uno de los componentes centrales del SIPA es el modulo generador de programación, como se describió
anteriormente el objetivo de este componente es generar automáticamente una solución de la
programación académica del semestre, la solución por supuesto tiene que ser válida y debe durar el menor
tiempo posible y debe ser consistente con los lineamientos propuestos.
4.1 La elección del método
El problema en cuestión ha atraído la atención de cientos de investigadores en los últimos 30 años, existen
cientos si no miles de aproximaciones al problema, la elección del método de solución no es una tarea fácil,
la mayoría de los investigadores coinciden en no tener conceso hasta el momento a la hora de responder
a las preguntas: ¿Cual es mejor método de solución? o ¿Cual método es mejor que otro?, en general los
artículos publicados (26; 10; 13; 3; 8; 15; 4; 18), basan su elección, en preferencias del autor, mejor
adaptación al contexto universitario, o por tendencias predominantes en el momento.
En los últimos años, el problema de la programación de horarios en universidades ha sido resuelto usando
meta-heurísticas procedimientos que han demostrado ser muy útiles en otros problemas relacionados y
métodos secuenciales. (26) y (27) usaron Recocido Simulado, (2) aplicaron algoritmos de programación
lineal, (29; 30; 31; 32; 33) utilizaron Búsqueda Tabú. Los problemas propuestos por (33; 29) se asemejan
mucho a nuestro problema y considerando que ellos tuvieron éxito implementando el algoritmo en
problemas del mundo real, búsqueda Tabú fue el algoritmo seleccionado para el prototipo propuesto en
esta tesis. Es importante notar que búsqueda Tabú es una de las meta-heurísticas más populares por su
éxito en cuanto a implementaciones prácticas en el mundo real se refiere.
4.2 El algoritmo
El algoritmo que se describirá a continuación usa como principal método de optimización, el algoritmo
estándar de búsqueda tabú (34), con algunas modificaciones. En la figura 4.2-1 se observa diagrama de
flujo del algoritmo.
2016 Universidad Nacional de Colombia, Sede Bogotá
31
Figure 4.2-1: Diagrama de flujo del algoritmo
El proceso iterativo se dividió en dos fases, a continuación, se describen las fases que componen el
algoritmo:
a) Fase 1: Construir una solución inicial
En esta fase los cursos no asignados son divididos en bloques, bloques que son asignados a pares
binarios de espacio-temporales (periodos de tiempo-salón de clase). El proceso de asignación se
hace utilizando un algoritmo voraz. Ya que el numero combinaciones disponibles de periodos de
tiempo, salones de clase y cursos para todas las asignaturas es muy grande es proceso se dividió
en dos fases:
1) Fase 1.1: Cursos no asignados se dividen en bloques y son asignados a periodos de tiempo
1) Cada curso 𝐶𝑖 está compuesto por un número 𝑛 de bloques horarios que se puede
representar como 𝐶𝑖 = {𝐵𝑖1, 𝐵𝑖2, … . }
2) Con cada curso dividido en bloques 𝐵𝑖𝑗 , obtenemos una lista de bloques horarios
a ser asignada, esta asignación puede ser de diferentes formas de manera que
obtenemos una lista de asignación de periodos 𝐿𝑖𝑗 .
3) Seleccione un curso 𝐴𝑖− el cual tenga el menor número de formas de asignación
de periodos.
2016 Universidad Nacional de Colombia, Sede Bogotá
32
4) De todas las listas 𝐿𝑖𝑗 del curso 𝐶𝑖− , seleccione una forma de asignación del
periodo 𝑙𝑖𝑗𝑘 que influencia otros cursos lo menos posible. Es decir, que si el curso
𝐶𝑖 es dividido en bloques 𝐵𝑖𝑗 y es asignado a una forma de asignación del periodo
𝑙𝑖𝑗𝑘, el decremento del número total de formas de asignación del periodo del curso
𝐶𝑖 es el más pequeño.
5) Asigne el curso 𝐴𝑖− a la forma de asignación del periodo 𝐵𝑖𝑗 . Si todas las listas 𝐿𝑖𝑗
del curso 𝐴𝑖− están vacías, la forma de asignación de los bloques 𝐵𝑖𝑗 se realiza
aleatoriamente.
6) Actualice la información, remueva el curso 𝐴𝑖− y todas sus listas de asignación.
7) Si no quedan cursos por considerar continúe a la Fase 1.2, de lo contrario regrese
al primer paso de esta fase.
2) Fase 1.2: Cursos no asignados son asignados a salones
En esta etapa, los salones son asignados a los cursos usando el algoritmo voraz. El proceso
de asignación de salones es muy similar al proceso de asignación a periodos de tiempo de
la Fase 1.1
1) Para cada curso 𝐶𝑖, existe una lista de formas de asignación de salones, 𝑆𝑖.
2) Seleccione el curso 𝐶𝑖− el cuál tiene el número más pequeño de formas de
asignación de salones.
3) Selecciones la forma de asignación de salones 𝑠𝑖𝑗 de la lista 𝑆𝑖 del curso 𝐶𝑖 que
menos influencia tenga sobre otros cursos. Esto significa que si el curso 𝐶𝑖 es
asignado usando la forma de asignación 𝑠𝑖𝑗, la reducción en el número total de
formas de asignación de salones que cursos con cursos con solapamiento en el
tiempo con el 𝐶𝑖 sea el menor.
4) Asigne el curso 𝐶𝑖− a los salones de la forma de asignación del salón 𝑆𝑖.
5) Actualice la información de otros cursos
6) SI todos los cursos están asignados en salones continúe a la Fase 2, de lo contrario
regrese al primer paso de esta fase.
b) Fase 2: Aplicar el algoritmo de búsqueda Tabu para mejorar la solución inicial
En esta fase se aplica el algoritmo de búsqueda Tabu partiendo de la solución inicial configurada
en la fase 1, la principal clase de movimientos usados son movimientos individuales, sin embargo,
otro tipo de movimiento es usado cuando un numero consecutivo de movimientos improductivos
(un movimiento improductivo es un movimiento que no cambie la mejor solución encontrada)
suceda. A continuación, se describen los tipos de movimientos disponibles:
Movimiento Individual: Un movimiento individual requiere cuatro componentes: un curso
𝐶𝑖 , un bloque horario 𝑏 a mover del curso 𝐶𝑖 , un nuevo bloque de tiempo 𝑡 donde se
moverá 𝐵𝑖𝑗 cuando el movimiento sea concluido, y un nuevo salón 𝑠 . Es importante
destacar que solo se están considerando 𝐹𝑀.𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑎𝑙(𝑔𝑝𝑟𝑒) un subconjunto de los
vecindarios 𝑉𝑀.𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑎𝑙(𝑔𝑝𝑟𝑒𝑠) de la solución actual 𝑔𝑝𝑟𝑒𝑠 , para obtener
𝐹𝑀.𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑎𝑙(𝑔𝑝𝑟𝑒) se deben seguir los siguientes pasos:
1) Por cada bloque 𝐵𝑖𝑗 de cada curso 𝐶𝑖, revise todos los bloques de tiempo 𝑡 donde
el bloque 𝐵𝑖𝑗 pueda moverse sin violar las restricciones duras.
2016 Universidad Nacional de Colombia, Sede Bogotá
33
2) Seleccione un salón 𝑠 que esté disponible para el periodo de tiempo 𝑡 y sea lo
suficientemente espacioso para contener a todos los estudiantes del curso 𝐶𝑖, si el
salón 𝑠 existe, aplique el movimiento (𝐶𝑖 , 𝑏, 𝑡, 𝑠 ), solo si este movimiento no es
Tabu.
3) Inserte este movimiento en 𝐹𝑀.𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑎𝑙(𝑔𝑝𝑟𝑒)
Intercambio: en algunos casos un movimiento individual no mejora la actual solución y el
proceso de búsqueda se ve estancado, en esos casos un movimiento intercambio puede
ayudar a superar el inconveniente. Un movimiento de intercambio requiere 5
componentes: dos cursos 𝐶𝑖 y 𝐶𝑗 , dos bloques horarios 𝑏𝑖 y 𝑏𝑗 (el tamaño de 𝑏𝑖 debe ser
mayor o igual que el de 𝑏𝑗) y un número entero de forma de intercambio 𝑚. Si el tamaño
de 𝑏𝑖 es igual a el tamaño de 𝑏𝑗 , el valor de la forma de intercambio es siempre 1 (𝑚 = 1),
de lo contrario el valor de la forma intercambio está en un rango de 1 a 4 (𝑚 = [1,4]). Si 𝑡𝑖
y 𝑡𝑗 son los actuales bloques de tiempo de 𝑏𝑖 y 𝑏𝑗 respectivamente y 𝑡𝑖∗ , 𝑡𝑗
∗ los nuevos
bloques de tiempo luego de intercambio, los nuevos bloques de intercambio para cada
valor de intercambio, así:
𝑚 = 1 → 𝑡𝑖∗ = 𝑡𝑗 ; 𝑡𝑗
∗ = 𝑡𝑖
𝑚 = 2 → 𝑡𝑖∗ = 𝑡𝑗 − 1 ; 𝑡𝑗
∗ = 𝑡𝑖
𝑚 = 3 → 𝑡𝑖∗ = 𝑡𝑗 − 1 ; 𝑡𝑗
∗ = 𝑡𝑖 + 1
𝑚 = 4 → 𝑡𝑖∗ = 𝑡𝑗 ; 𝑡𝑗
∗ = 𝑡𝑖
Cuando el movimiento de intercambio es realizado, los movimientos individuales no son
considerados.
1) Lista Tabu
Se definió una lista Tabu para los movimientos individuales que contiene tres componentes: a
curso 𝐶𝑖 , un bloque horario 𝑏𝑖 y un viejo bloque de tiempo 𝑡𝑖 asignado a 𝑡𝑖 . Cuando un
movimiento es aplicado a la solución actual. Esta información es añadida a la lista Tabu y
existirá allí, por un numero 𝑇𝑛 de iteraciones. Un movimiento es tabú su curso, su bloque
horario y su nuevo periodo de tiempo están en la lista Tabu. Cada iteración, 𝑇𝑛 es calculado
aleatoriamente seleccionado en un rango de [0.25𝑇𝑏, 0.5𝑇𝑏] donde 𝑇𝑏 es la raíz cuadrada del
número de cursos.
2) Criterio de aspiración
El criterio de aspiración es el mismo usado en la mayoría de los artículos. Una solución vecina
𝑔𝑣 satisface el criterio de aspiración si y solo si 𝑓(𝑔𝑣) < 𝑓(𝑔𝑚𝑒𝑗𝑜𝑟). Siendo 𝑔𝑚𝑒𝑗𝑜𝑟 es la mejor
solución encontrada.
3) Criterio de parada
El proceso de búsqueda termina cuando suceda alguno de los siguientes casos:
Se supere el número máximo de iteraciones, configurado en 5000.
2016 Universidad Nacional de Colombia, Sede Bogotá
34
La mejor solución encontrada satisfaga todas las restricciones.
Se supere el número máximo de movimientos improductivos, configurado en 800.
4.2.1. Resultados experimentales
El algoritmo se implementado en Java. El computador usado para la prueba fue un equipo portátil ASUS
modelo N551, el cual cuenta con las siguientes especificaciones: Core i7 2.60GHz, 16GB de RAM y sistema
operativo Windows 10. Para propósitos experimentales se utilizó el conjunto de datos propuesto por (35),
donde se incluyen los siguientes conjuntos de datos de prueba:
Nombre Universidad Año
sta-f-83 St. Andrews High school 1983
ear-f-83 Earl Haig Collegiate 1983
lse-f-91 London School of Economics 1991
tre-s-92 Trent University 1992
ute-s-92 University of Toronto, Engineering 1992
yor-s-92 York Mills Collegiate 1992
hec-s-92 Ecole des Hautes Etudes Commerciales 1992
car-f-92 Carleton University 1992
kfu-s-93 King Fahd University 1993
Tabla 4.2-1: Descripción de los datos de prueba
Los siguientes resultados fueron obtenidos, para diferentes valores de TT. Los mejores resultados en cada
caso están resaltados en negrilla, como se puede observar el valor de TT que mejor se adapta al algoritmo
es TT5, sin embargo, TT4 ha obtenido el mejor resultado para lse-f-91, mientras que TT3 obtiene el
mejor resultado para ear-f-83, ute-s-92, yor-s-92:
Fuente TT2 (s) TT3 (s) TT4 (s) TT5 (s)
sta-f-83 159.234 160.448 159.558 158.658
ear-f-83 41.170 36.999 38.729 38.574
lse-f-91 20.072 24.643 19.441 21.914
tre-s-92 9.694 10.315 12.661 12.044
ute-s-92 29.547 28.891 30.902 29.538
yor-s-92 46.173 39.898 45.243 42.994
hec-s-92 14.378 13.836 12.544 11.298
car-f-92 40.827 44.018 44.322 38.580
Tabla 4.2-2: Duración del algoritmo para diferentes valores de TT
Los resultados obtenidos dan pie a ser comparados con trabajos hechos por otros investigadores, a pesar
que el objetivo de esta tesis no es obtener el algoritmo más eficiente de la literatura, sino tener un
algoritmo lo suficiente mente bueno para reducir el tiempo necesario para realizar la programación de
Facultad de Ingeniería de la Universidad Nacional de Colombia, vale la pena ver que tan bueno es el
algoritmo implementado en este trabajo con respecto al estado del arte en el tema. Para esto se recolecto
resultados de dos de los algoritmos más eficientes en términos de tiempo que se pueden encontrar en la
literatura. Los aportes que se analizaron fueron los aportes de T. Stuzle, 2002 (36) y Di Gaspero 2002.
2016 Universidad Nacional de Colombia, Sede Bogotá
35
Fuente Autor T. Stuzle Di Gaspero
sta-f-83 158.658 158.100 157.400
ear-f-83 38.574 40.500 39.400
lse-f-91 21.914 13.200 12.600
tre-s-92 12.044 9.300 -
ute-s-92 29.538 27.800 -
yor-s-92 42.994 38.900 39.700
hec-s-92 11.298 10.800 10.900
car-f-92 38.580 - -
Tabla 4.2-3: Comparación del algoritmo con el estado del arte
Como se observa en la tabla anterior los resultados obtenidos son competitivos con los resultados que
otros autores ha logrado, sin embargo, hay que tener en cuenta que los ambientes computacionales en los
que cada autor ejecuto las pruebas no son equivalentes.
36
Capítulo 5
Conclusiones
En esta tesis se examinó el problema programación de horarios para instituciones universitarias. Se inició
con una discusión en la terminología y el tamaño del área de investigación. Se hizo una detallada
descripción de los términos relacionados para evitar confusiones. Se presentó una visión general de la
totalidad de la literatura. Se realizó un recuento histórico detallado de la literatura existente. Se
resumieron los principales algoritmos de solución que han resistido la prueba del tiempo. El uso de las
técnicas de solución importantes de la literatura se clasificó, esto con el fin de tener una visión global del
problema que permitiera generar un punto de vista personal para abordar el problema propuesta en este
trabajo.
Con base en la información recolectada durante este trabajo se logró caracterizar de los recursos humanos,
físicos y curriculares de la facultad de ingeniería de la Universidad Nacional de Colombia, sede Bogotá y se
hizo un análisis sobre el estado actual de proceso de programación para el periodo 2015-II.
A partir de esta revisión del estado del arte se presentó la propuesta de un sistema de información para
optimizar el proceso de generación de horarios en la facultad de ingeniería de la Universidad Nacional de
Colombia. Se habló sobre el estado de implementación del sistema y las proyecciones, se puso de relieve,
la idea que el sistema no sólo sirve a la actividad de investigación, sino también para mejorar funciones
administrativas transaccionales en el mundo real. Una evaluación inicial por un número de partes
interesadas, aunque necesariamente se llevó a cabo de una manera puramente exploratoria arrojo una
opinión positiva.
Se implementó un prototipo inicial del módulo de generación de programación basado en búsqueda Tabu,
que dio buenos resultados en términos de tiempos comparados con otras implementaciones similares, sin
embargo, es necesario continuar la investigación sobre formas mejorar el prototipo para considerar
ciertas limitaciones que se encuentran en problemas prácticos.
Se requiere un conjunto más completo de métricas para facilitar más plenamente la comparación objetiva
de las implementaciones alternativas. Teniendo en cuenta la revisión de la literatura presentada en el
capítulo 2, la ausencia de puntos de referencia ha sido un defecto importante en el esfuerzo de
2016 Universidad Nacional de Colombia, Sede Bogotá
37
investigación acumulada. El objetivo de cualquier prueba futura, sería la de proporcionar un medio
objetivo por el cual se pueden hacer comparaciones con diferentes implementaciones. una prueba de este
tipo requeriría una base de datos realista, disponible a través de un medio apropiado como la Web. La
prueba requiere que el conjunto de datos que se pueda descargar y utilizar libremente por cualquier
implementación. Un archivo de leerme tendría que estar preparado para describir las limitaciones que
existen como la información en la base de datos. Las implementaciones tienen que generar su solución
óptima dentro de los marcos de tiempo de un minuto, una hora y un día de tiempo de procesamiento. Esto
permitiría demostrar su eficacia mediante la generación de soluciones de alta calidad en cortos, medianos
y largos períodos de tiempo. También es importante destacar que los ambientes de prueba deben ser
iguales para poder hacer una comparación directa de los resultados.
Por su propia naturaleza, la elección del conjunto de datos de prueba es discutible. Una razón apropiada
debería ser presentada para la selección de tablas que se utilizan para hacer la prueba del algoritmo.
La implementación completa el SIPA, su puesta en producción, posterior análisis y comparación con otros
sistemas similares, es sin duda una tarea que queda pendiente para trabajos futuros.
Se sugiere que futuros esfuerzos de investigación profundicen en los enfoques híbridos, CSP y generadores
de soluciones estocásticos.
Un trabajo futuro muy interesante seria poder establecer un función objetivo dinámica que pueda ser
manipulada por los usuarios finales del sistema de información, de forma que se pudieran satisfacer los
requisitos institucionales individuales, de forma una sola implementación podría ser utilizada en múltiples
instituciones.
38
Bibliografía
1. La Educación Superior en Colombia: Situación Actual y Análisis de Eficiencia. Banco de la Repuclica de
Colombia. 2014, pp. 10-24.
2. Akif, B., Cihan, A. Integer Programming Approach to a University Timetabling Problem. Hacettepe
Journal of Mathematics and Statistics. 2008, pp. Vol 37, pp. 41 -45.
3. Birbas., S. Daskalaki and T. Efficient solutions for a university timetabling. European Journal of
Operational Research. 2005, pp. 106-120.
4. Carter, M. W. , Laporte G. Recent developments in practical examination. 2012, pp. pp. 3–21.
5. Guid, D. Strnad and N. A multi-agent system for university timetabling. Applied Artificial Intelligence.
pp. 137-153.
6. E. Burke, B. McCollum, A. Meisels, S. Petrovic, and R. Qu. A graphbased hyper-heuristic for educational
timetabling problems. 2007, pp. 177–192.
7. Katja, S., Stefan H. Application of a real-world university-course timetabling model solved by integer .
2007, pp. Vol. 29, pp. 783-803.
8. P. Pongcharoen, W. Promtet, P. Yenradee, and C. Hicks. Stochastic optimisation timetabling tool for
university course scheduling. . International Journal of Production Economics. 2008, pp. 903-918.
9. N. Boland, B. Hughes, L. Merlot, and P. Stuckey. New integer linear programming approaches for course
timetabling. Computers and Operations. 2008, pp. 209–233.
10. Using Integer Programming to solve the School Timetabling Problem at Chin-Min Institute of
Technology. Journal of American Academy of Business. 2008, pp. Vol.13, pp. 279-286.
11. Werra, Dominique. The combinatorics of timetabling. European Journal of Operational Research.
1998, pp. pp. 151–162.
12. Werra, Dominique de. An introduction to timetabling. European Journal of Operational Research.
1997, pp. 151-162.
13. Lu, Zhipeng and Hao, Jin-Kao. Adaptive abu Search for course timetabling. European Journal of
Operational Research. 2010, pp. 235 - 244.
14. Schaerf, A. Local search techniques for high-school timetabling problems. IEEE Transactions on
Systems. 1999, Vol. 29, 4, pp. 368-377.
2016 Universidad Nacional de Colombia, Sede Bogotá
39
15. Desing and implement of course scheduling system using Tabu Search. European Journal of
Operational Research. 2002, Vol. 137, 3, pp. 512–523.
16. Leung, Joseph. Handbook of Scheduling: Algorithms, Models, and Performance Analysis. New York : s.n.,
2004.
17. Scheduling, timetabling and rostering-a special relationship? A, Wren. 1996.
18. Examination timetables and tabu search with longer-term memory,. B.S. Xie, G.M. White. 2001, pp. 85-
103.
19. The Hungarian method for the assignment problem. HW, Kuhn. 1955.
20. The conference scheduling problem. Haynes JG. s.l. : Operations research society of America 16th
annual meeting Pasadena California., 1959.
21. Techniques for producing school timetables on a computer and their application to other scheduling
problems. Appleby, J. S. , Blake, D. V. , Newman, E. A. s.l. : The computer journal., 1961.
22. Lewis, Rhydian. A survey of metaheuristics-based techniques for university timetabling. OR Spectrum.
2008, Vol. 30, 1, pp. 167-190.
23. The construction of class-teacher timetables. C, Gotlieb. 1963.
24. The preparation of school timetables by Electronic Computer BIT. Berghuis, Van De Heiden. 1964.
25. Investigations on a Time-Table Problem. Ph. D. thesis. Csima. 1965.
26. Human Capital: A Theoretical and Empirical Analysis. Becker. 1964.
27. The application of digital computer to the construction of timetables. Baraclough. 1965.
28. An integer linear programming model of a school timetabling problem. Lawrie. 1969.
29. Graphentheorie in Plunungs- und Tourenproblemen. Junginger. 1972.
30. Timetable construction -- an annotated bibliography. Schmidt, Strohlein. 1973.
31. An Introduction to Timetabling. Werra, De. 1985.
32. Carter, M. W. A survey of practical applications of examination timetabling algorithms. Operations
Research. 1986, Vol. 34, pp. 192-202.
33. Fast practical evolutionary timetabling Evolutionary Computing. Corne, Ross. 1994.
34. Constructing School Timetables Using Simulated Annealing: Sequential and Parallel Algorithms.
Abramson. 1991.
35. The solution of real instances of the timetabling problem. Cooper, Kingston. 1993.
36. A computer aided constraint programming system. Tsang, Mills,Williams, Ford. 1999.
2016 Universidad Nacional de Colombia, Sede Bogotá
40
37. Genetic Algorithms and Fuzzy Logic Systems. Soft Computing Perspectives. Sanchez, Shibata, Zadeh.
1997.
38. Practical Handbook of Genetic Algorithms: Applications. Chambers. 1995.
39. On Simulated Thermodynamics. In: Applied Simulated Annealing. Rodrigues, Anjo. 1993.
40. Tabu Search. Glover, Laguna. 1997.
41. Consistency techniques for numeric CSPs. Lhomme. 1993.
42. Burke, Edmund Kieran and Petrovic, Sanja. Recent research directions in automated timetabling.
European Journal of Operational Research. 2002, Vol. 140, 2, pp. 266-280.
43. Building university timetables using constraint logic programming. Gueret, Jussien. 1996.
44. Course and teacher scheduling in Hellenic high schools. Birbas, Daskalaki, Housos. 1997.
45. Partial Constraint Satisfaction. Freuder. 1994.
46. University timetabling by constraint-based reasoning: a case study. Deris, Omatu, Ohta. 1997.
47. Genetic Algorithms. Buckles, Petry. 1992.
48. An evolutionary approach to constraintbased. Sharma, Chandra. 1999.
49. Tabu Search, United of America. F. Glover, M. Laguna. 1997.
50. A Tabu-Based Memetic Approach for Examination Timetabling Problems. Salwani Abdullah, Hamza
Turabieh. 2009.
51. Tabu search for large scale timetabling problems. A, Hertz. 1991, pp. 39-47.
52. Oficina Nacional de Planeacion. Evolución de algunos indicadores de la Facultad de Ingeniería. 2013.
19.
53. Duarte, Oscar. Un modelo del tránsito de los estudiantes a través del plan de estudios. Bogota : s.n.,
2013.
54. Dirección Nacional de Personal. Estadísticas Docentes Universidad Nacional de Colombia. 2014.
55. Grupo SEPRO. Lineamientos para la programacion Academica. Bogota : s.n., 2015.
56. Sistemas de Informacion y la Organizacion, Ventajas o desventajas competitivas? Rafael Andreu, Joan E.
Ricart,Josep Valor. 1991.
57. Whitten, Barlow. J. Bentley. Análisis y diseño de sistemas de información. 1996.
58. Model management and solvers for decision support. T.P. Liang, C.C. Lee, and E. Turban. 2008, Vol. 1,
pp. 231-258.
59. Comparison of metaheuristic algorithms for examination timetabling problem. Azimi, Zahra Naji. 204.
2016 Universidad Nacional de Colombia, Sede Bogotá
41
60. Multi-objective university examination scheduling. Thompson J., Dowsland K. 2005.
61. Timetabling university examinations. D., Johnson. 2000.
62. Exam scheduling by Tabu Search. D., Clark. 1998.
63. Using Tabu search with multi-neighborhood structures to solve University Course Timetable UKM case
study (faculty of engineering). Hassan Younis Al, Masri Ayob. 2011.
64. Automating a Real-World University Timetabling Problem with Tabu Search Algorithm. Nguyen, Khang.
2015.
65. Examination Timetabling: Algorithmic Strategies and Applications. Michael W. Carter, Gilbert Laporte,
Sau Yan Lee. 3, 1996, Vol. 47, pp. 373 - 383.
66. Empirical analysis of tabu search for the lexicographic optimization of the examination timetabling
problem. T. Stuzle, L. Paquete. 2002, pp. 404-407.
67. Zhang., G. White and J. Generating complete university timetables by combining tabu search with
constraint logic. 209.
68. White, G. M. ,Chain P. W. Towards the construction of optimal examination. 2005, pp. pp. 219–229.
69. Beyrouthy, Camille, et al. University space planning and space type profiles. Journal of Scheduling.
2010, Vol. 13, 1, pp. 363–374.
70. Burke, Edmund K. and Marecek, Jakub. A branch and cut procedure for the udine course timetabling
problem. Annals of Operations Research. 2012, Vol. 194, pp. 71-87.
71. A comparison of the performance of different metaheuristics on the timetabling problem. Olivia Rossi-
Doria, Michael Sampels, Mauro Birattari, Marco Chiarandini,Marco Dorigo. 2002, Vol. 2740, pp. 329-351.
72. The School Time Table. C, Lewis. s.l. : Cambridge University Press., 1961.
73. Recent research directions in automated timetabling. Burke, Petrovic. 2002.