Modelo general de costos para el problema de asignación de horarios.
-
Author
jose-rosendo -
Category
Software
-
view
152 -
download
6
Embed Size (px)
Transcript of Modelo general de costos para el problema de asignación de horarios.
-
Universidad de Carabobo
Facultad de Ciencias y Tecnologa
Departamento de Computacion
Modelo general de costos para elproblema de asignacion de horarios.
Autor:
Br. Jose Rosendo
C.I. V - 22.213.692
Tutor Academico:
Dr. Amads Martnez
Valencia, septiembre de 2016.
1
-
Resumen
El problema de asignacion de horarios consiste en la colocacion de tareas a realizar en
determinados momentos a un sujeto. Tal asignacion 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 determinstico. A la fecha la solucion del mismo se ve abordada por tecnicas
heursticas y metaheursticas, 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
optimizacion de los calculos relacionados a la asignacion de horarios. En este trabajo se plan-
tea la realizacion de tal tarea, desarrollando el correspondiente entramado teorico-practico,
a fin de conseguir un avance positivo en las investigaciones del campo.
Siguiendo las directrices establecidas por el Protocolo de Modelado matematico - logico,
se desarrollo 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 categora(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 hipotesis plan-
teadas, esto es, la posibilidad de construir un sistema generico 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 solucion en concreto.
Palabras claves: modelado de restricciones, algoritmos de propagacion de restricciones,
optimizacion.
2
-
Indice
1. Introduccion 7
2. Marco Teorico 9
2.1. Antecedentes de la investigacion . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2. Bases teoricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1. Investigacion de operaciones . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2. Problema de asignacion de horarios [38] [36] [58] . . . . . . . . . . . . 16
2.2.3. Complejidad algortmica . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.4. Programacion con restricciones . . . . . . . . . . . . . . . . . . . . . 20
2.2.5. Propagacion de restricciones [25] [28] [41] [53] . . . . . . . . . . . . . 20
2.2.6. Modelado cientfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3. Planteamiento del Problema y Justificacion 24
3.1. Contexto del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2. Definicion del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3. Objetivos de la investigacion . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.1. Objetivos Generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.2. Objetivos Especficos . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4. Justificacion e importancia del tema tratado . . . . . . . . . . . . . . . . . . 28
4. Marco Metodologico 29
4.1. Descripcion de la metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.1.1. Protocolo de Modelado . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2. Aplicacion de la metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2.1. Definicion del objetivo del modelado . . . . . . . . . . . . . . . . . . 34
4.2.2. Formulacion del modelo conceptual . . . . . . . . . . . . . . . . . . . 37
4.2.3. Tipo de modelo a usar . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.4. Seleccion del codigo a aplicar . . . . . . . . . . . . . . . . . . . . . . 43
4.2.5. Parametrizacion del modelo . . . . . . . . . . . . . . . . . . . . . . . 44
4.2.6. Validacion del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3
-
4.2.7. Simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.2.8. Presentacion y analisis de resultados . . . . . . . . . . . . . . . . . . 47
5. Diseno de la solucion 49
5.1. Descripcion de la solucion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.2. Alcance y limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6. Resultados experimentales 52
6.1. Configuracion de los experimentos . . . . . . . . . . . . . . . . . . . . . . . . 53
6.1.1. Plataforma computacional . . . . . . . . . . . . . . . . . . . . . . . . 53
6.1.2. Casos de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.1.3. Metricas de evaluacion . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.2. Analisis de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.2.1. Hipotesis iniciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.2.2. Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7. Conclusiones y recomendaciones 120
7.1. Conclusiones de la investigacion . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.2. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4
-
Indice de figuras
1. Clases de complejidad [88] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2. Triloga Modelo - Algoritmo - Programa [32] . . . . . . . . . . . . . . . . . . 30
3. Esquema general del modelo matematico. [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 correlacion de aulas con propie-
dades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
12. Entrada del caso de prueba PE-CTT: matriz correlacion de eventos con pro-
piedades requeridas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
13. Entrada del caso de prueba PE-CTT: matriz de restriccion de precedencia
entre eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
14. Ejemplo de formato original de entrada de caso de prueba CB-CTT. . . . . . 71
15. CB-CTT: Proporcion de casos exitosos . . . . . . . . . . . . . . . . . . . . . 108
16. CB-CTT: Menor tiempo de solucion por caso . . . . . . . . . . . . . . . . . 109
17. CB-CTT: Mayor tiempo de solucion por caso . . . . . . . . . . . . . . . . . . 109
18. CB-CTT: Tiempo promedio de solucion por caso . . . . . . . . . . . . . . . 110
19. PE-CTT: Proporcion de casos exitosos . . . . . . . . . . . . . . . . . . . . . 110
20. PE-CTT: Menor tiempo de solucion por caso . . . . . . . . . . . . . . . . . . 111
21. PE-CTT: Mayor tiempo de solucion por caso . . . . . . . . . . . . . . . . . . 111
22. PE-CTT: Tiempo promedio de solucion 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. Introduccion
El problema de asignacion de horarios consiste en la asignacion de un conjunto de tareas
a ser realizada por un sujeto en determinados bloques horarios. Tal asignacion se ve influida
por un conjunto de restricciones que varan 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 terminos
conceptuales, el timetabling problem es un problema combinatorio de orden no polinomial.
Los problemas algortmicos que entran en esta categora no son resolubles en tiempos cortos
utilizando tecnicas tradicionales. Tomando en cuenta lo anterior, se han planteado multiples
soluciones que van desde optimizar el modelado de las restricciones, pasando por el uso de
heursticas y metaheursticas en el calculo del horario optimo para un sujeto dado, hasta la
aplicacion de computos 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-
cion de horarios, se hace enfatico el planteamiento de un modelo de costos y de restricciones
que por un lado sea lo suficientemente flexible para ser usado en los mas diversos contex-
tos y por el otro proporcione la base para optimizar los calculos posteriores relacionados a
la asignacion 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 mas limitados. Se recalca que por un lado es imprescindible
la creacion de un modelo robusto que soporte cualquier restriccion a modelar, as como los
mecanismos necesarios para que tal modelo se reformule en base a mecanismos algortmicos
ya establecidos. Tal reformulacion va orientada a la busqueda de mejores soluciones en el
marco del conjunto de datos dado. [84] [52] [51]
Este documento esta estructurado en siete captulos, incluyendo la introduccion. El captu-
lo 2 cubre el marco teorico en base a dos puntos principales que son los antecedentes de la
investigacion y las bases teoricas del presente trabajo. El captulo 3 define el contexto del
problema presentado as como una definicion detallada del mismo, para luego mostrar los
7
-
objetivos generales y especficos a lograr, todo esto con su debida justificacion y explicacion
de la importancia de cumplirlos. El captulo 4 describe la metodologa a usar para resolver
el problema ya descrito, as como el plan de trabajo a cumplir acorde a la misma. El captulo
5 da un paso mas alla, partiendo de la seccion anterior, y esquematizando el proceso emprico
que de vida a la solucion buscada, especificando tambien las limitaciones de la misma. El
captulo 6 muestra los datos recolectados consecuencia de ejecutar los pasos de la seccion
anterior, esto con sus respectivas metricas formales. El captulo 7 presenta un breve com-
pendio acerca de todo el trabajado desarrollando, el analisis que se pueda realizar acerca del
contraste entre los objetivos esperados y los obtenidos, as como los respectivos consejos di-
rigidos a la realizacion de trabajos del mismo topico o de alguno ntimamente relacionado. Y
de ultimo, en la seccion 7.2 se muestra el listado de recursos teoricos y practicos consultados
para la realizacion de este TEG.
8
-
2. Marco Teorico
Este captulo se compone de dos secciones. En los Antecedentes (2.1) se describe el con-
junto de trabajos mas resaltantes relacionados a la solucion del problema de asignacion de
horarios, el enfoque y/o busqueda de un modelo de costos general para expresar las enti-
dades y restricciones del mismo, as como las herramientas de software mas significativas
desarrolladas al respecto. En las Bases Teoricas (2.2) se cubren los conceptos mas 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 investigacion
En paralelo a la naturaleza combinatoria y altamente compleja del problema de asigna-
cion de horarios, la mayora de las soluciones propuestas se ven restringidas por el contexto
en el que se aplican, y si bien contribuyen al aumento de la bibliografa relacionada a tal
campo de investigacion, brindando mas herramientas para el abordaje de tal problema, aun
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 computos heursticos. Existen tambien obras, desde papers hasta libros y
disertaciones, orientadas exclusivamente al analisis abstracto de los elementos que forman
parte del problema de asignacion de horarios, esto es, desde crear formatos generales para
los datos de entrada, crear representaciones estandar 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 artculo de investigacion redactado
por integrantes de la Universidad de la Ciencia en Malasia. Mostrado en la 2da Con-
ferencia Internacional de Investigacion y Educacion Matematica el 2005, toma como
objeto de estudio el contexto universitario al ser un entorno rico en complejidad y
restricciones en comparacion a otros entornos de estudios. Construye el modelo clasi-
ficando cada una de las restricciones como obligatoria (hard) y opcional (soft). Cada
restriccion es representada como una variable matematica entera acompanada por una
constante c = 0 o c = 1, proponiendo entonces el llamado modelo general como un
problema de programacion [lineal] entera.
Matthias Grobner, Peter Wilke, y Stefan Buttcher (2003), A Standard Framework
for Timetabling Problems: [52] es el ttulo de un trabajo realizado por integrantes
de la Universitat Erlangen-Nurnberg, en Alemania, y The University of Western, en
Australia. En el trabajo construyen en paralelo una propuesta de modelo general para el
problema de asignacion de horarios relacionada ntimamente con el funcionamiento del
10
-
framework que proponen como solucion al problema. Argumentan que las propuestas
existentes poseen un nivel de degradacion 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 llamandolos entidades, y diviendolos en distintas clases: recursos, eventos y
restricciones. Realizan el debido proceso de documentacion mediante UML y en base a
ella crean una implementacion de lo que llaman GTL: General Timetabling Language,
realizada sobre Java. En resumen, se crea el codigo de formulacion 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 revision teorica de los aspectos obligatorios que debe cubrir
una propuesta de modelo estandar para la formulacion del problema de asignacion de
horarios, resumidos en los siguientes puntos: (1) generalidad, el modelo debe brindar el
soporte suficiente para que cualquier restriccion e instancia de un problema cualquie-
ra sea expresable en terminos de las herramientas provedas 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 conversion bidireccional de un problema
expresado con el modelo estandar con los distintos formatos de modelos existentes en
este campo de investigacion. El trabajo identifica que el problema central reside en la
dificultad atada invariablemente a la tarea de reducir expresiones complejas genericas
que incluyen elementos de teora de conjuntos, logica formal y de predicados a una
serie de directivas incluidas en libreras, 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 programacion
imperativa hasta la programacion logica.
Michael Marte (2002), Models and Algorithms for School Timetabling - A Constraint-
11
-
Programming Approach: [51] es una tesis acerca del problema de asignacion de horarios
en relacion con el sistema de educacion media en Alemania, que asemeja mas 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 asignacion de horarios asociado al Gymnasium aleman.
Lus Paulo Reis y Eugenio 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 representacion de los problemas de asignacion de horarios. Este
va enfocado a servir como lenguaje adaptable para cualquier version del problema,
ofreciendo una representacion clara y concisa de los datos, las restricciones, medidas
de calidad as como soluciones para cada una de las version del problema como la
asignacion de horarios para universitarios o para examenes.
Jeffrey Kingston (1999), Modelling Timetabling Problems with STTL: [62] artculo
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 generalizacion 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 caractersticas claves para lograr
una mayor optimizacion en los resultados finales, y en ultima instancia ofrecen pocos
avances en comparacion a soluciones analogas ya existentes en lenguajes de programa-
cion 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 tematica, 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 intrnsecamente asociada a la larga cantidad de
requerimientos asociados al contexto. Esto se ha tratado de solucionar desde dis-
tintos enfoques, como lo son usando tecnologas de la web semantica, modelado
orientado a objetos, usando programacion con restricciones, entre otros.
A fin de no incurrir en la sobrecarga de informacion, 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 solucion basada en la misma, se propone a futuro volver
a redefinir la solucion extendiendo la cota superior en la que se basa la solucion
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 solucion al timetabling problem, crean-
do un nuevo formato de data en XML que se basa a su vez en MathML [90].
Moritz Muhlenthaler(2014), Fairness in Academic Course Timetabling: [75] luego de
realizar un analisis exhaustivo del Problema de Asignacion de Horarios en entornos uni-
versitarios, el autor se enfoca en como se puede formalizar y medir la equidad asociada
a la asignacion 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 descripcion extensiva del estado
del arte de un problema en cuestion, en este caso el problema de asignacion de horarios,
evalua 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 terminos se les conoce como
software para la creacion automatica de horarios una vez que se carga la informacion aso-
ciada a las entidades y restricciones de la instancia a trabajar. Entre los mas resaltantes se
encuentran:
FET [43] : es un software de codigo abierto creado en C++ para la generacion au-
tomatica de horarios de escuelas, liceos y universidades una vez cargada la informacion
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 vara continuamente. Segun la descripcion
oficial, trata con un algoritmo rapido 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 codigo
abierto, creado en Java para manejar con el mayor nivel de granularidad posible el pro-
blema de asignacion 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 organizacion.
Su elemento mas distinguido es la Librera de Resolucion de Restricciones (Constraints
Solver Library), basado en una combinacion de busqueda hacia adelante iterativo
con conjunto con busqueda 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 excepcion. Para colaborar en la investigacion
asociada al problema de asignacion de horarios, el personal humano asociado a la crea-
cion y mantenimiento de este software ha liberado todo el trabajo relacionado bajo
licencias GNU, ademas 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 anos una serie de conferencias interna-
cionales acerca de la teora y practica del timetabling automatizado (PATAT, Practice and
Theory of Automated Timetabling) [76], en la que participa un cumulo de investigadores,
practicantes y relacionados de alguna manera a todo lo que tenga ver con el abordaje del
problema de asignacion de horarios. Entre los topicos tratados se encuentran los diferentes
tipos de horarios, manejo de restricciones, inteligencia artificial, metaheursticas, grafos, entre
muchos otros, que van desde los aspectos formales del problema hasta sus representaciones
practicas.
Patrocinado por PATAT existe tambien 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
especficamente para la competencia. Es de notar que el software mencionado anteriormente,
UniTime, fue uno de los ganadores de tal competencia en su edicion del 2007, obteniendo
dos de los tres principales premios posibles.
2.2. Bases teoricas
2.2.1. Investigacion de operaciones
Campo multidisciplinario (posee componentes de matematicas, logica, ingeniera, compu-
tacion, entre otros) encargado de la optimizacion del uso de recursos para la ejecucion de
distintas tareas [87]. Enfatiza en el uso de modelados matematicos, espacios de soluciones
factibles y no factibles as como los subconjuntos asociados a tales espacios, y la repeticion
intensiva de calculos para optimizar las soluciones temporales encontradas. Tales elementos,
combinados entre s, dan pie para que en la investigacion de operaciones se establezca que el
elemento de mayor importancia en la resolucion de un problema es la definicion del mismo,
y que el modelo general de solucion se defina en base al predicado maximizar o minimizar
una o mas funciones objetivos sujeto a un conjunto de restricciones [55].
15
-
2.2.2. Problema de asignacion de horarios [38] [36] [58]
Termino con el cual se denota el problema que envuelve asignar un conjunto de recursos
finitos en espacio y tiempo a una serie de actividades (comunmente academicas) que van a
ser realizadas por distintos componentes (maquinas, humanos), los cuales tambien poseen
limitaciones en cuanto a cantidad de tareas que pueden realizar, por cuanto tiempo pueden
hacerla, as como cuales pueden ejecutar y cuales no (dependencia condicional). El problema
se formula inicialmente teniendo un conjunto de restricciones (analogo al enfoque de inves-
tigacion de operaciones), donde cada restriccion puede ser obligatoria (hard constraint), es
decir, para solucionar una instancia dada debe cumplirse esa restriccion obligatoriamente;
u opcional (soft constraint), es decir, la restriccion no es obligatoria pero en caso de que se
pueda incluir como parte de la solucion de una instancia dada, mejorara la calidad de la
misma.
El termino timetabling problem engloba distintas variantes que comparten la misma logica
de fondo. Entre las principales, en sus versiones mas basicas se tienen:
STP (School Timetabling Problem): la version mas basica del problema, y por lo
general resoluble facilmente 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 perodos academicos.
Un carga academica maxima permitida por cada perodo.
En esta variante se busca distribuir el conjunto de asignaturas entre todos los perodos
academicos, respetando las restricciones planteadas y minimizando la diferencia entre
las cargas academicas por cada perodo.
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 maxima de actividades a afron-
tar. Este formato de problema es el que mas se aborda en los problemas iniciales
de programacion lineal, se busca cubrir la realizacion 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 vare 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 maxima de estudiantes.
Se busca cubrir de manera eficiente la asignacion estudiantes - prueba - salon de clases,
sin incumplir las restricciones impuestas. Al ser una triple asignacion, 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 cursara una asignatura, esta asignacion 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 seccion
de estudiantes en los salones de clases, y conceptualmente cada uno estara viendo una
asignatura distinta.
UCTP (University Course Timetabling Problem): una de las versiones mas
abordadas en el campo de investigacion 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 algortmica
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 matematicas
y logicas, las cuales varan de forma de acuerdo al paradigma de programacion que se este
usando al momento. [37]
Comunmente se asocia a un algoritmo un tamano n el cual es un valor natural asocia-
do al tamano de los datos de entrada que seran evaluados por el programa. En base a ese
tamano n, se determina un orden de complejidad, que es un valor real obtenido mediante
tecnicas de analisis de complejidad de algoritmos [45]. Este valor es determinado en base al
analisis del algoritmo ante el peor de los casos que se puedan presentar. Este peor caso es
planteado mediante el modelo de analisis que se este usando [49]. As, si el estudio se hace
mediante un analisis asintotico, se realizan entonces los calculos de complejidad asociados
con una cantidad lmite de data de entrada, la maxima cantidad iteraciones a ser ejecutada
para cada bucle del algoritmo en el caso de la programacion imperativa as como en una
decision condicional, hacer los calculos en base a la mayor complejidad de cada una de las
posibles condiciones a ejecutarse. [88] [26]
La notacion mas usada para realizar analisis de complejidad de algoritmos es la notacion
O-grande, que trabaja con el ya nombrado analisis asintotico [88], donde se define una funcion
g(n) que viene a ser peor valor en tiempos de ejecucion para el algoritmo dada una entrada
de tamano 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 funcion polinomial (complejidad P).
Los algoritmos que no entran en la categora 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 solucion 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 decision porque en
la teora 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 interes 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 estandar o el peor de los casos son resolubles en tiempo polinomial
por algoritmos no determinsticos, dado que si se abordan con estrategias determinsticas
su tiempo de solucion puede llegar al orden de anos o siglos [35]. Uno de los problemas del
19
-
milenio plantea la interrogante: P=NP? [34]
Esta demostrado que el Problema de Asignacion de Horarios es un problema NP-completo.
[42]
2.2.4. Programacion con restricciones
Es un paradigma de modelado y busqueda 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 solucion al problema se puede plantear como un vector de
valores V = (v1, v2, . . . vn). Un algoritmo inicial buscara la solucion optima al problema
analizando todas las combinaciones de valores para el vector V , lo cual teoricamente es
valido, pero ineficiente cuando la cantidad de combinaciones es alta (en este caso, es n!) [59].
La programacion con restricciones aprovecha la posibilidad de definir un problema como un
conjunto de condiciones que la solucion debe cumplir para ser valida, reduciendo as el espacio
de busqueda inicial as como los subsecuentes caminos a seguir para hallar una solucion valida
y optima.
2.2.5. Propagacion 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 propagacion 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-formulacion
del modelo original, todo esto encaminado a reducir el numero de decisiones a tomar a la
hora de hallar la solucion (haciendo con esto analoga al proceso de resolver un modelo de
restricciones como una busqueda).
Tal proceso de refinacion 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-
cion de restricciones se conoce comunmente como propagador. Un esquema resumido de
como se comporta sera el siguiente:
Cuando una variable X cambia de valor, el sistema evalua 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 vara dependiendo del tipo de
propagador que se este 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 cientfico
Es una actividad cientfica orientada a convertir un componente del mundo real en al-
go mas facil de entender, definir, cuantificar, visualizar y/o simular, usando mecanismos,
conceptos y herramientas aceptados por la comunidad cientfica. Si bien la totalidad de los
modelos existentes no dejan de ser solo aproximaciones a aquello que desean representar, su
utilidad esta exenta de prueba en lo que concierne a entender los fenomenos que comunmente
acontecen. Entre los principales tipos de modelos se tienen:
21
-
Modelos cualitativos vs cuantitativos: los primeros basan su esencia en la descrip-
cion mas que todo verbal del objeto a modelar, mientras que los segundos se construyen
mediante unidades de medida, interrelaciones de entidades y formulacion de procesos
mediante basamentos logico-matematicos.
Modelos deductivos vs inductivos: un modelo deductivo trabaja con un enfoque
top-down, esto es, va desde lo mas general hasta lo mas especifico. En otras palabras,
parte desde una teora general (dentro del marco de abstraccion en el cual este tra-
bajando), y va descomponiendo la misma en un conjunto de sub-postuladostambien
validos, repitiendo el proceso de manera cclica, hasta que un elemento desconocido es
tomado como cierto, ya que esta respaldado por el proceso previo realizado. Mientras
que un modulo inductivo usa el enfoque bottom-up, el cual empieza con observacio-
nes especficas, y mediante la identificacion de patrones y elementos regulares, termina
formulando una o mas hipotesis que al ser probadas y resultan ser ciertas, derivan en
conclusiones o teoras generales.
Modelos deterministas vs estocasticos: un modelo determinista describe el com-
portamiento de un objeto o fenomeno como algo completamente condicionado por su
estado inicial. Esto es, para los mismos datos de entrada, siempre se tendran los mismos
valores de salida. Mientras que en un modelo estocastico 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 especficos: los primeros buscan simular procesos que sean
convertibles a traves 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 mas importantes a recalcar acerca de un modelo cientfico se tiene:
Estos son construidos cuando el nivel de factibilidad asociado a reproducir emprica-
mente las condiciones y/o el fenomeno a estudiar es bajo o nulo.
22
-
La puesta en marcha del modelo se conoce como simulacion, 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 observacion y reco-
nocimiento de todos los patrones y relaciones existentes en el objeto real.
Generar/construir el modelo implica asumir un adecuado nivel de abstraccion, que vara
de acuerdo al problema.
La evaluacion de un modelo conlleva a tener en cuenta los siguientes factores:
Habilidad para describir las observaciones previas.
Habilidad para predecir, con margenes de error mnimos, futuras observaciones.
Costo de usar el modelo en comparacion a otros con los mismos objetivos.
Simplicidad.
23
-
3. Planteamiento del Problema y Justificacion
Este captulo 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 asignacion
de horarios, y el contexto escogido para desarrollar el presente TEG, que dara pie para en-
tonces escoger, captulos mas adelante, determinados casos de prueba. En la Definicion del
Problema (3.2 se presenta lo que se entiende en este trabajo por el timetabling problem, y
sera este el concepto a usar en el posterior desarrollo. En los Objetivos de la Investigacion
(3.3) se detallan los objetivos generales y especficos a alcanzar por este trabajo. Mientras
que en la Justificacion e Importancia del tema a tratar (3.4) se presentan el conjunto de
razones que sustentan la realizacion de este trabajo, amparadas en conjunto por la necesidad
ya descrita de aumentar la sistematizacion en cuanto a recoleccion de esquemas y modelos
de restricciones del problema de asignacion de horarios.
24
-
3.1. Contexto del Problema
El problema de asignacion de horarios se encuentra en todos aquellos ambitos en los
que la planificacion de actividades con relacion a los recursos disponibles, tanto en tiempo
como en mano de obra o similares, es un asunto crtico. El caso a desarrollar tanto en
terminos teoricos, como a la hora de estructurar los casos de pruebas y las simulaciones,
corresponde al timetabling problem asociado a entornos academicos, esto es, escuelas, liceos
y universidades [30]. La complejidad de cada formulacion es proporcional al nivel academico
el cual se este trabajando, as, el problema de asignacion 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 metaheursticas, que no es mas que la combinacion de
varias heursticas, con el fin de aproximarse a soluciones optimas o en su defecto aceptables.
3.2. Definicion del problema
Tomese en cuenta que en un entorno de trabajo la realizacion de una serie de tareas
es la actividad central del mismo. Una medida de optimalidad en el llevado a cabo de las
mismas esta basada en el orden en que son realizadas unas con respecto a las otras, as como
la ubicacion en el tiempo de cada una de ellas. Todos estos elementos teoricos entran en el
marco de la investigacion de operaciones [91], donde se busca dado un conjunto de recursos
para la realizacion de tareas, optimizar el uso de los mismos.
El problema de asignacion de horarios (interpretacion del termino anglosajon timetabling
problem) busca en su version mas basica distribuir la realizacion 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 busqueda de soluciones optimas
suele estar muy influida por el contexto en el cual se evalua el problema, as, las alternativas
25
-
algortmicas planteadas se ven altamente atadas en cuanto a modelado de acuerdo al pro-
blema especfico 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 numero reducido de contextos, con particularidades
especficas.
Ahora bien, hay dos segmentos bien delimitados, pero para nada independientes, en la
resolucion 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. Entiendase por solucion la
asignacion de individuos a actividades redundando en la superacion de una cota mnima
de optimalidad.
El presente trabajo se encarga de optimizar los procesos asociados al primer elemento,
mientras que el segundo, asociado a la busqueda, de la solucion queda excluido.
Los principales problemas asociados a la construccion de un modelo de restricciones para
una instancia del timetabling problem son los siguientes:
La rigidez en su estructura. Un diseno demasiado atado al problema para el cual fue
creado resulta inutil cuando la instancia origen cambia, haciendo incluso necesario
volver a re-formular todo el sistema.
La optimalidad asociada al modelo de restricciones (existen metricas que calculan la
misma) incide directamente en la factibilidad a la hora de construir una solucion factible
al problema.
En relacion 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 transformacion se pierda informacion 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 tecnologas.
3.3. Objetivos de la investigacion
3.3.1. Objetivos Generales
1. Crear un modelo de costos que contemple la naturaleza dinamica de las restricciones de
una instancia cualquiera del problema de asignacion 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 algortmico que trabaje sobre el modelo construido y, en conjunto
con datos provenientes de la instancia a resolver, realice un proceso de reformulacion
del mismo, optimizando su estructura y con miras a optimizar los calculos futuros de
resolucion del sistema.
3.3.2. Objetivos Especficos
1.1 Realizar un estudio intensivo del estado del arte del problema de asignacion de horarios,
en especfico 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 logicos y matematicos para un
conjunto dinamico de restricciones.
2.1 Construir el esquema algortmico de alto nivel que trabajara sobre el modelo de costos
y restricciones construido en el paso anterior para la reformulacion del mismo.
2.2 Implementar el esquema algortmico en lenguaje de programacion, y probar el com-
portamiento del mismo usando conjuntos de entrenamiento pertenecientes a diversos
contextos.
27
-
3.4. Justificacion e importancia del tema tratado
Se piensa que el planteamiento de una solucion para el timetabling problem que contem-
ple un modelado robusto para un conjunto dinamico de restricciones que ademas supere la
tradicional dicotoma de restricciones obligatorias y opcionales, asignando una medida de
importancia especfica a cada una conllevara a un avance positivo en las investigaciones de
dicho campo.
La realizacion 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 planificacion toma mas importancia conforme aumenta la complejidad de las relaciones de
trabajo, la necesidad de automatizar procesos que solucionados de otra manera (manualmen-
te por ejemplo) tomaran mas tiempo del necesario cobra mayor importancia. El desarrollo
de un topico desde una perspectiva global, y que busque abarcar en terminos solventes al
menos las principales versiones de un problema, siempre ofrecera 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 deberan limitarse a su
aplicacion al contexto indicado mas arriba, sino que pueden servir tambien como medidores
en contextos de la misma naturaleza.
28
-
4. Marco Metodologico
Este captulo se compone de dos secciones. En la Descripcion de la Metodologa (3.1) se
presenta el Protocolo de Modelado, el cual no es mas que una serie de pasos a seguir para la
construccion de un modelo matematico y/o logico, mientras que en la seccion de Aplicacion de
la Metodologa (4.2) los pasos anteriores toman vida para comenzar con el diseno 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 parametrizacion del
modelo, la escogencia del codigo y recursos de software para la ejecucion de las simulaciones
y pruebas, y la creacion del esquema con el cual se presentaran los resultados finales.
29
-
4.1. Descripcion de la metodologa
Se perfila que el trabajo genere como producto principal el modelo general de restricciones
para el timetabling problem.
El modelado cientfico toma un ente de la realidad y lo convierte en un conjunto de pos-
tulados formales basados principalmente en elementos logicos y matematicos que describen
el comportamiento de tal ente conforme a las caractersticas que se desean estudiar [32] [47].
Se define la siguiente triloga:
Figura 2: Triloga Modelo - Algoritmo - Programa [32]
Existen otros dos elementos que brindan robustez a la metodologa de modelado ma-
tematico, 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 energa, en otros informacion.
El modelo se clasifica de acuerdo a sus caractersticas [48]. Existen muchos tipos de
modelos, as como subtipos, y de la misma manera tal clasificacion no necesariamente se
establece al terminar de construirlo. Tambien se puede inferir sobre que clase de modelo es,
respondiendo preguntas durante el proceso de creacion que esclarezca que decisiones tomar
30
-
Figura 3: Esquema general del modelo matematico. [32]
de acuerdo a que herramientas usar y cuales no.
4.1.1. Protocolo de Modelado
1. Definicion del objetivo del modelado: debe responder a las preguntas para que
modelar un proceso?, para que modelar los procesos relacionados a las restricciones
del problema de asignacion de horarios?. Siendo la seccion inicial del protocolo, si
bien no todas las ideas que puedan generar los investigadores seran plasmadas aqu,
es importante que se planteen aqu todos los puntos crticos asociados al objetivo del
modelado: las hipotesis, establecer el tipo del modelo, alcances y limitaciones entre otros
elementos. No posee una estructura definida, y dependera de la esencia del modelo que
se este construyendo.
2. Formulacion 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 tambien los elementos pertenecientes al modelo, y como 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 que tipo de
modelo es mas adecuado usar. Puede ser puro o compuesto, esto de acuerdo a las
31
-
necesidades. Conforme al tipo de modelo escogido, se explica el porque de la eleccion,
y esto mas que todo esta condicionado a las caractersticas lo cual lo ubican dentro de
determinada categora.
Figura 4: Primera etapa del protocolo de modelado [32]
4. Seleccion del codigo a aplicar: basado en el tipo de modelo a usar, se investiga la
disponibilidad de codigo, libreras y cualquier otro soporte de software relacionado al
mismo y que sirva de apoyo para el desarrollo de la aplicacion que trabajara sobre la
construccion, testing y validacion del modelo, as como de los resultados que se generen
de los procesos ya mencionados. Es aplicable la creacion de codigo propio, y este ultimo
es obviamente imprescindible para cuando la existencia de herramientas que den soporte
al producto a construir sea casi nula.
5. Parametrizacion del modelo: se establecen las magnitudes de los parametros que
forman parte de la estructura matematica. Los elementos identificados y plasmados
en el modelo conceptual son traducidos a definiciones formales en terminos logicos y
matematicos, 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. Validacion del modelo: mientras que el paso anterior establece el rango de valores
a trabajar para cada uno de los parametros del modelo, este ultimo se prueba ahora
con un conjunto de valores de prueba que esten 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 validacion que se este usando. El modelo construido sera
considerado valido a efectos de uso cuando tal medida de error se encuentre dentro de
un lmite considerado permisible.
7. Simulacion: el modelo construido entra en fase de uso con casos de prueba definidos
sistematicamente, con el fin de obtener la informacion suficiente para el paso final.
Si bien ya es una practica general, vale recalcar que queda como implcito que estas
simulaciones son computacionales, as que tambien es importante especificar las espe-
cificaciones de las plataformas en donde se realicen tales simulaciones.
La construccion y/o recoleccion de casos de prueba debe ser realizada de manera sis-
tematica y ordenada, para as tener un control preciso sobre el contraste que se realice
entre los resultados obtenidos y los esperados (en las hipotesis previas).
8. Analisis y presentacion 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 tambien por el momento en que se supero la
validacion del modelo, para as construir el documento formal que de soporte a la toma
de decisiones, as como la construccion de las conclusiones y recomendaciones.
4.2. Aplicacion de la metodologa
4.2.1. Definicion del objetivo del modelado
El problema de asignacion de horarios es un problema combinatorio NP-completo [66]. No
existe una sola version del mismo, sino que esta vara dependiendo del contexto del proble-
ma. Esta variacion 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 patron comun en cuanto el nucleo del problema, independiente
de las versiones que tenga el mismo, el comun 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 especfica que se desea resolver.
34
-
El proceso general de solucion al problema se divide en la fase de modelado y la fase al-
gortmica. 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 solucion algortmica.
En cuanto a la bibliografa que trata acerca de las soluciones al problema de asignacion de
horarios (en sus distintas variantes), la mayora se concentra mas en los procesos algortmicos
que en la fase de modelado, siendo esta ultima ubicada como un elemento trivial en compa-
racion 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:
Que se busca?
Aportar al fortalecimiento de la bibliografa relacionada a la construccion 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 informacion de la instancia
a resolver, todo esto orientado a la optimizacion de los calculos algortmicos que
resuelvan el problema.
El modelo creado (entendiendose por modelo tanto los esquemas conceptuales aso-
ciado al mismo como los mecanismos de reformulacion y optimizacion basado en
los casos de prueba) va orientado a ser independiente de plataformas y lenguajes de
programacion. En otras palabras, debe ofrecer los mecanismos (teoricos y empri-
cos) mnimos necesarios para que su interfaz de entrada-salida sea re-usable en la
mayor cantidad de contextos asociados al problema de asignacion de horarios.
Que se sabe?: Esto es cubierto en la seccion del modelado conceptual (4.2.2). Se
expresa verbalmente y mediante graficos 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.
Que se puede asumir?: descrito tambien la seccion del modelado conceptual (4.2.2),
las suposiciones que se realizan con respecto al problema a modelar son concentradas
en terminos conceptuales en lo que sera tratado como las entradas del modelo general
del problema de asignacion de horarios.
Como debera ser visto este modelo?: cada una de las caractersticas del modelo
a construir lo condicionan a formar parte de ciertos conjuntos de modelos cientficos
(cubiertos en la seccion (4.2.3)), los cuales definen la respuesta a tal interrogante. As
mismo, y en terminos generales, el trabajo presente se orienta principalmente a pre-
sentar el modelo como una especie de plantilla base en la cual deberan 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 hipotesis planteadas?: esta pre-
gunta es respondida convenientemente en la seccion de Hipotesis Iniciales (6.2.1) y
en la seccion de Resultados Obtenidos (6.2.2). Los elementos a analizar en las simu-
laciones del modelo son expuestos en la seccion de Metricas de Evaluacion (6.1.3).
Como sera usado este modelo?: respuesta cubierta mas extensamente en la seccion
de (7.1), basicamente dependiendo de los resultados obtenidos, si son alcanzadas las
hipotesis planteadas, el modelo entonces debera servir para avanzar en la creacion 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 mayora las hipotesis predecidas,
entonces debera servir como indicador de distintos elementos tales como el evitar el
codigo escogido para futuras soluciones al mismo problema, el desarrollo del mismo
modelo conceptual pero bajo otro paradigma de programacion, la reformulacion del
mismo modelo bajo otro enfoque de modelado, entre otras alternativas.
Como se puede mejorar este modelo? descrito con mayor profundidad en la sec-
cion de Trabajos Futuros (7.2), la mejora del modelo construido debera ir orientada
36
-
principalmente a mejorar los resultados contemplados en las metricas de evaluacion, y
ampliar su capacidad de aceptar nuevas instancias del problema de asignacion de ho-
rarios, as mismo tal proceso de transformacion debera ser lo menos engorroso posible.
4.2.2. Formulacion del modelo conceptual
El modelo conceptual se divide en tres secciones:
Entrada: es la instancia original del problema a resolver. Esta compuesta de :
Modelo original: es el conjunto de variables, relaciones y restriciones existentes
en el modelo original. Pueden estar formuladas solo de manera conceptual o ya
estar parametrizadas adecuadamente en terminos logicos y matematicos.
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
maquinas 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. Mas detalladamente:
Mapeo: es el proceso de conversion del modelo original al modelo general.
Transforma los elementos del modelo original a elementos que encuadren den-
tro de la logica de Clases Individuo-Clases Actividad-Relaciones-Restricciones.
38
-
Es realizado de manera manual por aquel que desee hacer uso de los mecanis-
mos de optimizacion del sistema. Este proceso de transformacion tambien debe
aplicarse sobre el conjunto de datos, generando entonces mapeo(dataOriginal) =
dataTransformada.
Clases Individuo: en la semantica del problema de asignacion 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
continuacion:
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 vara dependiendo del modelo origen. Este atributo
compuesto sirve para modelar los atributos de los Individuos del modelo ori-
ginal que no tienen representacion directa en el resto de los atributos de la
clase Individuo.
Clases Actividad: en la semantica del problema de asignacion 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
continuacion:
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 vara 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 representacion 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 definicion del mismo, y con el fin de generalizar el concepto de Actividad aplicado
a las principales instancias existentes de problema de asignacion 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 esta establecida la relacion de ejecucion de un individuo con respecto
a una actividad. Se habla de aspirante cuando tal relacion es deseable (ya sea por
condiciones del sistema o por voluntad del individuo) pero aun no se ha establecido.
En la generalizacion del problema de asignacion 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 ejecucion es cclica.
La ejecucion de cada actividad en el marco de un plazo cclico se ve condicionada,
directa o indirectamente, por tres elementos:
Tiempo: la ejecucion total de una actividad, en algunos casos (depende del
problema original), debe distribuirse en segmentos a traves del tiempo. A cada
uno de estos segmentos se le conocera como sub-actividad.
40
-
Ubicacion: una actividad es ejecutada en alguna instancia del espacio. Tal
ubicacion poseera diversos atributos relacionados, pero a efectos del analisis
presente relacionado al seccionamiento, se considerara unicamente aquel atri-
buto relacionado a la maxima carga de individuos que tal ubicacion 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 ubicacion fsica para la prosecucion 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 replica se toma como una actividad independiente con respecto
a las otras, con el fin de que su ejecucion sea manejable con respecto a la correlacion
carga maxima de individuos por ubicacion 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 mas que la asignacion de una sub-actividad a un par (instancia temporal,
instancia posicional). En otras palabras, un evento es la representacion indivisible (a
efectos del presente modelo) de la ejecucion de una actividad en terminos de sub-
actividades, ubicando cada una en una determinada instancia del espacio y del tiempo
(cada una de estas caractersticas dependeran del contexto del trabajo, pero se toman
como referencias principales no excluibles por ser parte de los principales sistemas de
medicion 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 mas elementos a ser comparados entre si, existe disonancia entre los valores
esperados para ser evaluados dentro de un conjunto de funciones matematicas y
condiciones logicas 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 optimizacion de modelos
que trabaja sobre el modelo general (que contiene, posterior al proceso de mapeo,
una representacion manejable del modelo original), produciendo una version me-
jorada del mismo. En terminos 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 hbrido, dado que su estructura engrana conceptos y mecanismos de dis-
tintos tipos de modelos homogeneos, los cuales estan listados a continuacion:
Modelo matematico [40]: dado que la mayora de sus componentes son expresa-
dos en base a conceptos matematicos. Principalmente las restricciones asociadas a las
relaciones entre las clases existentes en el sistema.
Modelo logico [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 matematicos.
42
-
Modelo emprico: como consecuencia de incluir en uno de los procesos del modelo el
uso de datos reales.
Modelo estocastico: por el uso de componentes aleatorios y heursticos 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 concepcion inicial, a fines de una me-
jor comprension, es presentado como un engranaje de conceptos que permitan realizar
el proceso de mapeo mas facilmente.
Modelo descriptivo: dado que el enfoque asumido para la construccion del modelo
general es comprender la esencia del problema de asignacion de horarios desde una
perspectiva tanto global como intrnseca, haciendo necesario la descripcion detallada
de los procesos involucrados no solo en terminos formales sino tambien en lenguaje
natural, y definiendo la estructura final del mismo usando un marco recursos-procesos-
resultados.
Modelo de optimizacion: debido a que una de las principales caractersticas 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 especfico): porque se busca englo-
bar el problema de asignacion de horarios, colocando como cota mnima abarcar sin
inconvenientes las versiones mas representativas del problema, para luego en trabajos
futuros basados en el actual, corregir las deficiencias del modelo construido y anadir
nuevas caractersticas que permitan cubrir versiones mas sofisticadas del timetabling
problem que no sean cubiertas con el esquema construido en el presente trabajo.
4.2.4. Seleccion del codigo a aplicar
Esto es descrito con mas detalle en la seccion de Plataforma Computacional (6.1.1),
especficamente en el segmento dedicado a la especificacion de los recursos de software a usar
para ejecutar las simulaciones.
43
-
4.2.5. Parametrizacion 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 tendra cada sub-actividad
de Ai.
|A| = |F | = |P |
Aplicando criterio de seccionamiento (replicacion de actividad):
R = {Ri/Ri es el conjunto de replicas de la actividad Ai |Ri| = roof(fi/pi)}
Donde roof(...) arroja el valor redondeado al tope del parametro.
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
Ubicacion:
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
). Esta res-
triccion de compatibilidad sera etiquetada como RT0.
Individuos:
I = {Is/Is es una individuo } , 1 s nI , nI = |I|
Us =< id,< attr1, attr2, ..., attrw >>,w 0
Restricciones:
Minimizacion de incompatibilidades entre eventos (RT1):
Dado un valor min1 R:
RT2 (nEi=1
incompatibilidad(AEi[id actividad] A,
LEi[id lapso] L,UEi[id ubicacion] U)) min1
Minimizacion 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 calculo los pertenecientes a G, minimizar lo
siguiente:
Dado (Ix, Ai), (Ix, Aj) G. Ocurre que:
RT2 (Ai[id] 6= Aj[id] Ai[id actividad] = Aj[id actividad])
(Ai[id] 6= Aj[id] Ai[id actividad] 6= 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. Validacion del modelo
Verificacion del modelo:
El modelo esta programado correctamente?, Los algoritmos han sido im-
plementados apropiadamente?, El modelo no contiene errores de ningun
tipo? [86]
El diseno del modelo, realizado con cierto subconjunto de tecnologas y descrito con mas
profundidad en la seccion de Configuracion de los experimentos (6.1.2), se baso en
la construccion de un conjunto de condiciones en logica de primer orden, que incluye
logica de predicados y postulados matematicos basicos, que pueden ser verificados para
comprobar su correctitud semantica y por supuesto sintactica.
As mismo la fiabilidad funcional de las herramientas de software a usar estan garantiza-
das dado que se tratan de creaciones validadas por los procesos estandar de evaluacion
de las investigaciones cientficas.
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 seccion de descripcion de los casos de prueba.
Validacion del modelo: La validacion de un modelo va orientada principalmente a
establecer la correctitud que existe entre lo que hace el modelo y el comportamiento
del fenomeno del mundo real que desea reproducir. Este modelo no busca esquematizar
un fenomeno del mundo real sino brindar un marco comun de parametros (entidades,
relaciones y restricciones) para el problema de asignacion de horarios. En consecuencia,
no son aplicables los mecanismos de validacion de modelos existentes para el actual.
4.2.7. Simulacion
El proceso de simulacion consta de las siguientes fases:
Definicion de casos de prueba.
Mapeo de casos de prueba, en conjunto con la data complementaria, al modelo general
construido en el presente trabajo.
46
-
Formulacion de hipotesis iniciales.
Escogencia de codigo, software y/o libreras que desarrollen los algoritmos de propaga-
cion.
Implementacion de resultados de mapeo de los casos de prueba en los codigos seleccio-
nados.
Establecimiento de plataformas de hardware en donde se ejecutaran las simulaciones
(equipos computadores).
Ejecucion de los codigos en conjunto con los casos de prueba.
Analisis de los resultados obtenidos, constrastacion con hipotesis iniciales. Reformula-
cion de hipotesis o de otro punto previo en caso de considerarse necesario.
Presentacion de resultados finales.
4.2.8. Presentacion y analisis de resultados
Presentacion de resultados:
Cubierto en la seccion de Resultados obtenidos (6.2.2).
Se realiza con las herramientas de presentacion mas convenientes (tablas, graficos),
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 informacion que sera cubierta en el
analisis final de resultados.
Analisis de resultados:
Desarrollado en la seccion de Conclusiones y Recomendaciones.
Aqu se expone el analisis final que contrasta las hipotesis iniciales planteadas y los
resultados obtenidos de las simulaciones. A partir de aqu tambien se generara las
recomendaciones para futuros trabajos que basen su tematica en la desarrollada en la
47
-
presente investigacion, en la continuacion de la misma, o en su defecto de uno intrnseca-
mente relacionado tanto al problema de generar un esquema general de las restricciones,
o en la optimizacion de las mismas mediante tecnicas de propagadores o alternativas.
48
-
5. Diseno de la solucion
Este captulo se compone de dos secciones. En la Descripcion de la Solucion (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 seleccion del
software para las simulaciones. En la seccion de Alcances y Limitaciones (5.2) se describen
los contras en relacion al proceso a seguir para la consecucion de los resultados que convaliden
los objetivos a lograr.
49
-
5.1. Descripcion de la solucion
El siguiente es un listado que resume la serie de pasos a seguir para lograr el objetivo final
propuesto, as como las caractersticas que rodean al proceso. Cada paso posee la respectiva
referencia a la seccion o secciones del presente trabajo en donde se describe con mayor detalle:
Se ha realizado una investigacion a fondo de los topicos mas activos con respecto al
problema de asignacion de horarios. Esto ha permitido identificar las principales ins-
tancias existentes del problema, y para cada una de ellas extraer un patron alrededor
de la trada entidades-relaciones-restricciones, y construir un modelo conceptual debi-
damente parametrizado que permita dar soporte en su totalidad a los aspectos mas
esenciales de las instancias seleccionadas.
Se escogen de manera detallada los casos de prueba mas 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 serviran para la ejecucion de los pasos posteriores.
Habiendo construido las hipotesis iniciales, estableciendo cotas de trabajo, definido las
plataformas en donde se ejecutara la simulacion, en conjunto con el codigo correspon-
diente, se realiza la conversion de los modelos originales en conjunto con la data al
esquema general planteado como solucion en este trabajo.
Desarrolladas las conversiones, se ejecutan las simulaciones, que consistiran en (para
cada modelo convertido al esquema general), usando los mecanismos provedos por el
codigo seleccionado, la aplicacion de los algoritmos de propagacion (optimizadores de
modelo) en base a los datos que tambien fueron transformados.
Posterior a las simulaciones, se recolectaran los datos producidos por las mismas, rea-
lizando los analisis correspondientes orientados principalmente a validar las hipotesis
planteadas. En caso de no existir una correlacion valida entre hipotesis y resultados, se
realiza una iteracion consistente en identificar algun elemento erroneo existente entre
50
-
los planteamientos iniciales del trabajo y las hipotesis previas a la simulacion. Realizada
la re-formulacion, se ejecutan nuevamente las simulaciones (volver al paso anterior).
Para cuando exista una correlacion valida entre hipotesis y resultados obtenidos, se
realizan las conclusiones asociadas a la investigacion 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 analisis propio que logre
encajar con el esquema general construido. Se evaluo la posibilidad de trabajar con
un proceso de mapeo automatico, pero queda fuera de los objetivos propuestos en el
trabajo actual.
El codigo encontrado para ser usado en el modulo de optimizacion del modelo (los
propagadores), si bien cumplen su trabajo, no esta asegurado que sean la mejor version
de si mismos, constituyendose esto en otra limitacion, y al mismo tiempo, en un punto
importante a ser tocado en un trabajo futuro, en donde se optimicen los algoritmos de
propagacion encargados de optimizar el modelo construido en el trabajo actual.
Queda fuera del trabajo la realizacion 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 esta mas orientado a desarrolladores de una herramienta
mas global como lo sera un solver para el problema de asignacion de horarios, con los
conocimientos necesarios en el campo.
Si bien la bibliografa revisada esta lejos de ser pequena, el modelo construido esta lejos
de abarcar todas las variantes del problema de asignacion de horarios, pero si ha sido
disenado para que de solucion, con la respectiva conversion (mapeo), a las principales
versiones del mismo. Dando pie entonces a que, en trabajos futuros, una version mas
refinada del modelo sea construida.
51
-
6. Resultados experimentales
Este captulo se compone de dos secciones. En la Configuracion de los Experimentos
(6.1) se describe la plataforma computacional sobre la cual se ejecutaran las pruebas (esto
incluye caractersticas de hardware y codigos escogidos que traten con el problema de la
optimizacion de modelos mediante algoritmos de propagacion de restricciones), los casos de
prueba en su version inicial, descritos verbalmente, pasando por sus definiciones logicas hasta
la representacion de los mismos en el software escogido para las simulaciones, as como la
definicion de las metricas de evaluacion para analizar el nivel de validez de los resultados
en relacion a los objetivos planteados. Mientras que en el Analisis de los Resultados (6.2) se
describen las hipotesis iniciales en relacion a lo que se espera obtener de las simulaciones en
base a todo el entramado teorico y de analisis realizado previamente, para luego mostrar los
resultados obtenidos de las simulaciones.
52
-
6.1. Configuracion 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 caractersticas 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 seleccion de codigo para ejecutar la optimizacion del modelo, se construyo
una lista de candidatos suficientemente amplia, para que el analisis 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 continuacion:
Choco [2]: es una biblioteca para Java de codigo abierto usada para la programacion 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 busqueda.
EclipseCLP [4]: es un sistema de codigo abierto para el desarrollo y puesta en marcha
de aplicaciones basadas en programacion con restricciones. Contiene varias libreras
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 programacion logica.
IBM ILOG Cplex Optimization Studio [11]: es un kit de herramientas de soporte a
la toma de decisiones mediante analtica para acelerar el desarrollo y el despliegue
de modelos de optimizacion utilizando programacion matematica y de restricciones.
Combina un entorno de desarrollo integrado con un potente lenguaje de programacion
de optimizacion y solucionadores de optimizador ILOG CPLEX de alto rendimiento. Es
de uso pago mediante licencia, ofreciendo una version de prueba y con funcionalidades
limitadas.
Mozart Programming System [16]: combina investigaciones en desarrollo acerca del
diseno e implementacion de lenguajes de programacion, computacion distribuida, e
interfaces humano-computador. Esta implementado sobre el lenguaje multiparadigma
Oz y provee poder expresivo y avanzadas funcionalidades por igual. La ultima version
(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 aun en fase experi-
mental.
UNITIME [89]: descrito ya previamente en la seccion de Antecedentes Teoricos / Tra-
bajos Previos. Ademas del software principal, ofrece acceso a componentes .jar para ser
usados como libreras externas de algun modulo personalizado relativo al timetabling
problem.
python-constraint [18]: otra biblioteca para Python que ofrece solucionadores para pro-
blemas de programacion con restricciones. Los solvers disponibles hasta el momento
son backtracking, recursivo y el de mnimo conflicto, en donde se minimizan la cantidad
de veces en la que cierta restriccion se incumple en las soluciones halladas o construidas.
Swi-Prolog [22]: es una implementacion estable y gratuita del lenguaje Prolog, con
orientacion a ser usada princi