Modelo general de costos para el problema de asignación de horarios.

of 129 /129
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

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