i AGRADECIMIENTOS A DIOS: Por haberme apoyado a lo largo de mi vida, brindándome fuerzas para salir adelante ante cualquier adversidad. A MIS PADRES: Por tener y jamás perder la confianza, por ese apoyo y preocupaciones incondicionales que solo los verdaderos padres pueden brindar a un hijo. A MIS BEBES: Mis chiquititos Koda y Cosita que han llenado mi vida de alegrías y preocupaciones, que me han acompañado a lo largo de todo este trayecto y lo seguirán haciendo ya sea terrenal o espiritualmente, por ese amor y lealtad incondicional que los mejores amigos puedan tener. A MI NOVIA: Por minimizar mis preocupaciones, brindarme valor cuando lo requiera y darme gratos momentos. A MIS ASESORES: Por haberme brindado su tiempo y conocimientos necesarios para la culminación de este proyecto. A CONACYT: Por haber financiado mis estudios. ii CAPÍTULO I INTRODUCCIÓN ......................................................................................................... 1 1.1. PROBLEMÁTICA GENERAL....................................................................................................................... 1 1.2.METODOLOGÍA .......................................................................................................................................... 1 1.3. DEFINICIÓN DEL PROBLEMA DE ASIGNACIÓN DE HORARIOS ............................................................. 2 1.4. CLASIFICACIÓN DEL PROBLEMA ............................................................................................................. 3 1.5. TRABAJO RELACIONADO .......................................................................................................................... 4 1.6. JUSTIFICACIÓN .......................................................................................................................................... 6 1.6.1. Justificación científica ............................................................................................................ 6 1.6.2. Justificación tecnológica ....................................................................................................... 6 1.7. HIPÓTESIS ................................................................................................................................................. 6 1.8. OBJETIVOS ................................................................................................................................................. 7 1.8.1. Objetivo general .................................................................................................................................. 7 1.8.2. Objetivos específicos ......................................................................................................................... 7 1.9. ORGANIZACIÓN DEL DOCUMENTO ......................................................................................................... 7 CAPÍTULO II COMPUTACIÓN EVOLUTIVA ................................................................................ 9 2.1. INTRODUCCIÓN ......................................................................................................................................... 9 2.2. HISTORIA DE LA COMPUTACIÓN EVOLUTIVA .................................................................................... 10 2.3. CARACTERÍSTICAS GENERALES DE LOS ALGORITMOS EVOLUTIVOS .............................................. 11 2.4. COMPONENTES DE LOS ALGORITMOS EVOLUTIVOS ......................................................................... 14 2.4.1. Representación .................................................................................................................................. 14 2.4.2. Función de calidad ........................................................................................................................... 14 2.4.3. Población.............................................................................................................................................. 14 2.4.4. Mecanismo de selección de padres ........................................................................................... 15 2.4.5. Mecanismo de selección de supervivientes ........................................................................... 15 2.4.6. Operadores de variación ............................................................................................................... 15 2.4.6.1. Mutación ....................................................................................................................................................................... 15 2.4.6.2. Recombinación o cruza .......................................................................................................................................... 16 2.4.7. Inicialización ...................................................................................................................................... 16 2.4.8. Condición de término ..................................................................................................................... 16 2.5. CLASIFICACIÓN DE LA COMPUTACIÓN EVOLUTIVA........................................................................... 17 2.5.1. Algoritmos Genéticos ...................................................................................................................... 17 2.5.1.1. Representación .......................................................................................................................................................... 17 2.5.1.2. Selección de candidatos ......................................................................................................................................... 18 2.5.1.3. Mutación ....................................................................................................................................................................... 18 2.5.1.4. Recombinación ó cruza .......................................................................................................................................... 19 2.5.2. Estrategias Evolutivas ................................................................................................................... 21 2.5.2.1. Mutación ....................................................................................................................................................................... 22 2.5.2.2. Recombinación o cruza .......................................................................................................................................... 22 2.5.3. Programación Evolutiva ............................................................................................................... 22 2.5.3.1. Mutación ....................................................................................................................................................................... 23 2.5.4. Programación Genética ................................................................................................................ 23 2.5.4.1. Mutación ....................................................................................................................................................................... 25 2.5.4.2. Recombinación o cruza .......................................................................................................................................... 25 2.5.5. Programación Memética .............................................................................................................. 26 2.5.5.1. Características generales ...................................................................................................................................... 27 2.5.5.2. Estructura..................................................................................................................................................................... 27 CAPÍTULO III CASO DE ESTUDIO ...............................................................................................29 3.1. FACULTAD DE PSICOLOGÍA .................................................................................................................. 29 3.2 ANÁLISIS DEL PROBLEMA DE ASIGNACIÓN DE HORARIOS ................................................................ 31 3.3 SISTEMA ACTUAL ................................................................................................................................... 33 CAPÍTULO IV DESARROLLO Y RESULTADOS DE LA METODOLOGÍA PARA SOLUCIONAR EL PROBLEMA DE ASIGNACIÓN DE HORARIOS DE LA FACULTAD DE PSICOLOGÍA UNIVERSIDAD VERACRUZANA CAMPUS XALAPA ......................................35 4.1 DESARROLLO Y RESULTADOS DE LA METODOLOGÍA PARA LA SOLUCIÓN DEL PROBLEMA ......... 36 4.1.1 Aplicación de algoritmos inspirados en la naturaleza en su versión original ...... 36 iii 4.1.1.1 Representación ........................................................................................................................................................... 37 4.1.1.2. Función de Calidad ................................................................................................................................................... 40 4.1.1.3 Selección de Padres .................................................................................................................................................. 42 4.1.1.4 Selección de sobrevivientes.................................................................................................................................. 43 4.1.1.5 Operadores ................................................................................................................................................................... 44 Cruza......................................................................................................................................................................................... 44 Mutación ................................................................................................................................................................................. 45 4.1.1.6 Inicialización ................................................................................................................................................................ 46 4.1.1.7 Condición de paro ..................................................................................................................................................... 47 4.1.1.8 Evaluación del desempeño del algoritmo ...................................................................................................... 47 4.1.2 Representaciones Alternativas ................................................................................................... 50 4.1.2.1 Representación decimal ......................................................................................................................................... 51 4.1.2.2 Operadores ................................................................................................................................................................... 52 Cruza......................................................................................................................................................................................... 52 Mutación ................................................................................................................................................................................. 53 4.1.2.3 Evaluación del desempeño del algoritmo ...................................................................................................... 54 4.1.3 Esquemas Poblacionales ................................................................................................................ 56 4.1.3.1 Evaluación del desempeño del algoritmo ...................................................................................................... 57 4.1.4 Algoritmo híbrido ............................................................................................................................ 60 4.1.4.1 Representación ........................................................................................................................................................... 61 4.1.4.2 Operadores ................................................................................................................................................................... 61 Operador 1............................................................................................................................................................................. 61 Operador 2............................................................................................................................................................................. 62 4.1.4.3 Evaluación del desempeño del algoritmo ...................................................................................................... 63 4.1.4.4 Modificación al algoritmo memético ................................................................................................................ 66 Inicialización......................................................................................................................................................................... 66 4.1.4.5 Evaluación del desempeño del algoritmo ...................................................................................................... 66 4.2. VISUALIZACIÓN GRÁFICA DE LOS DATOS ........................................................................................... 68 4.3. PRUEBAS ESTADÍSTICAS ............................................................................................................... 69 4.3.1. Prueba de Kolmogorov – Smirnov de una muestra .......................................................... 69 4.3.2. Prueba de Wilcoxon ........................................................................................................................ 70 4.3.3. Prueba de Friedman ....................................................................................................................... 71 4.3.4. Prueba de Kruskal-Wallis ............................................................................................................. 72 CAPÍTULO V CONCLUSIONES.......................................................................................................74 5.1. ANÁLISIS DE LA METODOLOGÍA UTILIZADA ...................................................................................... 74 5.2. ANÁLISIS DE LA HIPÓTESIS PLANTEADA ............................................................................................ 74 5.3. ANÁLISIS DE LOS OBJETIVOS PLANTEADOS ....................................................................................... 76 5.4. TRABAJO FUTURO ................................................................................................................................. 77 BIBLIOGRAFÍA .................................................................................................................................78 iv Capítulo I introducción 1.1. Problemática general El desafío del problema de asignación de horarios se ve acrecentado en las instituciones educativas, ya que en ellas el problema se presenta cotidianamente con cada cambio de periodo escolar. En este tipo de instituciones el problema general consiste en proponer una planificación de los recursos escolares (alumnos, profesores, aulas, equipo educativo etc.) que cumpla con todas las restricciones impuestas y obtenga una solución aceptable en un tiempo moderado. Como tal, esto no es una tarea trivial, ya que debido al número de restricciones impuestas, estos problemas normalmente se vuelven consumidores de tiempo y difíciles de resolver ya que en ellos existe una proporción directa entre el tiempo y la calidad de la solución, motivo por el cual han sido objeto de estudio de diversos investigadores, e incluso han originado competencias internacionales tales como “international timetabling competition” organizada por metaheuristics networks[2]. Cabe mencionar que los problemas de asignación de horarios pueden ser solucionados con diferentes técnicas tradicionales tales como búsquedas exhaustivas o programación lineal. Sin embargo, este tipo de técnicas normalmente sólo son capaces de resolver instancias pequeñas del problema[43]. Para problemas con una gran cantidad de insumos el tiempo computacional puede ser inviable, ademas de no garantizar la satisfacción de las restricciones. Debido a lo anterior, han sido desarrollados diversos algoritmos con técnicas no tradicionales tales como búsquedas locales, algoritmos genéticos y meta- heurísticas en general, que sean capaces de resolver este tipo de problemas en un tiempo menor y que aseguren hasta cierto punto la satisfacción de las restricciones. En este trabajo se resolverá una instancia real de un problema de asignación de horarios en instituciones educativas, tomando como caso de estudio la Facultad de Psicología de la Universidad Veracruzana y se dará solución al mismo mediante el uso de un algoritmo evolutivo, todo ello siguiendo una metodología de aplicación de este tipo de algoritmo que ha sido desarrollada en el Laboratorio Nacional de Informática Avanzada (LANIA) A.C. que se describe a continuación. 1.2.Metodología Parte de la misión de LANIA se basa en la aplicación de tecnología emergente en la resolución de problemas reales en el ámbito educativo y 1 empresarial. derivado de ello, el grupo de investigación en cómputo inspirado en la naturaleza ha propuesto una serie de pasos que permiten la resolución de problemas reales usando algoritmos meta-heurísticos biológicamente inspirados [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados en aplicar un algoritmo de este tipo en la resolución de un problema particular. Esta metodología cuenta con los siguientes pasos: 1. Aplicación de algoritmos inspirados en la naturaleza en su versión original: el primer paso consiste en aplicar el algoritmo que, de acuerdo al estudio del estado del arte, sea el más popular al resolver un problema particular, en su versión original (sin modificaciones) y evaluar si el problema se resuelve de manera satisfactoria. Para ello se asume un diseño experimental adecuado y que proporcione evidencia sólida del desempeño del algoritmo. 2. Representaciones alternativas: el segundo paso, en el caso de que los resultados no fueran satisfactorios en el paso previo, consiste en diseñar representaciones alternativas a las soluciones del problema, de manera que el espacio de búsqueda que se define sea diferente y donde la búsqueda pudiera eficientarse y, así, resolver el problema de manera satisfactoria. Este cambio de representación puede involucrar el cambio de los operadores de variación que permiten generar nuevas soluciones a partir de las ya existentes. 3. Esquemas poblacionales: si las representaciones alternativas no funcionaran, se deberá diseñar un esquema donde diferentes poblaciones de soluciones manejen diferentes representaciones del problema y exista un mecanismo de control que permita que todas ellas evolucionen de manera paralela y colaborativa, para verificar si, en conjunto, puedan resolver el problema. 4. Hibridación: consiste en combinar dos algoritmos de búsqueda de manera que puedan, en conjunto, resolver el problema. Existen dos posibilidades, el enfoque combinado (dos algoritmos meta-heurísticos que manejan búsqueda global) o el enfoque memético (un algoritmo meta-heurístico de búsqueda global con un algoritmo de búsqueda local). 5. Enfoque híper-heurístico: consisten en la generación de un mecanismo de control que permita la ejecución de manera conveniente de tres o más algoritmos meta-heurísticos, donde cada uno de ellos se activa de acuerdo a las decisiones del mecanismo de control que están basadas en el desempeño de cada uno de ellos. 1.3. Definición del problema de asignación de horarios Los problemas de asignación de horarios escolares pueden ser pensados como un proceso de toma de decisiones donde concierne ubicar recursos limitados a determinadas tareas a través del tiempo, Wren[1] define este tipo de problemas como : “la asignación, sujeta a restricciones, de los recursos otorgados con el propósito de ser establecidos en un espacio de tiempo, de tal manera que satisfaga lo más cercanamente posible el conjunto de objetivos deseados”. 2 El objetivo planteado por un problema de asignación de horarios escolar, comúnmente llamado Scheduling, es crear una plantilla en la cual se tengan perfectamente estructuradas las asignaciones, ya sea de materias o de exámenes que serán impartidas por cierto grupo de profesores sin que existan choques de horarios entre los profesores ó de ubicación de las materias/exámenes en las aulas. Como tal forma parte de la división de problemas NP-duros[12] debido a la limitación de los recursos, la cantidad de restricciones que pueden llegar a tener y la forma en que estas son aplicadas. Los problemas de asignación de horarios están asociados a organizar una secuencia de eventos con recursos limitados y restricciones impuestas en un periodo de tiempo especificado. Las restricciones pueden comprender hechos tales como evitar choques de horario entre asignaturas, incapacidad de las salas, Infra ó sobre-valoración de la carga de trabajo, inadecuada disposición para estudiantes y profesores, sub ó sobre-asignación de recursos o equipos, entre otros [3]. Cabe señalar que cada instancia educativa presenta restricciones propias de su institución, aunque generalmente el problema considera el siguiente conjunto de restricciones: asignación de recursos, asignación de tiempo, restricciones de tiempo entre sesiones, capacidad de las salas, continuidad para las sesiones etc. Por otro lado, tomando como base las diversas complejidades de los algoritmos, donde en primer lugar encontramos la complejidad P que son algoritmos que encuentran siempre una solución a un problema en tiempo polinomial. Complejidad NP un algoritmo encuentra una solución a un problema en tiempo polinomial usando una computadora no determinística. Complejidad NP- Completo: en estos no existen algoritmos de solución exacta que entreguen respuesta en un tiempo razonable, de ahí se derivan los problemas de búsqueda NP-duros, donde no hay algoritmo de tiempo polinomial que lo resuelva, aquí es donde se encuentran los problemas de tipo de asignación de horarios [12]. Existen diversas técnicas para la resolución de problemas de asignación de horarios, las cuales se clasifican en dos grandes grupos[11]: 1. Técnicas tradicionales: Programación entera, Programación Lineal, Tableau, etc. 2. Técnicas no tradicionales: Algoritmos heurísticos o meta-heurísticos que proveen de una buena solución en un tiempo moderado y que suelen proveer de mejores resultados en instancias grandes del problema. 1.4. Clasificación del problema Una de las clasificaciones más comunes para los problemas de asignación de horarios es de acuerdo al tipo de problema que se presente en una situación real, aquí es posible diferenciar tres diferentes tipos, de acuerdo a la caracterización hecha por A. Wren[1]. 3 1. Rostering (Lista, Catalogo): ubicación de recursos en determinados periodos siguiendo un patrón. 2. Sequencing (Secuenciación): encontrar un orden para la ejecución de las actividades. 3. Timetabling: muestra cuándo una tarea o evento en particular debe ser llevado a cabo. La asignación de horarios se utiliza diariamente en distintas áreas para regular diferentes operaciones donde sea necesaria una ubicación de una herramienta en un sitio determinado en una hora específica, como por ejemplo en el transporte (vuelos aéreos), en el estudio (programación de clases o de exámenes), en salud (programación de cirugías), en el campo del entretenimiento (deportes, eventos en festivales), etc. La educacio n superior es uno de los campos donde el empleo de buenas te cnicas de secuenciacio n ha llegado a tener mucha importancia en los u ltimos an os, debido a la cantidad de materias que el estudiante puede elegir según su inclinación y a los modelos flexibles, lo que incrementa la dificultad al momento de programar clases o exámenes. Existen tres categorías en la asignación de horarios educativos: 1. Asignación de horarios escolares: este grupo considera el problema horario semanal para las sesiones de las asignaturas de una escuela, el problema consiste en asignar las sesiones por periodo de tiempo, evitando los choques de horario entre los profesores, de tal manera que ningún profesor tenga asignadas dos asignaturas en un mismo periodo de tiempo, en este tipo de problemas las asignaturas cuentan con un horario y aula establecidos. 2. Asignación de horarios universitarios: Consiste en organizar un horario para las sesiones de un conjunto de asignaturas, tomando en consideración un número determinado de salas y bloques de tiempo, presentan el mismo problema de empates de profesores, las asignaturas no poseen un horario predeterminado y generalmente no todas las aulas son aptas para todas las asignaturas. 3. Asignación de horarios de exámenes: Consiste en asignar el horario a los exámenes, determinando la cantidad de salas, capacidad de las mismas (pueden ser de capacidades diferentes) y tiempo para realizar cada examen. 1.5. Trabajo relacionado Una gran cantidad de investigaciones para la solución de los problemas de asignación de horarios ha sido presentada en la serie de conferencias internacionales sobre la práctica y teoría de Programación de Horarios 4 Automatizado (PATAT por sus siglas en ingles). Por otra parte, existe un grupo de trabajo europeo especializado en la investigación y solución de horarios automatizados (EURO-WATT) que se reúne una vez al año y mantiene un sitio web con información relevante sobre los problemas de horarios, por ejemplo, una bibliografía y varios puntos de referencia. Al ser considerados problemas NP-duros[12] , los problemas de asignación de horarios han sido foco de múltiples investigaciones y probado con muchas técnicas de optimización, tales como búsquedas locales (búsqueda tabú, recocido simulado , coloreo etc.), algoritmos genéticos, algoritmos meméticos, colonia de hormigas etc., tan solo en el periodo 2007-2008 ASAP[39] (Automated Scheduling, optimisation and planing research group) obtuvo alrededor de 103 documentos presentados y publicados entre capítulos de libros, papers y revistas. Uno de los enfoques de meta-heurísticas más utilizado para la resolución de este tipo de problemas de acuerdo al PATAT es el algoritmo de Búsqueda Tabú (TSA). Sin embargo, actualmente se está presentando una serie de artículos con enfoques híbridos entre TSA y algoritmos evolutivos[37,38] por citar algunos, el algoritmo ocupado es el memético, puesto que es capaz de mezclar la potencia de un algoritmo genético y una búsqueda local, para tal caso en la conferencia de 2010 de PATAT se presentaron una serie de algoritmos que utilizan un TSA como búsqueda local en un algoritmo memético[37,38]. Por otro lado existen muchos desarrollos en el mercado que dan solución al problema en su manera mas general, es decir, toman en cuenta solo las restricciones tales como empates de profesores y de aulas, sin embargo, la mayoría de estos resuelven el problema concerniente al grupo 1 (asignación de horarios escolares), debido a que son los que presentan el caso mas fácil de resolver, como ejemplo de estos sistemas tenemos a docCF[13], UNTIS[14],GES[15] , entre otros. El solucionar este tipo de problemas es de vital importancia para una institución y de gran complejidad para el mundo científico, incluso se han organizado certámenes internacionales, en donde se proponen un caso particular con restricciones difíciles de abordar por los participantes, como ejemplo de este tipo de eventos tenemos a “International Timetabling Competition” de Metaheuristics Networks [2] y a PATAT,”International Timetabling Competition” [16]. De acuerdo al certamen del PATAT los 5 mejores algoritmos que han sido enviados para la resolución de asignación de horarios son mostrados en la Tabla 1 [40]: 5 Autor Técnica utilizada Hadrien Cambazard, Emmanuel Hebrard, Utiliza una técnica híbrida entre un Barry O’Sullivan, Alexandre Papadopoulos operador local personalizado y un algoritmo Large Neighborhood Mitsunori Atsuta, Koji Nonobe, y Toshihide Utiliza una técnica híbrida entre tabu search Ibaraki e iterated local search Marco Chiarandini and Chris Fawcett and Utiliza dos métodos un hard constraint Holger H. Hoos solver y un soft constraint violation minimizer Alfred Mayer, Clemens Nothegger, Andreas Utiliza el algoritmo ant colony Chwatal, and Gunther Raid Purdue University, West Lafayette Utiliza una metodología de varias fases que incluye Iterative Forward Search, Hill Climbing, Great Deluge technique y Simulated Annealing Tabla 1 Mejores algoritmos para la solución de problemas de asignación de horarios de acuerdo al concurso del PATAT en el año 2007[40]. 1.6. Justificación Las justificaciones del presente trabajo de tesis son las siguientes: 1.6.1. Justificación científica Dado que no se tienen antecedentes de la aplicación de la metodología antes descrita en problemas de asignación de horarios se desea evaluar su aplicación en una instancia real proveniente de la Facultad de Psicología de la Universidad Veracruzana. 1.6.2. Justificación tecnológica Considerando que no se tienen antecedentes de la aplicación de técnicas emergentes de inteligencia artificial en la resolución del problema de asignación de horarios en la Universidad Veracruzana, se busca probar su factibilidad y asu vez que se puede generar una herramienta útil y eficiente en una Facultad de la Universidad Veracruzana. 1.7. Hipótesis 6
Description: