SlideShare a Scribd company logo
1 of 129
Download to read offline
Universidad de Carabobo
Facultad de Ciencias y Tecnolog´ıa
Departamento de Computaci´on
Modelo general de costos para el
problema de asignaci´on de horarios.
Autor:
Br. Jos´e Rosendo
C.I. V - 22.213.692
Tutor Acad´emico:
Dr. Amad´ıs Mart´ınez
Valencia, septiembre de 2016.
1
Resumen
El problema de asignaci´on de horarios consiste en la colocaci´on de tareas a realizar en
determinados momentos a un sujeto. Tal asignaci´on se ve restringida previamente por un
conjunto de limitaciones asociadas al contexto. Este problema es combinatorio y de orden
no polinomial, lo cual lo coloca como imposible de ser resuelto en tiempo polinomial por
un algoritmo determin´ıstico. A la fecha la soluci´on del mismo se ve abordada por t´ecnicas
heur´ısticas y metaheur´ısticas, las cuales brindan soluciones cercanas a la ´optima.
Tomando en cuenta el inconveniente antes mencionado, se hace necesario el planteamiento
de un modelo de costos lo suficientemente flexible en cuanto a uso y que sirva de base para la
optimizaci´on de los c´alculos relacionados a la asignaci´on de horarios. En este trabajo se plan-
tea la realizaci´on de tal tarea, desarrollando el correspondiente entramado te´orico-pr´actico,
a fin de conseguir un avance positivo en las investigaciones del campo.
Siguiendo las directrices establecidas por el Protocolo de Modelado matem´atico - l´ogico,
se desarroll´o un conjunto de premisas que estructuraban las entidades, relaciones y restric-
ciones del modelo general a construir, definiendo el objetivo del modelado, formulando el
respectivo modelo conceptual, estableciendo bajo que categor´ıa(s) cae el modelo a construir,
seleccionando las herramientas de software para las simulaciones y validaciones del mismo,
realizando previamente las respectivas parametrizaciones, para as´ı presentar bajo el formato
requerido el compendio de resultados en donde se demuestra la validez de las hip´otesis plan-
teadas, esto es, la posibilidad de construir un sistema gen´erico de procesos, o en su defecto
que abarque los principales casos del timetabling problem, que optimice el modelo de restric-
ciones del problema a solucionar, para luego proceder con la soluci´on en concreto.
Palabras claves: modelado de restricciones, algoritmos de propagaci´on de restricciones,
optimizaci´on.
2
´Indice
1. Introducci´on 7
2. Marco Te´orico 9
2.1. Antecedentes de la investigaci´on . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2. Bases te´oricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1. Investigaci´on de operaciones . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2. Problema de asignaci´on de horarios [38] [36] [58] . . . . . . . . . . . . 16
2.2.3. Complejidad algor´ıtmica . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.4. Programaci´on con restricciones . . . . . . . . . . . . . . . . . . . . . 20
2.2.5. Propagaci´on de restricciones [25] [28] [41] [53] . . . . . . . . . . . . . 20
2.2.6. Modelado cient´ıfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3. Planteamiento del Problema y Justificaci´on 24
3.1. Contexto del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2. Definici´on del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3. Objetivos de la investigaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.1. Objetivos Generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.2. Objetivos Espec´ıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4. Justificaci´on e importancia del tema tratado . . . . . . . . . . . . . . . . . . 28
4. Marco Metodol´ogico 29
4.1. Descripci´on de la metodolog´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.1.1. Protocolo de Modelado . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2. Aplicaci´on de la metodolog´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.1. Definici´on del objetivo del modelado . . . . . . . . . . . . . . . . . . 34
4.2.2. Formulaci´on del modelo conceptual . . . . . . . . . . . . . . . . . . . 37
4.2.3. Tipo de modelo a usar . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.4. Selecci´on del c´odigo a aplicar . . . . . . . . . . . . . . . . . . . . . . 43
4.2.5. Parametrizaci´on del modelo . . . . . . . . . . . . . . . . . . . . . . . 44
4.2.6. Validaci´on del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3
4.2.7. Simulaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.8. Presentaci´on y an´alisis de resultados . . . . . . . . . . . . . . . . . . 47
5. Dise˜no de la soluci´on 49
5.1. Descripci´on de la soluci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.2. Alcance y limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6. Resultados experimentales 52
6.1. Configuraci´on de los experimentos . . . . . . . . . . . . . . . . . . . . . . . . 53
6.1.1. Plataforma computacional . . . . . . . . . . . . . . . . . . . . . . . . 53
6.1.2. Casos de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.1.3. M´etricas de evaluaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.2. An´alisis de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.2.1. Hip´otesis iniciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.2.2. Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7. Conclusiones y recomendaciones 120
7.1. Conclusiones de la investigaci´on . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.2. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4
´Indice de figuras
1. Clases de complejidad [88] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2. Trilog´ıa Modelo - Algoritmo - Programa [32] . . . . . . . . . . . . . . . . . . 30
3. Esquema general del modelo matem´atico. [32] . . . . . . . . . . . . . . . . . 31
4. Primera etapa del protocolo de modelado [32] . . . . . . . . . . . . . . . . . 32
5. Segunda etapa del protocolo de modelado [32] . . . . . . . . . . . . . . . . . 33
6. Tercera etapa del protocolo de modelado [32] . . . . . . . . . . . . . . . . . . 34
7. Clase Individuo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
8. Clase Actividad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
9. Relacion Individuo-Realiza-Actividad. . . . . . . . . . . . . . . . . . . . . . . 42
10. Entrada del caso de prueba PE-CTT: matriz de asistencia de estudiantes a
clases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
11. Entrada del caso de prueba PE-CTT: matriz correlaci´on de aulas con propie-
dades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
12. Entrada del caso de prueba PE-CTT: matriz correlaci´on de eventos con pro-
piedades requeridas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
13. Entrada del caso de prueba PE-CTT: matriz de restricci´on de precedencia
entre eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
14. Ejemplo de formato original de entrada de caso de prueba CB-CTT. . . . . . 71
15. CB-CTT: Proporci´on de casos exitosos . . . . . . . . . . . . . . . . . . . . . 108
16. CB-CTT: Menor tiempo de soluci´on por caso . . . . . . . . . . . . . . . . . 109
17. CB-CTT: Mayor tiempo de soluci´on por caso . . . . . . . . . . . . . . . . . . 109
18. CB-CTT: Tiempo promedio de soluci´on por caso . . . . . . . . . . . . . . . 110
19. PE-CTT: Proporci´on de casos exitosos . . . . . . . . . . . . . . . . . . . . . 110
20. PE-CTT: Menor tiempo de soluci´on por caso . . . . . . . . . . . . . . . . . . 111
21. PE-CTT: Mayor tiempo de soluci´on por caso . . . . . . . . . . . . . . . . . . 111
22. PE-CTT: Tiempo promedio de soluci´on por caso . . . . . . . . . . . . . . . . 112
5
´Indice de tablas
1. Valores de Caso de Prueba PE-CTT . . . . . . . . . . . . . . . . . . . . . . 69
2. Valores de Caso de Prueba CB-CTT . . . . . . . . . . . . . . . . . . . . . . 75
3. Resultados de Caso de Prueba CB-CTT . . . . . . . . . . . . . . . . . . . . 106
4. Resultados de Caso de Prueba PE-CTT . . . . . . . . . . . . . . . . . . . . 107
6
1. Introducci´on
El problema de asignaci´on de horarios consiste en la asignaci´on de un conjunto de tareas
a ser realizada por un sujeto en determinados bloques horarios. Tal asignaci´on se ve influida
por un conjunto de restricciones que var´ıan de acuerdo al contexto. As´ı, por ejemplo, en
un horario universitario tales restricciones van asociadas a la cantidad de aulas disponibles,
los profesores asignados a una determinada asignatura, entre otros factores. En t´erminos
conceptuales, el timetabling problem es un problema combinatorio de orden no polinomial.
Los problemas algor´ıtmicos que entran en esta categor´ıa no son resolubles en tiempos cortos
utilizando t´ecnicas tradicionales. Tomando en cuenta lo anterior, se han planteado m´ultiples
soluciones que van desde optimizar el modelado de las restricciones, pasando por el uso de
heur´ısticas y metaheur´ısticas en el c´alculo del horario ´optimo para un sujeto dado, hasta la
aplicaci´on de c´omputos en paralelo en hardware dedicado para tal fin. [38] [36] [58]
Partiendo de la base anterior, en la cual se perfila la naturaleza del problema de asigna-
ci´on de horarios, se hace enf´atico el planteamiento de un modelo de costos y de restricciones
que por un lado sea lo suficientemente flexible para ser usado en los m´as diversos contex-
tos y por el otro proporcione la base para optimizar los c´alculos posteriores relacionados a
la asignaci´on del horario requerido. Es as´ı que en este trabajo se plantea la posibilidad de
realizar tal cometido, partiendo de investigaciones previas que han planteado perspectivas
similares pero para contextos m´as limitados. Se recalca que por un lado es imprescindible
la creaci´on de un modelo robusto que soporte cualquier restricci´on a modelar, as´ı como los
mecanismos necesarios para que tal modelo se reformule en base a mecanismos algor´ıtmicos
ya establecidos. Tal reformulaci´on va orientada a la b´usqueda de mejores soluciones en el
marco del conjunto de datos dado. [84] [52] [51]
Este documento est´a estructurado en siete cap´ıtulos, incluyendo la introducci´on. El cap´ıtu-
lo 2 cubre el marco te´orico en base a dos puntos principales que son los antecedentes de la
investigaci´on y las bases te´oricas del presente trabajo. El cap´ıtulo 3 define el contexto del
problema presentado as´ı como una definici´on detallada del mismo, para luego mostrar los
7
objetivos generales y espec´ıficos a lograr, todo esto con su debida justificaci´on y explicaci´on
de la importancia de cumplirlos. El cap´ıtulo 4 describe la metodolog´ıa a usar para resolver
el problema ya descrito, as´ı como el plan de trabajo a cumplir acorde a la misma. El cap´ıtulo
5 da un paso m´as all´a, partiendo de la secci´on anterior, y esquematizando el proceso emp´ırico
que de vida a la soluci´on buscada, especificando tambi´en las limitaciones de la misma. El
cap´ıtulo 6 muestra los datos recolectados consecuencia de ejecutar los pasos de la secci´on
anterior, esto con sus respectivas m´etricas formales. El cap´ıtulo 7 presenta un breve com-
pendio acerca de todo el trabajado desarrollando, el an´alisis que se pueda realizar acerca del
contraste entre los objetivos esperados y los obtenidos, as´ı como los respectivos consejos di-
rigidos a la realizaci´on de trabajos del mismo t´opico o de alguno ´ıntimamente relacionado. Y
de ´ultimo, en la secci´on 7.2 se muestra el listado de recursos te´oricos y pr´acticos consultados
para la realizaci´on de este TEG.
8
2. Marco Te´orico
Este cap´ıtulo se compone de dos secciones. En los Antecedentes (2.1) se describe el con-
junto de trabajos m´as resaltantes relacionados a la soluci´on del problema de asignaci´on de
horarios, el enfoque y/o b´usqueda de un modelo de costos general para expresar las enti-
dades y restricciones del mismo, as´ı como las herramientas de software m´as significativas
desarrolladas al respecto. En las Bases Te´oricas (2.2) se cubren los conceptos m´as importan-
tes del problema que permitan un entendimiento completo del marco general a tratar, as´ı
como una base lo suficientemente robusta para generar el conjunto de nuevos razonamientos
y planteamientos plasmados en las posteriores secciones.
9
2.1. Antecedentes de la investigaci´on
En paralelo a la naturaleza combinatoria y altamente compleja del problema de asigna-
ci´on de horarios, la mayor´ıa de las soluciones propuestas se ven restringidas por el contexto
en el que se aplican, y si bien contribuyen al aumento de la bibliograf´ıa relacionada a tal
campo de investigaci´on, brindando m´as herramientas para el abordaje de tal problema, a´un
se dista de tener un modelo cercano a lo general para el tratamiento del asunto. Sin em-
bargo, eso no quita que existan propuestas que hayan jugado con la posibilidad de brindar
un enfoque general para el timetabling problem, as´ı como tratamientos del mismo usando
herramientas de c´omputos heur´ısticos. Existen tambi´en obras, desde papers hasta libros y
disertaciones, orientadas exclusivamente al an´alisis abstracto de los elementos que forman
parte del problema de asignaci´on de horarios, esto es, desde crear formatos generales para
los datos de entrada, crear representaciones est´andar para las relaciones entre los individuos
y las actividades y las restricciones asociadas a las mismas. Se pueden listar los siguientes
trabajos:
Muhammad Rozi Malim, Ahamad Tajudin Khadery Adli Mustafa (2005), “University
Course Timetabling: A General Model”: [84] es un art´ıculo de investigaci´on redactado
por integrantes de la Universidad de la Ciencia en Malasia. Mostrado en la 2da Con-
ferencia Internacional de Investigaci´on y Educaci´on Matem´atica el 2005, toma como
objeto de estudio el contexto universitario al ser un entorno rico en complejidad y
restricciones en comparaci´on a otros entornos de estudios. Construye el modelo clasi-
ficando cada una de las restricciones como obligatoria (hard) y opcional (soft). Cada
restricci´on es representada como una variable matem´atica entera acompa˜nada por una
constante c = 0 o c = 1, proponiendo entonces el llamado modelo general como un
problema de programaci´on [lineal] entera.
Matthias Gr¨obner, Peter Wilke, y Stefan B¨uttcher (2003), “A Standard Framework
for Timetabling Problems”: [52] es el t´ıtulo de un trabajo realizado por integrantes
de la Universit¨at Erlangen-N¨urnberg, en Alemania, y The University of Western, en
Australia. En el trabajo construyen en paralelo una propuesta de modelo general para el
problema de asignaci´on de horarios relacionada ´ıntimamente con el funcionamiento del
10
framework que proponen como soluci´on al problema. Argumentan que las propuestas
existentes poseen un nivel de degradaci´on al grado de especificidad de los algoritmos
de acuerdo al contexto en los cuales son implementados, y que poco sirve para avanzar
en las investigaciones en el campo. Generalizan los elementos asociados al timetabling
problem llam´andolos entidades, y divi´endolos en distintas clases: recursos, eventos y
restricciones. Realizan el debido proceso de documentaci´on mediante UML y en base a
ella crean una implementaci´on de lo que llaman GTL: General Timetabling Language,
realizada sobre Java. En resumen, se crea el c´odigo de formulaci´on del problema sobre
GTL, representando las mencionadas entidades mediante clases, y la carga de los datos
asociados a un contexto se realiza mediante ficheros XML.
Edmun Burke, Jeffrey Kingston (1997), “A standard data format por timetabling pro-
blem instances”: [31] es una revisi´on te´orica de los aspectos obligatorios que debe cubrir
una propuesta de modelo est´andar para la formulaci´on del problema de asignaci´on de
horarios, resumidos en los siguientes puntos: (1) generalidad, el modelo debe brindar el
soporte suficiente para que cualquier restricci´on e instancia de un problema cualquie-
ra sea expresable en t´erminos de las herramientas prove´ıdas por el modelo; (2) cada
instancia de problema debe poder ser representada completamente por el modelo, esto
incluye contemplar los recursos, los participantes, las restricciones as´ı como las pro-
puestas de soluciones; (3) debe ser posible la conversi´on bidireccional de un problema
expresado con el modelo est´andar con los distintos formatos de modelos existentes en
este campo de investigaci´on. El trabajo identifica que el problema central reside en la
dificultad atada invariablemente a la tarea de reducir expresiones complejas gen´ericas
que incluyen elementos de teor´ıa de conjuntos, l´ogica formal y de predicados a una
serie de directivas incluidas en librer´ıas, as´ı como la imposibilidad de cubrir todas las
conversiones posibles a los otros modelos existentes en un momento dado, aunque el
trabajo busque minimizar tal falla inherente al contexto. Al final, el modelo de lenguaje
que presentan incluyen combinados entre si elementos que van desde la programaci´on
imperativa hasta la programaci´on l´ogica.
Michael Marte (2002), “Models and Algorithms for School Timetabling - A Constraint-
11
Programming Approach”: [51] es una tesis acerca del problema de asignaci´on de horarios
en relaci´on con el sistema de educaci´on media en Alemania, que asemeja m´as no iguala,
en cuanto a complejidad de situaciones, al sistema universitario. Parte de la premisa
de la necesidad de establecer un sistema robusto de restricciones que emule de la mejor
manera posible el problema de asignaci´on de horarios asociado al Gymnasium alem´an.
Lu´ıs Paulo Reis y Eug´enio Oliveira (2001), “A Language for Specifying Complete Ti-
metabling Problems”: [81] se identifican en este trabajo ocho versiones principales del
timetabling problem, y basados en ellos se presenta un nuevo lenguaje descriptivo lla-
mado Unilang, para la representaci´on de los problemas de asignaci´on de horarios. Este
va enfocado a servir como lenguaje adaptable para cualquier versi´on del problema,
ofreciendo una representaci´on clara y concisa de los datos, las restricciones, medidas
de calidad as´ı como soluciones para cada una de las version del problema como la
asignaci´on de horarios para universitarios o para ex´amenes.
Jeffrey Kingston (1999), “Modelling Timetabling Problems with STTL”: [62] art´ıculo
que explora las ventajas e inconvenientes presentados al intentar modelar problemas
del mundo real usando el Standard Timetabling Language.
David Ranson y Samad Ahmadi (2007), “An Extensible Modelling Framework for the
Examination Timetabling”: [80] en este trabajo los autores plantean que si bien el abor-
daje del timetabling problem con el objetivo de lograr una generalizaci´on del problema
ha sido ya realizado varias veces, argumentan que hasta el momento las opciones ofreci-
das no simplifican el proceso de modelado, carecen de caracter´ısticas claves para lograr
una mayor optimizaci´on en los resultados finales, y en ultima instancia ofrecen pocos
avances en comparaci´on a soluciones an´alogas ya existentes en lenguajes de programa-
ci´on ya establecidos en la comunidad. Para solucionar tal problema, proponen crear un
framework de modelado independiente del lenguaje a usar a posteriori, usando STTL.
Si bien al final del documento queda como trabajo en progreso, los planteamientos rea-
lizados a lo largo del documento son de utilidad para cualquiera que desea abordar la
misma tem´atica, a fin de generar nuevos resultados.
12
Jeffrey Kingston (2006), “Data Formats for Exchange of Real-World Timetabling Pro-
blem Instances and Solutions”: [60] realizado por el mismo autor del STTL, realiza los
siguientes planteamientos:
◦ La dificultad del modelado va intr´ınsecamente asociada a la larga cantidad de
requerimientos asociados al contexto. Esto se ha tratado de solucionar desde dis-
tintos enfoques, como lo son usando tecnolog´ıas de la web sem´antica, modelado
orientado a objetos, usando programaci´on con restricciones, entre otros.
◦ A fin de no incurrir en la sobrecarga de informaci´on, deben establecerse cotas
asociadas a cuales variaciones del timetabling problem se pretende abarcar con la
propuesta de modelo general que se quiera realizar. Esto es, una vez definida la
cota y desarrollado una soluci´on basada en la misma, se propone a futuro volver
a redefinir la soluci´on extendiendo la cota superior en la que se basa la soluci´on
previa.
Ender ¨Ozcan (2013), “Towards and XML base standard for Timetabling Problems:
TTML”: [70] busca solucionar el problema asociado a las dificultades de reusar los
datos de entrada y salida de otras propuestas de soluci´on al timetabling problem, crean-
do un nuevo formato de data en XML que se basa a su vez en MathML [90].
Moritz M¨uhlenthaler(2014), “Fairness in Academic Course Timetabling”: [75] luego de
realizar un an´alisis exhaustivo del Problema de Asignaci´on de Horarios en entornos uni-
versitarios, el autor se enfoca en como se puede formalizar y medir la equidad asociada
a la asignaci´on de individuos y actividades, terminando con un caso de estudio a fin de
probar la efectividad de sus planteamientos.
Simon Kristianse, Thomas Jacob Riss (2013), “A Comprehensive Study of Educational
Timetabling - a Survey”: [63] se encarga de realizar una descripci´on extensiva del estado
del arte de un problema en cuesti´on, en este caso el problema de asignaci´on de horarios,
eval´ua las principales formalizaciones para cuatro principales versiones del problema,
usando datos de la vida real a fin de ofrecer medidas de calidad de las soluciones plan-
teadas.
13
De igual manera se puede encontrar en la red multitud de software que trata el timetabling
problem (no confundir con el software de agenda). En otros t´erminos se les conoce como
software para la creaci´on autom´atica de horarios una vez que se carga la informaci´on aso-
ciada a las entidades y restricciones de la instancia a trabajar. Entre los m´as resaltantes se
encuentran:
FET [43]: es un software de c´odigo abierto creado en C++ para la generaci´on au-
tom´atica de horarios de escuelas, liceos y universidades una vez cargada la informaci´on
asociada principalmente a profesores, asignaturas, aulas, estudiantes, entre otras. Sus
siglas se pueden interpretar como Free Evolutionary Timetabling, dado que de acuerdo
a los autores el conjunto de las restricciones var´ıa continuamente. Seg´un la descripci´on
oficial, trata con un algoritmo “r´apido y eficiente”, en contraste con el hecho de que en
el peor de los casos, cuando las restricciones cargadas son muy elaboradas, en el peor
de los casos el tiempo varia de cinco minutos a horas.
UniTime: University Timetabling [89] es un software distribuido bajo licencia de c´odigo
abierto, creado en Java para manejar con el mayor nivel de granularidad posible el pro-
blema de asignaci´on de horarios, a fin de minimizar en la medida posible la coincidencia
de horarios para las actividades de un estudiante u otro participante en la organizaci´on.
Su elemento m´as distinguido es la Librer´ıa de Resoluci´on de Restricciones (Constraints
Solver Library), basado en una combinaci´on de “b´usqueda hacia adelante” iterativo
con conjunto con b´usqueda local, extendiendo sus capacidades a considerar todas las
soluciones consideradas como ´optimas, pero que no sean necesariamente completas. En
el proceso, los candidatos a soluciones deben ir cumpliendo cada una de las restric-
ciones contempladas en el sistema, sin excepci´on. Para colaborar en la investigaci´on
asociada al problema de asignaci´on de horarios, el personal humano asociado a la crea-
ci´on y mantenimiento de este software ha liberado todo el trabajo relacionado bajo
licencias GNU, adem´as de brindar en su web un listado de todas las publicaciones y
presentaciones en las cuales han colaborado.
14
En otro contexto, desde 1995 se celebra cada dos a˜nos una serie de conferencias interna-
cionales acerca de la teor´ıa y pr´actica del timetabling automatizado (PATAT, Practice and
Theory of Automated Timetabling) [76], en la que participa un c´umulo de investigadores,
practicantes y relacionados de alguna manera a todo lo que tenga ver con el abordaje del
problema de asignaci´on de horarios. Entre los t´opicos tratados se encuentran los diferentes
tipos de horarios, manejo de restricciones, inteligencia artificial, metaheur´ısticas, grafos, entre
muchos otros, que van desde los aspectos formales del problema hasta sus representaciones
practicas.
Patrocinado por PATAT existe tambi´en existe la ITC – International Timetabling Compe-
tition [57], donde se ponen a prueba a los participantes para usar sus propuestas de soluciones
con problemas compuestos de restricciones tomada del mundo real, as´ı como otras creadas
espec´ıficamente para la competencia. Es de notar que el software mencionado anteriormente,
UniTime, fue uno de los ganadores de tal competencia en su edici´on del 2007, obteniendo
dos de los tres principales premios posibles.
2.2. Bases te´oricas
2.2.1. Investigaci´on de operaciones
Campo multidisciplinario (posee componentes de matem´aticas, l´ogica, ingenier´ıa, compu-
taci´on, entre otros) encargado de la optimizaci´on del uso de recursos para la ejecuci´on de
distintas tareas [87]. Enfatiza en el uso de modelados matem´aticos, espacios de soluciones
factibles y no factibles as´ı como los subconjuntos asociados a tales espacios, y la repetici´on
intensiva de c´alculos para optimizar las soluciones temporales encontradas. Tales elementos,
combinados entre s´ı, dan pie para que en la investigaci´on de operaciones se establezca que el
elemento de mayor importancia en la resoluci´on de un problema es la definici´on del mismo,
y que el modelo general de soluci´on se defina en base al predicado maximizar o minimizar
una o m´as funciones objetivos sujeto a un conjunto de restricciones [55].
15
2.2.2. Problema de asignaci´on de horarios [38] [36] [58]
T´ermino con el cual se denota el problema que envuelve asignar un conjunto de recursos
finitos en espacio y tiempo a una serie de actividades (com´unmente acad´emicas) que van a
ser realizadas por distintos componentes (m´aquinas, humanos), los cuales tambi´en poseen
limitaciones en cuanto a cantidad de tareas que pueden realizar, por cu´anto tiempo pueden
hacerla, as´ı como cu´ales pueden ejecutar y cu´ales no (dependencia condicional). El problema
se formula inicialmente teniendo un conjunto de restricciones (an´alogo al enfoque de inves-
tigaci´on de operaciones), donde cada restricci´on puede ser obligatoria (hard constraint), es
decir, para solucionar una instancia dada debe cumplirse esa restricci´on obligatoriamente;
u opcional (soft constraint), es decir, la restricci´on no es obligatoria pero en caso de que se
pueda incluir como parte de la soluci´on de una instancia dada, mejorar´ıa la calidad de la
misma.
El t´ermino timetabling problem engloba distintas variantes que comparten la misma l´ogica
de fondo. Entre las principales, en sus versiones m´as b´asicas se tienen:
STP (School Timetabling Problem): la versi´on m´as b´asica del problema, y por lo
general resoluble f´acilmente de manera manual, busca asignar a los distintos estudiantes
de un sistema de primaria, a sus respectivos salones de clases.
BACP (Balanced Academic Curriculum Problem): dado los siguientes elemen-
tos:
◦ Un conjunto de asignaturas.
◦ Una carga asociada a cada asignatura.
◦ Sistema de prelaciones entre las asignaturas.
◦ Un conjunto de per´ıodos acad´emicos.
◦ Un carga acad´emica m´axima permitida por cada per´ıodo.
En esta variante se busca distribuir el conjunto de asignaturas entre todos los per´ıodos
acad´emicos, respetando las restricciones planteadas y minimizando la diferencia entre
las cargas acad´emicas por cada per´ıodo.
16
ETP (Employee Timetabling Problem): dados los siguientes elementos:
◦ Un conjunto de actividades, cada una con una dificultad asociada.
◦ Un conjunto de individuos, cada una con una carga m´axima de actividades a afron-
tar. Este formato de problema es el que m´as se aborda en los problemas iniciales
de programaci´on lineal, se busca cubrir la realizaci´on de todas las actividades,
respetando las restricciones planteadas. Dependiendo del contexto, se suele contar
con un criterio de desgaste por cada individuo, as´ı como por ejemplo la dificultad
de una actividad var´ıe dependiendo del individuo.
ETP (Examination Timetabling Problem): dados los siguientes elementos:
◦ Un conjunto de pruebas
◦ Un conjunto de estudiantes, cada uno a la espera de presentar una de las pruebas.
◦ Una lista de bloques horarios.
◦ Salones de clase, cada uno con una capacidad m´axima de estudiantes.
Se busca cubrir de manera eficiente la asignaci´on estudiantes - prueba - sal´on de clases,
sin incumplir las restricciones impuestas. Al ser una triple asignaci´on, las soluciones
creadas para este tipo de problemas suelen dividir el problema principal en subproble-
mas.
SSP (Student Sectioning Problem): por lo general, cuando se habla de que un
conjunto de estudiantes cursa o cursar´a una asignatura, esta asignaci´on se encuentra
con el inconveniente en que los salones de clases disponibles no presentan la capacidad
suficiente para acoger a todos los inscritos. Es aqu´ı en donde entra el proceso de seccio-
namiento, en donde se realizan las divisiones ´optimas para luego distribuir cada secci´on
de estudiantes en los salones de clases, y conceptualmente cada uno estar´ıa viendo una
asignatura distinta.
UCTP (University Course Timetabling Problem): una de las versiones m´as
abordadas en el campo de investigaci´on del timetabling problem, es el que suele poseer
la mayor cantidad de individuos, actividades, relaciones entre esos dos componentes
17
as´ı como restricciones sobre tales restricciones. Tal sobrecarga de componentes en un
solo problema conlleva a asumir enfoques que dividan el problema principal en sub-
problemas, y mecanismos ya probados que interrelaciones los resultados de unos con la
entrada de otros, buscando soluciones factibles en tiempos cortos.
2.2.3. Complejidad algor´ıtmica
Un algoritmo es una secuencia de pasos ordenados para resolver un problema. Cada uno
de los pasos, o el conjunto de los mismos es expresable mediante operaciones matem´aticas
y l´ogicas, las cuales var´ıan de forma de acuerdo al paradigma de programaci´on que se est´e
usando al momento. [37]
Com´unmente se asocia a un algoritmo un tama˜no n el cu´al es un valor natural asocia-
do al tama˜no de los datos de entrada que ser´an evaluados por el programa. En base a ese
tama˜no n, se determina un orden de complejidad, que es un valor real obtenido mediante
t´ecnicas de an´alisis de complejidad de algoritmos [45]. Este valor es determinado en base al
an´alisis del algoritmo ante el peor de los casos que se puedan presentar. Este peor caso es
planteado mediante el modelo de an´alisis que se est´e usando [49]. As´ı, si el estudio se hace
mediante un an´alisis asint´otico, se realizan entonces los c´alculos de complejidad asociados
con una cantidad l´ımite de data de entrada, la m´axima cantidad iteraciones a ser ejecutada
para cada bucle del algoritmo en el caso de la programaci´on imperativa as´ı como en una
decisi´on condicional, hacer los c´alculos en base a la mayor complejidad de cada una de las
posibles condiciones a ejecutarse. [88] [26]
La notaci´on m´as usada para realizar an´alisis de complejidad de algoritmos es la notaci´on
O-grande, que trabaja con el ya nombrado an´alisis asint´otico [88], donde se define una funci´on
g(n) que viene a ser peor valor en tiempos de ejecuci´on para el algoritmo dada una entrada
de tama˜no n.
En base a lo anterior se define brevemente que [88]:
Un algoritmo de tiempo polinomial es aquel que posee un orden de complejidad O(p(n)),
18
donde p(n) es una funci´on polinomial (complejidad P).
Los algoritmos que no entran en la categor´ıa anterior son algoritmos de complejidad
no polinomial (complejidad NP).
Un algoritmo es de tiempo exponencial si la complejidad asociada es O(cn
), donde
c ≥ 1.
Si un algoritmo es la soluci´on a un problema, y cada algoritmo posee una complejidad
asociada, se define la complejidad de un problema como la complejidad asociada al mejor
algoritmo creado para resolver tal problema. [54]
Conocer el orden de un complejidad de un problema es un problema de decisi´on porque en
la teor´ıa de algoritmos los problemas se encuadran en dos clases principales de complejidad:
polinomial y no polinomial, ya mencionados anteriormente. Estas clases de complejidad se
dividen en subclases de manera recursiva. [64]
Figura 1: Clases de complejidad [88]
Un problema de clase de complejidad P (de ahora en adelante clase P) son problemas
resolubles en tiempos polinomiales en el peor de los casos [61]. La clase de inter´es para el pro-
yecto actual es la clase de complejidad NP (de aqu´ı en adelante clase NP). Son problemas que
en promedio para el caso est´andar o el peor de los casos son resolubles en tiempo polinomial
por algoritmos no determin´ısticos, dado que si se abordan con estrategias determin´ısticas
su tiempo de soluci´on puede llegar al orden de a˜nos o siglos [35]. Uno de los problemas del
19
milenio plantea la interrogante: ¿P=NP? [34]
Est´a demostrado que el Problema de Asignaci´on de Horarios es un problema NP-completo.
[42]
2.2.4. Programaci´on con restricciones
Es un paradigma de modelado y b´usqueda orientado a satisfacer un conjunto de restriccio-
nes [27]. Es una de las principales estrategias a aplicar en problemas que dada su naturaleza
poseen una alta cantidad de restricciones, cada una con una cantidad importante de condi-
ciones a satisfacer. [56]
Dado un problema X, una soluci´on al problema se puede plantear como un vector de
valores V = (v1, v2, . . . vn). Un algoritmo inicial buscar´ıa la soluci´on ´optima al problema
analizando todas las combinaciones de valores para el vector V , lo cual te´oricamente es
v´alido, pero ineficiente cuando la cantidad de combinaciones es alta (en este caso, es n!) [59].
La programaci´on con restricciones aprovecha la posibilidad de definir un problema como un
conjunto de condiciones que la soluci´on debe cumplir para ser v´alida, reduciendo as´ı el espacio
de b´usqueda inicial as´ı como los subsecuentes caminos a seguir para hallar una soluci´on v´alida
y ´optima.
2.2.5. Propagaci´on de restricciones [25] [28] [41] [53]
Dado un modelo de restricciones, definido en base a un conjunto de variables y restriccio-
nes de valor aplicadas sobre las mismas, se entiende a la propagaci´on de restricciones como
el proceso de determinar como las restricciones y los posibles valores de una variable pueden
afectar los posibles valores de otras variables. Tal proceso desemboca en la re-formulaci´on
del modelo original, todo esto encaminado a reducir el n´umero de decisiones a tomar a la
hora de hallar la soluci´on (haciendo con esto analog´ıa al proceso de resolver un modelo de
restricciones como una b´usqueda).
Tal proceso de refinaci´on del modelo se logra ya sea reduciendo el dominio de las variables
20
involucradas, creando y/o eliminando variables y/o restricciones. Un algoritmo de propaga-
ci´on de restricciones se conoce com´unmente como ”propagador”. Un esquema resumido de
c´omo se comporta ser´ıa el siguiente:
Cuando una variable X cambia de valor, el sistema eval´ua el dominio de cada variable
Yi dependiente de X. Esto genera nuevos dominios para cada una de ellas.
Por lo general, cada nuevo dominio de una variable Yi es subconjunto del dominio de
esa misma variable Yi previo al cambio de valor de X.
Ahora, cada variable Yi se convierte en una variable X, y se repite el proceso de ma-
nera recursiva, hasta llegar a un punto de parada, que var´ıa dependiendo del tipo de
propagador que se est´e usando.
Entre los principales tipos de propagadores, se tienen:
Node consistency.
Arc consistency.
Hyper-arc consistency.
Directional arc consistency.
Path consistency.
Directional path consistency.
2.2.6. Modelado cient´ıfico
Es una actividad cient´ıfica orientada a convertir un componente del mundo real en al-
go m´as f´acil de entender, definir, cuantificar, visualizar y/o simular, usando mecanismos,
conceptos y herramientas aceptados por la comunidad cient´ıfica. Si bien la totalidad de los
modelos existentes no dejan de ser s´olo aproximaciones a aquello que desean representar, su
utilidad est´a exenta de prueba en lo que concierne a entender los fen´omenos que com´unmente
acontecen. Entre los principales tipos de modelos se tienen:
21
Modelos cualitativos vs cuantitativos: los primeros basan su esencia en la descrip-
ci´on m´as que todo verbal del objeto a modelar, mientras que los segundos se construyen
mediante unidades de medida, interrelaciones de entidades y formulaci´on de procesos
mediante basamentos l´ogico-matem´aticos.
Modelos deductivos vs inductivos: un modelo deductivo trabaja con un enfoque
top-down, esto es, va desde lo m´as general hasta lo m´as especifico. En otras palabras,
parte desde una teor´ıa general (dentro del marco de abstracci´on en el cual est´e tra-
bajando), y va descomponiendo la misma en un conjunto de ”sub-postulados”tambi´en
v´alidos, repitiendo el proceso de manera c´ıclica, hasta que un elemento desconocido es
tomado como cierto, ya que est´a respaldado por el proceso previo realizado. Mientras
que un modulo inductivo usa el enfoque bottom-up, el cual empieza con observacio-
nes espec´ıficas, y mediante la identificaci´on de patrones y elementos regulares, termina
formulando una o m´as hip´otesis que al ser probadas y resultan ser ciertas, derivan en
conclusiones o teor´ıas generales.
Modelos deterministas vs estoc´asticos: un modelo determinista describe el com-
portamiento de un objeto o fen´omeno como algo completamente condicionado por su
estado inicial. Esto es, para los mismos datos de entrada, siempre se tendr´an los mismos
valores de salida. Mientras que en un modelo estoc´astico o probabilista el resultado no
es tan directo, ya que los valores de entrada se ven influenciados en los procesos internos
del modelo por mecanismos de aleatoriedad.
Modelos universales vs espec´ıficos: los primeros buscan simular procesos que sean
convertibles a trav´es de distintos dominios e instancias del mismo problema, mientras
que los segundos solo trabajan en un dominio ´unico, as´ı como en conjuntos de datos
adaptados a ese ´unico dominio del problema.
Entre los puntos m´as importantes a recalcar acerca de un modelo cient´ıfico se tiene:
Estos son construidos cuando el nivel de factibilidad asociado a reproducir emp´ırica-
mente las condiciones y/o el fen´omeno a estudiar es bajo o nulo.
22
La puesta en marcha del modelo se conoce como simulaci´on, y genera resultados a ser
evaluados para verificar principalmente si el modelo cumple el objetivo para el cual fue
creado.
Un modelo estructurado adecuadamente debe cubrir los pasos de observaci´on y reco-
nocimiento de todos los patrones y relaciones existentes en el objeto real.
Generar/construir el modelo implica asumir un adecuado nivel de abstracci´on, que var´ıa
de acuerdo al problema.
La evaluaci´on de un modelo conlleva a tener en cuenta los siguientes factores:
◦ Habilidad para describir las observaciones previas.
◦ Habilidad para predecir, con margenes de error m´ınimos, futuras observaciones.
◦ Costo de usar el modelo en comparaci´on a otros con los mismos objetivos.
◦ Simplicidad.
23
3. Planteamiento del Problema y Justificaci´on
Este cap´ıtulo se compone de cuatro secciones. En el Contexto del Problema (3.1) se des-
cribe brevemente dos puntos: los contextos en donde suele ubicarse el problema de asignaci´on
de horarios, y el contexto escogido para desarrollar el presente TEG, que dar´a pie para en-
tonces escoger, cap´ıtulos m´as adelante, determinados casos de prueba. En la Definici´on del
Problema (3.2 se presenta lo que se entiende en este trabajo por el timetabling problem, y
ser´a este el concepto a usar en el posterior desarrollo. En los Objetivos de la Investigaci´on
(3.3) se detallan los objetivos generales y espec´ıficos a alcanzar por este trabajo. Mientras
que en la Justificaci´on e Importancia del tema a tratar (3.4) se presentan el conjunto de
razones que sustentan la realizaci´on de este trabajo, amparadas en conjunto por la necesidad
ya descrita de aumentar la sistematizaci´on en cuanto a recolecci´on de esquemas y modelos
de restricciones del problema de asignaci´on de horarios.
24
3.1. Contexto del Problema
El problema de asignaci´on de horarios se encuentra en todos aquellos ´ambitos en los
que la planificaci´on de actividades con relaci´on a los recursos disponibles, tanto en tiempo
como en mano de obra o similares, es un asunto cr´ıtico. El caso a desarrollar tanto en
t´erminos te´oricos, como a la hora de estructurar los casos de pruebas y las simulaciones,
corresponde al timetabling problem asociado a entornos acad´emicos, esto es, escuelas, liceos
y universidades [30]. La complejidad de cada formulaci´on es proporcional al nivel acad´emico
el cual se est´e trabajando, as´ı, el problema de asignaci´on de horarios en una escuela suele
ser un problema no pocas veces resoluble con algoritmos deterministas, mientras que en una
universidad la regla es que se usen metaheur´ısticas, que no es m´as que la combinaci´on de
varias heur´ısticas, con el fin de aproximarse a soluciones ´optimas o en su defecto aceptables.
3.2. Definici´on del problema
T´omese en cuenta que en un entorno de trabajo la realizaci´on de una serie de tareas
es la actividad central del mismo. Una medida de optimalidad en el llevado a cabo de las
mismas est´a basada en el orden en que son realizadas unas con respecto a las otras, as´ı como
la ubicaci´on en el tiempo de cada una de ellas. Todos estos elementos te´oricos entran en el
marco de la investigaci´on de operaciones [91], donde se busca dado un conjunto de recursos
para la realizaci´on de tareas, optimizar el uso de los mismos.
El problema de asignaci´on de horarios (interpretaci´on del t´ermino anglosaj´on timetabling
problem) busca en su versi´on m´as b´asica distribuir la realizaci´on de un conjunto de tareas
atados a dos restricciones obligatorias:
Cantidad de espacio limitada.
Cantidad limitada de bloques horarios.
Al ser un problema combinatorio NP-completo [42] la b´usqueda de soluciones ´optimas
suele estar muy influida por el contexto en el cual se eval´ua el problema, as´ı, las alternativas
25
algor´ıtmicas planteadas se ven altamente atadas en cuanto a modelado de acuerdo al pro-
blema espec´ıfico tratado (un departamento universitario o un ente del gobierno). Es decir,
mientras se busca elevar la cota de optimalidad de las soluciones generadas, el algoritmo de-
genera hasta convertirse solo ´util para un n´umero reducido de contextos, con particularidades
espec´ıficas.
Ahora bien, hay dos segmentos bien delimitados, pero para nada independientes, en la
resoluci´on del timetabling problem. Esto es:
El modelo de restricciones que representa el problema a resolver.
El conjunto de algoritmos a usar para solucionar el modelo. Enti´endase por soluci´on la
asignaci´on de individuos a actividades redundando en la superaci´on de una cota m´ınima
de optimalidad.
El presente trabajo se encarga de optimizar los procesos asociados al primer elemento,
mientras que el segundo, asociado a la b´usqueda, de la soluci´on queda excluido.
Los principales problemas asociados a la construcci´on de un modelo de restricciones para
una instancia del timetabling problem son los siguientes:
La rigidez en su estructura. Un dise˜no demasiado atado al problema para el cual fue
creado resulta in´util cuando la instancia origen cambia, haciendo incluso necesario
volver a re-formular todo el sistema.
La optimalidad asociada al modelo de restricciones (existen m´etricas que calculan la
misma) incide directamente en la factibilidad a la hora de construir una soluci´on factible
al problema.
En relaci´on al problema de la rigidez, un modelo flexible entonces va orientado a que
la mayor cantidad de instancias del timetabling problem puedan ser representadas bajo
el modelo, sin que en el proceso de transformaci´on se pierda informaci´on alguna.
26
El lenguaje usado para el modelo suele causar limitantes a la hora de usarlo. Esto es,
al construirlo en un lenguaje de uso especifico, genera una carga adicional de trabajo
en caso de que sea necesario usarlo bajo otras tecnolog´ıas.
3.3. Objetivos de la investigaci´on
3.3.1. Objetivos Generales
1. Crear un modelo de costos que contemple la naturaleza din´amica de las restricciones de
una instancia cualquiera del problema de asignaci´on de horarios, usando herramientas
de modelado y tomando en cuenta las debilidades de los planteamientos previos con el
fin de superar la rigidez de modelos de restricciones ya existentes.
2. Usar un recurso algor´ıtmico que trabaje sobre el modelo construido y, en conjunto
con datos provenientes de la instancia a resolver, realice un proceso de reformulaci´on
del mismo, optimizando su estructura y con miras a optimizar los c´alculos futuros de
resoluci´on del sistema.
3.3.2. Objetivos Espec´ıficos
1.1 Realizar un estudio intensivo del estado del arte del problema de asignaci´on de horarios,
en espec´ıfico el manejo de las restricciones, con el fin de asegurar la mayor cantidad de
herramientas disponibles para el modelado del proyecto actual.
1.2 Crear un modelo de costos usando basamentos formales l´ogicos y matem´aticos para un
conjunto din´amico de restricciones.
2.1 Construir el esquema algor´ıtmico de alto nivel que trabajar´a sobre el modelo de costos
y restricciones construido en el paso anterior para la reformulaci´on del mismo.
2.2 Implementar el esquema algor´ıtmico en lenguaje de programaci´on, y probar el com-
portamiento del mismo usando conjuntos de entrenamiento pertenecientes a diversos
contextos.
27
3.4. Justificaci´on e importancia del tema tratado
Se piensa que el planteamiento de una soluci´on para el timetabling problem que contem-
ple un modelado robusto para un conjunto din´amico de restricciones que adem´as supere la
tradicional dicotom´ıa de restricciones obligatorias y opcionales, asignando una medida de
importancia espec´ıfica a cada una conllevar´ıa a un avance positivo en las investigaciones de
dicho campo.
La realizaci´on de actividades es, sin necesidad de extenderse demasiado al respecto, el eje
central de la existencia de cualquier organismo. Y en la sociedad industrializada, en donde
la planificaci´on toma m´as importancia conforme aumenta la complejidad de las relaciones de
trabajo, la necesidad de automatizar procesos que solucionados de otra manera (manualmen-
te por ejemplo) tomar´ıan m´as tiempo del necesario cobra mayor importancia. El desarrollo
de un t´opico desde una perspectiva global, y que busque abarcar en t´erminos solventes al
menos las principales versiones de un problema, siempre ofrecer´a la oportunidad de revisar
nuevos aspectos del problema consecuencia de las conclusiones a las que se logre llegar.
De esta manera, los resultados que se obtengan de este trabajo no deber´ıan limitarse a su
aplicaci´on al contexto indicado m´as arriba, sino que pueden servir tambi´en como medidores
en contextos de la misma naturaleza.
28
4. Marco Metodol´ogico
Este cap´ıtulo se compone de dos secciones. En la Descripci´on de la Metodolog´ıa (3.1) se
presenta el Protocolo de Modelado, el cual no es m´as que una serie de pasos a seguir para la
construcci´on de un modelo matem´atico y/o l´ogico, mientras que en la secci´on de Aplicaci´on de
la Metodolog´ıa (4.2) los pasos anteriores toman vida para comenzar con el dise˜no del modelo
general que es el objetivo general del presente trabajo, yendo desde el esclarecimiento final
sobre el objetivo del modelado, pasando por el modelado conceptual, la parametrizaci´on del
modelo, la escogencia del c´odigo y recursos de software para la ejecuci´on de las simulaciones
y pruebas, y la creaci´on del esquema con el cual se presentar´an los resultados finales.
29
4.1. Descripci´on de la metodolog´ıa
Se perfila que el trabajo genere como producto principal el modelo general de restricciones
para el timetabling problem.
El modelado cient´ıfico toma un ente de la realidad y lo convierte en un conjunto de pos-
tulados formales basados principalmente en elementos l´ogicos y matem´aticos que describen
el comportamiento de tal ente conforme a las caracter´ısticas que se desean estudiar [32] [47].
Se define la siguiente trilog´ıa:
Figura 2: Trilog´ıa Modelo - Algoritmo - Programa [32]
Existen otros dos elementos que brindan robustez a la metodolog´ıa de modelado ma-
tem´atico, como lo son el esquema general del modelo y el protocolo de modelado.
El esquema general gira alrededor del postulado de la validez universal del principio causa-
efecto. Los elementos que conforman este principio son adaptados al contexto en el cual se
aplica. En un escenario se transfiere energ´ıa, en otros informaci´on.
El modelo se clasifica de acuerdo a sus caracter´ısticas [48]. Existen muchos tipos de
modelos, as´ı como subtipos, y de la misma manera tal clasificaci´on no necesariamente se
establece al terminar de construirlo. Tambi´en se puede inferir sobre qu´e clase de modelo es,
respondiendo preguntas durante el proceso de creaci´on que esclarezca que decisiones tomar
30
Figura 3: Esquema general del modelo matem´atico. [32]
de acuerdo a qu´e herramientas usar y cu´ales no.
4.1.1. Protocolo de Modelado
1. Definici´on del objetivo del modelado: debe responder a las preguntas ”¿para qu´e
modelar un proceso?”, ”¿para qu´e modelar los procesos relacionados a las restricciones
del problema de asignaci´on de horarios?”. Siendo la secci´on inicial del protocolo, si
bien no todas las ideas que puedan generar los investigadores ser´an plasmadas aqu´ı,
es importante que se planteen aqu´ı todos los puntos cr´ıticos asociados al objetivo del
modelado: las hip´otesis, establecer el tipo del modelo, alcances y limitaciones entre otros
elementos. No posee una estructura definida, y depender´a de la esencia del modelo que
se est´e construyendo.
2. Formulaci´on del modelo conceptual: teniendo un marco establecido en cuanto a
nivel de factibilidad del trabajo a realizar, el modelo conceptual establece la complejidad
de los procesos y elementos a tomar en cuenta para el modelado. Al mismo tiempo, se
identifican tambi´en los elementos pertenecientes al modelo, y c´omo se relacionan entre
s´ı, el alcance del modelo o, en otras palabras, sus limitantes.
3. Tipo de modelo a usar: consecuencia del paso anterior, se puntualiza qu´e tipo de
modelo es m´as adecuado usar. Puede ser puro o compuesto, esto de acuerdo a las
31
necesidades. Conforme al tipo de modelo escogido, se explica el porqu´e de la elecci´on,
y esto m´as que todo est´a condicionado a las caracter´ısticas lo cual lo ubican dentro de
determinada categor´ıa.
Figura 4: Primera etapa del protocolo de modelado [32]
4. Selecci´on del c´odigo a aplicar: basado en el tipo de modelo a usar, se investiga la
disponibilidad de c´odigo, librer´ıas y cualquier otro soporte de software relacionado al
mismo y que sirva de apoyo para el desarrollo de la aplicaci´on que trabajar´a sobre la
construcci´on, testing y validaci´on del modelo, as´ı como de los resultados que se generen
de los procesos ya mencionados. Es aplicable la creaci´on de c´odigo propio, y este ´ultimo
es obviamente imprescindible para cuando la existencia de herramientas que den soporte
al producto a construir sea casi nula.
5. Parametrizaci´on del modelo: se establecen las magnitudes de los par´ametros que
forman parte de la estructura matem´atica. Los elementos identificados y plasmados
en el modelo conceptual son traducidos a definiciones formales en t´erminos l´ogicos y
matem´aticos, principalmente. Esto incluye variables, relaciones, restricciones, as´ı como
alcances y limitaciones del modelo en su generalidad.
32
Figura 5: Segunda etapa del protocolo de modelado [32]
6. Validaci´on del modelo: mientras que el paso anterior establece el rango de valores
a trabajar para cada uno de los par´ametros del modelo, este ´ultimo se prueba ahora
con un conjunto de valores de prueba que est´en fuera de tales rangos, recolectando
los resultados obtenidos. A tal conjunto de resultados se les asocia una medida de
error de acuerdo al criterio de validaci´on que se est´e usando. El modelo construido ser´a
considerado v´alido a efectos de uso cuando tal medida de error se encuentre dentro de
un l´ımite considerado permisible.
7. Simulaci´on: el modelo construido entra en fase de uso con casos de prueba definidos
sistem´aticamente, con el fin de obtener la informaci´on suficiente para el paso final.
Si bien ya es una pr´actica general, vale recalcar que queda como impl´ıcito que estas
simulaciones son computacionales, as´ı que tambi´en es importante especificar las espe-
cificaciones de las plataformas en donde se realicen tales simulaciones.
La construcci´on y/o recolecci´on de casos de prueba debe ser realizada de manera sis-
tem´atica y ordenada, para as´ı tener un control preciso sobre el contraste que se realice
entre los resultados obtenidos y los esperados (en las hip´otesis previas).
8. An´alisis y presentaci´on de resultados: se verifica la coherencia de los resultados
33
Figura 6: Tercera etapa del protocolo de modelado [32]
obtenidos en el paso anterior, soportado tambi´en por el momento en que se super´o la
validaci´on del modelo, para as´ı construir el documento formal que d´e soporte a la toma
de decisiones, as´ı como la construcci´on de las conclusiones y recomendaciones.
4.2. Aplicaci´on de la metodolog´ıa
4.2.1. Definici´on del objetivo del modelado
El problema de asignaci´on de horarios es un problema combinatorio NP-completo [66]. No
existe una sola versi´on del mismo, sino que esta var´ıa dependiendo del contexto del proble-
ma. Esta variaci´on se define mediante cambios en la naturaleza y estructura de sus variables,
relaciones entre las mismas, restricciones sobre los dominios de las variables y sobre tales
relaciones. Si bien persiste un patr´on com´un en cuanto el n´ucleo del problema, independiente
de las versiones que tenga el mismo, el com´un de las soluciones existentes se basa en el alto
grado de diferencia que hay entre cada una de ellas consecuencia de crearlas condicionadas
en su totalidad a la instancia espec´ıfica que se desea resolver.
34
El proceso general de soluci´on al problema se divide en la fase de modelado y la fase al-
gor´ıtmica. La segunda trabaja sobre lo construido en la primera. Esto trae como consecuencia
que la efectividad asociada a la estructura del modelo influya directamente en la calidad de
la soluci´on algor´ıtmica.
En cuanto a la bibliograf´ıa que trata acerca de las soluciones al problema de asignaci´on de
horarios (en sus distintas variantes), la mayor´ıa se concentra m´as en los procesos algor´ıtmicos
que en la fase de modelado, siendo esta ´ultima ubicada como un elemento trivial en compa-
raci´on a los algoritmos desarrollados para tratar el problema.
Entonces, durante el desarrollo del modelo se busca responder las siguientes interrogantes,
con el fin de tener un producto consistente:
¿Qu´e se busca?
◦ Aportar al fortalecimiento de la bibliograf´ıa relacionada a la construcci´on de mo-
delos.
◦ Desarrollar un esquema base orientado en principio a unificar una lista definida
tomada de las principales variantes del timetabling problem en un sistema que per-
mita luego reformular el modelo usando como datos la informaci´on de la instancia
a resolver, todo esto orientado a la optimizaci´on de los c´alculos algor´ıtmicos que
resuelvan el problema.
◦ El modelo creado (entendi´endose por modelo tanto los esquemas conceptuales aso-
ciado al mismo como los mecanismos de reformulacion y optimizaci´on basado en
los casos de prueba) va orientado a ser independiente de plataformas y lenguajes de
programaci´on. En otras palabras, debe ofrecer los mecanismos (te´oricos y emp´ıri-
cos) m´ınimos necesarios para que su interfaz de entrada-salida sea re-usable en la
mayor cantidad de contextos asociados al problema de asignaci´on de horarios.
¿Qu´e se sabe?: Esto es cubierto en la secci´on del modelado conceptual (4.2.2). Se
expresa verbalmente y mediante gr´aficos las entidades que se han identificado del pro-
35
blema, las relaciones entre las mismas, y los resultados (propiedades emergentes del
sistema) de operar ambos elementos.
¿Qu´e se puede asumir?: descrito tambi´en la secci´on del modelado conceptual (4.2.2),
las suposiciones que se realizan con respecto al problema a modelar son concentradas
en t´erminos conceptuales en lo que ser´a tratado como las entradas del modelo general
del problema de asignaci´on de horarios.
¿C´omo deber´ıa ser visto este modelo?: cada una de las caracter´ısticas del modelo
a construir lo condicionan a formar parte de ciertos conjuntos de modelos cient´ıficos
(cubiertos en la secci´on (4.2.3)), los cuales definen la respuesta a tal interrogante. As´ı
mismo, y en t´erminos generales, el trabajo presente se orienta principalmente a pre-
sentar el modelo como una especie de plantilla base en la cual deber´ıan confluir, si no
todos, un segmento significativo tanto en cantidad como en relevancia de las instancias
del timetabling problem.
¿Los resultados obtenidos coinciden con las hip´otesis planteadas?: esta pre-
gunta es respondida convenientemente en la secci´on de Hip´otesis Iniciales (6.2.1) y
en la secci´on de Resultados Obtenidos (6.2.2). Los elementos a analizar en las simu-
laciones del modelo son expuestos en la secci´on de M´etricas de Evaluaci´on (6.1.3).
¿C´omo ser´a usado este modelo?: respuesta cubierta m´as extensamente en la secci´on
de (7.1), b´asicamente dependiendo de los resultados obtenidos, si son alcanzadas las
hip´otesis planteadas, el modelo entonces deber´ıa servir para avanzar en la creaci´on de
un marco de trabajo para el problema investigado que gire alrededor del modelo general
planteado, y en su si defecto si no son cubiertas en su mayor´ıa las hip´otesis predecidas,
entonces deber´ıa servir como indicador de distintos elementos tales como el evitar el
c´odigo escogido para futuras soluciones al mismo problema, el desarrollo del mismo
modelo conceptual pero bajo otro paradigma de programaci´on, la reformulaci´on del
mismo modelo bajo otro enfoque de modelado, entre otras alternativas.
¿C´omo se puede mejorar este modelo? descrito con mayor profundidad en la sec-
ci´on de Trabajos Futuros (7.2), la mejora del modelo construido deber´ıa ir orientada
36
principalmente a mejorar los resultados contemplados en las m´etricas de evaluaci´on, y
ampliar su capacidad de aceptar nuevas instancias del problema de asignaci´on de ho-
rarios, as´ı mismo tal proceso de transformaci´on deber´ıa ser lo menos engorroso posible.
4.2.2. Formulaci´on del modelo conceptual
El modelo conceptual se divide en tres secciones:
Entrada: es la instancia original del problema a resolver. Est´a compuesta de :
◦ Modelo original: es el conjunto de variables, relaciones y restriciones existentes
en el modelo original. Pueden estar formuladas s´olo de manera conceptual o ya
estar parametrizadas adecuadamente en t´erminos l´ogicos y matem´aticos.
◦ Datos de entrada: es la instancia del mundo real que necesita ser resuelta. Por
ejemplo, pueden ser el conjunto de estudiantes que necesitan ser distribuidos entre
las distintas asignaturas, o el conjunto de operarios a distribuir entre las distintas
m´aquinas de una planta.
37
Modelo general: incluye el esquema general al cual debe ser mapeado el modelo
original, as´ı como los procesos encargados de optimizar el modelo. M´as detalladamente:
◦ Mapeo: es el proceso de conversi´on del modelo original al modelo general.
Transforma los elementos del modelo original a elementos que encuadren den-
tro de la l´ogica de Clases Individuo-Clases Actividad-Relaciones-Restricciones.
38
Es realizado de manera manual por aquel que desee hacer uso de los mecanis-
mos de optimizaci´on del sistema. Este proceso de transformaci´on tambi´en debe
aplicarse sobre el conjunto de datos, generando entonces mapeo(dataOriginal) =
dataTransformada.
◦ Clases Individuo: en la sem´antica del problema de asignaci´on de horarios son
aquellos elementos del sistema avocados a realizar alguna actividad.
Figura 7: Clase Individuo.
Para los distintos tipos de clase individuo se tienen los mismos tipos de campo, a
continuaci´on:
◦ Id: identificador ´unico para el individuo.
◦ Lista de atributos: tupla de valores, en donde cada valor es de un tipo primiti-
vo o tupla. Su estructura var´ıa dependiendo del modelo origen. Este atributo
compuesto sirve para modelar los atributos de los Individuos del modelo ori-
ginal que no tienen representaci´on directa en el resto de los atributos de la
clase Individuo.
◦ Clases Actividad: en la sem´antica del problema de asignaci´on de horarios son
aquellos elementos del sistema disponibles para ser ejecutados por los individuos.
Para los distintos tipos de clase actividad se tienen los mismos tipos de campo, a
continuaci´on:
◦ Id: identificador ´unico para la actividad.
◦ Lista de atributos: tupla de valores, en donde cada valor es de un tipo primitivo
o tupla. Su estructura var´ıa dependiendo del modelo origen. Este atributo
39
Figura 8: Clase Actividad.
compuesto sirve para modelar los atributos de las actividades del modelo
original que no tienen representaci´on directa en el resto de los atributos de la
clase Actividad.
Posterior al concepto de Clase Actividad, se tiene el concepto de seccionamiento. Para
la definici´on del mismo, y con el fin de generalizar el concepto de Actividad aplicado
a las principales instancias existentes de problema de asignaci´on de horarios, se deben
en tener en cuenta los siguientes factores:
◦ Una actividad puede tener una cantidad o estimada o determinada de o aspirantes
o participantes.
◦ Diferencias contextuales entre participantes y aspirantes: se habla de participantes
cuando ya est´a establecida la relaci´on de ejecuci´on de un individuo con respecto
a una actividad. Se habla de aspirante cuando tal relaci´on es deseable (ya sea por
condiciones del sistema o por voluntad del individuo) pero a´un no se ha establecido.
◦ En la generalizaci´on del problema de asignaci´on de horarios, se tiene que el con-
junto de actividades son ejecutadas en un determinado plazo. Tal plazo es repetido
por lo menos una vez, es decir, su ejecuci´on es c´ıclica.
◦ La ejecuci´on de cada actividad en el marco de un plazo c´ıclico se ve condicionada,
directa o indirectamente, por tres elementos:
◦ Tiempo: la ejecuci´on total de una actividad, en algunos casos (depende del
problema original), debe distribuirse en segmentos a trav´es del tiempo. A cada
uno de estos segmentos se le conocer´a como sub-actividad.
40
◦ Ubicaci´on: una actividad es ejecutada en alguna instancia del espacio. Tal
ubicaci´on poseer´a diversos atributos relacionados, pero a efectos del an´alisis
presente relacionado al seccionamiento, se considerar´a ´unicamente aquel atri-
buto relacionado a la m´axima carga de individuos que tal ubicaci´on puede
admitir.
◦ Ejecutores: cantidad estimada o determinada de participantes o aspirantes.
Comprendiendo entonces la limitante asociada a la cantidad de individuo que puede
albergar una ubicaci´on f´ısica para la prosecuci´on de una actividad, se tiene que:
Se entiende por seccionamiento [71] el proceso por el cual una actividad es replicada
de tal manera que cada r´eplica se toma como una actividad independiente con respecto
a las otras, con el fin de que su ejecuci´on sea manejable con respecto a la correlaci´on
carga m´axima de individuos por ubicaci´on y cantidad total estimada o
determinada de participantes o aspirantes
Establecido el concepto de seccionamiento, entra en juego el de eventos. Un evento
no es m´as que la asignaci´on de una sub-actividad a un par (instancia temporal,
instancia posicional). En otras palabras, un evento es la representaci´on indivisible (a
efectos del presente modelo) de la ejecuci´on de una actividad en t´erminos de sub-
actividades, ubicando cada una en una determinada instancia del espacio y del tiempo
(cada una de estas caracter´ısticas depender´an del contexto del trabajo, pero se toman
como referencias principales no excluibles por ser parte de los principales sistemas de
medici´on existentes).
◦ Relaciones: son las representaciones necesarias para indicar que la Clase In-
dividuo X agrupa los individuos del modelo original que se plantean realizar las
actividades del modelo original pertenecientes ahora a la Clase Individuo Y. Las
siguientes son las relaciones planteadas en el modelo a construir:
◦ Individuo-realiza-Actividad:
41
Figura 9: Relacion Individuo-Realiza-Actividad.
◦ Incompatiblidad: se habla de ausencia de compatibilidad cuando, prestos dos
o m´as elementos a ser comparados entre si, existe disonancia entre los valores
esperados para ser evaluados dentro de un conjunto de funciones matem´aticas y
condiciones l´ogicas y los valores reales de tales elementos aplicados a tales funciones
y condiciones. Este esquema general es donde van encuadradas las tradicionales
restricciones “fuertes” y opcionales del timetabling problem.
◦ Propagadores: [29] es el conjunto de algoritmos de optimizaci´on de modelos
que trabaja sobre el modelo general (que contiene, posterior al proceso de mapeo,
una representaci´on manejable del modelo original), produciendo una versi´on me-
jorada del mismo. En t´erminos formales, puede describirse de la siguiente manera:
propagadores(modeloGeneral, dataTransformada) = modeloOptimizado.
Salida: es consecuencia de la actividad de los propagadores, el modeloOptimizado.
4.2.3. Tipo de modelo a usar
Es un modelo h´ıbrido, dado que su estructura engrana conceptos y mecanismos de dis-
tintos tipos de modelos hom´ogeneos, los cuales est´an listados a continuaci´on:
Modelo matem´atico [40]: dado que la mayor´ıa de sus componentes son expresa-
dos en base a conceptos matem´aticos. Principalmente las restricciones asociadas a las
relaciones entre las clases existentes en el sistema.
Modelo l´ogico [85]: debido a que tanto las relaciones como las restricciones son
expresadas, en ´ultima instancia, como el cumplimiento o no (verdadero o falso) de
determinadas condiciones construidas con postulados matem´aticos.
42
Modelo emp´ırico: como consecuencia de incluir en uno de los procesos del modelo el
uso de datos reales.
Modelo estoc´astico: por el uso de componentes aleatorios y heur´ısticos a la hora de
hallar una version optimizada del modelo general basado en los datos de la instancia
del problema a resolver.
Modelo conceptual/cualitativo: porque en su concepci´on inicial, a fines de una me-
jor comprensi´on, es presentado como un engranaje de conceptos que permitan realizar
el proceso de mapeo m´as f´acilmente.
Modelo descriptivo: dado que el enfoque asumido para la construcci´on del modelo
general es comprender la esencia del problema de asignaci´on de horarios desde una
perspectiva tanto global como intr´ınseca, haciendo necesario la descripci´on detallada
de los procesos involucrados no s´olo en t´erminos formales sino tambi´en en lenguaje
natural, y definiendo la estructura final del mismo usando un marco recursos-procesos-
resultados.
Modelo de optimizaci´on: debido a que una de las principales caracter´ısticas del
timetabling problem es que las soluciones propuestas van orientadas desde un principio
a optimizar las asignaciones de individuos a actividades a realizar.
Modelo universal (vs Modelo de dominio espec´ıfico): porque se busca englo-
bar el problema de asignaci´on de horarios, colocando como cota m´ınima abarcar sin
inconvenientes las versiones m´as representativas del problema, para luego en trabajos
futuros basados en el actual, corregir las deficiencias del modelo construido y a˜nadir
nuevas caracter´ısticas que permitan cubrir versiones m´as sofisticadas del timetabling
problem que no sean cubiertas con el esquema construido en el presente trabajo.
4.2.4. Selecci´on del c´odigo a aplicar
Esto es descrito con m´as detalle en la secci´on de Plataforma Computacional (6.1.1),
espec´ıficamente en el segmento dedicado a la especificaci´on de los recursos de software a usar
para ejecutar las simulaciones.
43
4.2.5. Parametrizaci´on del modelo
Actividades:
A = {Ai/Ai es una actividad} , 1 ≤ i ≤ nA, nA = |A|
Ai =< id, < attr1, attr2, ..., attrm >>, m ≥ 0
Donde attri es un valor primitivo o una tupla, que contiene a su vez valores primitivos
o una tupla, y as´ı sucesivamente...
Sea F = {fi/fi es la cantidad de individuos asignados a realizar la actividad Ai}
Sea P = {p1, p2, ..., pn}
Donde pi es la cantidad promedio estimada de ejecutores que tendr´ıa cada sub-actividad
de Ai.
|A| = |F| = |P|
Aplicando criterio de seccionamiento (replicaci´on de actividad):
R = {Ri/Ri es el conjunto de r´eplicas de la actividad Ai ∧ |Ri| = roof(fi/pi)}
Donde roof(...) arroja el valor redondeado al tope del par´ametro.
Se tiene entonces:
A =
n
i=1
(Ri ∈ R) = {Aj/Aj es un seccionamiento de una de las actividades originales}
Aj =< id, id actividad original, < attr1, attr2, ..., attrm >>
Lapso:
L = {Lk/Lk es una instancia temporal } , 1 ≤ k ≤ nL, nL = |L|
Lk =< id, < attr1, attr2, ..., attrp >>, p ≥ 0
Ubicaci´on:
U = {Ul/Ul es una instancia locacional } , 1 ≤ l ≤ nU , nU = |U|
Ul =< id, < attr1, attr2, ..., attrq >>, q ≥ 0
Eventos:
44
E = {Ed/Ed es un evento } , 1 ≤ d ≤ nE, nE = |E|
Ed =< id, id actividad, id lapso, id ubicacion, < attr1, attr2, ..., attrr >>, r ≥ 0
Donde compatibles AEd[id actividad] ∈ A , LEd[id lapso] ∈ L, UEd[id ubicacion] ∈ U . Est´a res-
tricci´on de compatibilidad ser´a etiquetada como RT0.
Individuos:
I = {Is/Is es una individuo } , 1 ≤ s ≤ nI, nI = |I|
Us =< id, < attr1, attr2, ..., attrw >>, w ≥ 0
Restricciones:
◦ Minimizaci´on de incompatibilidades entre eventos (RT1):
Dado un valor min1 ∈ R:
RT2 ≡ (
nE
i=1
incompatibilidad(AEi[id actividad] ∈ A ,
LEi[id lapso] ∈ L, UEi[id ubicacion] ∈ U)) ≤ min1
◦ Minimizaci´on de incompatibilidades en asignaciones Individuo-Actividad
(RT2):
Sea G = {(Iy, Ac)/Iy ∈ I ∧ Ac ∈ A }
G es el conjunto de asignaciones de individuos a actividades que se desean solu-
cionar. Tomando como elementos de c´alculo los pertenecientes a G, minimizar lo
siguiente:
Dado (Ix, Ai), (Ix, Aj) ∈ G. Ocurre que:
RT2 ≡ (Ai[id] = Aj[id] ∧ Ai[id actividad] = Aj[id actividad]) ∨
(Ai[id] = Aj[id] ∧ Ai[id actividad] = Aj[id actividad]∧
(∃x, y ∈ E[x[id actividad] = Ai[id actividad]∧
y[id actividad] = Aj[id actividad]∧
(solapamiento(Lx[id lapso] ∈ L, Ly[id lapso] ∈ L)∨
solapamiento(Ux[id ubicacion] ∈ U, Uy[id ubicacion] ∈ U))]))
45
4.2.6. Validaci´on del modelo
Verificaci´on del modelo:
¿El modelo est´a programado correctamente?, ¿Los algoritmos han sido im-
plementados apropiadamente?, ¿El modelo no contiene errores de ning´un
tipo? [86]
El dise˜no del modelo, realizado con cierto subconjunto de tecnolog´ıas y descrito con m´as
profundidad en la secci´on de Configuraci´on de los experimentos (6.1.2), se bas´o en
la construcci´on de un conjunto de condiciones en l´ogica de primer orden, que incluye
l´ogica de predicados y postulados matem´aticos b´asicos, que pueden ser verificados para
comprobar su correctitud sem´antica y por supuesto sint´actica.
As´ı mismo la fiabilidad funcional de las herramientas de software a usar est´an garantiza-
das dado que se tratan de creaciones validadas por los procesos est´andar de evaluaci´on
de las investigaciones cient´ıficas.
La existencia o ausencia de errores en el modelo de restricciones creado para el presente
trabajo puede ser verificado, como ya se dijo, estudiando las condiciones desarrolladas
en la secci´on de descripci´on de los casos de prueba.
Validaci´on del modelo: La validaci´on de un modelo va orientada principalmente a
establecer la correctitud que existe entre lo que hace el modelo y el comportamiento
del fen´omeno del mundo real que desea reproducir. Este modelo no busca esquematizar
un fen´omeno del mundo real sino brindar un marco com´un de par´ametros (entidades,
relaciones y restricciones) para el problema de asignaci´on de horarios. En consecuencia,
no son aplicables los mecanismos de validaci´on de modelos existentes para el actual.
4.2.7. Simulaci´on
El proceso de simulaci´on consta de las siguientes fases:
Definici´on de casos de prueba.
Mapeo de casos de prueba, en conjunto con la data complementaria, al modelo general
construido en el presente trabajo.
46
Formulaci´on de hip´otesis iniciales.
Escogencia de c´odigo, software y/o librer´ıas que desarrollen los algoritmos de propaga-
ci´on.
Implementaci´on de resultados de mapeo de los casos de prueba en los c´odigos seleccio-
nados.
Establecimiento de plataformas de hardware en donde se ejecutar´an las simulaciones
(equipos computadores).
Ejecuci´on de los c´odigos en conjunto con los casos de prueba.
An´alisis de los resultados obtenidos, constrastaci´on con hip´otesis iniciales. Reformula-
ci´on de hip´otesis o de otro punto previo en caso de considerarse necesario.
Presentaci´on de resultados finales.
4.2.8. Presentaci´on y an´alisis de resultados
Presentaci´on de resultados:
Cubierto en la secci´on de Resultados obtenidos (6.2.2).
Se realiza con las herramientas de presentaci´on m´as convenientes (tablas, gr´aficos),
adaptando los valores generados a partir de las simulaciones contenidos por determina-
das variables. Se trabajan las distintas combinaciones que puedan generarse entre los
segmentos de datos generados para as´ı producir la informaci´on que ser´a cubierta en el
an´alisis final de resultados.
An´alisis de resultados:
Desarrollado en la secci´on de Conclusiones y Recomendaciones.
Aqu´ı se expone el an´alisis final que contrasta las hip´otesis iniciales planteadas y los
resultados obtenidos de las simulaciones. A partir de aqu´ı tambi´en se generar´a las
recomendaciones para futuros trabajos que basen su tem´atica en la desarrollada en la
47
presente investigaci´on, en la continuaci´on de la misma, o en su defecto de uno intr´ınseca-
mente relacionado tanto al problema de generar un esquema general de las restricciones,
o en la optimizaci´on de las mismas mediante t´ecnicas de propagadores o alternativas.
48
5. Dise˜no de la soluci´on
Este cap´ıtulo se compone de dos secciones. En la Descripci´on de la Soluci´on (5.1) se
presentan una serie de puntos que describen el proceso a seguir ahora que se tiene establecido
por completo el marco de trabajo definido por el Protocolo de Modelado. Esta serie de pasos
incluyen el proceso de escogencia de los casos de prueba a desarrollar y la selecci´on del
software para las simulaciones. En la secci´on de Alcances y Limitaciones (5.2) se describen
los contras en relaci´on al proceso a seguir para la consecuci´on de los resultados que convaliden
los objetivos a lograr.
49
5.1. Descripci´on de la soluci´on
El siguiente es un listado que resume la serie de pasos a seguir para lograr el objetivo final
propuesto, as´ı como las caracter´ısticas que rodean al proceso. Cada paso posee la respectiva
referencia a la secci´on o secciones del presente trabajo en donde se describe con mayor detalle:
Se ha realizado una investigaci´on a fondo de los t´opicos m´as activos con respecto al
problema de asignaci´on de horarios. Esto ha permitido identificar las principales ins-
tancias existentes del problema, y para cada una de ellas extraer un patr´on alrededor
de la tr´ıada entidades-relaciones-restricciones, y construir un modelo conceptual debi-
damente parametrizado que permita dar soporte en su totalidad a los aspectos m´as
esenciales de las instancias seleccionadas.
Se escogen de manera detallada los casos de prueba m´as representativos a efectos de
poner a prueba la validez de los planteamientos del presente trabajo. Estos casos de
prueba consisten en modelos de entidades-relaciones-restricciones de instancias del ti-
metabling problem. A cada caso de prueba se le asocian datos de entrada, tanto reales
como artificiales (provenientes de un generador de casos previamente construido), los
cuales servir´an para la ejecuci´on de los pasos posteriores.
Habiendo construido las hip´otesis iniciales, estableciendo cotas de trabajo, definido las
plataformas en donde se ejecutar´a la simulaci´on, en conjunto con el c´odigo correspon-
diente, se realiza la conversi´on de los modelos originales en conjunto con la data al
esquema general planteado como soluci´on en este trabajo.
Desarrolladas las conversiones, se ejecutan las simulaciones, que consistir´an en (para
cada modelo convertido al esquema general), usando los mecanismos prove´ıdos por el
c´odigo seleccionado, la aplicaci´on de los algoritmos de propagaci´on (optimizadores de
modelo) en base a los datos que tambi´en fueron transformados.
Posterior a las simulaciones, se recolectar´an los datos producidos por las mismas, rea-
lizando los an´alisis correspondientes orientados principalmente a validar las hip´otesis
planteadas. En caso de no existir una correlaci´on v´alida entre hip´otesis y resultados, se
realiza una iteraci´on consistente en identificar alg´un elemento err´oneo existente entre
50
los planteamientos iniciales del trabajo y las hip´otesis previas a la simulaci´on. Realizada
la re-formulaci´on, se ejecutan nuevamente las simulaciones (volver al paso anterior).
Para cuando exista una correlaci´on v´alida entre hip´otesis y resultados obtenidos, se
realizan las conclusiones asociadas a la investigaci´on en general, as´ı como las recomen-
daciones para trabajos futuros basados en el actual.
5.2. Alcance y limitaciones
El proceso de mapeo debe realizarse de manera manual. Esto involucra una carga
adicional para el usuario, dado que tiene que realizar un an´alisis propio que logre
encajar con el esquema general construido. Se evalu´o la posibilidad de trabajar con
un proceso de mapeo autom´atico, pero queda fuera de los objetivos propuestos en el
trabajo actual.
El c´odigo encontrado para ser usado en el m´odulo de optimizaci´on del modelo (los
propagadores), si bien cumplen su trabajo, no est´a asegurado que sean la mejor versi´on
de si mismos, constituy´endose esto en otra limitaci´on, y al mismo tiempo, en un punto
importante a ser tocado en un trabajo futuro, en donde se optimicen los algoritmos de
propagaci´on encargados de optimizar el modelo construido en el trabajo actual.
Queda fuera del trabajo la realizaci´on de una interfaz de usuario de alto nivel que
permita un manejo y/o entendimiento simple de los resultados, esto debido a que el
uso de estos componentes est´a m´as orientado a desarrolladores de una herramienta
m´as global como lo ser´ıa un solver para el problema de asignaci´on de horarios, con los
conocimientos necesarios en el campo.
Si bien la bibliograf´ıa revisada est´a lejos de ser peque˜na, el modelo construido est´a lejos
de abarcar todas las variantes del problema de asignaci´on de horarios, pero si ha sido
dise˜nado para que de soluci´on, con la respectiva conversi´on (mapeo), a las principales
versiones del mismo. Dando pie entonces a que, en trabajos futuros, una versi´on m´as
refinada del modelo sea construida.
51
6. Resultados experimentales
Este cap´ıtulo se compone de dos secciones. En la Configuraci´on de los Experimentos
(6.1) se describe la plataforma computacional sobre la cual se ejecutar´an las pruebas (esto
incluye caracter´ısticas de hardware y c´odigos escogidos que traten con el problema de la
optimizaci´on de modelos mediante algoritmos de propagaci´on de restricciones), los casos de
prueba en su versi´on inicial, descritos verbalmente, pasando por sus definiciones l´ogicas hasta
la representaci´on de los mismos en el software escogido para las simulaciones, as´ı como la
definici´on de las m´etricas de evaluaci´on para analizar el nivel de validez de los resultados
en relaci´on a los objetivos planteados. Mientras que en el An´alisis de los Resultados (6.2) se
describen las hip´otesis iniciales en relaci´on a lo que se espera obtener de las simulaciones en
base a todo el entramado te´orico y de an´alisis realizado previamente, para luego mostrar los
resultados obtenidos de las simulaciones.
52
6.1. Configuraci´on de los experimentos
6.1.1. Plataforma computacional
Las pruebas descritas en las siguientes secciones fueron realizadas en un equipo compu-
tador con las siguientes caracter´ısticas de hardware y software:
Sistema Operativo: Windows 10 de 32 Bits.
Disco Duro (HDD):
◦ Capacidad: 320 GB.
◦ Marca: Samsung.
◦ Modelo: HM321HI.
◦ RPM (Revoluciones Por Minuto): 5400 / 8M.
RAM: DDR3 2 GB Single Channel. Frecuencia DRAM (Dynamic RAM) de 399.0
MHz.
CPU: Pentium(R) Dual-Core E5700 @ 3.00 GHz 3.00 GHz.
En cuanto a la selecci´on de c´odigo para ejecutar la optimizaci´on del modelo, se construy´o
una lista de candidatos suficientemente amplia, para que el an´alisis de escogencia (en base a
una serie de criterios descritos a posteriori) se realizara con la mayor holgura posible. Estos
programas son los mencionados a continuaci´on:
Choco [2]: es una biblioteca para Java de c´odigo abierto usada para la programaci´on con
restricciones. Permite al usuario (programador) modelar su problema estableciendo el
conjunto de restricciones que deben ser cumplidas en cada una de las soluciones. Luego,
el problema es resuelto usando mecanismos que alternan entre algoritmos de filtrado
con mecanismos de b´usqueda.
EclipseCLP [4]: es un sistema de c´odigo abierto para el desarrollo y puesta en marcha
de aplicaciones basadas en programaci´on con restricciones. Contiene varias librer´ıas
para resolver esquemas pre-definidos de restricciones, un lenguaje de alto nivel para el
53
modelado, interfaces para solvers externos, entre otras herramientas. Su uso es mediante
la sintaxis de la programaci´on l´ogica.
IBM ILOG Cplex Optimization Studio [11]: es un kit de herramientas de soporte a
la toma de decisiones mediante anal´ıtica para acelerar el desarrollo y el despliegue
de modelos de optimizaci´on utilizando programaci´on matem´atica y de restricciones.
Combina un entorno de desarrollo integrado con un potente lenguaje de programaci´on
de optimizaci´on y solucionadores de optimizador ILOG CPLEX de alto rendimiento. Es
de uso pago mediante licencia, ofreciendo una versi´on de prueba y con funcionalidades
limitadas.
Mozart Programming System [16]: combina investigaciones en desarrollo acerca del
dise˜no e implementaci´on de lenguajes de programaci´on, computaci´on distribuida, e
interfaces humano-computador. Est´a implementado sobre el lenguaje multiparadigma
Oz y provee poder expresivo y avanzadas funcionalidades por igual. La ´ultima versi´on
(la 2) provee un soporte limitado al manejo de restricciones, que espera ser mejorado
con el lanzamiento de nuevas versiones, siendo esta la principal meta.
Constraint 0.4.1 [3]: es una biblioteca disponible para Python, orientada a resolver
problemas de restricciones usando propagadores. Es un desarrollo a´un en fase experi-
mental.
UNITIME [89]: descrito ya previamente en la secci´on de Antecedentes Te´oricos / Tra-
bajos Previos. Adem´as del software principal, ofrece acceso a componentes .jar para ser
usados como librer´ıas externas de alg´un modulo personalizado relativo al timetabling
problem.
python-constraint [18]: otra biblioteca para Python que ofrece solucionadores para pro-
blemas de programaci´on con restricciones. Los solvers disponibles hasta el momento
son backtracking, recursivo y el de m´ınimo conflicto, en donde se minimizan la cantidad
de veces en la que cierta restricci´on se incumple en las soluciones halladas o construidas.
Swi-Prolog [22]: es una implementaci´on estable y gratuita del lenguaje Prolog, con
orientaci´on a ser usada principalmente en entornos de investigaci´on y educativos.
54
Lingo [13]: herramienta dise˜nada para la construcci´on y soluci´on de modelos lineales y
no lineales (convexos y no convexos), cuadr´aticas, restringidas cuadr´aticamente, entre
otros, de manera r´apida, f´acil y eficiente.
Gecode [7]: es un conjunto de herramientas para el desarrollo de sistemas y aplicacio-
nes basadas en restricciones. Posee caracter´ısticas en su implementaci´on que lo hacen
abordar de manera muy eficiente muchos problemas tanto con enfoques deterministas
como con enfoques heur´ısticos. Permite su ejecuci´on en paralelo, maximizando el uso de
esta caracter´ıstica acorde a la arquitectura de hardware en la que est´e siendo ejecutada,
respaldada por sus primeros lugares en diversas competencias del ramo, y distribuida
de manera gratuita y en c´odigo abierto.
SavileRow [74]: implementada en Java, es una herramienta orientada a la optimizaci´on
de modelos de restricciones, m´as que a la soluci´on de los mismos.
As´ı mismo, existe un compendio adicional de herramientas, entre ellas LOOM ( [14]),
IBEX ( [10]), Cassowary ( [1]), Jacop ( [12]), Simple Theorem Prover (AKA SMT Solver)
( [20]), Opta Planner ( [17]), SCIP ( [19]), GUROBI ( [8]), Xpress ( [23]), SoPlex ( [21]),
FaCiLe ( [5]), HaifaCSP ( [9]), FPCS ( [6]), Mistral ( [15]). A diferencia de los descritos
m´as detalladamente en la lista previa a la anterior, estos ´ultimos tienen en com´un que son
softwares descontinuados, programas pagos sin acceso a versiones de prueba (limitadas en
tiempo de uso o cantidad de caracter´ısticas/funcionalidades), o sin posibilidad de acceder a
su c´odigo fuente para revisiones m´as detalladas. En base a los mismos criterios junto a otros
adicionales se aplic´o un filtro entre los principales, para as´ı quedar con un solo candidato a
usar en las simulaciones:
Acceso a c´odigo fuente: disponible en todas las principales excepto en UNITIME
y en IBM ILOG Cplex.
Licencias libres Vs Licencias privativas: aplica el mismo resultado del punto
anterior.
Curva de aprendizaje: un aprendizaje m´as r´apido es ofrecido por herramientas
como SavileRow, dado que solo precisan conocimientos en l´ogica de primer orden, as´ı
55
como definici´on de predicados, mientras que en Lingo o ILOG Cplex o las bibliotecas
de Python hay que adaptarse a una sintaxis especifica definida por la herramienta, o
en Gecode, Swi-Prolog, Mozart o EclipseCLP se debe tener un background de conoci-
mientos en Programaci´on L´ogica.
De igual manera, la capacidad expresiva de la librer´ıa para Java llamada Choco es bastante
reducida, en contraste con la potencia de sus solvers internos as´ı como de sus algoritmos
propagadores.
En base a lo anterior, tenemos entonces que el c´odigo escogido para la ejecuci´on de las
simulaciones fue SavileRow 1.6.3, el cual a su vez usa dos herramientas complementarias,
Minion 1.8 y Essence 1.6.3. Se ha escogido SavileRow por su capacidad expresiva a la
hora de construir las restricciones, por sus algoritmos de propagaci´on debidamente validados
en sus publicaciones cient´ıficas y concursos y conferencias del problema de asignaci´on de
horarios, as´ı como la versatilidad inherente a la hora de generar los resultados en distintos
formatos para distintos solvers de restricciones. Se describen las herramientas escogidas a
continuaci´on:
SavileRow [74]: en su versi´on 1.6.3, es un asistente de modelado para programaci´on
con restricciones. Provee un lenguaje de alto nivel que permite especificar las restriccio-
nes del problema que se quiera solventar, y luego traslada esa definici´on a un archivo de
entrada para un determinado solver. Durante el proceso de traducci´on, SavileRow apli-
ca procesos de reformulaci´on al modelo usando t´ecnicas de propagaci´on de restricciones,
en conjunto con los valores asignados a las variables del modelo de restricciones, para
as´ı optimizar el modelo. El lenguaje usado para modelar el problema que luego ser´a
pasado para ser optimizado por el n´ucleo de SavileRow (implementado en Java [79])
se conoce como Essence.
Minion [69]: en su versi´on 1.8, es un solucionador de restricciones basado en el modela-
do de las mismas usando modelos matriciales. En otras palabras, restringe la expresi´on
de las restricciones a ser aplicadas sobre el conjunto de datos a resolver a una estruc-
tura de matriz, ofreciendo poca versatilidad a la hora de modelar, esto con el fin de
optimizar los procesos de soluci´on del problema. Esto contrasta con la mayor´ıa de los
56
restantes solucionadores de restricciones, que en la b´usqueda de proporcionar m´as fle-
xibilidad a la hora del modelado, sacrifican el performance de las soluciones obtenidas,
tanto en calidad como en tiempo. El paper que present´o a Minion fue escogido entre
los 10 primeros de un total de 500 entregas durante la ECAI [50].
Essence [46]: en su versi´on 1.6.3, es un lenguaje formal (usado por SavileRow en
el presente problema) para la especificaci´on de problemas combinatorios, usando una
mezcla de lenguaje natural y matem´aticas discretas (l´ogica de primer orden, de pre-
dicados, matrices, etc). Provee un sistema de tipos para definir una amplia gama de
estructuras de datos, con el nivel de profundidad que requiera el problema a solucionar.
Est´a construido con la finalidad de ser accesible en uso a cualquiera que tenga cono-
cimientos b´asicos en matem´aticas discretas, y no necesariamente de programaci´on con
restricciones.
6.1.2. Casos de prueba
De la lista de casos del problema de asignaci´on de horarios estudiados hasta el punto
actual, han sido escogidos dos instancias para la realizaci´on de las simulaciones, dado que
ambas engloban las principales caracter´ısticas a ser estudiadas del timetabling problem. Las
dos pertenecientes al contexto universitario, debido a que este brinda la mayor cantidad de
condiciones que aumentan la complejidad del problema, estas son:
Post-Enrolment Course Timetabling (PE-CCT): eval´ua la distribuci´on de las asigna-
turas en un conjunto de aulas y per´ıodos (intervalos de horas repartidos en los d´ıas de
la semana) una vez que ya se tiene definido el conjunto de estudiantes que cursar´a cada
asignatura [67]. M´as formalmente, se manejan los siguientes elementos en esta instancia
del problema:
◦ Entidades:
◦ Eventos: cada evento requiere la asistencia de un conjunto de estudiantes as´ı
como de un sal´on con determinadas caracter´ısticas. Puede existir una pre-
cedencia obligatoria que obligue a que un evento ocurra primero en un d´ıa
57
antes que otro en espec´ıfico. De igual manera, tambi´en se define una condi-
ci´on de disponibilidad que establezca cuales timeslots est´an disponibles para
el evento.
◦ Salones: un sal´on posee un conjunto de caracter´ısticas, siendo la principal la
capacidad m´axima de estudiantes que puede admitir.
◦ Timeslots: se tienen a disposici´on cierto conjunto de d´ıas (dentro de una
semana), cada uno dividido en determinados teaching timeslots (“ranuras de
tiempo para ense˜nanza”) los cuales tienen que ser asignados a los eventos.
◦ Restricciones obligatorias:
◦ Restricci´on H1 - Conflictos: eventos que posean estudiantes en com´un no
pueden compartir el mismo timeslot.
◦ Restricci´on H2 - Compatibilidad: un evento no puede ser alojado en un sal´on
que no posea las caracter´ısticas necesarias para el desarrollo del mismo, as´ı
como tampoco en un sal´on que no posea la capacidad m´ınima necesaria.
◦ Restricci´on H3 - Ocupaci´on: No se permite el desarrollo de m´as de un evento
por sal´on al mismo tiempo.
◦ Restricci´on H4 - Disponibilidad: el timeslot asignado a un evento debe estar
disponible y no restringido para ese evento en espec´ıfico.
◦ Restricci´on H5 - Precedencias: respetar la precedencia entre eventos.
◦ Restricciones opcionales:
◦ Restricci´on S1 - Eventos Tard´ıos: evitar la asignaci´on de eventos al final del
d´ıa.
◦ Restricci´on S2 - Eventos Consecutivos: evitar la asignaci´on de eventos que
obliguen al estudiante a asistir a dos eventos consecutivos.
Curriculum-Based Course Timetabling (CB-CCT): plantea la asignaci´on de horarios
agregando como elemento central del an´alisis el concepto de curr´ıculum. Este no es m´as
que la agrupaci´on de un conjunto de asignaturas marcadas por varias caracter´ısticas en
com´un relacionadas mayoritariamente por la proximidad semestral. Existen distintas
58
variantes de este problema, siendo la presentada aqu´ı un compendio de los elementos
m´as resaltantes de [39], [72] y [65].
◦ Entidades:
◦ D´ıas, timeslots y per´ıodos: se especifica un conjunto de d´ıas a la semana,
y cada d´ıa es dividido en un conjunto de timeslots. Un per´ıodo viene a ser la
combinaci´on d´ıa-timeslot. La cantidad total de per´ıodos disponibles vendr´ıa a
ser la uni´on generalizada de todos los productos cardinales entre cada d´ıa y
sus respectivos timeslots.
◦ Cursos y profesores: un curso es divido en clases para ser impartidas cada
una en un timeslot, siendo atendida por un conjunto de estudiantes, y dirigida
por un profesor. Hay timeslots para los cuales est´a restringido el desarrollo de
determinadas asignaturas.
◦ Salones: poseen una capacidad de carga m´axima, y en principio son asigna-
bles a cualquier clase (aplicando luego la restricci´on de capacidad).
◦ Curr´ıculo: es un grupo de cursos tal que cualquier par de ellos posee es-
tudiantes en com´un. Es a partir de este elemento de donde se generan las
restricciones de este caso.
◦ Restricciones obligatorias:
◦ Restricci´on H6 - Ocupaci´on de aula: no pueden haber par de clases compar-
tiendo la misma aula en el mismo per´ıodo.
◦ Restricci´on H7 - Conflictos: clases que pertenezcan a asignaturas del mismo
curr´ıculo deben tener entonces distintos per´ıodos asignados.
◦ Restricci´on H8 - Disponibilidad: si el profesor encargado de una asignatura
no est´a disponible para trabajar un determinado per´ıodo, entonces ninguna
clase de esa asignatura debe ser dictada en ese per´ıodo.
◦ Restricci´on H9 - Multiplicidad: solo se permite m´as de una clase de la misma
asignatura para aquellas especificadas en el conjunto de datos de entrada.
◦ Restricci´on H10: existen per´ıodos en los que no se est´a permitido dictar clases
de determinados cursos.
59
◦ Restricci´on H11: existen aulas en las que no est´a permitido dictar clases de
determinados cursos.
◦ Restricciones opcionales:
◦ Restricci´on S4 - No exceder la capacidad m´axima de cada aula.
◦ Restricci´on S5 - Las clases de cada asignatura deben ser dictadas por encima
de una cantidad m´ınima de d´ıas, incluyente.
◦ Restricci´on S6 - Asignar de manera consecutiva las clases de asignaturas per-
tenecientes al mismo curr´ıculo.
◦ Restricci´on S7 - Todas las clases de una misma asignatura deben ser realizadas
en la misma aula.
En base a lo anterior, se construir´an los casos de prueba, cada uno de ellos basados en los
formatos que se acaban de describir respectivamente, excluyendo determinadas restricciones.
As´ı mismo, se har´a ´enfasis en describir los procesos relacionados al seccionamiento, creaci´on
de eventos, y optimizaci´on de modelos para posterior asignaci´on de individuos a actividades
y/o eventos. Todo esto descrito a continuaci´on:
Caso de prueba 1: basado en el PE-CTT. Se excluyen la restricci´on S1 debido que
a la formulaci´on de la misma conlleva el uso de expresiones matem´aticas basadas en
sumatorias que no pueden ser desarrolladas de manera directa con el software escogido.
Las entidades y/o variables, relaciones y restricciones a tomar en cuenta son los siguien-
tes:
◦ Entidades:
◦ Eventos: E = {ei/ei es un evento} , |E| > 0
Cada evento posee un identificador ´unico y un conjunto de atributos de valores
booleanos
ai =< id, < attr1, attr2, ..., attrn >>, n > 0
La sem´antica de cada atributo attrj es la siguiente: si attrj == V erdadero,
significa que es necesario que el aula en donde se quiera llevar a cabo el evento
60
ei debe cumplir con ese requerimiento. Si es Falso, indica que no es necesario
que el aula cumpla con tal requisito.
Cada evento posee la misma cantidad de atributos booleanos, y variar´a entre
ellos el valor de verdad de cada uno.
◦ Aulas: A = {ai/ai es un aula} , |A| > 0
Cada aula posee un identificador ´unico y un conjunto de atributos de valores
booleanos
ai =< id, < attr1, attr2, ..., attrn >>, n > 0
La sem´antica de cada atributo attrj es la siguiente: attrj == V erdadero indica
que el aula ai cumple con poseer el atributo mencionado. En caso contrario,
si es Falso, quiere decir que no lo posee.
Cada aula posee la misma cantidad de atributos booleanos, y variar´a entre
ellas el valor de verdad de cada uno.
◦ Estudiantes: S = {si/si es un estudiante} , |S| > 0
Cada estudiante posee un identificador ´unico asociado, y la lista de eventos
en los que definitivamente va a participar.
si =< id, < e1, e2, ..., em >>, m ≤ |E|
Donde ej es un identificador de uno de los eventos.
◦ per´ıodos: P = {pi/pi es un periodo} , |P| > 0
Un per´ıodo es la combinaci´on de un timeslot con un d´ıa.
pi = (d, t)
d ∈ D = {di/di es un dia de la semana} , 1 ≤ |D| ≤ 7
t ∈ T = {ti/ti es un timeslot} , |T| > 0
ti = (hx, hy), donde hx y hy son horas y hx < hy.
Entonces, P ⊆ D × T.
◦ Restricciones:
◦ H1: Sea E el conjunto de eventos,
E = {(x, y)/x, y ∈ E ∧ x = y ∧ x[periodo] = y[periodo]}, y sea Zv el conjunto
de estudiantes que asisten al evento v ∈ E, para cada (x, y) ∈ E minimizar
61
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios
Modelo costos horarios

More Related Content

What's hot

Apuntes de estadística inferencial
Apuntes de estadística inferencialApuntes de estadística inferencial
Apuntes de estadística inferencialJuan Cervera Añón
 
Compresores fiac v25
Compresores fiac v25Compresores fiac v25
Compresores fiac v25Daniel Mesias
 
1992 leer, comprender y pensar
1992 leer, comprender y pensar1992 leer, comprender y pensar
1992 leer, comprender y pensarSaul Basulto Alves
 
Cálculo Raíces Con Octave
Cálculo Raíces Con OctaveCálculo Raíces Con Octave
Cálculo Raíces Con OctaveCristobal Lopez
 
Book el arte de mantener
Book  el arte de mantenerBook  el arte de mantener
Book el arte de mantenerRobert Almeyda
 
Taller De..Resolucion de Problemas
Taller De..Resolucion de ProblemasTaller De..Resolucion de Problemas
Taller De..Resolucion de ProblemasGustavo Reyes
 
Linear & Logistic Regression Analysis.
Linear & Logistic Regression Analysis.Linear & Logistic Regression Analysis.
Linear & Logistic Regression Analysis.Pablo Vargas Ibarra
 
Apuntes de estadistica basica
Apuntes de estadistica basicaApuntes de estadistica basica
Apuntes de estadistica basicaA Javier Santana
 
Gestión moderna del mantenimiento
Gestión moderna del mantenimientoGestión moderna del mantenimiento
Gestión moderna del mantenimientoRobert Almeyda
 
Guia para-la-intervencion-telepsicologica-2019
Guia para-la-intervencion-telepsicologica-2019Guia para-la-intervencion-telepsicologica-2019
Guia para-la-intervencion-telepsicologica-2019AlfonsoGutierrezBelt1
 
CONTRASTACIÓN IMPORTANTE
CONTRASTACIÓN IMPORTANTECONTRASTACIÓN IMPORTANTE
CONTRASTACIÓN IMPORTANTEUNT VJ
 
Fundamentos conceptuales de estadística - Oscar F soto B
Fundamentos conceptuales de estadística  - Oscar F soto BFundamentos conceptuales de estadística  - Oscar F soto B
Fundamentos conceptuales de estadística - Oscar F soto BCristian C
 
Ejercicios Resueltos en C
Ejercicios Resueltos en CEjercicios Resueltos en C
Ejercicios Resueltos en Csolucionescip
 
Tesis MaestríA Inflacion Subyacente Marcelo Pereira
Tesis MaestríA Inflacion Subyacente Marcelo PereiraTesis MaestríA Inflacion Subyacente Marcelo Pereira
Tesis MaestríA Inflacion Subyacente Marcelo Pereirapereirauy
 
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...Instituto Tecnológico de Tuxtla Gutiérrez
 
Serie aprender a investigar 4
Serie aprender a investigar 4Serie aprender a investigar 4
Serie aprender a investigar 4JCASTINI
 

What's hot (20)

6. bioestadistica
6. bioestadistica6. bioestadistica
6. bioestadistica
 
Apuntes de estadística inferencial
Apuntes de estadística inferencialApuntes de estadística inferencial
Apuntes de estadística inferencial
 
Compresores fiac v25
Compresores fiac v25Compresores fiac v25
Compresores fiac v25
 
1992 leer, comprender y pensar
1992 leer, comprender y pensar1992 leer, comprender y pensar
1992 leer, comprender y pensar
 
Cálculo Raíces Con Octave
Cálculo Raíces Con OctaveCálculo Raíces Con Octave
Cálculo Raíces Con Octave
 
Matematicas dos primer parte
Matematicas dos primer parteMatematicas dos primer parte
Matematicas dos primer parte
 
Book el arte de mantener
Book  el arte de mantenerBook  el arte de mantener
Book el arte de mantener
 
Taller De..Resolucion de Problemas
Taller De..Resolucion de ProblemasTaller De..Resolucion de Problemas
Taller De..Resolucion de Problemas
 
Linear & Logistic Regression Analysis.
Linear & Logistic Regression Analysis.Linear & Logistic Regression Analysis.
Linear & Logistic Regression Analysis.
 
Apuntes de estadistica basica
Apuntes de estadistica basicaApuntes de estadistica basica
Apuntes de estadistica basica
 
Gestión moderna del mantenimiento
Gestión moderna del mantenimientoGestión moderna del mantenimiento
Gestión moderna del mantenimiento
 
Eva proyectos
Eva proyectosEva proyectos
Eva proyectos
 
Guia para-la-intervencion-telepsicologica-2019
Guia para-la-intervencion-telepsicologica-2019Guia para-la-intervencion-telepsicologica-2019
Guia para-la-intervencion-telepsicologica-2019
 
CONTRASTACIÓN IMPORTANTE
CONTRASTACIÓN IMPORTANTECONTRASTACIÓN IMPORTANTE
CONTRASTACIÓN IMPORTANTE
 
Fundamentos conceptuales de estadística - Oscar F soto B
Fundamentos conceptuales de estadística  - Oscar F soto BFundamentos conceptuales de estadística  - Oscar F soto B
Fundamentos conceptuales de estadística - Oscar F soto B
 
Guia metodologica de vigilanciatecnológica
Guia metodologica de vigilanciatecnológicaGuia metodologica de vigilanciatecnológica
Guia metodologica de vigilanciatecnológica
 
Ejercicios Resueltos en C
Ejercicios Resueltos en CEjercicios Resueltos en C
Ejercicios Resueltos en C
 
Tesis MaestríA Inflacion Subyacente Marcelo Pereira
Tesis MaestríA Inflacion Subyacente Marcelo PereiraTesis MaestríA Inflacion Subyacente Marcelo Pereira
Tesis MaestríA Inflacion Subyacente Marcelo Pereira
 
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...
 
Serie aprender a investigar 4
Serie aprender a investigar 4Serie aprender a investigar 4
Serie aprender a investigar 4
 

Similar to Modelo costos horarios

385321913-Apuntes-Optimizacio-n-Ferrer-Munoz-pdf.pdf
385321913-Apuntes-Optimizacio-n-Ferrer-Munoz-pdf.pdf385321913-Apuntes-Optimizacio-n-Ferrer-Munoz-pdf.pdf
385321913-Apuntes-Optimizacio-n-Ferrer-Munoz-pdf.pdfFranciscoJavierOrteg46
 
Proyecto Vivienda Economica
Proyecto Vivienda Economica Proyecto Vivienda Economica
Proyecto Vivienda Economica NattiRuiz
 
Proyecto aja Compactadora
Proyecto  aja CompactadoraProyecto  aja Compactadora
Proyecto aja CompactadoraJohan Muñoz
 
Aprender a programar, con matlab
Aprender a programar, con matlabAprender a programar, con matlab
Aprender a programar, con matlabCarlos Avila
 
Manual de mecánica de suelos
Manual de mecánica de suelosManual de mecánica de suelos
Manual de mecánica de suelosJuan Casia Boza
 
Manual de mecanica de suelos i (7o semestre)
Manual de mecanica de suelos i (7o semestre) Manual de mecanica de suelos i (7o semestre)
Manual de mecanica de suelos i (7o semestre) elio pari quispe
 
Manual de mecánica de suelos
Manual de mecánica de suelos Manual de mecánica de suelos
Manual de mecánica de suelos Adriana Martinez
 
Manual de mecanica de suelos i (7o semestre)
Manual de mecanica de suelos i (7o semestre) Manual de mecanica de suelos i (7o semestre)
Manual de mecanica de suelos i (7o semestre) Jaz D Chocolator
 
Introduccion poo con_java
Introduccion poo con_javaIntroduccion poo con_java
Introduccion poo con_javaRobert Wolf
 
LIBRO DE CONTROL.pdf
LIBRO DE CONTROL.pdfLIBRO DE CONTROL.pdf
LIBRO DE CONTROL.pdfDavidGallo37
 
Teoría y práctica de la metrología dimensional aplicada a la fabricación en i...
Teoría y práctica de la metrología dimensional aplicada a la fabricación en i...Teoría y práctica de la metrología dimensional aplicada a la fabricación en i...
Teoría y práctica de la metrología dimensional aplicada a la fabricación en i...ssusercd796d
 
Violencia Juvenil Exogrupal.pdf
Violencia Juvenil Exogrupal.pdfViolencia Juvenil Exogrupal.pdf
Violencia Juvenil Exogrupal.pdfHuver-Feria
 
TesisCSP.pdf
TesisCSP.pdfTesisCSP.pdf
TesisCSP.pdfctarquino
 
Agentes inteligentes inteligencia artificial
Agentes inteligentes  inteligencia artificialAgentes inteligentes  inteligencia artificial
Agentes inteligentes inteligencia artificialjlopez300
 
Aprender a investigar TAMAYO Y TAMAYO.pdf
Aprender a investigar TAMAYO Y TAMAYO.pdfAprender a investigar TAMAYO Y TAMAYO.pdf
Aprender a investigar TAMAYO Y TAMAYO.pdfssusera823082
 

Similar to Modelo costos horarios (20)

385321913-Apuntes-Optimizacio-n-Ferrer-Munoz-pdf.pdf
385321913-Apuntes-Optimizacio-n-Ferrer-Munoz-pdf.pdf385321913-Apuntes-Optimizacio-n-Ferrer-Munoz-pdf.pdf
385321913-Apuntes-Optimizacio-n-Ferrer-Munoz-pdf.pdf
 
Proyecto Vivienda Economica
Proyecto Vivienda Economica Proyecto Vivienda Economica
Proyecto Vivienda Economica
 
Proyecto aja Compactadora
Proyecto  aja CompactadoraProyecto  aja Compactadora
Proyecto aja Compactadora
 
Aprender a programar, con matlab
Aprender a programar, con matlabAprender a programar, con matlab
Aprender a programar, con matlab
 
Exp algoritmos
Exp algoritmosExp algoritmos
Exp algoritmos
 
Manual de mecánica de suelos
Manual de mecánica de suelosManual de mecánica de suelos
Manual de mecánica de suelos
 
Manual de mecanica de suelos i (7o semestre)
Manual de mecanica de suelos i (7o semestre) Manual de mecanica de suelos i (7o semestre)
Manual de mecanica de suelos i (7o semestre)
 
Manual de mecánica de suelos
Manual de mecánica de suelos Manual de mecánica de suelos
Manual de mecánica de suelos
 
Manual de mecanica de suelos i (7o semestre)
Manual de mecanica de suelos i (7o semestre) Manual de mecanica de suelos i (7o semestre)
Manual de mecanica de suelos i (7o semestre)
 
Informe modelo
Informe modeloInforme modelo
Informe modelo
 
Introduccion poo con_java
Introduccion poo con_javaIntroduccion poo con_java
Introduccion poo con_java
 
Tesis análisis estructural.
Tesis análisis estructural.Tesis análisis estructural.
Tesis análisis estructural.
 
Tesis python ing. civil
Tesis python ing. civilTesis python ing. civil
Tesis python ing. civil
 
LIBRO DE CONTROL.pdf
LIBRO DE CONTROL.pdfLIBRO DE CONTROL.pdf
LIBRO DE CONTROL.pdf
 
Teoría y práctica de la metrología dimensional aplicada a la fabricación en i...
Teoría y práctica de la metrología dimensional aplicada a la fabricación en i...Teoría y práctica de la metrología dimensional aplicada a la fabricación en i...
Teoría y práctica de la metrología dimensional aplicada a la fabricación en i...
 
Eva_Proyectos.pdf
Eva_Proyectos.pdfEva_Proyectos.pdf
Eva_Proyectos.pdf
 
Violencia Juvenil Exogrupal.pdf
Violencia Juvenil Exogrupal.pdfViolencia Juvenil Exogrupal.pdf
Violencia Juvenil Exogrupal.pdf
 
TesisCSP.pdf
TesisCSP.pdfTesisCSP.pdf
TesisCSP.pdf
 
Agentes inteligentes inteligencia artificial
Agentes inteligentes  inteligencia artificialAgentes inteligentes  inteligencia artificial
Agentes inteligentes inteligencia artificial
 
Aprender a investigar TAMAYO Y TAMAYO.pdf
Aprender a investigar TAMAYO Y TAMAYO.pdfAprender a investigar TAMAYO Y TAMAYO.pdf
Aprender a investigar TAMAYO Y TAMAYO.pdf
 

Modelo costos horarios

  • 1. Universidad de Carabobo Facultad de Ciencias y Tecnolog´ıa Departamento de Computaci´on Modelo general de costos para el problema de asignaci´on de horarios. Autor: Br. Jos´e Rosendo C.I. V - 22.213.692 Tutor Acad´emico: Dr. Amad´ıs Mart´ınez Valencia, septiembre de 2016. 1
  • 2. Resumen El problema de asignaci´on de horarios consiste en la colocaci´on de tareas a realizar en determinados momentos a un sujeto. Tal asignaci´on se ve restringida previamente por un conjunto de limitaciones asociadas al contexto. Este problema es combinatorio y de orden no polinomial, lo cual lo coloca como imposible de ser resuelto en tiempo polinomial por un algoritmo determin´ıstico. A la fecha la soluci´on del mismo se ve abordada por t´ecnicas heur´ısticas y metaheur´ısticas, las cuales brindan soluciones cercanas a la ´optima. Tomando en cuenta el inconveniente antes mencionado, se hace necesario el planteamiento de un modelo de costos lo suficientemente flexible en cuanto a uso y que sirva de base para la optimizaci´on de los c´alculos relacionados a la asignaci´on de horarios. En este trabajo se plan- tea la realizaci´on de tal tarea, desarrollando el correspondiente entramado te´orico-pr´actico, a fin de conseguir un avance positivo en las investigaciones del campo. Siguiendo las directrices establecidas por el Protocolo de Modelado matem´atico - l´ogico, se desarroll´o un conjunto de premisas que estructuraban las entidades, relaciones y restric- ciones del modelo general a construir, definiendo el objetivo del modelado, formulando el respectivo modelo conceptual, estableciendo bajo que categor´ıa(s) cae el modelo a construir, seleccionando las herramientas de software para las simulaciones y validaciones del mismo, realizando previamente las respectivas parametrizaciones, para as´ı presentar bajo el formato requerido el compendio de resultados en donde se demuestra la validez de las hip´otesis plan- teadas, esto es, la posibilidad de construir un sistema gen´erico de procesos, o en su defecto que abarque los principales casos del timetabling problem, que optimice el modelo de restric- ciones del problema a solucionar, para luego proceder con la soluci´on en concreto. Palabras claves: modelado de restricciones, algoritmos de propagaci´on de restricciones, optimizaci´on. 2
  • 3. ´Indice 1. Introducci´on 7 2. Marco Te´orico 9 2.1. Antecedentes de la investigaci´on . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2. Bases te´oricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.1. Investigaci´on de operaciones . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.2. Problema de asignaci´on de horarios [38] [36] [58] . . . . . . . . . . . . 16 2.2.3. Complejidad algor´ıtmica . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.4. Programaci´on con restricciones . . . . . . . . . . . . . . . . . . . . . 20 2.2.5. Propagaci´on de restricciones [25] [28] [41] [53] . . . . . . . . . . . . . 20 2.2.6. Modelado cient´ıfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3. Planteamiento del Problema y Justificaci´on 24 3.1. Contexto del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2. Definici´on del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3. Objetivos de la investigaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3.1. Objetivos Generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3.2. Objetivos Espec´ıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.4. Justificaci´on e importancia del tema tratado . . . . . . . . . . . . . . . . . . 28 4. Marco Metodol´ogico 29 4.1. Descripci´on de la metodolog´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.1.1. Protocolo de Modelado . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.2. Aplicaci´on de la metodolog´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.2.1. Definici´on del objetivo del modelado . . . . . . . . . . . . . . . . . . 34 4.2.2. Formulaci´on del modelo conceptual . . . . . . . . . . . . . . . . . . . 37 4.2.3. Tipo de modelo a usar . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.4. Selecci´on del c´odigo a aplicar . . . . . . . . . . . . . . . . . . . . . . 43 4.2.5. Parametrizaci´on del modelo . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.6. Validaci´on del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3
  • 4. 4.2.7. Simulaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.8. Presentaci´on y an´alisis de resultados . . . . . . . . . . . . . . . . . . 47 5. Dise˜no de la soluci´on 49 5.1. Descripci´on de la soluci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.2. Alcance y limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 6. Resultados experimentales 52 6.1. Configuraci´on de los experimentos . . . . . . . . . . . . . . . . . . . . . . . . 53 6.1.1. Plataforma computacional . . . . . . . . . . . . . . . . . . . . . . . . 53 6.1.2. Casos de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.1.3. M´etricas de evaluaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . 103 6.2. An´alisis de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 6.2.1. Hip´otesis iniciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 6.2.2. Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 7. Conclusiones y recomendaciones 120 7.1. Conclusiones de la investigaci´on . . . . . . . . . . . . . . . . . . . . . . . . . 120 7.2. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 4
  • 5. ´Indice de figuras 1. Clases de complejidad [88] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2. Trilog´ıa Modelo - Algoritmo - Programa [32] . . . . . . . . . . . . . . . . . . 30 3. Esquema general del modelo matem´atico. [32] . . . . . . . . . . . . . . . . . 31 4. Primera etapa del protocolo de modelado [32] . . . . . . . . . . . . . . . . . 32 5. Segunda etapa del protocolo de modelado [32] . . . . . . . . . . . . . . . . . 33 6. Tercera etapa del protocolo de modelado [32] . . . . . . . . . . . . . . . . . . 34 7. Clase Individuo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 8. Clase Actividad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 9. Relacion Individuo-Realiza-Actividad. . . . . . . . . . . . . . . . . . . . . . . 42 10. Entrada del caso de prueba PE-CTT: matriz de asistencia de estudiantes a clases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 11. Entrada del caso de prueba PE-CTT: matriz correlaci´on de aulas con propie- dades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 12. Entrada del caso de prueba PE-CTT: matriz correlaci´on de eventos con pro- piedades requeridas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 13. Entrada del caso de prueba PE-CTT: matriz de restricci´on de precedencia entre eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 14. Ejemplo de formato original de entrada de caso de prueba CB-CTT. . . . . . 71 15. CB-CTT: Proporci´on de casos exitosos . . . . . . . . . . . . . . . . . . . . . 108 16. CB-CTT: Menor tiempo de soluci´on por caso . . . . . . . . . . . . . . . . . 109 17. CB-CTT: Mayor tiempo de soluci´on por caso . . . . . . . . . . . . . . . . . . 109 18. CB-CTT: Tiempo promedio de soluci´on por caso . . . . . . . . . . . . . . . 110 19. PE-CTT: Proporci´on de casos exitosos . . . . . . . . . . . . . . . . . . . . . 110 20. PE-CTT: Menor tiempo de soluci´on por caso . . . . . . . . . . . . . . . . . . 111 21. PE-CTT: Mayor tiempo de soluci´on por caso . . . . . . . . . . . . . . . . . . 111 22. PE-CTT: Tiempo promedio de soluci´on por caso . . . . . . . . . . . . . . . . 112 5
  • 6. ´Indice de tablas 1. Valores de Caso de Prueba PE-CTT . . . . . . . . . . . . . . . . . . . . . . 69 2. Valores de Caso de Prueba CB-CTT . . . . . . . . . . . . . . . . . . . . . . 75 3. Resultados de Caso de Prueba CB-CTT . . . . . . . . . . . . . . . . . . . . 106 4. Resultados de Caso de Prueba PE-CTT . . . . . . . . . . . . . . . . . . . . 107 6
  • 7. 1. Introducci´on El problema de asignaci´on de horarios consiste en la asignaci´on de un conjunto de tareas a ser realizada por un sujeto en determinados bloques horarios. Tal asignaci´on se ve influida por un conjunto de restricciones que var´ıan de acuerdo al contexto. As´ı, por ejemplo, en un horario universitario tales restricciones van asociadas a la cantidad de aulas disponibles, los profesores asignados a una determinada asignatura, entre otros factores. En t´erminos conceptuales, el timetabling problem es un problema combinatorio de orden no polinomial. Los problemas algor´ıtmicos que entran en esta categor´ıa no son resolubles en tiempos cortos utilizando t´ecnicas tradicionales. Tomando en cuenta lo anterior, se han planteado m´ultiples soluciones que van desde optimizar el modelado de las restricciones, pasando por el uso de heur´ısticas y metaheur´ısticas en el c´alculo del horario ´optimo para un sujeto dado, hasta la aplicaci´on de c´omputos en paralelo en hardware dedicado para tal fin. [38] [36] [58] Partiendo de la base anterior, en la cual se perfila la naturaleza del problema de asigna- ci´on de horarios, se hace enf´atico el planteamiento de un modelo de costos y de restricciones que por un lado sea lo suficientemente flexible para ser usado en los m´as diversos contex- tos y por el otro proporcione la base para optimizar los c´alculos posteriores relacionados a la asignaci´on del horario requerido. Es as´ı que en este trabajo se plantea la posibilidad de realizar tal cometido, partiendo de investigaciones previas que han planteado perspectivas similares pero para contextos m´as limitados. Se recalca que por un lado es imprescindible la creaci´on de un modelo robusto que soporte cualquier restricci´on a modelar, as´ı como los mecanismos necesarios para que tal modelo se reformule en base a mecanismos algor´ıtmicos ya establecidos. Tal reformulaci´on va orientada a la b´usqueda de mejores soluciones en el marco del conjunto de datos dado. [84] [52] [51] Este documento est´a estructurado en siete cap´ıtulos, incluyendo la introducci´on. El cap´ıtu- lo 2 cubre el marco te´orico en base a dos puntos principales que son los antecedentes de la investigaci´on y las bases te´oricas del presente trabajo. El cap´ıtulo 3 define el contexto del problema presentado as´ı como una definici´on detallada del mismo, para luego mostrar los 7
  • 8. objetivos generales y espec´ıficos a lograr, todo esto con su debida justificaci´on y explicaci´on de la importancia de cumplirlos. El cap´ıtulo 4 describe la metodolog´ıa a usar para resolver el problema ya descrito, as´ı como el plan de trabajo a cumplir acorde a la misma. El cap´ıtulo 5 da un paso m´as all´a, partiendo de la secci´on anterior, y esquematizando el proceso emp´ırico que de vida a la soluci´on buscada, especificando tambi´en las limitaciones de la misma. El cap´ıtulo 6 muestra los datos recolectados consecuencia de ejecutar los pasos de la secci´on anterior, esto con sus respectivas m´etricas formales. El cap´ıtulo 7 presenta un breve com- pendio acerca de todo el trabajado desarrollando, el an´alisis que se pueda realizar acerca del contraste entre los objetivos esperados y los obtenidos, as´ı como los respectivos consejos di- rigidos a la realizaci´on de trabajos del mismo t´opico o de alguno ´ıntimamente relacionado. Y de ´ultimo, en la secci´on 7.2 se muestra el listado de recursos te´oricos y pr´acticos consultados para la realizaci´on de este TEG. 8
  • 9. 2. Marco Te´orico Este cap´ıtulo se compone de dos secciones. En los Antecedentes (2.1) se describe el con- junto de trabajos m´as resaltantes relacionados a la soluci´on del problema de asignaci´on de horarios, el enfoque y/o b´usqueda de un modelo de costos general para expresar las enti- dades y restricciones del mismo, as´ı como las herramientas de software m´as significativas desarrolladas al respecto. En las Bases Te´oricas (2.2) se cubren los conceptos m´as importan- tes del problema que permitan un entendimiento completo del marco general a tratar, as´ı como una base lo suficientemente robusta para generar el conjunto de nuevos razonamientos y planteamientos plasmados en las posteriores secciones. 9
  • 10. 2.1. Antecedentes de la investigaci´on En paralelo a la naturaleza combinatoria y altamente compleja del problema de asigna- ci´on de horarios, la mayor´ıa de las soluciones propuestas se ven restringidas por el contexto en el que se aplican, y si bien contribuyen al aumento de la bibliograf´ıa relacionada a tal campo de investigaci´on, brindando m´as herramientas para el abordaje de tal problema, a´un se dista de tener un modelo cercano a lo general para el tratamiento del asunto. Sin em- bargo, eso no quita que existan propuestas que hayan jugado con la posibilidad de brindar un enfoque general para el timetabling problem, as´ı como tratamientos del mismo usando herramientas de c´omputos heur´ısticos. Existen tambi´en obras, desde papers hasta libros y disertaciones, orientadas exclusivamente al an´alisis abstracto de los elementos que forman parte del problema de asignaci´on de horarios, esto es, desde crear formatos generales para los datos de entrada, crear representaciones est´andar para las relaciones entre los individuos y las actividades y las restricciones asociadas a las mismas. Se pueden listar los siguientes trabajos: Muhammad Rozi Malim, Ahamad Tajudin Khadery Adli Mustafa (2005), “University Course Timetabling: A General Model”: [84] es un art´ıculo de investigaci´on redactado por integrantes de la Universidad de la Ciencia en Malasia. Mostrado en la 2da Con- ferencia Internacional de Investigaci´on y Educaci´on Matem´atica el 2005, toma como objeto de estudio el contexto universitario al ser un entorno rico en complejidad y restricciones en comparaci´on a otros entornos de estudios. Construye el modelo clasi- ficando cada una de las restricciones como obligatoria (hard) y opcional (soft). Cada restricci´on es representada como una variable matem´atica entera acompa˜nada por una constante c = 0 o c = 1, proponiendo entonces el llamado modelo general como un problema de programaci´on [lineal] entera. Matthias Gr¨obner, Peter Wilke, y Stefan B¨uttcher (2003), “A Standard Framework for Timetabling Problems”: [52] es el t´ıtulo de un trabajo realizado por integrantes de la Universit¨at Erlangen-N¨urnberg, en Alemania, y The University of Western, en Australia. En el trabajo construyen en paralelo una propuesta de modelo general para el problema de asignaci´on de horarios relacionada ´ıntimamente con el funcionamiento del 10
  • 11. framework que proponen como soluci´on al problema. Argumentan que las propuestas existentes poseen un nivel de degradaci´on al grado de especificidad de los algoritmos de acuerdo al contexto en los cuales son implementados, y que poco sirve para avanzar en las investigaciones en el campo. Generalizan los elementos asociados al timetabling problem llam´andolos entidades, y divi´endolos en distintas clases: recursos, eventos y restricciones. Realizan el debido proceso de documentaci´on mediante UML y en base a ella crean una implementaci´on de lo que llaman GTL: General Timetabling Language, realizada sobre Java. En resumen, se crea el c´odigo de formulaci´on del problema sobre GTL, representando las mencionadas entidades mediante clases, y la carga de los datos asociados a un contexto se realiza mediante ficheros XML. Edmun Burke, Jeffrey Kingston (1997), “A standard data format por timetabling pro- blem instances”: [31] es una revisi´on te´orica de los aspectos obligatorios que debe cubrir una propuesta de modelo est´andar para la formulaci´on del problema de asignaci´on de horarios, resumidos en los siguientes puntos: (1) generalidad, el modelo debe brindar el soporte suficiente para que cualquier restricci´on e instancia de un problema cualquie- ra sea expresable en t´erminos de las herramientas prove´ıdas por el modelo; (2) cada instancia de problema debe poder ser representada completamente por el modelo, esto incluye contemplar los recursos, los participantes, las restricciones as´ı como las pro- puestas de soluciones; (3) debe ser posible la conversi´on bidireccional de un problema expresado con el modelo est´andar con los distintos formatos de modelos existentes en este campo de investigaci´on. El trabajo identifica que el problema central reside en la dificultad atada invariablemente a la tarea de reducir expresiones complejas gen´ericas que incluyen elementos de teor´ıa de conjuntos, l´ogica formal y de predicados a una serie de directivas incluidas en librer´ıas, as´ı como la imposibilidad de cubrir todas las conversiones posibles a los otros modelos existentes en un momento dado, aunque el trabajo busque minimizar tal falla inherente al contexto. Al final, el modelo de lenguaje que presentan incluyen combinados entre si elementos que van desde la programaci´on imperativa hasta la programaci´on l´ogica. Michael Marte (2002), “Models and Algorithms for School Timetabling - A Constraint- 11
  • 12. Programming Approach”: [51] es una tesis acerca del problema de asignaci´on de horarios en relaci´on con el sistema de educaci´on media en Alemania, que asemeja m´as no iguala, en cuanto a complejidad de situaciones, al sistema universitario. Parte de la premisa de la necesidad de establecer un sistema robusto de restricciones que emule de la mejor manera posible el problema de asignaci´on de horarios asociado al Gymnasium alem´an. Lu´ıs Paulo Reis y Eug´enio Oliveira (2001), “A Language for Specifying Complete Ti- metabling Problems”: [81] se identifican en este trabajo ocho versiones principales del timetabling problem, y basados en ellos se presenta un nuevo lenguaje descriptivo lla- mado Unilang, para la representaci´on de los problemas de asignaci´on de horarios. Este va enfocado a servir como lenguaje adaptable para cualquier versi´on del problema, ofreciendo una representaci´on clara y concisa de los datos, las restricciones, medidas de calidad as´ı como soluciones para cada una de las version del problema como la asignaci´on de horarios para universitarios o para ex´amenes. Jeffrey Kingston (1999), “Modelling Timetabling Problems with STTL”: [62] art´ıculo que explora las ventajas e inconvenientes presentados al intentar modelar problemas del mundo real usando el Standard Timetabling Language. David Ranson y Samad Ahmadi (2007), “An Extensible Modelling Framework for the Examination Timetabling”: [80] en este trabajo los autores plantean que si bien el abor- daje del timetabling problem con el objetivo de lograr una generalizaci´on del problema ha sido ya realizado varias veces, argumentan que hasta el momento las opciones ofreci- das no simplifican el proceso de modelado, carecen de caracter´ısticas claves para lograr una mayor optimizaci´on en los resultados finales, y en ultima instancia ofrecen pocos avances en comparaci´on a soluciones an´alogas ya existentes en lenguajes de programa- ci´on ya establecidos en la comunidad. Para solucionar tal problema, proponen crear un framework de modelado independiente del lenguaje a usar a posteriori, usando STTL. Si bien al final del documento queda como trabajo en progreso, los planteamientos rea- lizados a lo largo del documento son de utilidad para cualquiera que desea abordar la misma tem´atica, a fin de generar nuevos resultados. 12
  • 13. Jeffrey Kingston (2006), “Data Formats for Exchange of Real-World Timetabling Pro- blem Instances and Solutions”: [60] realizado por el mismo autor del STTL, realiza los siguientes planteamientos: ◦ La dificultad del modelado va intr´ınsecamente asociada a la larga cantidad de requerimientos asociados al contexto. Esto se ha tratado de solucionar desde dis- tintos enfoques, como lo son usando tecnolog´ıas de la web sem´antica, modelado orientado a objetos, usando programaci´on con restricciones, entre otros. ◦ A fin de no incurrir en la sobrecarga de informaci´on, deben establecerse cotas asociadas a cuales variaciones del timetabling problem se pretende abarcar con la propuesta de modelo general que se quiera realizar. Esto es, una vez definida la cota y desarrollado una soluci´on basada en la misma, se propone a futuro volver a redefinir la soluci´on extendiendo la cota superior en la que se basa la soluci´on previa. Ender ¨Ozcan (2013), “Towards and XML base standard for Timetabling Problems: TTML”: [70] busca solucionar el problema asociado a las dificultades de reusar los datos de entrada y salida de otras propuestas de soluci´on al timetabling problem, crean- do un nuevo formato de data en XML que se basa a su vez en MathML [90]. Moritz M¨uhlenthaler(2014), “Fairness in Academic Course Timetabling”: [75] luego de realizar un an´alisis exhaustivo del Problema de Asignaci´on de Horarios en entornos uni- versitarios, el autor se enfoca en como se puede formalizar y medir la equidad asociada a la asignaci´on de individuos y actividades, terminando con un caso de estudio a fin de probar la efectividad de sus planteamientos. Simon Kristianse, Thomas Jacob Riss (2013), “A Comprehensive Study of Educational Timetabling - a Survey”: [63] se encarga de realizar una descripci´on extensiva del estado del arte de un problema en cuesti´on, en este caso el problema de asignaci´on de horarios, eval´ua las principales formalizaciones para cuatro principales versiones del problema, usando datos de la vida real a fin de ofrecer medidas de calidad de las soluciones plan- teadas. 13
  • 14. De igual manera se puede encontrar en la red multitud de software que trata el timetabling problem (no confundir con el software de agenda). En otros t´erminos se les conoce como software para la creaci´on autom´atica de horarios una vez que se carga la informaci´on aso- ciada a las entidades y restricciones de la instancia a trabajar. Entre los m´as resaltantes se encuentran: FET [43]: es un software de c´odigo abierto creado en C++ para la generaci´on au- tom´atica de horarios de escuelas, liceos y universidades una vez cargada la informaci´on asociada principalmente a profesores, asignaturas, aulas, estudiantes, entre otras. Sus siglas se pueden interpretar como Free Evolutionary Timetabling, dado que de acuerdo a los autores el conjunto de las restricciones var´ıa continuamente. Seg´un la descripci´on oficial, trata con un algoritmo “r´apido y eficiente”, en contraste con el hecho de que en el peor de los casos, cuando las restricciones cargadas son muy elaboradas, en el peor de los casos el tiempo varia de cinco minutos a horas. UniTime: University Timetabling [89] es un software distribuido bajo licencia de c´odigo abierto, creado en Java para manejar con el mayor nivel de granularidad posible el pro- blema de asignaci´on de horarios, a fin de minimizar en la medida posible la coincidencia de horarios para las actividades de un estudiante u otro participante en la organizaci´on. Su elemento m´as distinguido es la Librer´ıa de Resoluci´on de Restricciones (Constraints Solver Library), basado en una combinaci´on de “b´usqueda hacia adelante” iterativo con conjunto con b´usqueda local, extendiendo sus capacidades a considerar todas las soluciones consideradas como ´optimas, pero que no sean necesariamente completas. En el proceso, los candidatos a soluciones deben ir cumpliendo cada una de las restric- ciones contempladas en el sistema, sin excepci´on. Para colaborar en la investigaci´on asociada al problema de asignaci´on de horarios, el personal humano asociado a la crea- ci´on y mantenimiento de este software ha liberado todo el trabajo relacionado bajo licencias GNU, adem´as de brindar en su web un listado de todas las publicaciones y presentaciones en las cuales han colaborado. 14
  • 15. En otro contexto, desde 1995 se celebra cada dos a˜nos una serie de conferencias interna- cionales acerca de la teor´ıa y pr´actica del timetabling automatizado (PATAT, Practice and Theory of Automated Timetabling) [76], en la que participa un c´umulo de investigadores, practicantes y relacionados de alguna manera a todo lo que tenga ver con el abordaje del problema de asignaci´on de horarios. Entre los t´opicos tratados se encuentran los diferentes tipos de horarios, manejo de restricciones, inteligencia artificial, metaheur´ısticas, grafos, entre muchos otros, que van desde los aspectos formales del problema hasta sus representaciones practicas. Patrocinado por PATAT existe tambi´en existe la ITC – International Timetabling Compe- tition [57], donde se ponen a prueba a los participantes para usar sus propuestas de soluciones con problemas compuestos de restricciones tomada del mundo real, as´ı como otras creadas espec´ıficamente para la competencia. Es de notar que el software mencionado anteriormente, UniTime, fue uno de los ganadores de tal competencia en su edici´on del 2007, obteniendo dos de los tres principales premios posibles. 2.2. Bases te´oricas 2.2.1. Investigaci´on de operaciones Campo multidisciplinario (posee componentes de matem´aticas, l´ogica, ingenier´ıa, compu- taci´on, entre otros) encargado de la optimizaci´on del uso de recursos para la ejecuci´on de distintas tareas [87]. Enfatiza en el uso de modelados matem´aticos, espacios de soluciones factibles y no factibles as´ı como los subconjuntos asociados a tales espacios, y la repetici´on intensiva de c´alculos para optimizar las soluciones temporales encontradas. Tales elementos, combinados entre s´ı, dan pie para que en la investigaci´on de operaciones se establezca que el elemento de mayor importancia en la resoluci´on de un problema es la definici´on del mismo, y que el modelo general de soluci´on se defina en base al predicado maximizar o minimizar una o m´as funciones objetivos sujeto a un conjunto de restricciones [55]. 15
  • 16. 2.2.2. Problema de asignaci´on de horarios [38] [36] [58] T´ermino con el cual se denota el problema que envuelve asignar un conjunto de recursos finitos en espacio y tiempo a una serie de actividades (com´unmente acad´emicas) que van a ser realizadas por distintos componentes (m´aquinas, humanos), los cuales tambi´en poseen limitaciones en cuanto a cantidad de tareas que pueden realizar, por cu´anto tiempo pueden hacerla, as´ı como cu´ales pueden ejecutar y cu´ales no (dependencia condicional). El problema se formula inicialmente teniendo un conjunto de restricciones (an´alogo al enfoque de inves- tigaci´on de operaciones), donde cada restricci´on puede ser obligatoria (hard constraint), es decir, para solucionar una instancia dada debe cumplirse esa restricci´on obligatoriamente; u opcional (soft constraint), es decir, la restricci´on no es obligatoria pero en caso de que se pueda incluir como parte de la soluci´on de una instancia dada, mejorar´ıa la calidad de la misma. El t´ermino timetabling problem engloba distintas variantes que comparten la misma l´ogica de fondo. Entre las principales, en sus versiones m´as b´asicas se tienen: STP (School Timetabling Problem): la versi´on m´as b´asica del problema, y por lo general resoluble f´acilmente de manera manual, busca asignar a los distintos estudiantes de un sistema de primaria, a sus respectivos salones de clases. BACP (Balanced Academic Curriculum Problem): dado los siguientes elemen- tos: ◦ Un conjunto de asignaturas. ◦ Una carga asociada a cada asignatura. ◦ Sistema de prelaciones entre las asignaturas. ◦ Un conjunto de per´ıodos acad´emicos. ◦ Un carga acad´emica m´axima permitida por cada per´ıodo. En esta variante se busca distribuir el conjunto de asignaturas entre todos los per´ıodos acad´emicos, respetando las restricciones planteadas y minimizando la diferencia entre las cargas acad´emicas por cada per´ıodo. 16
  • 17. ETP (Employee Timetabling Problem): dados los siguientes elementos: ◦ Un conjunto de actividades, cada una con una dificultad asociada. ◦ Un conjunto de individuos, cada una con una carga m´axima de actividades a afron- tar. Este formato de problema es el que m´as se aborda en los problemas iniciales de programaci´on lineal, se busca cubrir la realizaci´on de todas las actividades, respetando las restricciones planteadas. Dependiendo del contexto, se suele contar con un criterio de desgaste por cada individuo, as´ı como por ejemplo la dificultad de una actividad var´ıe dependiendo del individuo. ETP (Examination Timetabling Problem): dados los siguientes elementos: ◦ Un conjunto de pruebas ◦ Un conjunto de estudiantes, cada uno a la espera de presentar una de las pruebas. ◦ Una lista de bloques horarios. ◦ Salones de clase, cada uno con una capacidad m´axima de estudiantes. Se busca cubrir de manera eficiente la asignaci´on estudiantes - prueba - sal´on de clases, sin incumplir las restricciones impuestas. Al ser una triple asignaci´on, las soluciones creadas para este tipo de problemas suelen dividir el problema principal en subproble- mas. SSP (Student Sectioning Problem): por lo general, cuando se habla de que un conjunto de estudiantes cursa o cursar´a una asignatura, esta asignaci´on se encuentra con el inconveniente en que los salones de clases disponibles no presentan la capacidad suficiente para acoger a todos los inscritos. Es aqu´ı en donde entra el proceso de seccio- namiento, en donde se realizan las divisiones ´optimas para luego distribuir cada secci´on de estudiantes en los salones de clases, y conceptualmente cada uno estar´ıa viendo una asignatura distinta. UCTP (University Course Timetabling Problem): una de las versiones m´as abordadas en el campo de investigaci´on del timetabling problem, es el que suele poseer la mayor cantidad de individuos, actividades, relaciones entre esos dos componentes 17
  • 18. as´ı como restricciones sobre tales restricciones. Tal sobrecarga de componentes en un solo problema conlleva a asumir enfoques que dividan el problema principal en sub- problemas, y mecanismos ya probados que interrelaciones los resultados de unos con la entrada de otros, buscando soluciones factibles en tiempos cortos. 2.2.3. Complejidad algor´ıtmica Un algoritmo es una secuencia de pasos ordenados para resolver un problema. Cada uno de los pasos, o el conjunto de los mismos es expresable mediante operaciones matem´aticas y l´ogicas, las cuales var´ıan de forma de acuerdo al paradigma de programaci´on que se est´e usando al momento. [37] Com´unmente se asocia a un algoritmo un tama˜no n el cu´al es un valor natural asocia- do al tama˜no de los datos de entrada que ser´an evaluados por el programa. En base a ese tama˜no n, se determina un orden de complejidad, que es un valor real obtenido mediante t´ecnicas de an´alisis de complejidad de algoritmos [45]. Este valor es determinado en base al an´alisis del algoritmo ante el peor de los casos que se puedan presentar. Este peor caso es planteado mediante el modelo de an´alisis que se est´e usando [49]. As´ı, si el estudio se hace mediante un an´alisis asint´otico, se realizan entonces los c´alculos de complejidad asociados con una cantidad l´ımite de data de entrada, la m´axima cantidad iteraciones a ser ejecutada para cada bucle del algoritmo en el caso de la programaci´on imperativa as´ı como en una decisi´on condicional, hacer los c´alculos en base a la mayor complejidad de cada una de las posibles condiciones a ejecutarse. [88] [26] La notaci´on m´as usada para realizar an´alisis de complejidad de algoritmos es la notaci´on O-grande, que trabaja con el ya nombrado an´alisis asint´otico [88], donde se define una funci´on g(n) que viene a ser peor valor en tiempos de ejecuci´on para el algoritmo dada una entrada de tama˜no n. En base a lo anterior se define brevemente que [88]: Un algoritmo de tiempo polinomial es aquel que posee un orden de complejidad O(p(n)), 18
  • 19. donde p(n) es una funci´on polinomial (complejidad P). Los algoritmos que no entran en la categor´ıa anterior son algoritmos de complejidad no polinomial (complejidad NP). Un algoritmo es de tiempo exponencial si la complejidad asociada es O(cn ), donde c ≥ 1. Si un algoritmo es la soluci´on a un problema, y cada algoritmo posee una complejidad asociada, se define la complejidad de un problema como la complejidad asociada al mejor algoritmo creado para resolver tal problema. [54] Conocer el orden de un complejidad de un problema es un problema de decisi´on porque en la teor´ıa de algoritmos los problemas se encuadran en dos clases principales de complejidad: polinomial y no polinomial, ya mencionados anteriormente. Estas clases de complejidad se dividen en subclases de manera recursiva. [64] Figura 1: Clases de complejidad [88] Un problema de clase de complejidad P (de ahora en adelante clase P) son problemas resolubles en tiempos polinomiales en el peor de los casos [61]. La clase de inter´es para el pro- yecto actual es la clase de complejidad NP (de aqu´ı en adelante clase NP). Son problemas que en promedio para el caso est´andar o el peor de los casos son resolubles en tiempo polinomial por algoritmos no determin´ısticos, dado que si se abordan con estrategias determin´ısticas su tiempo de soluci´on puede llegar al orden de a˜nos o siglos [35]. Uno de los problemas del 19
  • 20. milenio plantea la interrogante: ¿P=NP? [34] Est´a demostrado que el Problema de Asignaci´on de Horarios es un problema NP-completo. [42] 2.2.4. Programaci´on con restricciones Es un paradigma de modelado y b´usqueda orientado a satisfacer un conjunto de restriccio- nes [27]. Es una de las principales estrategias a aplicar en problemas que dada su naturaleza poseen una alta cantidad de restricciones, cada una con una cantidad importante de condi- ciones a satisfacer. [56] Dado un problema X, una soluci´on al problema se puede plantear como un vector de valores V = (v1, v2, . . . vn). Un algoritmo inicial buscar´ıa la soluci´on ´optima al problema analizando todas las combinaciones de valores para el vector V , lo cual te´oricamente es v´alido, pero ineficiente cuando la cantidad de combinaciones es alta (en este caso, es n!) [59]. La programaci´on con restricciones aprovecha la posibilidad de definir un problema como un conjunto de condiciones que la soluci´on debe cumplir para ser v´alida, reduciendo as´ı el espacio de b´usqueda inicial as´ı como los subsecuentes caminos a seguir para hallar una soluci´on v´alida y ´optima. 2.2.5. Propagaci´on de restricciones [25] [28] [41] [53] Dado un modelo de restricciones, definido en base a un conjunto de variables y restriccio- nes de valor aplicadas sobre las mismas, se entiende a la propagaci´on de restricciones como el proceso de determinar como las restricciones y los posibles valores de una variable pueden afectar los posibles valores de otras variables. Tal proceso desemboca en la re-formulaci´on del modelo original, todo esto encaminado a reducir el n´umero de decisiones a tomar a la hora de hallar la soluci´on (haciendo con esto analog´ıa al proceso de resolver un modelo de restricciones como una b´usqueda). Tal proceso de refinaci´on del modelo se logra ya sea reduciendo el dominio de las variables 20
  • 21. involucradas, creando y/o eliminando variables y/o restricciones. Un algoritmo de propaga- ci´on de restricciones se conoce com´unmente como ”propagador”. Un esquema resumido de c´omo se comporta ser´ıa el siguiente: Cuando una variable X cambia de valor, el sistema eval´ua el dominio de cada variable Yi dependiente de X. Esto genera nuevos dominios para cada una de ellas. Por lo general, cada nuevo dominio de una variable Yi es subconjunto del dominio de esa misma variable Yi previo al cambio de valor de X. Ahora, cada variable Yi se convierte en una variable X, y se repite el proceso de ma- nera recursiva, hasta llegar a un punto de parada, que var´ıa dependiendo del tipo de propagador que se est´e usando. Entre los principales tipos de propagadores, se tienen: Node consistency. Arc consistency. Hyper-arc consistency. Directional arc consistency. Path consistency. Directional path consistency. 2.2.6. Modelado cient´ıfico Es una actividad cient´ıfica orientada a convertir un componente del mundo real en al- go m´as f´acil de entender, definir, cuantificar, visualizar y/o simular, usando mecanismos, conceptos y herramientas aceptados por la comunidad cient´ıfica. Si bien la totalidad de los modelos existentes no dejan de ser s´olo aproximaciones a aquello que desean representar, su utilidad est´a exenta de prueba en lo que concierne a entender los fen´omenos que com´unmente acontecen. Entre los principales tipos de modelos se tienen: 21
  • 22. Modelos cualitativos vs cuantitativos: los primeros basan su esencia en la descrip- ci´on m´as que todo verbal del objeto a modelar, mientras que los segundos se construyen mediante unidades de medida, interrelaciones de entidades y formulaci´on de procesos mediante basamentos l´ogico-matem´aticos. Modelos deductivos vs inductivos: un modelo deductivo trabaja con un enfoque top-down, esto es, va desde lo m´as general hasta lo m´as especifico. En otras palabras, parte desde una teor´ıa general (dentro del marco de abstracci´on en el cual est´e tra- bajando), y va descomponiendo la misma en un conjunto de ”sub-postulados”tambi´en v´alidos, repitiendo el proceso de manera c´ıclica, hasta que un elemento desconocido es tomado como cierto, ya que est´a respaldado por el proceso previo realizado. Mientras que un modulo inductivo usa el enfoque bottom-up, el cual empieza con observacio- nes espec´ıficas, y mediante la identificaci´on de patrones y elementos regulares, termina formulando una o m´as hip´otesis que al ser probadas y resultan ser ciertas, derivan en conclusiones o teor´ıas generales. Modelos deterministas vs estoc´asticos: un modelo determinista describe el com- portamiento de un objeto o fen´omeno como algo completamente condicionado por su estado inicial. Esto es, para los mismos datos de entrada, siempre se tendr´an los mismos valores de salida. Mientras que en un modelo estoc´astico o probabilista el resultado no es tan directo, ya que los valores de entrada se ven influenciados en los procesos internos del modelo por mecanismos de aleatoriedad. Modelos universales vs espec´ıficos: los primeros buscan simular procesos que sean convertibles a trav´es de distintos dominios e instancias del mismo problema, mientras que los segundos solo trabajan en un dominio ´unico, as´ı como en conjuntos de datos adaptados a ese ´unico dominio del problema. Entre los puntos m´as importantes a recalcar acerca de un modelo cient´ıfico se tiene: Estos son construidos cuando el nivel de factibilidad asociado a reproducir emp´ırica- mente las condiciones y/o el fen´omeno a estudiar es bajo o nulo. 22
  • 23. La puesta en marcha del modelo se conoce como simulaci´on, y genera resultados a ser evaluados para verificar principalmente si el modelo cumple el objetivo para el cual fue creado. Un modelo estructurado adecuadamente debe cubrir los pasos de observaci´on y reco- nocimiento de todos los patrones y relaciones existentes en el objeto real. Generar/construir el modelo implica asumir un adecuado nivel de abstracci´on, que var´ıa de acuerdo al problema. La evaluaci´on de un modelo conlleva a tener en cuenta los siguientes factores: ◦ Habilidad para describir las observaciones previas. ◦ Habilidad para predecir, con margenes de error m´ınimos, futuras observaciones. ◦ Costo de usar el modelo en comparaci´on a otros con los mismos objetivos. ◦ Simplicidad. 23
  • 24. 3. Planteamiento del Problema y Justificaci´on Este cap´ıtulo se compone de cuatro secciones. En el Contexto del Problema (3.1) se des- cribe brevemente dos puntos: los contextos en donde suele ubicarse el problema de asignaci´on de horarios, y el contexto escogido para desarrollar el presente TEG, que dar´a pie para en- tonces escoger, cap´ıtulos m´as adelante, determinados casos de prueba. En la Definici´on del Problema (3.2 se presenta lo que se entiende en este trabajo por el timetabling problem, y ser´a este el concepto a usar en el posterior desarrollo. En los Objetivos de la Investigaci´on (3.3) se detallan los objetivos generales y espec´ıficos a alcanzar por este trabajo. Mientras que en la Justificaci´on e Importancia del tema a tratar (3.4) se presentan el conjunto de razones que sustentan la realizaci´on de este trabajo, amparadas en conjunto por la necesidad ya descrita de aumentar la sistematizaci´on en cuanto a recolecci´on de esquemas y modelos de restricciones del problema de asignaci´on de horarios. 24
  • 25. 3.1. Contexto del Problema El problema de asignaci´on de horarios se encuentra en todos aquellos ´ambitos en los que la planificaci´on de actividades con relaci´on a los recursos disponibles, tanto en tiempo como en mano de obra o similares, es un asunto cr´ıtico. El caso a desarrollar tanto en t´erminos te´oricos, como a la hora de estructurar los casos de pruebas y las simulaciones, corresponde al timetabling problem asociado a entornos acad´emicos, esto es, escuelas, liceos y universidades [30]. La complejidad de cada formulaci´on es proporcional al nivel acad´emico el cual se est´e trabajando, as´ı, el problema de asignaci´on de horarios en una escuela suele ser un problema no pocas veces resoluble con algoritmos deterministas, mientras que en una universidad la regla es que se usen metaheur´ısticas, que no es m´as que la combinaci´on de varias heur´ısticas, con el fin de aproximarse a soluciones ´optimas o en su defecto aceptables. 3.2. Definici´on del problema T´omese en cuenta que en un entorno de trabajo la realizaci´on de una serie de tareas es la actividad central del mismo. Una medida de optimalidad en el llevado a cabo de las mismas est´a basada en el orden en que son realizadas unas con respecto a las otras, as´ı como la ubicaci´on en el tiempo de cada una de ellas. Todos estos elementos te´oricos entran en el marco de la investigaci´on de operaciones [91], donde se busca dado un conjunto de recursos para la realizaci´on de tareas, optimizar el uso de los mismos. El problema de asignaci´on de horarios (interpretaci´on del t´ermino anglosaj´on timetabling problem) busca en su versi´on m´as b´asica distribuir la realizaci´on de un conjunto de tareas atados a dos restricciones obligatorias: Cantidad de espacio limitada. Cantidad limitada de bloques horarios. Al ser un problema combinatorio NP-completo [42] la b´usqueda de soluciones ´optimas suele estar muy influida por el contexto en el cual se eval´ua el problema, as´ı, las alternativas 25
  • 26. algor´ıtmicas planteadas se ven altamente atadas en cuanto a modelado de acuerdo al pro- blema espec´ıfico tratado (un departamento universitario o un ente del gobierno). Es decir, mientras se busca elevar la cota de optimalidad de las soluciones generadas, el algoritmo de- genera hasta convertirse solo ´util para un n´umero reducido de contextos, con particularidades espec´ıficas. Ahora bien, hay dos segmentos bien delimitados, pero para nada independientes, en la resoluci´on del timetabling problem. Esto es: El modelo de restricciones que representa el problema a resolver. El conjunto de algoritmos a usar para solucionar el modelo. Enti´endase por soluci´on la asignaci´on de individuos a actividades redundando en la superaci´on de una cota m´ınima de optimalidad. El presente trabajo se encarga de optimizar los procesos asociados al primer elemento, mientras que el segundo, asociado a la b´usqueda, de la soluci´on queda excluido. Los principales problemas asociados a la construcci´on de un modelo de restricciones para una instancia del timetabling problem son los siguientes: La rigidez en su estructura. Un dise˜no demasiado atado al problema para el cual fue creado resulta in´util cuando la instancia origen cambia, haciendo incluso necesario volver a re-formular todo el sistema. La optimalidad asociada al modelo de restricciones (existen m´etricas que calculan la misma) incide directamente en la factibilidad a la hora de construir una soluci´on factible al problema. En relaci´on al problema de la rigidez, un modelo flexible entonces va orientado a que la mayor cantidad de instancias del timetabling problem puedan ser representadas bajo el modelo, sin que en el proceso de transformaci´on se pierda informaci´on alguna. 26
  • 27. El lenguaje usado para el modelo suele causar limitantes a la hora de usarlo. Esto es, al construirlo en un lenguaje de uso especifico, genera una carga adicional de trabajo en caso de que sea necesario usarlo bajo otras tecnolog´ıas. 3.3. Objetivos de la investigaci´on 3.3.1. Objetivos Generales 1. Crear un modelo de costos que contemple la naturaleza din´amica de las restricciones de una instancia cualquiera del problema de asignaci´on de horarios, usando herramientas de modelado y tomando en cuenta las debilidades de los planteamientos previos con el fin de superar la rigidez de modelos de restricciones ya existentes. 2. Usar un recurso algor´ıtmico que trabaje sobre el modelo construido y, en conjunto con datos provenientes de la instancia a resolver, realice un proceso de reformulaci´on del mismo, optimizando su estructura y con miras a optimizar los c´alculos futuros de resoluci´on del sistema. 3.3.2. Objetivos Espec´ıficos 1.1 Realizar un estudio intensivo del estado del arte del problema de asignaci´on de horarios, en espec´ıfico el manejo de las restricciones, con el fin de asegurar la mayor cantidad de herramientas disponibles para el modelado del proyecto actual. 1.2 Crear un modelo de costos usando basamentos formales l´ogicos y matem´aticos para un conjunto din´amico de restricciones. 2.1 Construir el esquema algor´ıtmico de alto nivel que trabajar´a sobre el modelo de costos y restricciones construido en el paso anterior para la reformulaci´on del mismo. 2.2 Implementar el esquema algor´ıtmico en lenguaje de programaci´on, y probar el com- portamiento del mismo usando conjuntos de entrenamiento pertenecientes a diversos contextos. 27
  • 28. 3.4. Justificaci´on e importancia del tema tratado Se piensa que el planteamiento de una soluci´on para el timetabling problem que contem- ple un modelado robusto para un conjunto din´amico de restricciones que adem´as supere la tradicional dicotom´ıa de restricciones obligatorias y opcionales, asignando una medida de importancia espec´ıfica a cada una conllevar´ıa a un avance positivo en las investigaciones de dicho campo. La realizaci´on de actividades es, sin necesidad de extenderse demasiado al respecto, el eje central de la existencia de cualquier organismo. Y en la sociedad industrializada, en donde la planificaci´on toma m´as importancia conforme aumenta la complejidad de las relaciones de trabajo, la necesidad de automatizar procesos que solucionados de otra manera (manualmen- te por ejemplo) tomar´ıan m´as tiempo del necesario cobra mayor importancia. El desarrollo de un t´opico desde una perspectiva global, y que busque abarcar en t´erminos solventes al menos las principales versiones de un problema, siempre ofrecer´a la oportunidad de revisar nuevos aspectos del problema consecuencia de las conclusiones a las que se logre llegar. De esta manera, los resultados que se obtengan de este trabajo no deber´ıan limitarse a su aplicaci´on al contexto indicado m´as arriba, sino que pueden servir tambi´en como medidores en contextos de la misma naturaleza. 28
  • 29. 4. Marco Metodol´ogico Este cap´ıtulo se compone de dos secciones. En la Descripci´on de la Metodolog´ıa (3.1) se presenta el Protocolo de Modelado, el cual no es m´as que una serie de pasos a seguir para la construcci´on de un modelo matem´atico y/o l´ogico, mientras que en la secci´on de Aplicaci´on de la Metodolog´ıa (4.2) los pasos anteriores toman vida para comenzar con el dise˜no del modelo general que es el objetivo general del presente trabajo, yendo desde el esclarecimiento final sobre el objetivo del modelado, pasando por el modelado conceptual, la parametrizaci´on del modelo, la escogencia del c´odigo y recursos de software para la ejecuci´on de las simulaciones y pruebas, y la creaci´on del esquema con el cual se presentar´an los resultados finales. 29
  • 30. 4.1. Descripci´on de la metodolog´ıa Se perfila que el trabajo genere como producto principal el modelo general de restricciones para el timetabling problem. El modelado cient´ıfico toma un ente de la realidad y lo convierte en un conjunto de pos- tulados formales basados principalmente en elementos l´ogicos y matem´aticos que describen el comportamiento de tal ente conforme a las caracter´ısticas que se desean estudiar [32] [47]. Se define la siguiente trilog´ıa: Figura 2: Trilog´ıa Modelo - Algoritmo - Programa [32] Existen otros dos elementos que brindan robustez a la metodolog´ıa de modelado ma- tem´atico, como lo son el esquema general del modelo y el protocolo de modelado. El esquema general gira alrededor del postulado de la validez universal del principio causa- efecto. Los elementos que conforman este principio son adaptados al contexto en el cual se aplica. En un escenario se transfiere energ´ıa, en otros informaci´on. El modelo se clasifica de acuerdo a sus caracter´ısticas [48]. Existen muchos tipos de modelos, as´ı como subtipos, y de la misma manera tal clasificaci´on no necesariamente se establece al terminar de construirlo. Tambi´en se puede inferir sobre qu´e clase de modelo es, respondiendo preguntas durante el proceso de creaci´on que esclarezca que decisiones tomar 30
  • 31. Figura 3: Esquema general del modelo matem´atico. [32] de acuerdo a qu´e herramientas usar y cu´ales no. 4.1.1. Protocolo de Modelado 1. Definici´on del objetivo del modelado: debe responder a las preguntas ”¿para qu´e modelar un proceso?”, ”¿para qu´e modelar los procesos relacionados a las restricciones del problema de asignaci´on de horarios?”. Siendo la secci´on inicial del protocolo, si bien no todas las ideas que puedan generar los investigadores ser´an plasmadas aqu´ı, es importante que se planteen aqu´ı todos los puntos cr´ıticos asociados al objetivo del modelado: las hip´otesis, establecer el tipo del modelo, alcances y limitaciones entre otros elementos. No posee una estructura definida, y depender´a de la esencia del modelo que se est´e construyendo. 2. Formulaci´on del modelo conceptual: teniendo un marco establecido en cuanto a nivel de factibilidad del trabajo a realizar, el modelo conceptual establece la complejidad de los procesos y elementos a tomar en cuenta para el modelado. Al mismo tiempo, se identifican tambi´en los elementos pertenecientes al modelo, y c´omo se relacionan entre s´ı, el alcance del modelo o, en otras palabras, sus limitantes. 3. Tipo de modelo a usar: consecuencia del paso anterior, se puntualiza qu´e tipo de modelo es m´as adecuado usar. Puede ser puro o compuesto, esto de acuerdo a las 31
  • 32. necesidades. Conforme al tipo de modelo escogido, se explica el porqu´e de la elecci´on, y esto m´as que todo est´a condicionado a las caracter´ısticas lo cual lo ubican dentro de determinada categor´ıa. Figura 4: Primera etapa del protocolo de modelado [32] 4. Selecci´on del c´odigo a aplicar: basado en el tipo de modelo a usar, se investiga la disponibilidad de c´odigo, librer´ıas y cualquier otro soporte de software relacionado al mismo y que sirva de apoyo para el desarrollo de la aplicaci´on que trabajar´a sobre la construcci´on, testing y validaci´on del modelo, as´ı como de los resultados que se generen de los procesos ya mencionados. Es aplicable la creaci´on de c´odigo propio, y este ´ultimo es obviamente imprescindible para cuando la existencia de herramientas que den soporte al producto a construir sea casi nula. 5. Parametrizaci´on del modelo: se establecen las magnitudes de los par´ametros que forman parte de la estructura matem´atica. Los elementos identificados y plasmados en el modelo conceptual son traducidos a definiciones formales en t´erminos l´ogicos y matem´aticos, principalmente. Esto incluye variables, relaciones, restricciones, as´ı como alcances y limitaciones del modelo en su generalidad. 32
  • 33. Figura 5: Segunda etapa del protocolo de modelado [32] 6. Validaci´on del modelo: mientras que el paso anterior establece el rango de valores a trabajar para cada uno de los par´ametros del modelo, este ´ultimo se prueba ahora con un conjunto de valores de prueba que est´en fuera de tales rangos, recolectando los resultados obtenidos. A tal conjunto de resultados se les asocia una medida de error de acuerdo al criterio de validaci´on que se est´e usando. El modelo construido ser´a considerado v´alido a efectos de uso cuando tal medida de error se encuentre dentro de un l´ımite considerado permisible. 7. Simulaci´on: el modelo construido entra en fase de uso con casos de prueba definidos sistem´aticamente, con el fin de obtener la informaci´on suficiente para el paso final. Si bien ya es una pr´actica general, vale recalcar que queda como impl´ıcito que estas simulaciones son computacionales, as´ı que tambi´en es importante especificar las espe- cificaciones de las plataformas en donde se realicen tales simulaciones. La construcci´on y/o recolecci´on de casos de prueba debe ser realizada de manera sis- tem´atica y ordenada, para as´ı tener un control preciso sobre el contraste que se realice entre los resultados obtenidos y los esperados (en las hip´otesis previas). 8. An´alisis y presentaci´on de resultados: se verifica la coherencia de los resultados 33
  • 34. Figura 6: Tercera etapa del protocolo de modelado [32] obtenidos en el paso anterior, soportado tambi´en por el momento en que se super´o la validaci´on del modelo, para as´ı construir el documento formal que d´e soporte a la toma de decisiones, as´ı como la construcci´on de las conclusiones y recomendaciones. 4.2. Aplicaci´on de la metodolog´ıa 4.2.1. Definici´on del objetivo del modelado El problema de asignaci´on de horarios es un problema combinatorio NP-completo [66]. No existe una sola versi´on del mismo, sino que esta var´ıa dependiendo del contexto del proble- ma. Esta variaci´on se define mediante cambios en la naturaleza y estructura de sus variables, relaciones entre las mismas, restricciones sobre los dominios de las variables y sobre tales relaciones. Si bien persiste un patr´on com´un en cuanto el n´ucleo del problema, independiente de las versiones que tenga el mismo, el com´un de las soluciones existentes se basa en el alto grado de diferencia que hay entre cada una de ellas consecuencia de crearlas condicionadas en su totalidad a la instancia espec´ıfica que se desea resolver. 34
  • 35. El proceso general de soluci´on al problema se divide en la fase de modelado y la fase al- gor´ıtmica. La segunda trabaja sobre lo construido en la primera. Esto trae como consecuencia que la efectividad asociada a la estructura del modelo influya directamente en la calidad de la soluci´on algor´ıtmica. En cuanto a la bibliograf´ıa que trata acerca de las soluciones al problema de asignaci´on de horarios (en sus distintas variantes), la mayor´ıa se concentra m´as en los procesos algor´ıtmicos que en la fase de modelado, siendo esta ´ultima ubicada como un elemento trivial en compa- raci´on a los algoritmos desarrollados para tratar el problema. Entonces, durante el desarrollo del modelo se busca responder las siguientes interrogantes, con el fin de tener un producto consistente: ¿Qu´e se busca? ◦ Aportar al fortalecimiento de la bibliograf´ıa relacionada a la construcci´on de mo- delos. ◦ Desarrollar un esquema base orientado en principio a unificar una lista definida tomada de las principales variantes del timetabling problem en un sistema que per- mita luego reformular el modelo usando como datos la informaci´on de la instancia a resolver, todo esto orientado a la optimizaci´on de los c´alculos algor´ıtmicos que resuelvan el problema. ◦ El modelo creado (entendi´endose por modelo tanto los esquemas conceptuales aso- ciado al mismo como los mecanismos de reformulacion y optimizaci´on basado en los casos de prueba) va orientado a ser independiente de plataformas y lenguajes de programaci´on. En otras palabras, debe ofrecer los mecanismos (te´oricos y emp´ıri- cos) m´ınimos necesarios para que su interfaz de entrada-salida sea re-usable en la mayor cantidad de contextos asociados al problema de asignaci´on de horarios. ¿Qu´e se sabe?: Esto es cubierto en la secci´on del modelado conceptual (4.2.2). Se expresa verbalmente y mediante gr´aficos las entidades que se han identificado del pro- 35
  • 36. blema, las relaciones entre las mismas, y los resultados (propiedades emergentes del sistema) de operar ambos elementos. ¿Qu´e se puede asumir?: descrito tambi´en la secci´on del modelado conceptual (4.2.2), las suposiciones que se realizan con respecto al problema a modelar son concentradas en t´erminos conceptuales en lo que ser´a tratado como las entradas del modelo general del problema de asignaci´on de horarios. ¿C´omo deber´ıa ser visto este modelo?: cada una de las caracter´ısticas del modelo a construir lo condicionan a formar parte de ciertos conjuntos de modelos cient´ıficos (cubiertos en la secci´on (4.2.3)), los cuales definen la respuesta a tal interrogante. As´ı mismo, y en t´erminos generales, el trabajo presente se orienta principalmente a pre- sentar el modelo como una especie de plantilla base en la cual deber´ıan confluir, si no todos, un segmento significativo tanto en cantidad como en relevancia de las instancias del timetabling problem. ¿Los resultados obtenidos coinciden con las hip´otesis planteadas?: esta pre- gunta es respondida convenientemente en la secci´on de Hip´otesis Iniciales (6.2.1) y en la secci´on de Resultados Obtenidos (6.2.2). Los elementos a analizar en las simu- laciones del modelo son expuestos en la secci´on de M´etricas de Evaluaci´on (6.1.3). ¿C´omo ser´a usado este modelo?: respuesta cubierta m´as extensamente en la secci´on de (7.1), b´asicamente dependiendo de los resultados obtenidos, si son alcanzadas las hip´otesis planteadas, el modelo entonces deber´ıa servir para avanzar en la creaci´on de un marco de trabajo para el problema investigado que gire alrededor del modelo general planteado, y en su si defecto si no son cubiertas en su mayor´ıa las hip´otesis predecidas, entonces deber´ıa servir como indicador de distintos elementos tales como el evitar el c´odigo escogido para futuras soluciones al mismo problema, el desarrollo del mismo modelo conceptual pero bajo otro paradigma de programaci´on, la reformulaci´on del mismo modelo bajo otro enfoque de modelado, entre otras alternativas. ¿C´omo se puede mejorar este modelo? descrito con mayor profundidad en la sec- ci´on de Trabajos Futuros (7.2), la mejora del modelo construido deber´ıa ir orientada 36
  • 37. principalmente a mejorar los resultados contemplados en las m´etricas de evaluaci´on, y ampliar su capacidad de aceptar nuevas instancias del problema de asignaci´on de ho- rarios, as´ı mismo tal proceso de transformaci´on deber´ıa ser lo menos engorroso posible. 4.2.2. Formulaci´on del modelo conceptual El modelo conceptual se divide en tres secciones: Entrada: es la instancia original del problema a resolver. Est´a compuesta de : ◦ Modelo original: es el conjunto de variables, relaciones y restriciones existentes en el modelo original. Pueden estar formuladas s´olo de manera conceptual o ya estar parametrizadas adecuadamente en t´erminos l´ogicos y matem´aticos. ◦ Datos de entrada: es la instancia del mundo real que necesita ser resuelta. Por ejemplo, pueden ser el conjunto de estudiantes que necesitan ser distribuidos entre las distintas asignaturas, o el conjunto de operarios a distribuir entre las distintas m´aquinas de una planta. 37
  • 38. Modelo general: incluye el esquema general al cual debe ser mapeado el modelo original, as´ı como los procesos encargados de optimizar el modelo. M´as detalladamente: ◦ Mapeo: es el proceso de conversi´on del modelo original al modelo general. Transforma los elementos del modelo original a elementos que encuadren den- tro de la l´ogica de Clases Individuo-Clases Actividad-Relaciones-Restricciones. 38
  • 39. Es realizado de manera manual por aquel que desee hacer uso de los mecanis- mos de optimizaci´on del sistema. Este proceso de transformaci´on tambi´en debe aplicarse sobre el conjunto de datos, generando entonces mapeo(dataOriginal) = dataTransformada. ◦ Clases Individuo: en la sem´antica del problema de asignaci´on de horarios son aquellos elementos del sistema avocados a realizar alguna actividad. Figura 7: Clase Individuo. Para los distintos tipos de clase individuo se tienen los mismos tipos de campo, a continuaci´on: ◦ Id: identificador ´unico para el individuo. ◦ Lista de atributos: tupla de valores, en donde cada valor es de un tipo primiti- vo o tupla. Su estructura var´ıa dependiendo del modelo origen. Este atributo compuesto sirve para modelar los atributos de los Individuos del modelo ori- ginal que no tienen representaci´on directa en el resto de los atributos de la clase Individuo. ◦ Clases Actividad: en la sem´antica del problema de asignaci´on de horarios son aquellos elementos del sistema disponibles para ser ejecutados por los individuos. Para los distintos tipos de clase actividad se tienen los mismos tipos de campo, a continuaci´on: ◦ Id: identificador ´unico para la actividad. ◦ Lista de atributos: tupla de valores, en donde cada valor es de un tipo primitivo o tupla. Su estructura var´ıa dependiendo del modelo origen. Este atributo 39
  • 40. Figura 8: Clase Actividad. compuesto sirve para modelar los atributos de las actividades del modelo original que no tienen representaci´on directa en el resto de los atributos de la clase Actividad. Posterior al concepto de Clase Actividad, se tiene el concepto de seccionamiento. Para la definici´on del mismo, y con el fin de generalizar el concepto de Actividad aplicado a las principales instancias existentes de problema de asignaci´on de horarios, se deben en tener en cuenta los siguientes factores: ◦ Una actividad puede tener una cantidad o estimada o determinada de o aspirantes o participantes. ◦ Diferencias contextuales entre participantes y aspirantes: se habla de participantes cuando ya est´a establecida la relaci´on de ejecuci´on de un individuo con respecto a una actividad. Se habla de aspirante cuando tal relaci´on es deseable (ya sea por condiciones del sistema o por voluntad del individuo) pero a´un no se ha establecido. ◦ En la generalizaci´on del problema de asignaci´on de horarios, se tiene que el con- junto de actividades son ejecutadas en un determinado plazo. Tal plazo es repetido por lo menos una vez, es decir, su ejecuci´on es c´ıclica. ◦ La ejecuci´on de cada actividad en el marco de un plazo c´ıclico se ve condicionada, directa o indirectamente, por tres elementos: ◦ Tiempo: la ejecuci´on total de una actividad, en algunos casos (depende del problema original), debe distribuirse en segmentos a trav´es del tiempo. A cada uno de estos segmentos se le conocer´a como sub-actividad. 40
  • 41. ◦ Ubicaci´on: una actividad es ejecutada en alguna instancia del espacio. Tal ubicaci´on poseer´a diversos atributos relacionados, pero a efectos del an´alisis presente relacionado al seccionamiento, se considerar´a ´unicamente aquel atri- buto relacionado a la m´axima carga de individuos que tal ubicaci´on puede admitir. ◦ Ejecutores: cantidad estimada o determinada de participantes o aspirantes. Comprendiendo entonces la limitante asociada a la cantidad de individuo que puede albergar una ubicaci´on f´ısica para la prosecuci´on de una actividad, se tiene que: Se entiende por seccionamiento [71] el proceso por el cual una actividad es replicada de tal manera que cada r´eplica se toma como una actividad independiente con respecto a las otras, con el fin de que su ejecuci´on sea manejable con respecto a la correlaci´on carga m´axima de individuos por ubicaci´on y cantidad total estimada o determinada de participantes o aspirantes Establecido el concepto de seccionamiento, entra en juego el de eventos. Un evento no es m´as que la asignaci´on de una sub-actividad a un par (instancia temporal, instancia posicional). En otras palabras, un evento es la representaci´on indivisible (a efectos del presente modelo) de la ejecuci´on de una actividad en t´erminos de sub- actividades, ubicando cada una en una determinada instancia del espacio y del tiempo (cada una de estas caracter´ısticas depender´an del contexto del trabajo, pero se toman como referencias principales no excluibles por ser parte de los principales sistemas de medici´on existentes). ◦ Relaciones: son las representaciones necesarias para indicar que la Clase In- dividuo X agrupa los individuos del modelo original que se plantean realizar las actividades del modelo original pertenecientes ahora a la Clase Individuo Y. Las siguientes son las relaciones planteadas en el modelo a construir: ◦ Individuo-realiza-Actividad: 41
  • 42. Figura 9: Relacion Individuo-Realiza-Actividad. ◦ Incompatiblidad: se habla de ausencia de compatibilidad cuando, prestos dos o m´as elementos a ser comparados entre si, existe disonancia entre los valores esperados para ser evaluados dentro de un conjunto de funciones matem´aticas y condiciones l´ogicas y los valores reales de tales elementos aplicados a tales funciones y condiciones. Este esquema general es donde van encuadradas las tradicionales restricciones “fuertes” y opcionales del timetabling problem. ◦ Propagadores: [29] es el conjunto de algoritmos de optimizaci´on de modelos que trabaja sobre el modelo general (que contiene, posterior al proceso de mapeo, una representaci´on manejable del modelo original), produciendo una versi´on me- jorada del mismo. En t´erminos formales, puede describirse de la siguiente manera: propagadores(modeloGeneral, dataTransformada) = modeloOptimizado. Salida: es consecuencia de la actividad de los propagadores, el modeloOptimizado. 4.2.3. Tipo de modelo a usar Es un modelo h´ıbrido, dado que su estructura engrana conceptos y mecanismos de dis- tintos tipos de modelos hom´ogeneos, los cuales est´an listados a continuaci´on: Modelo matem´atico [40]: dado que la mayor´ıa de sus componentes son expresa- dos en base a conceptos matem´aticos. Principalmente las restricciones asociadas a las relaciones entre las clases existentes en el sistema. Modelo l´ogico [85]: debido a que tanto las relaciones como las restricciones son expresadas, en ´ultima instancia, como el cumplimiento o no (verdadero o falso) de determinadas condiciones construidas con postulados matem´aticos. 42
  • 43. Modelo emp´ırico: como consecuencia de incluir en uno de los procesos del modelo el uso de datos reales. Modelo estoc´astico: por el uso de componentes aleatorios y heur´ısticos a la hora de hallar una version optimizada del modelo general basado en los datos de la instancia del problema a resolver. Modelo conceptual/cualitativo: porque en su concepci´on inicial, a fines de una me- jor comprensi´on, es presentado como un engranaje de conceptos que permitan realizar el proceso de mapeo m´as f´acilmente. Modelo descriptivo: dado que el enfoque asumido para la construcci´on del modelo general es comprender la esencia del problema de asignaci´on de horarios desde una perspectiva tanto global como intr´ınseca, haciendo necesario la descripci´on detallada de los procesos involucrados no s´olo en t´erminos formales sino tambi´en en lenguaje natural, y definiendo la estructura final del mismo usando un marco recursos-procesos- resultados. Modelo de optimizaci´on: debido a que una de las principales caracter´ısticas del timetabling problem es que las soluciones propuestas van orientadas desde un principio a optimizar las asignaciones de individuos a actividades a realizar. Modelo universal (vs Modelo de dominio espec´ıfico): porque se busca englo- bar el problema de asignaci´on de horarios, colocando como cota m´ınima abarcar sin inconvenientes las versiones m´as representativas del problema, para luego en trabajos futuros basados en el actual, corregir las deficiencias del modelo construido y a˜nadir nuevas caracter´ısticas que permitan cubrir versiones m´as sofisticadas del timetabling problem que no sean cubiertas con el esquema construido en el presente trabajo. 4.2.4. Selecci´on del c´odigo a aplicar Esto es descrito con m´as detalle en la secci´on de Plataforma Computacional (6.1.1), espec´ıficamente en el segmento dedicado a la especificaci´on de los recursos de software a usar para ejecutar las simulaciones. 43
  • 44. 4.2.5. Parametrizaci´on del modelo Actividades: A = {Ai/Ai es una actividad} , 1 ≤ i ≤ nA, nA = |A| Ai =< id, < attr1, attr2, ..., attrm >>, m ≥ 0 Donde attri es un valor primitivo o una tupla, que contiene a su vez valores primitivos o una tupla, y as´ı sucesivamente... Sea F = {fi/fi es la cantidad de individuos asignados a realizar la actividad Ai} Sea P = {p1, p2, ..., pn} Donde pi es la cantidad promedio estimada de ejecutores que tendr´ıa cada sub-actividad de Ai. |A| = |F| = |P| Aplicando criterio de seccionamiento (replicaci´on de actividad): R = {Ri/Ri es el conjunto de r´eplicas de la actividad Ai ∧ |Ri| = roof(fi/pi)} Donde roof(...) arroja el valor redondeado al tope del par´ametro. Se tiene entonces: A = n i=1 (Ri ∈ R) = {Aj/Aj es un seccionamiento de una de las actividades originales} Aj =< id, id actividad original, < attr1, attr2, ..., attrm >> Lapso: L = {Lk/Lk es una instancia temporal } , 1 ≤ k ≤ nL, nL = |L| Lk =< id, < attr1, attr2, ..., attrp >>, p ≥ 0 Ubicaci´on: U = {Ul/Ul es una instancia locacional } , 1 ≤ l ≤ nU , nU = |U| Ul =< id, < attr1, attr2, ..., attrq >>, q ≥ 0 Eventos: 44
  • 45. E = {Ed/Ed es un evento } , 1 ≤ d ≤ nE, nE = |E| Ed =< id, id actividad, id lapso, id ubicacion, < attr1, attr2, ..., attrr >>, r ≥ 0 Donde compatibles AEd[id actividad] ∈ A , LEd[id lapso] ∈ L, UEd[id ubicacion] ∈ U . Est´a res- tricci´on de compatibilidad ser´a etiquetada como RT0. Individuos: I = {Is/Is es una individuo } , 1 ≤ s ≤ nI, nI = |I| Us =< id, < attr1, attr2, ..., attrw >>, w ≥ 0 Restricciones: ◦ Minimizaci´on de incompatibilidades entre eventos (RT1): Dado un valor min1 ∈ R: RT2 ≡ ( nE i=1 incompatibilidad(AEi[id actividad] ∈ A , LEi[id lapso] ∈ L, UEi[id ubicacion] ∈ U)) ≤ min1 ◦ Minimizaci´on de incompatibilidades en asignaciones Individuo-Actividad (RT2): Sea G = {(Iy, Ac)/Iy ∈ I ∧ Ac ∈ A } G es el conjunto de asignaciones de individuos a actividades que se desean solu- cionar. Tomando como elementos de c´alculo los pertenecientes a G, minimizar lo siguiente: Dado (Ix, Ai), (Ix, Aj) ∈ G. Ocurre que: RT2 ≡ (Ai[id] = Aj[id] ∧ Ai[id actividad] = Aj[id actividad]) ∨ (Ai[id] = Aj[id] ∧ Ai[id actividad] = Aj[id actividad]∧ (∃x, y ∈ E[x[id actividad] = Ai[id actividad]∧ y[id actividad] = Aj[id actividad]∧ (solapamiento(Lx[id lapso] ∈ L, Ly[id lapso] ∈ L)∨ solapamiento(Ux[id ubicacion] ∈ U, Uy[id ubicacion] ∈ U))])) 45
  • 46. 4.2.6. Validaci´on del modelo Verificaci´on del modelo: ¿El modelo est´a programado correctamente?, ¿Los algoritmos han sido im- plementados apropiadamente?, ¿El modelo no contiene errores de ning´un tipo? [86] El dise˜no del modelo, realizado con cierto subconjunto de tecnolog´ıas y descrito con m´as profundidad en la secci´on de Configuraci´on de los experimentos (6.1.2), se bas´o en la construcci´on de un conjunto de condiciones en l´ogica de primer orden, que incluye l´ogica de predicados y postulados matem´aticos b´asicos, que pueden ser verificados para comprobar su correctitud sem´antica y por supuesto sint´actica. As´ı mismo la fiabilidad funcional de las herramientas de software a usar est´an garantiza- das dado que se tratan de creaciones validadas por los procesos est´andar de evaluaci´on de las investigaciones cient´ıficas. La existencia o ausencia de errores en el modelo de restricciones creado para el presente trabajo puede ser verificado, como ya se dijo, estudiando las condiciones desarrolladas en la secci´on de descripci´on de los casos de prueba. Validaci´on del modelo: La validaci´on de un modelo va orientada principalmente a establecer la correctitud que existe entre lo que hace el modelo y el comportamiento del fen´omeno del mundo real que desea reproducir. Este modelo no busca esquematizar un fen´omeno del mundo real sino brindar un marco com´un de par´ametros (entidades, relaciones y restricciones) para el problema de asignaci´on de horarios. En consecuencia, no son aplicables los mecanismos de validaci´on de modelos existentes para el actual. 4.2.7. Simulaci´on El proceso de simulaci´on consta de las siguientes fases: Definici´on de casos de prueba. Mapeo de casos de prueba, en conjunto con la data complementaria, al modelo general construido en el presente trabajo. 46
  • 47. Formulaci´on de hip´otesis iniciales. Escogencia de c´odigo, software y/o librer´ıas que desarrollen los algoritmos de propaga- ci´on. Implementaci´on de resultados de mapeo de los casos de prueba en los c´odigos seleccio- nados. Establecimiento de plataformas de hardware en donde se ejecutar´an las simulaciones (equipos computadores). Ejecuci´on de los c´odigos en conjunto con los casos de prueba. An´alisis de los resultados obtenidos, constrastaci´on con hip´otesis iniciales. Reformula- ci´on de hip´otesis o de otro punto previo en caso de considerarse necesario. Presentaci´on de resultados finales. 4.2.8. Presentaci´on y an´alisis de resultados Presentaci´on de resultados: Cubierto en la secci´on de Resultados obtenidos (6.2.2). Se realiza con las herramientas de presentaci´on m´as convenientes (tablas, gr´aficos), adaptando los valores generados a partir de las simulaciones contenidos por determina- das variables. Se trabajan las distintas combinaciones que puedan generarse entre los segmentos de datos generados para as´ı producir la informaci´on que ser´a cubierta en el an´alisis final de resultados. An´alisis de resultados: Desarrollado en la secci´on de Conclusiones y Recomendaciones. Aqu´ı se expone el an´alisis final que contrasta las hip´otesis iniciales planteadas y los resultados obtenidos de las simulaciones. A partir de aqu´ı tambi´en se generar´a las recomendaciones para futuros trabajos que basen su tem´atica en la desarrollada en la 47
  • 48. presente investigaci´on, en la continuaci´on de la misma, o en su defecto de uno intr´ınseca- mente relacionado tanto al problema de generar un esquema general de las restricciones, o en la optimizaci´on de las mismas mediante t´ecnicas de propagadores o alternativas. 48
  • 49. 5. Dise˜no de la soluci´on Este cap´ıtulo se compone de dos secciones. En la Descripci´on de la Soluci´on (5.1) se presentan una serie de puntos que describen el proceso a seguir ahora que se tiene establecido por completo el marco de trabajo definido por el Protocolo de Modelado. Esta serie de pasos incluyen el proceso de escogencia de los casos de prueba a desarrollar y la selecci´on del software para las simulaciones. En la secci´on de Alcances y Limitaciones (5.2) se describen los contras en relaci´on al proceso a seguir para la consecuci´on de los resultados que convaliden los objetivos a lograr. 49
  • 50. 5.1. Descripci´on de la soluci´on El siguiente es un listado que resume la serie de pasos a seguir para lograr el objetivo final propuesto, as´ı como las caracter´ısticas que rodean al proceso. Cada paso posee la respectiva referencia a la secci´on o secciones del presente trabajo en donde se describe con mayor detalle: Se ha realizado una investigaci´on a fondo de los t´opicos m´as activos con respecto al problema de asignaci´on de horarios. Esto ha permitido identificar las principales ins- tancias existentes del problema, y para cada una de ellas extraer un patr´on alrededor de la tr´ıada entidades-relaciones-restricciones, y construir un modelo conceptual debi- damente parametrizado que permita dar soporte en su totalidad a los aspectos m´as esenciales de las instancias seleccionadas. Se escogen de manera detallada los casos de prueba m´as representativos a efectos de poner a prueba la validez de los planteamientos del presente trabajo. Estos casos de prueba consisten en modelos de entidades-relaciones-restricciones de instancias del ti- metabling problem. A cada caso de prueba se le asocian datos de entrada, tanto reales como artificiales (provenientes de un generador de casos previamente construido), los cuales servir´an para la ejecuci´on de los pasos posteriores. Habiendo construido las hip´otesis iniciales, estableciendo cotas de trabajo, definido las plataformas en donde se ejecutar´a la simulaci´on, en conjunto con el c´odigo correspon- diente, se realiza la conversi´on de los modelos originales en conjunto con la data al esquema general planteado como soluci´on en este trabajo. Desarrolladas las conversiones, se ejecutan las simulaciones, que consistir´an en (para cada modelo convertido al esquema general), usando los mecanismos prove´ıdos por el c´odigo seleccionado, la aplicaci´on de los algoritmos de propagaci´on (optimizadores de modelo) en base a los datos que tambi´en fueron transformados. Posterior a las simulaciones, se recolectar´an los datos producidos por las mismas, rea- lizando los an´alisis correspondientes orientados principalmente a validar las hip´otesis planteadas. En caso de no existir una correlaci´on v´alida entre hip´otesis y resultados, se realiza una iteraci´on consistente en identificar alg´un elemento err´oneo existente entre 50
  • 51. los planteamientos iniciales del trabajo y las hip´otesis previas a la simulaci´on. Realizada la re-formulaci´on, se ejecutan nuevamente las simulaciones (volver al paso anterior). Para cuando exista una correlaci´on v´alida entre hip´otesis y resultados obtenidos, se realizan las conclusiones asociadas a la investigaci´on en general, as´ı como las recomen- daciones para trabajos futuros basados en el actual. 5.2. Alcance y limitaciones El proceso de mapeo debe realizarse de manera manual. Esto involucra una carga adicional para el usuario, dado que tiene que realizar un an´alisis propio que logre encajar con el esquema general construido. Se evalu´o la posibilidad de trabajar con un proceso de mapeo autom´atico, pero queda fuera de los objetivos propuestos en el trabajo actual. El c´odigo encontrado para ser usado en el m´odulo de optimizaci´on del modelo (los propagadores), si bien cumplen su trabajo, no est´a asegurado que sean la mejor versi´on de si mismos, constituy´endose esto en otra limitaci´on, y al mismo tiempo, en un punto importante a ser tocado en un trabajo futuro, en donde se optimicen los algoritmos de propagaci´on encargados de optimizar el modelo construido en el trabajo actual. Queda fuera del trabajo la realizaci´on de una interfaz de usuario de alto nivel que permita un manejo y/o entendimiento simple de los resultados, esto debido a que el uso de estos componentes est´a m´as orientado a desarrolladores de una herramienta m´as global como lo ser´ıa un solver para el problema de asignaci´on de horarios, con los conocimientos necesarios en el campo. Si bien la bibliograf´ıa revisada est´a lejos de ser peque˜na, el modelo construido est´a lejos de abarcar todas las variantes del problema de asignaci´on de horarios, pero si ha sido dise˜nado para que de soluci´on, con la respectiva conversi´on (mapeo), a las principales versiones del mismo. Dando pie entonces a que, en trabajos futuros, una versi´on m´as refinada del modelo sea construida. 51
  • 52. 6. Resultados experimentales Este cap´ıtulo se compone de dos secciones. En la Configuraci´on de los Experimentos (6.1) se describe la plataforma computacional sobre la cual se ejecutar´an las pruebas (esto incluye caracter´ısticas de hardware y c´odigos escogidos que traten con el problema de la optimizaci´on de modelos mediante algoritmos de propagaci´on de restricciones), los casos de prueba en su versi´on inicial, descritos verbalmente, pasando por sus definiciones l´ogicas hasta la representaci´on de los mismos en el software escogido para las simulaciones, as´ı como la definici´on de las m´etricas de evaluaci´on para analizar el nivel de validez de los resultados en relaci´on a los objetivos planteados. Mientras que en el An´alisis de los Resultados (6.2) se describen las hip´otesis iniciales en relaci´on a lo que se espera obtener de las simulaciones en base a todo el entramado te´orico y de an´alisis realizado previamente, para luego mostrar los resultados obtenidos de las simulaciones. 52
  • 53. 6.1. Configuraci´on de los experimentos 6.1.1. Plataforma computacional Las pruebas descritas en las siguientes secciones fueron realizadas en un equipo compu- tador con las siguientes caracter´ısticas de hardware y software: Sistema Operativo: Windows 10 de 32 Bits. Disco Duro (HDD): ◦ Capacidad: 320 GB. ◦ Marca: Samsung. ◦ Modelo: HM321HI. ◦ RPM (Revoluciones Por Minuto): 5400 / 8M. RAM: DDR3 2 GB Single Channel. Frecuencia DRAM (Dynamic RAM) de 399.0 MHz. CPU: Pentium(R) Dual-Core E5700 @ 3.00 GHz 3.00 GHz. En cuanto a la selecci´on de c´odigo para ejecutar la optimizaci´on del modelo, se construy´o una lista de candidatos suficientemente amplia, para que el an´alisis de escogencia (en base a una serie de criterios descritos a posteriori) se realizara con la mayor holgura posible. Estos programas son los mencionados a continuaci´on: Choco [2]: es una biblioteca para Java de c´odigo abierto usada para la programaci´on con restricciones. Permite al usuario (programador) modelar su problema estableciendo el conjunto de restricciones que deben ser cumplidas en cada una de las soluciones. Luego, el problema es resuelto usando mecanismos que alternan entre algoritmos de filtrado con mecanismos de b´usqueda. EclipseCLP [4]: es un sistema de c´odigo abierto para el desarrollo y puesta en marcha de aplicaciones basadas en programaci´on con restricciones. Contiene varias librer´ıas para resolver esquemas pre-definidos de restricciones, un lenguaje de alto nivel para el 53
  • 54. modelado, interfaces para solvers externos, entre otras herramientas. Su uso es mediante la sintaxis de la programaci´on l´ogica. IBM ILOG Cplex Optimization Studio [11]: es un kit de herramientas de soporte a la toma de decisiones mediante anal´ıtica para acelerar el desarrollo y el despliegue de modelos de optimizaci´on utilizando programaci´on matem´atica y de restricciones. Combina un entorno de desarrollo integrado con un potente lenguaje de programaci´on de optimizaci´on y solucionadores de optimizador ILOG CPLEX de alto rendimiento. Es de uso pago mediante licencia, ofreciendo una versi´on de prueba y con funcionalidades limitadas. Mozart Programming System [16]: combina investigaciones en desarrollo acerca del dise˜no e implementaci´on de lenguajes de programaci´on, computaci´on distribuida, e interfaces humano-computador. Est´a implementado sobre el lenguaje multiparadigma Oz y provee poder expresivo y avanzadas funcionalidades por igual. La ´ultima versi´on (la 2) provee un soporte limitado al manejo de restricciones, que espera ser mejorado con el lanzamiento de nuevas versiones, siendo esta la principal meta. Constraint 0.4.1 [3]: es una biblioteca disponible para Python, orientada a resolver problemas de restricciones usando propagadores. Es un desarrollo a´un en fase experi- mental. UNITIME [89]: descrito ya previamente en la secci´on de Antecedentes Te´oricos / Tra- bajos Previos. Adem´as del software principal, ofrece acceso a componentes .jar para ser usados como librer´ıas externas de alg´un modulo personalizado relativo al timetabling problem. python-constraint [18]: otra biblioteca para Python que ofrece solucionadores para pro- blemas de programaci´on con restricciones. Los solvers disponibles hasta el momento son backtracking, recursivo y el de m´ınimo conflicto, en donde se minimizan la cantidad de veces en la que cierta restricci´on se incumple en las soluciones halladas o construidas. Swi-Prolog [22]: es una implementaci´on estable y gratuita del lenguaje Prolog, con orientaci´on a ser usada principalmente en entornos de investigaci´on y educativos. 54
  • 55. Lingo [13]: herramienta dise˜nada para la construcci´on y soluci´on de modelos lineales y no lineales (convexos y no convexos), cuadr´aticas, restringidas cuadr´aticamente, entre otros, de manera r´apida, f´acil y eficiente. Gecode [7]: es un conjunto de herramientas para el desarrollo de sistemas y aplicacio- nes basadas en restricciones. Posee caracter´ısticas en su implementaci´on que lo hacen abordar de manera muy eficiente muchos problemas tanto con enfoques deterministas como con enfoques heur´ısticos. Permite su ejecuci´on en paralelo, maximizando el uso de esta caracter´ıstica acorde a la arquitectura de hardware en la que est´e siendo ejecutada, respaldada por sus primeros lugares en diversas competencias del ramo, y distribuida de manera gratuita y en c´odigo abierto. SavileRow [74]: implementada en Java, es una herramienta orientada a la optimizaci´on de modelos de restricciones, m´as que a la soluci´on de los mismos. As´ı mismo, existe un compendio adicional de herramientas, entre ellas LOOM ( [14]), IBEX ( [10]), Cassowary ( [1]), Jacop ( [12]), Simple Theorem Prover (AKA SMT Solver) ( [20]), Opta Planner ( [17]), SCIP ( [19]), GUROBI ( [8]), Xpress ( [23]), SoPlex ( [21]), FaCiLe ( [5]), HaifaCSP ( [9]), FPCS ( [6]), Mistral ( [15]). A diferencia de los descritos m´as detalladamente en la lista previa a la anterior, estos ´ultimos tienen en com´un que son softwares descontinuados, programas pagos sin acceso a versiones de prueba (limitadas en tiempo de uso o cantidad de caracter´ısticas/funcionalidades), o sin posibilidad de acceder a su c´odigo fuente para revisiones m´as detalladas. En base a los mismos criterios junto a otros adicionales se aplic´o un filtro entre los principales, para as´ı quedar con un solo candidato a usar en las simulaciones: Acceso a c´odigo fuente: disponible en todas las principales excepto en UNITIME y en IBM ILOG Cplex. Licencias libres Vs Licencias privativas: aplica el mismo resultado del punto anterior. Curva de aprendizaje: un aprendizaje m´as r´apido es ofrecido por herramientas como SavileRow, dado que solo precisan conocimientos en l´ogica de primer orden, as´ı 55
  • 56. como definici´on de predicados, mientras que en Lingo o ILOG Cplex o las bibliotecas de Python hay que adaptarse a una sintaxis especifica definida por la herramienta, o en Gecode, Swi-Prolog, Mozart o EclipseCLP se debe tener un background de conoci- mientos en Programaci´on L´ogica. De igual manera, la capacidad expresiva de la librer´ıa para Java llamada Choco es bastante reducida, en contraste con la potencia de sus solvers internos as´ı como de sus algoritmos propagadores. En base a lo anterior, tenemos entonces que el c´odigo escogido para la ejecuci´on de las simulaciones fue SavileRow 1.6.3, el cual a su vez usa dos herramientas complementarias, Minion 1.8 y Essence 1.6.3. Se ha escogido SavileRow por su capacidad expresiva a la hora de construir las restricciones, por sus algoritmos de propagaci´on debidamente validados en sus publicaciones cient´ıficas y concursos y conferencias del problema de asignaci´on de horarios, as´ı como la versatilidad inherente a la hora de generar los resultados en distintos formatos para distintos solvers de restricciones. Se describen las herramientas escogidas a continuaci´on: SavileRow [74]: en su versi´on 1.6.3, es un asistente de modelado para programaci´on con restricciones. Provee un lenguaje de alto nivel que permite especificar las restriccio- nes del problema que se quiera solventar, y luego traslada esa definici´on a un archivo de entrada para un determinado solver. Durante el proceso de traducci´on, SavileRow apli- ca procesos de reformulaci´on al modelo usando t´ecnicas de propagaci´on de restricciones, en conjunto con los valores asignados a las variables del modelo de restricciones, para as´ı optimizar el modelo. El lenguaje usado para modelar el problema que luego ser´a pasado para ser optimizado por el n´ucleo de SavileRow (implementado en Java [79]) se conoce como Essence. Minion [69]: en su versi´on 1.8, es un solucionador de restricciones basado en el modela- do de las mismas usando modelos matriciales. En otras palabras, restringe la expresi´on de las restricciones a ser aplicadas sobre el conjunto de datos a resolver a una estruc- tura de matriz, ofreciendo poca versatilidad a la hora de modelar, esto con el fin de optimizar los procesos de soluci´on del problema. Esto contrasta con la mayor´ıa de los 56
  • 57. restantes solucionadores de restricciones, que en la b´usqueda de proporcionar m´as fle- xibilidad a la hora del modelado, sacrifican el performance de las soluciones obtenidas, tanto en calidad como en tiempo. El paper que present´o a Minion fue escogido entre los 10 primeros de un total de 500 entregas durante la ECAI [50]. Essence [46]: en su versi´on 1.6.3, es un lenguaje formal (usado por SavileRow en el presente problema) para la especificaci´on de problemas combinatorios, usando una mezcla de lenguaje natural y matem´aticas discretas (l´ogica de primer orden, de pre- dicados, matrices, etc). Provee un sistema de tipos para definir una amplia gama de estructuras de datos, con el nivel de profundidad que requiera el problema a solucionar. Est´a construido con la finalidad de ser accesible en uso a cualquiera que tenga cono- cimientos b´asicos en matem´aticas discretas, y no necesariamente de programaci´on con restricciones. 6.1.2. Casos de prueba De la lista de casos del problema de asignaci´on de horarios estudiados hasta el punto actual, han sido escogidos dos instancias para la realizaci´on de las simulaciones, dado que ambas engloban las principales caracter´ısticas a ser estudiadas del timetabling problem. Las dos pertenecientes al contexto universitario, debido a que este brinda la mayor cantidad de condiciones que aumentan la complejidad del problema, estas son: Post-Enrolment Course Timetabling (PE-CCT): eval´ua la distribuci´on de las asigna- turas en un conjunto de aulas y per´ıodos (intervalos de horas repartidos en los d´ıas de la semana) una vez que ya se tiene definido el conjunto de estudiantes que cursar´a cada asignatura [67]. M´as formalmente, se manejan los siguientes elementos en esta instancia del problema: ◦ Entidades: ◦ Eventos: cada evento requiere la asistencia de un conjunto de estudiantes as´ı como de un sal´on con determinadas caracter´ısticas. Puede existir una pre- cedencia obligatoria que obligue a que un evento ocurra primero en un d´ıa 57
  • 58. antes que otro en espec´ıfico. De igual manera, tambi´en se define una condi- ci´on de disponibilidad que establezca cuales timeslots est´an disponibles para el evento. ◦ Salones: un sal´on posee un conjunto de caracter´ısticas, siendo la principal la capacidad m´axima de estudiantes que puede admitir. ◦ Timeslots: se tienen a disposici´on cierto conjunto de d´ıas (dentro de una semana), cada uno dividido en determinados teaching timeslots (“ranuras de tiempo para ense˜nanza”) los cuales tienen que ser asignados a los eventos. ◦ Restricciones obligatorias: ◦ Restricci´on H1 - Conflictos: eventos que posean estudiantes en com´un no pueden compartir el mismo timeslot. ◦ Restricci´on H2 - Compatibilidad: un evento no puede ser alojado en un sal´on que no posea las caracter´ısticas necesarias para el desarrollo del mismo, as´ı como tampoco en un sal´on que no posea la capacidad m´ınima necesaria. ◦ Restricci´on H3 - Ocupaci´on: No se permite el desarrollo de m´as de un evento por sal´on al mismo tiempo. ◦ Restricci´on H4 - Disponibilidad: el timeslot asignado a un evento debe estar disponible y no restringido para ese evento en espec´ıfico. ◦ Restricci´on H5 - Precedencias: respetar la precedencia entre eventos. ◦ Restricciones opcionales: ◦ Restricci´on S1 - Eventos Tard´ıos: evitar la asignaci´on de eventos al final del d´ıa. ◦ Restricci´on S2 - Eventos Consecutivos: evitar la asignaci´on de eventos que obliguen al estudiante a asistir a dos eventos consecutivos. Curriculum-Based Course Timetabling (CB-CCT): plantea la asignaci´on de horarios agregando como elemento central del an´alisis el concepto de curr´ıculum. Este no es m´as que la agrupaci´on de un conjunto de asignaturas marcadas por varias caracter´ısticas en com´un relacionadas mayoritariamente por la proximidad semestral. Existen distintas 58
  • 59. variantes de este problema, siendo la presentada aqu´ı un compendio de los elementos m´as resaltantes de [39], [72] y [65]. ◦ Entidades: ◦ D´ıas, timeslots y per´ıodos: se especifica un conjunto de d´ıas a la semana, y cada d´ıa es dividido en un conjunto de timeslots. Un per´ıodo viene a ser la combinaci´on d´ıa-timeslot. La cantidad total de per´ıodos disponibles vendr´ıa a ser la uni´on generalizada de todos los productos cardinales entre cada d´ıa y sus respectivos timeslots. ◦ Cursos y profesores: un curso es divido en clases para ser impartidas cada una en un timeslot, siendo atendida por un conjunto de estudiantes, y dirigida por un profesor. Hay timeslots para los cuales est´a restringido el desarrollo de determinadas asignaturas. ◦ Salones: poseen una capacidad de carga m´axima, y en principio son asigna- bles a cualquier clase (aplicando luego la restricci´on de capacidad). ◦ Curr´ıculo: es un grupo de cursos tal que cualquier par de ellos posee es- tudiantes en com´un. Es a partir de este elemento de donde se generan las restricciones de este caso. ◦ Restricciones obligatorias: ◦ Restricci´on H6 - Ocupaci´on de aula: no pueden haber par de clases compar- tiendo la misma aula en el mismo per´ıodo. ◦ Restricci´on H7 - Conflictos: clases que pertenezcan a asignaturas del mismo curr´ıculo deben tener entonces distintos per´ıodos asignados. ◦ Restricci´on H8 - Disponibilidad: si el profesor encargado de una asignatura no est´a disponible para trabajar un determinado per´ıodo, entonces ninguna clase de esa asignatura debe ser dictada en ese per´ıodo. ◦ Restricci´on H9 - Multiplicidad: solo se permite m´as de una clase de la misma asignatura para aquellas especificadas en el conjunto de datos de entrada. ◦ Restricci´on H10: existen per´ıodos en los que no se est´a permitido dictar clases de determinados cursos. 59
  • 60. ◦ Restricci´on H11: existen aulas en las que no est´a permitido dictar clases de determinados cursos. ◦ Restricciones opcionales: ◦ Restricci´on S4 - No exceder la capacidad m´axima de cada aula. ◦ Restricci´on S5 - Las clases de cada asignatura deben ser dictadas por encima de una cantidad m´ınima de d´ıas, incluyente. ◦ Restricci´on S6 - Asignar de manera consecutiva las clases de asignaturas per- tenecientes al mismo curr´ıculo. ◦ Restricci´on S7 - Todas las clases de una misma asignatura deben ser realizadas en la misma aula. En base a lo anterior, se construir´an los casos de prueba, cada uno de ellos basados en los formatos que se acaban de describir respectivamente, excluyendo determinadas restricciones. As´ı mismo, se har´a ´enfasis en describir los procesos relacionados al seccionamiento, creaci´on de eventos, y optimizaci´on de modelos para posterior asignaci´on de individuos a actividades y/o eventos. Todo esto descrito a continuaci´on: Caso de prueba 1: basado en el PE-CTT. Se excluyen la restricci´on S1 debido que a la formulaci´on de la misma conlleva el uso de expresiones matem´aticas basadas en sumatorias que no pueden ser desarrolladas de manera directa con el software escogido. Las entidades y/o variables, relaciones y restricciones a tomar en cuenta son los siguien- tes: ◦ Entidades: ◦ Eventos: E = {ei/ei es un evento} , |E| > 0 Cada evento posee un identificador ´unico y un conjunto de atributos de valores booleanos ai =< id, < attr1, attr2, ..., attrn >>, n > 0 La sem´antica de cada atributo attrj es la siguiente: si attrj == V erdadero, significa que es necesario que el aula en donde se quiera llevar a cabo el evento 60
  • 61. ei debe cumplir con ese requerimiento. Si es Falso, indica que no es necesario que el aula cumpla con tal requisito. Cada evento posee la misma cantidad de atributos booleanos, y variar´a entre ellos el valor de verdad de cada uno. ◦ Aulas: A = {ai/ai es un aula} , |A| > 0 Cada aula posee un identificador ´unico y un conjunto de atributos de valores booleanos ai =< id, < attr1, attr2, ..., attrn >>, n > 0 La sem´antica de cada atributo attrj es la siguiente: attrj == V erdadero indica que el aula ai cumple con poseer el atributo mencionado. En caso contrario, si es Falso, quiere decir que no lo posee. Cada aula posee la misma cantidad de atributos booleanos, y variar´a entre ellas el valor de verdad de cada uno. ◦ Estudiantes: S = {si/si es un estudiante} , |S| > 0 Cada estudiante posee un identificador ´unico asociado, y la lista de eventos en los que definitivamente va a participar. si =< id, < e1, e2, ..., em >>, m ≤ |E| Donde ej es un identificador de uno de los eventos. ◦ per´ıodos: P = {pi/pi es un periodo} , |P| > 0 Un per´ıodo es la combinaci´on de un timeslot con un d´ıa. pi = (d, t) d ∈ D = {di/di es un dia de la semana} , 1 ≤ |D| ≤ 7 t ∈ T = {ti/ti es un timeslot} , |T| > 0 ti = (hx, hy), donde hx y hy son horas y hx < hy. Entonces, P ⊆ D × T. ◦ Restricciones: ◦ H1: Sea E el conjunto de eventos, E = {(x, y)/x, y ∈ E ∧ x = y ∧ x[periodo] = y[periodo]}, y sea Zv el conjunto de estudiantes que asisten al evento v ∈ E, para cada (x, y) ∈ E minimizar 61