agradecimientos - laboratorio nacional de …emezura/util/files/tesis_ferminfinal.pdf · [42]. la...

84
i

Upload: lytuong

Post on 28-Sep-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

i

Page 2: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

ii

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.

Page 3: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

iii

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

Page 4: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

iv

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

Page 5: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

1

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

Page 6: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

2

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”.

Page 7: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

3

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].

Page 8: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

4

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

Page 9: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

5

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]:

Page 10: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

6

Autor Técnica utilizada Hadrien Cambazard, Emmanuel Hebrard, Barry O’Sullivan, Alexandre Papadopoulos

Utiliza una técnica híbrida entre un operador local personalizado y un algoritmo Large Neighborhood

Mitsunori Atsuta, Koji Nonobe, y Toshihide Ibaraki

Utiliza una técnica híbrida entre tabu search e iterated local search

Marco Chiarandini and Chris Fawcett and Holger H. Hoos

Utiliza dos métodos un hard constraint solver y un soft constraint violation minimizer

Alfred Mayer, Clemens Nothegger, Andreas Chwatal, and Gunther Raid

Utiliza el algoritmo ant colony

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

Page 11: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

7

“Es posible encontrar, en un tiempo razonable para el usuario, una solución factible, es decir, un horario que cumpla con los requerimientos establecidos por la Facultad de Psicología, mediante el uso de un algoritmo meta-heurístico inspirado en la naturaleza”.

Los requerimientos de la Facultad de Psicología versan sobre la eliminación de empalmes de horarios entre maestros y aulas en un tiempo permitido por dicha Facultad y el cuidar que se mantenga la asignación de materias basificadas, entre otros aspectos que se detallarán más adelante en este documento.

1.8. Objetivos

Los objetivos del presente trabajo son los siguiente:

1.8.1. Objetivo general

Encontrar una solución computacional, basada en algoritmos meta-heurísticos inspirados en la naturaleza, que sea capaz de resolver de manera automatizada la asignación de horarios de la Facultad de Psicología, campus Xalapa, de la Universidad Veracruzana.

1.8.2. Objetivos específicos

1. Diseñar un algoritmo, basado en la metodología de aplicación de algoritmos meta-heurísticos inspirados en la naturaleza, que sea capaz de brindar una solución eficiente y eficaz al problema de asignación de horarios de dicha Facultad.

2. Generar un diseño experimental que permita valorar adecuadamente el desempeño de los algoritmos que se generen con base en la metodología antes descrita

3. Crear un sistema que sea capaz de optimizar la recolección , modificación y extracción de la información de experiencias educativas, asignaturas, docentes y horarios escolares de la Facultad de Psicología , campus Xalapa, Universidad Veracruzana.

4. Generar un prototipo funcional que permita el uso del algoritmo descrito en el objetivo no. 1 de esta lista

1.9. Organización del documento

El documento está organizado de la siguiente manera:

El capítulo 2 incluye una introducción al cómputo evolutivo, destacando sus principales algoritmos.

Page 12: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

8

El capítulo 3 describe el caso de estudio resuelto en este trabajo.

El capítulo 4 presenta el desarrollo de la metodología descrita

anteriormente (capítulo 1) y detalla los resultados obtenidos por cada algoritmo desarrollado.

Finalmente el capítulo 5 resume las conclusiones de la tesis y establece el trabajo futuro.

Page 13: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

9

Capítulo II Computación Evolutiva

2.1. Introducción

“Yo al igual que Dios no juego al azar ni creo en la casualidad” V de Vendetta

La naturaleza encuentra brillantes soluciones a los problemas mediante la evolución continuada de las especies. Ligeras variaciones aleatorias en los genes de los descendientes, dan lugar a individuos con diferente capacidad de adaptación a su entorno. Primando la reproducción de los mejor adaptados, la especie evoluciona a formas cada vez más eficientes para sobrevivir en su entorno.

La computación evolutiva es una rama de la inteligencia artificial utilizada principalmente en problemas con espacios de búsqueda extensos y no lineales, en donde otros métodos no son capaces de encontrar soluciones en un tiempo razonable. Ésta toma su inspiración en los procesos naturales de la evolución, el hecho de que muchos científicos hayan elegido a la evolución natural como medio de inspiración para la creación de algoritmos no es nada sorprendente, ya que el poder de la evolución (la forma en la que ésta se manifiesta) es evidente en todas las especies del planeta. Este tipo de computación ayuda a la resolución de problemas en los que su espacio de búsqueda es tan amplio que es imposible poder abarcarlo todo para entregar la solución óptima.

La evolución natural puede ser vista de la siguiente manera: se tiene un medio ambiente con una cierta población de individuos que intentan sobrevivir y reproducirse en dicho medio. La calidad (aptitud) de estos individuos está dada por su medio ambiente, en donde, los mejores individuos (los más aptos) son aquellos que logran el objetivo de adaptarse al medio ambiente y por tanto reproducirse, generando con esto una descendencia capaz de adaptarse mejor al medio que sus predecesores.

La idea original de la computación evolutiva es intentar emular a la evolución natural (ver Figura 1), en donde, la calidad de los individuos en un medio ambiente es generada a través de una función, normalmente llamada función de aptitud, los individuos son soluciones completas generadas normalmente al azar y se evalúan a modo de que los mejores individuos sean capaz de reproducirse y dejar descendencia (semillas o nuevas soluciones posibles), las cuales a su vez pasarán por la misma función de calidad para ver quienes podrán reproducirse en una futura generación y el proceso se repite hasta cumplir con una condición de paro.

La computación evolutiva ofrece la posibilidad de resolver problemas cuyo espacio de búsqueda sea muy complejo o tenga demasiados óptimos locales en los cuales los algoritmos tradicionales converjan demasiado rápido en una solución factible.

Page 14: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

10

Figura 1 Computación natural imitando a la evolución natural(basado en [18]).

2.2. Historia de la computación evolutiva

La idea básica de aplicar los principios darwinianos para la automatización de solución de problemas complejos data de los años 40. Ya en 1948 Alan Turing propuso “la búsqueda de la evolución genética” y por 1962 Bremermann ya había realizado experimentos acerca de la “optimización de la evolución y la recombinación”.

Los primeros ejemplos de algoritmos genéticos aparecieron a principios de los años 60, programados en computadoras por biólogos evolutivos que buscaban explícitamente realizar modelos de aspectos de la evolución natural. A ninguno de ellos se le ocurrió que esta estrategia podría aplicarse de manera más general para la solución de diversas índoles, pero ese reconocimiento no tardaría en llegar, de hecho en palabras de Mitchell[35] “La computación evolutiva estaba definitivamente en el aire en los días formativos de la computadora electrónica”.

En 1962 H.J. Bremermann había desarrollado algoritmos inspirados en la evolución para optimización de funciones y aprendizaje automático, pero sus trabajos generaron poca reacción. En 1965 surgió un desarrollo más exitoso, cuando Ingo Rechenberg y Schwefel dieron a conocer lo que llamaron “estrategias evolutivas” [23,24]. En esta técnica no había población ni cruzamiento; un padre mutaba para producir un descendiente, y se conservaba el mejor de los dos, convirtiéndose en el padre de la siguiente ronda de mutación. Versiones posteriores introdujeron la idea de población.

El siguiente desarrollo importante en el campo vino en 1966, cuando L.J. Fogel, A.J. Owens y M.J. Walsh[19,20] introdujeron en América una técnica que llamaron programación evolutiva. En este método, las soluciones candidatas para los problemas se representaban como máquinas de estado finito sencillas; al igual que en la estrategia evolutiva de Rechenberg, su algoritmo funcionaba mutando aleatoriamente una de estas máquinas simuladas y conservando la mejor de las dos. También al igual que las estrategias evolutivas, hoy en día existe una formulación más amplia de la técnica de programación evolutiva que todavía es un área de investigación en curso. Sin embargo, lo que todavía faltaba en estas dos metodologías era el reconocimiento de la importancia del cruzamiento.

En 1962, el trabajo de John Holland [21,22] estableció las bases para desarrollos posteriores; y lo que es más importante, Holland fue también el primero en proponer explícitamente el cruzamiento y otros operadores de recombinación.

Evolución Medio Ambiente

Individuos Fitness

Computación Evolutiva

Problema a resolver

Soluciones candidato

Calidad de las soluciones candidato

Page 15: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

11

Sin embargo, el trabajo fundamental en el campo de los algoritmos genéticos apareció en 1975, con la publicación del libro “Adaptation in natural and artificial systems'' por parte de Holland. Este libro fue el primero en presentar sistemática y rigurosamente el concepto de sistemas digitales adaptativos utilizando la mutación, la selección y el cruzamiento, simulando el proceso de la evolución biológica como estrategia para resolver problemas. El libro también intentó colocar a los algoritmos genéticos sobre una base teórica firme introduciendo el concepto de esquema [35,36]. Ese mismo año, la importante tesis de Kenneth De Jong “ Analisys of the behaviour of a class of genetic adaptative system” estableció el potencial de los AGs demostrando que podían desenvolverse bien en una gran variedad de funciones de prueba, incluyendo paisajes de búsqueda ruidosos, discontinuos y multimodales[30] .

Estos trabajos establecieron un interés más generalizado en la computación evolutiva. Entre principios y mediados de los 80, los algoritmos genéticos se estaban aplicando en una amplia variedad de áreas, desde problemas matemáticos abstractos como el bin-packing y la coloración de grafos hasta asuntos tangibles de ingeniería como el control de flujo en una línea de ensamble, reconocimiento, clasificación de patrones y optimización estructural etc.[30].

Al principio, estas aplicaciones eran principalmente teóricas, sin embargo, al seguir proliferando la investigación, los algoritmos genéticos migraron hacia el sector comercial, al cobrar importancia con el crecimiento exponencial de la potencia de computación y el desarrollo de Internet. Hoy en día, la computación evolutiva es un campo floreciente, y los algoritmos genéticos están resolviendo problemas de interés cotidiano en áreas de estudio tan diversas como la predicción en la bolsa y la planificación de la cartera de valores, ingeniería aeroespacial, diseño de microchips, bioquímica y biología molecular, diseño de horarios en aeropuertos y líneas de montaje y en el corazón de todo esto se halla nada más que la simple y poderosa teoría de Charles Darwin: que el azar en la variación, junto con la ley de la selección, es una técnica de resolución de problemas de inmenso poder y de aplicación casi ilimitada.

2.3. Características generales de los algoritmos evolutivos

La idea básica de todas las técnicas de los algoritmos evolutivos es la siguiente:

Obtener una población inicial de individuos (soluciones factibles). Determinar un medio ambiente para la población que cause una selección

natural. Determinar una función de calidad para los individuos dentro del medio

ambiente.

La idea detrás de esto es cruzar y mutar a los individuos, en la cruza se seleccionan a dos o más individuos (padres), se toman características de los mismos y se generan nuevos individuos a partir de la combinación de las

Page 16: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

12

características de los padres. En la mutación se toma a un individuo mediante cierta probabilidad y se altera su código ligeramente, hasta generar a un nuevo individuo. Estos parámetros permiten entre otras cosas crear diversidad (por medio de la mutación) y explotar soluciones factibles para obtener una mejor solución (por medio de la cruza).

Cabe mencionar que el proceso de mutación y cruza es estocástico ya que al seleccionar a los individuos se requiere de la generación de números aleatorios, sin embargo, el proceso de seleccionar a los individuos más aptos mediante técnicas como ruleta o torneo sesga la búsqueda hacia zonas prometedoras del espacio de búsqueda. La Figura 2 muestra el pseudocódigo general de un algoritmo evolutivo:

Figura 2 Algoritmo evolutivo general [30]

Es fácil ver que este pseudocódigo cae dentro de la categoría de los algoritmos generate-and-test. La función de evaluación representa una estimación heurística de la solución de calidad y el proceso de búsqueda es guiada por la variación de los operadores. Los algoritmos evolutivos poseen un número de partes que pueden ayudarlo a posicionarlos, como se menciono antes dentro de los métodos generate-and-test y estos son[18]:

Son basados en población, procesan varias soluciones candidato simultáneamente.

Usan la recombinación para mezclar la información de varios candidatos. Son estocásticos.

Su esquema general se muestra en la Figura 3[18]:

INICIO INICIAR UNA POBLACIÓN CON SOLUCIONES CANDIDATO ALEATORIAS

EVALUAR CADA CANDIDATO CON UNA FUNCIÓN DE CALIDAD

REPETIR HASTA (SE CUMPLA UNA CONDICIÓN DE PARO) SELECCIONAR PADRES

CRUZAR PADRES Y GENERAR UNA NUEVA POBLACIÓN

MUTAR NUEVOS INDIVIDUOS EVALUAR NUEVOS INDIVIDUOS

SELECCIONAR INDIVIDUOS QUE PASARAN A LA SIGUIENTE GENERACIÓN

FIN REPETIR

FIN

Page 17: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

13

Figura 3 Esquema de un algoritmo evolutivo basado en[18]

La representación de los candidatos puede variar significativamente, siendo las mas comunes:

Cadenas de String de un cierto alfabeto (algoritmos genéticos) Vectores con valores reales(Estrategias evolutivas) Máquinas de estado finito(Programación evolutiva) Árboles(Programación genética)

Sin embargo, existen representaciones alternativas dependiendo del problema que se quiere resolver.

POBLACIÓN

PADRES

DESCENDENCIA

SELECCIÓN DE PADRES

SELECCIÓN DE SOBREVIVIENTES

RECOMBINACIÓN O CRUZA

MUTACIÓN

FIN

INICIO

Page 18: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

14

2.4. Componentes de los algoritmos evolutivos

Los componentes principales de los algoritmos evolutivos son los siguientes:

2.4.1. Representación

El primer paso de un algoritmo evolutivo es construir los candidatos. Es necesario pasar del contexto original del problema a su espacio de soluciones donde la evolución toma su lugar, esto es , construir el fenotipo y el genotipo.

Los objetos que forman las soluciones posibles del problema son llamados fenotipos, mientras que su codificación, es decir, los individuos con los cuales trabaja el algoritmo evolutivo son llamados genotipos. El proceso de transformar un fenotipo a genotipo se le llama codificación y al proceso contrario (genotipo - fenotipo) se le conoce como decodificación, tanto al genotipo como al fenotipo se les conoce como representaciones de una solución. La Figura 4 muestra un esquema de lo anterior.

Figura 4 Codificación y decodificación de soluciones

2.4.2. Función de calidad

El objetivo de la función de calidad es representar los requerimientos para la adaptación de los individuos en el medio ambiente. Esta función es asignada a las representaciones de los individuos (sea genotípica o fenotípica) para determinar su calidad dentro del medio ambiente y asignar su probabilidad de supervivencia o cruza dentro de la población.

2.4.3. Población

La población es un conjunto de soluciones (genotipos o fenotipos) en un medio ambiente, y es la unidad que evoluciona en los algoritmos evolutivos, ya que los individuos son solo elementos estáticos que no cambian o se adaptan, la evolución se da al pasar de generación en generación, aunque , por supuesto , un número mayor de individuos otorga una mayor diversidad en el espacio de solución de un problema.

20 11110 20

CODIFICACIÓN DECODIFICACIÓN

FENOTIPO GENOTIPO FENOTIPO

Page 19: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

15

2.4.4. Mecanismo de selección de padres

Este mecanismo es el encargado de seleccionar los individuos que podrán generar descendencia. Normalmente los individuos con una mayor calidad (definida mediante la función de calidad) tienen mayor posibilidad de ser elegidos, sin embargo, si sólo los de mejor calidad son elegidos se puede presentar la situación de encontrarse atrapado en algún óptimo local, esto es, puede que el algoritmo pierda diversidad.

2.4.5. Mecanismo de selección de supervivientes

Similar al mecanismo de selección de padres, con la diferencia del momento en que operan, ya que mientras la selección de padres actúa antes de generar la descendencia, el mecanismo de supervivencia actúa después de generada la descendencia y es la encargada de elegir a los individuos de mejor calidad (aunque depende del algoritmo evolutivo adaptado) para que pasen a la siguiente generación.

2.4.6. Operadores de variación

Su objetivo es crear nueva descendencia a partir de una anterior y con esto generar nuevas soluciones candidato. Como tal tenemos los siguientes:

2.4.6.1. Mutación

Es una pequeña variación impuesta a un individuo, este operador es siempre estocástico y su objetivo radica en brindar una mayor diversidad a la población (ver Figura 5).

Figura 5 Ejemplo de Mutación

Page 20: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

16

2.4.6.2. Recombinación o cruza

Es el proceso de combinar dos o más individuos para generar nuevos con características similares a sus predecesores, a este proceso se le llama descendencia. Al igual que la mutación, este operador es estocástico, aunque la selección de los individuos a cruzarse puede variar, ya sea por la implementación de una ruleta de probabilidades, el uso de un torneo, etc.

El objetivo es explotar varias soluciones dadas al combinar individuos y generar nuevos (ver Figura 6).

Figura 6 Ejemplo de una cruza de dos puntos

2.4.7. Inicialización

Es la primera población, normalmente generada por individuos aleatorios, sin embargo, puede ser que se genere con base en una estrategia implementada para ayudar al algoritmo en el proceso de búsqueda.

2.4.8. Condición de término

Existen varias condiciones de terminación para los algoritmos evolutivos, entre las más populares tenemos :

El máximo tiempo de procesamiento permitido por el CPU. Por un periodo de tiempo determinado. Por un determinado número de generaciones (ciclos del algoritmo). El valor de la función de aptitud de la población alcanzó el valor de un

umbral (no se detectan mejoras significativas). La función de calidad ha llegado a su límite (se encontró al mejor

individuo o a un óptimo deseable).

Page 21: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

17

Una vez terminado el algoritmo se procede normalmente a devolver aquellos individuos que maximicen o minimicen la función de calidad según sea el caso deseado.

2.5. Clasificación de la computación evolutiva

Existen diferentes paradigmas dentro de la computación evolutiva, la mayoría de ellos difiere generalmente en la representación de los individuos, aunque otras lo hacen en la forma y utilización de los componentes del algoritmo evolutivo. Las principales se presentan a continuación.

2.5.1. Algoritmos Genéticos

Los algoritmos genéticos fueron inicialmente concebidos por Holland como resultado de su estudio acerca del comportamiento adaptativo [28] y plasmados en su libro “Adaptation in natural and artificial system”.

Los algoritmos genéticos en su versión más estricta poseen una representación binaria, una función de calidad que les permita sobrevivir en un medio ambiente y que actúe generacionalmente, deben tener una probabilidad de mutación muy baja y hacen énfasis en una cruza inspirada genéticamente.

2.5.1.1. Representación

La parte más difícil de trabajar con este tipo de algoritmos es su representación, si bien, los algoritmos genéticos simples requieren de una representación binaria, ello no es una regla, y es posible crear representaciones diversas, entre las más comunes están la representación usando valores enteros y de valores de punto flotante. Sin embargo, en este tipo de representaciones se debe tener especial cuidado en que los operadores al momento de ser aplicados sobre un individuo no generen valores inválidos. Supongamos que tenemos un individuo con representación decimal y que parte del individuo codifica una dirección como Norte, Sur , Este y Oeste, el individuo codifica esto de la siguiente manera Norte = 1, Sur =2,Este =3, Oeste = 4, entonces tenemos cuatro números posibles 1-2-3-4 , sin embargo , es posible que el operador de mutación entregue un 5 ó 6 al mutar esta sección de dicho individuo.

Page 22: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

18

2.5.1.2. Selección de candidatos

La selección de los candidatos tanto para cruzarse como para formar parte de la nueva generación usualmente se logra implementando ya sea una ruleta, en la cual a cada individuo le corresponde determinada porción de probabilidad dependiendo de su contribución al total de aptitud en la población Se gira la ruleta y se selecciona al individuo correspondiente, este método asegura en cierta medida que los individuos con mejor calidad serán los elegidos para reproducción. Otro método popular es implementar torneos, en los cuales se seleccionan dos o mas individuos y se elige al mejor candidato determinado por su función de calidad, en ambas metodologías el proceso se repite hasta obtener el número de individuos requeridos para reproducción.

Es común en los algoritmos genéticos conservar de generación en generación ciertos individuos con el fin de que éstos generen descendencia, normalmente se seleccionan a los mejores de la generación anterior, los cuales reemplazan a los peores de la nueva generación (determinado por la función de calidad).

2.5.1.3. Mutación

La mutación en los algoritmos genéticos es el operador encargado de generar diversidad en la población, cambia (muta) una parte de un individuo. Normalmente se efectúa después de la recombinación o cruza. Existen diversos tipos de mutaciones, y algunas cambian dependiendo la representación de los individuos. Dentro de las más comunes tenemos las siguientes:

Mutación Binaria: en representaciones binarias se toma cada bit por separado y se estima su probabilidad de mutar, si esta fue positiva, es decir, se mutará, cambiara su número de 0 a 1 ó de 1 a 0 según sea el caso (ver Figura 7).

Figura 7 Ejemplo de mutación binaria[28], en este caso el individuo muto los lugares 3 y 4.

Mutación Swap: En este tipo de mutación no es necesario una representación binaria como tal, simplemente se debe seleccionar dos posiciones(alelos) de un individuo aleatoriamente y se intercambian de lugar ( ver Figura 8).

Figura 8 Ejemplo de mutación swap[28] en este caso se seleccionaron e intercambiaron las posiciones 2 y 5

Mutación de Inserción: Parecido a la mutación swap, aquí se seleccionan dos posiciones (alelos) de un individuo aleatoriamente y se cambia la

123456789 153426789

101000010 100100010

Page 23: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

19

posición de uno de los allelos de tal forma que ambas estén juntas (ver Figura 9).

Figura 9 Ejemplo de mutación de inserción[28] aquí fueron seleccionadas las posiciones 2 y 5

Mutación Scramble: En este tipo de mutación se seleccionan dos puntos aleatoriamente, se toman todas las posiciones(allelos) del individuo que estén entre los puntos seleccionados y se revuelven (ver Figura 10).

Figura 10 Ejemplo de mutación Scramble[28] aquí fueron seleccionados los puntos 2 y 5

Mutación de Inversión: Aquí se seleccionan dos posiciones de un individuo, se toman todos las posiciones intermedias y se invierte su orden (ver Figura 11).

Figura 11 Ejemplo de mutación de inversión[28] aquí fueron seleccionadas las posiciones 2 y 5

2.5.1.4. Recombinación ó cruza

Para muchos el más importante de los operadores en los algoritmos genéticos. La cruza es la encargada de explotar las soluciones posibles, su función es la de generar una nueva población (crear descendencia) generación tras generación. En su forma básica selecciona dos individuos (llamados padres) , toma la información de ambos y crea un nuevo individuo con partes de información de los dos individuos seleccionados con anterioridad.

Existen diversas formas de cruzar a los individuos seleccionados, algunas inspiradas en la biología y otras propias de la representación elegida, las más comunes son las siguientes:

123456789 154326789

123456789 135426789

123456789 125346789

Page 24: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

20

Recombinación de un punto: Aquí se selecciona un punto aleatorio de un individuo y se cambia a partir del punto determinado la información de ambos individuos seleccionados para generar exactamente otros dos individuos (descendencia). Aquí, para el primer individuo creado se toma la primera sección del individuo seleccionado 1 (la parte antes del punto incluyendo al mismo) y la parte posterior al punto del individuo seleccionado 2, de la misma manera para generar al segundo individuo simplemente se intercambian las posiciones tomadas (ver Figura 12).

Figura 12 Ejemplo de recombinación de un punto[28] aquí fue seleccionado el punto 4

Recombinación de N-puntos: De la misma manera que la anterior, con la diferencia de que aquí es posible seleccionar mas de un punto (ver Figura 13).

Figura 13 Ejemplo de una cruza de dos puntos[28]

Page 25: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

21

Cruza uniforme: En este tipo de cruza se asigna una probabilidad (normalmente de 0.5) a cada parte del individuo(alelo) y se efectúa un volado, de tal manera que si gana el individuo 1, esa parte de él pasará al nuevo individuo, si pierde será el individuo 2 quien proporcione su gen. El proceso se repite para todas las partes de los individuos. Este tipo de cruza puede generar varios individuos a partir de solo dos predecesores (ver Figura 14).

Figura 14 Ejemplo de cruza uniforme[28]

2.5.2. Estrategias Evolutivas

Las estrategias evolutivas fueron inventadas en la década de 1960 por Rechenberg y Schwefel quienes estaban trabajando en la Universidad Técnica de Berlín en aplicaciones concernientes a la optimización de formas, ellos describieron un algoritmo básico llamado los dos eslabones de la estrategia evolutiva.

Este tipo de algoritmos trabajan con una población de individuos que pertenecen al dominio de los números reales, que mediante los procesos de mutación y de recombinación evolucionan para alcanzar el óptimo de la función objetivo.

Cada individuo de la población es una solución potencial al problema, la representación de cada individuo de la población consta de 2 tipos de variables: las variables objeto y las variables estratégicas. Las variables objeto son los posibles valores que hacen que la función objetivo alcance el óptimo global y las variables estratégicas son los parámetros mediante los que se gobierna el proceso evolutivo o, en otras palabras, las variables estratégicas indican de qué manera las variables objeto son afectadas por la mutación.

Haciendo una analogía más precisa, el genotipo en las estrategias evolutivas es el conjunto formado por las variables objeto y las variables estratégicas y el fenotipo son las variables objeto, ya que conforme se da la variación de éstas, se percibe un mejor o peor desempeño del individuo.

Las estrategias evolutivas pueden definirse como algoritmos evolutivos enfocados hacia la optimización paramétrica, teniendo como características

Page 26: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

22

principales que utilizan una representación a través de vectores reales, una selección de supervivientes determinística y operadores genéticos específicos de cruce y mutación.

Las estrategias evolutivas pueden dividirse en dos tipos: Simples y Múltiples.

Simples: Son consideradas como procedimientos estocásticos de optimización paramétrica con paso adaptativo. Esta característica las hace similares al recocido simulado. En este caso, se hace evolucionar un solo individuo usando únicamente a la mutación como operador genético. Son relativamente sencillas, y se denominan también estrategias evolutivas de dos miembros. Debido a que evoluciona un solo individuo a la vez, no son consideradas estrictamente como métodos evolutivos. A pesar de ser muy sencillas, son de gran utilidad práctica y han sido utilizadas, con algunas mejoras, para resolver problemas reales en diversas áreas.

Múltiples: Surgen como respuesta a las debilidades de las estrategias evolutivas simples, las cuales tienden a converger hacia sub-óptimos. En las estrategias evolutivas múltiples existen múltiples individuos (población), y se producen en cada generación varios nuevos individuos, usando los operadores de mutación y cruza. En cuanto a los criterios de reemplazo, siempre se usa un esquema determinístico pudiéndose utilizar una estrategia de inserción o de inclusión.

2.5.2.1. Mutación

Es el operador principal de las estrategias evolutivas, realiza un cambio en los valores de las variables de los individuos añadiendo ruido aleatorio obtenido mediante una función de distribución Normal. Las desviaciones típicas a aplicar se encuentran dentro del mismo individuo (son calculadas a partir del individuo mismo) y coevolucionan junto con la solución.

2.5.2.2. Recombinación o cruza

En las estrategias evolutivas el cruce se realiza de una forma literalmente sencilla, simplemente se toman dos individuos y a partir de ellos se generara un nuevo individuo, el cual en cada casilla del arreglo de números reales se coloca el promedio del valor que sus predecesores tienen en la misma posición.

2.5.3. Programación Evolutiva

La programación evolutiva fue desarrollada originalmente para simular la evolución como un proceso de aprendizaje para poder generar inteligencia artificial. Esta rama de la computación evolutiva es prácticamente una variación

Page 27: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

23

de los algoritmos genéticos, donde el cambio más significativo es la representación de los individuos, puesto que aquí cada individuo de la población está formado por una máquina de estado finito (ver Figura 15).

Figura 15 Ejemplo de una máquina de estado finito[31], Los símbolos a la izquierda de “/” son de entrada y los de la derecha son de salida. El estado inicial es C.

Desarrollada en la década de 1960 por Lawrence J. Fogel [20], enfatiza los nexos de comportamiento entre padres e hijos, en vez de buscar emular a los operadores genéticos específicos [31]. Su objetivo principal es construir individuos que sean capaces de reconocer un cierto conjunto de entradas y proporcionar salidas correspondientes a las mismas.

Es importante destacar que este tipo de algoritmos no usan el operador de recombinación o cruza puesto que son una abstracción de la evolución a nivel de las especies [31] y parten de la idea de que individuos de diferentes especies pueden cruzarse.

2.5.3.1. Mutación

Existen 5 formas posibles de mutar a un individuo cuya representación sea una máquina de estado finito, estas son las siguientes:

Cambiar un símbolo de salida. Cambiar una transición. Agregar un estado. Borrar un estado. Cambiar el estado inicial.

2.5.4. Programación Genética

Este tipo de algoritmos son una variación de los algoritmos genéticos, en donde su diferencia mas sustancial es la representación de los individuos, puesto que aquí cada individuo es representado por un árbol. El objetivo principal de

Page 28: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

24

esta técnica de la computación evolutiva es la evolución automática de programas usando ideas basadas en la selección natural, permitiendo realizar regresión simbólica, esto es, permiten obtener además de un dato numérico predictivo, una expresión matemática en función de las variables de entrada[32].

Básicamente son una metodología automatizada inspirada por la evolución biológica para encontrar programas informáticos que mejor realicen una tarea definida por el usuario. Es por ello que son una técnica de aprendizaje de máquina particular que utiliza un algoritmo evolutivo para optimizar una población de programas informáticos según una función de calidad determinada por la habilidad de un programa para realizar una tarea computacional dada.

Tomando como base el tipo de representación de los individuos dentro de esta técnica es fácil entender su gran potencial, por ejemplo tomando en cuenta la

siguiente fórmula lógica : , su representación

se muestra en la Figura 16:

Figura 16 Ejemplo de una fórmula lógica representada por un individuo en programación genética

Incluso es fácil representar algún programa informático, por ejemplo , tomando como base el siguiente algoritmo :

Int i = 1

While (i < 20)

i = i+1;

su representación se muestra en la Figura 17:

Page 29: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

25

Figura 17 Ejemplo de un algoritmos representando por un individuo en programación genética

2.5.4.1. Mutación

El operador de mutación empleado en este paradigma no difiere en gran medida al de los algoritmos genéticos, el mecanismo mas usual es seleccionar a un individuo con base en cierta probabilidad, posteriormente se seleccionara un nodo de ese individuo y se verificará su probabilidad de mutación del nodo específico, si este nodo será mutado se prosigue a realizar un cambio aleatorio en el nodo seleccionado, cuidando que esta mutación no incumpla con las normas del individuo, por ejemplo , no genere ciclos infinitos en el caso de ser un programa, o tenga cierta lógica, por ejemplo no cambie una función de tal manera que pregunte si X == X etc.

2.5.4.2. Recombinación o cruza

La idea básica de este operador en la programación genética es seleccionar dos individuos(padres), posteriormente para cada individuo seleccionar un nodo aleatoriamente, una ves teniendo esto se intercambia la información de los nodos, generando con esto dos nuevos individuos(hijos) (ver Figura 18).

Figura 18 Ejemplo de cruza en la programación genética[28]

Page 30: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

26

2.5.5. Programación Memética

Los algoritmos meméticos son técnicas de optimización que combinan sinérgicamente la búsqueda basada en poblaciones (algoritmos evolutivos) y las búsquedas locales (Tabú, Recosido Simulado etc.). Su idea fundamental es mantener una cierta población mediante los operadores tradicionales de los algoritmos evolutivos(cruza y mutación) e ir evolucionando estos individuos mediante mejoras significativas a cada uno con búsquedas locales, es aquí donde se diferencian de los algoritmos genéticos, puesto que en los algoritmos meméticos el individuo evoluciona constantemente al aplicarse un procedimiento meta heurístico en él, dado que tienen la capacidad de evolucionar por sí solo mediante una búsqueda local. Los diseñadores de algoritmos meméticos prefieren denominarle agente a un individuo. La Tabla 2 muestra las diferencias entre un algoritmo genético y un memético[33]

Operadores Algoritmos Genéticos Algoritmos Meméticos Codificación Esquemas, cadenas lineales,

alfabetos predefinidos Formas, no-linealidad, cercanía al problema

Individuo Solución al problema Llamado agente, solución al problema + mecanismo de mejora local

Cruza Intercambio no guiado de información

Intercambio guiado de información

Mutación Introducción aleatoria de nueva información

Introducción sensible de nueva información

Mejora local Aprendizaje Lamarckiano Tabla 2 Diferencias entre un algoritmo genético y un algoritmo memético

La primera diferencia significativa entre estas dos técnicas de la computación evolutiva es la codificación de los individuos, puesto que en los algoritmos genéticos se parte de cadenas que mediante codificación se obtiene una solución (fenotipo y genotipo), sin embargo, ésta no es una restricción para los algoritmos meméticos, ya que éstos se basan en una experiencia de la persona que los esta creando. Entonces es posible ajustar cualquier tipo de modelo como individuo, en ocasiones, los individuos pueden tener algún programa o mejora significativa en ellos mismos.

En el caso de la mutación, para los demás algoritmos evolutivos esta es un proceso estocástico, sin embargo, en los meméticos se prefiere sea una mutación especializada en el problema, la cual deberá modificar a un agente (individuo) significativamente con la idea de que mejore su calidad.

El operador de cruza también se ve afectado, puesto que en los algoritmos meméticos es guiada, es decir, se pretende cruzar individuos de tal forma que su descendiente obtenga específicamente lo mejor de ambos, motivo por el cual su desarrollo y modelo depende exclusivamente del problema en cuestión, el ejemplo mas común de esto es la cruza EAX[34] (Edge Assembly Crossover) diseñada específicamente para problemas del agente viajero.

Page 31: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

27

La diferencia más significativa es la aplicación de búsquedas locales para mejorar a los agentes (individuos) de la población, pues es la principal fuerza de los algoritmos meméticos, ya que sus agentes son capaces de evolucionar individualmente, al mismo tiempo que evoluciona la población gracias a los operadores de cruza y mutación. Existen diversos momentos en los cuales pueden aplicarse los operadores de búsqueda locales, normalmente se prefiere sea después de aplicar los operadores de mutación y cruza. Sin embargo, puede ocurrir al generar la población inicial, o inclusive al terminar el ciclo de generaciones. En este último caso se dice que trabaja como si un algoritmo genético diera buenas semillas a un algoritmo de búsqueda local.

2.5.5.1. Características generales

Los algoritmos meméticos son algoritmos híbridos que incorporan conocimiento y combinan estrategias de búsqueda.

Se potencia al mecanismo cooperativo de los algoritmos evolutivos incorporando un mecanismo guiado de competición.

Los individuos tienen la potencialidad de intentar mejoras, y compiten entre s por propagar su descendencia.

En la terminología de los algoritmos meméticos, a los individuos se los denomina agentes.

La operativa de un algoritmo memético es la de un algoritmo evolutivo tradicional, con el agregado de una búsqueda local.

2.5.5.2. Estructura

La Figura 19 muestra la estructura general de un algoritmo memético

Page 32: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

28

Figura 19 Estructura general de un algoritmo memético

Aquí se puede observar las diferentes etapas en las cuales puede efectuarse la búsqueda local. Cabe señalar que cuando aparece después de los operadores ya sea de cruza o de mutación, normalmente no ocurre generación tras generación, en vez de esto se prefiere actúe cada determinado periodo, el cual puede ser determinado por un número fijo de generaciones o por algún otro motivo tal como la detección de estancamiento en las mejoras de algunos agentes (individuos) o en la población en general.

La Figura 20 muestra el pseudocódigo de un algoritmo memético en su aspecto más general:

Figura 20 Pseudocódigo de algoritmo memético[18]

INICIO

INICIAR UNA POBLACIÓN CON SOLUCIONES CANDIDATO ALEATORIAS (POSIBLE APLICACIÓN DE UN ALGORITMO DE BÚSQUEDA LOCAL) EVALUAR CADA CANDIDATO CON UNA FUNCIÓN DE CALIDAD

REPETIR HASTA (SE CUMPLA UNA CONDICIÓN DE PARO) SELECCIONAR PADRES

CRUZAR PADRES Y GENERAR UNA NUEVA POBLACIÓN

MUTAR NUEVOS INDIVIDUOS EVALUAR NUEVOS INDIVIDUOS

IMPLEMENTAR MEJORA VÍA BÚSQUEDA LOCAL

SELECCIONAR INDIVIDUOS QUE PASARAN A LA SIGUIENTE GENERACIÓN FIN REPETIR

(POSIBLE APLICACIÓN DE UN ALGORITMO DE BÚSQUEDA LOCAL) FIN

POBLACIÓN INICIAL

POBLACIÓN ACTUAL

CRUZA

MUTACIÓN

BÚSQUEDA LOCAL

BÚSQUEDA LOCAL

BÚSQUEDA LOCAL

BÚSQUEDA LOCAL

Page 33: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

29

Capítulo III caso de estudio

3.1. Facultad de Psicología

La Facultad de Psicología (Figura 21 y 22) de la Universidad Veracruzana Campus Xalapa, está ubicada en el municipio de Xalapa , estado de Veracruz, México. Es una institución de educación superior que ofrece la carrera de Licenciatura en Psicología. Fundada en 1963. Entre los años 1966 al 1976 logró ocupar un lugar prominente en el desarrollo y enseñanza de la Psicología a nivel Nacional e Internacional [17].

Figura 21 Ubicación de la Facultad de Psicología, Xalapa, Veracruz, México

Page 34: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

30

Figura 22 Frente del Campus de la Facultad de Psicología

Esta Facultad cuenta con la siguiente infraestructura [17]:

23 aulas 1 centro de cómputo dividido en dos secciones 1 cámara de Gesell Dirección Secretaria académica 1 Auditorio 2 Audiovisuales 1 cafetería 1 Explanada con entretenimiento para los estudiantes 1 Biblioteca Diversos cubículos para los profesores Diversos laboratorios ubicados fuera del campus

En el aspecto académico en la Institución laboran aproximadamente 121 docentes y estudian más de 600 alumnos. Cuentan con el modelo flexible de la Universidad Veracruzana aprobado como primer nivel por parte del Consejo Nacional para la Enseñanza e Investigación en Psicología (CNEIP). Tiene 78 experiencias educativas y 408 asignaturas posibles (una experiencia educativa puede ser impartida más de dos veces en un mismo semestre, cada una de las experiencias impartidas se le conoce como asignatura y se identifica por un número de sección y una clave conocida como nrc).

La Facultad inicia periodos cada 6 meses (semestrales), en los cuales en promedio apertura 168 asignaturas, los alumnos son libres de escoger la asignatura que ellos gusten, cumpliendo con una serie de requisitos, tales como : número de créditos, materias seriadas, disponibilidad de horario etc.

Un periodo no es igual al otro, debido a que las asignaturas aperturadas son diferentes, normalmente con base en peticiones de los alumnos o conocimiento previo de los administradores de dicha Facultad.

Page 35: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

31

3.2 Análisis del problema de asignación de horarios

Al no contar con periodos de configuración de asignaturas iguales, no se puede asignar una asignatura a un aula fija permanentemente, más aun, pueden crearse nuevas asignaturas en base a los alumnos y la disponibilidad de los profesores. Ésto conlleva a la necesidad de configurar un horario cada inicio de ciclo (cada 6 meses) para todas las asignaturas que serán impartidas, la Figura 23 muestra un árbol de causa y efecto del problema de la asignación de horarios de esta Facultad.

Figura 23 Árbol de causa y efecto, problema asignación de horarios, Facultad de Psicología, campus Xalapa, Universidad Veracruzana.

El problema de asignación de horarios de esta Facultad cuenta con restricciones muy particulares, las cuales hacen difícil la organización de un horario escolar. Al formar parte de un sindicato, algunos maestros tienen a su cargo permanente ciertas asignaturas (llamadas de aquí en adelante como basificadas). Estas asignaturas tienen un día y un horario fijo el cual no puede ser movido salvo previo acuerdo con el profesor que la imparte. Mas aún ningún otro profesor puede impartir dicha asignatura.

Existen otro tipo de asignaturas, las cuales no tienen asignado ningún profesor permanentemente (llamadas no basificadas de ahora en adelante). A este tipo de asignaturas es posible cambiarles el horario, el día y el aula en que serán impartidas.

Deficiencia en la asignación de horarios, Facultad de

Psicologia, campus xalapa, Universidad Veracruzana

Cruce de Horarios

Cierre de asignatura

s para evitar

choque

Alumnos y

docentes insatisfe-

chos

Problemas sindicales

Información de dificil tratamiento

que al no ser manejada

eficientemente conlleva a una

mala asignación de recursos,

cierre de experiencias e inconformidad

por parte de alumnos y docentes

Falta de planeación

de la información

Necesidad de crear un nuevo horario

cada 6 meses

Metodología inapropiada

Mala asignación

de los recursos

Inconsistencia de la carga de experiencias entre aulas (aulas con

mayor número de asignaturas asignadas que

otras)

Inconsistencia de la carga de

experiencias asignada a docentes

(docentes con una mayor carga

académica)

Alumnos y docentes insatisfechos

Sistema actual 100%

dependiente del experto, su ayuda

es mínima

Desconocimiento de alternativas para

soluciones optimas al problema

Pérdida de

tiempo

Desfase del calendario académico

Alumnos, docentes

y personal adminis-trativo

insatisfe-chos

El personal administra

-tivo encargado

de la elabora-ción de

horarios debe

abandonar sus otras

actividades por un

periodo de tiempo

considera-ble

Page 36: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

32

No existe un número de horas fijo por asignatura; de hecho existen asignaturas con una necesidad de 3 horas a la semana y otras con 12 horas. Actualmente se cuenta con 408 asignaturas, las cuales suman un total de 2602 horas.

No todos los docentes pueden impartir cualquier asignatura, dependiendo su formación se le asignan determinadas asignaturas posibles a impartir, actualmente la Facultad cuenta con 121 docentes activos.

La Facultad tiene 23 posibles aulas, todas ellas con las mismas características y cada una de ellas está disponible 14 horas diarias (de 7am a 9pm) de lunes a viernes. Sin embargo, es deseable al crear la asignación de horarios, sea minimizado las últimas dos horas.

Tomando en cuenta los datos anteriores, el espacio de búsqueda por cada materia ésta determinado de la siguiente manera : NHM * NP * NH*ND*NA , donde NHM es la suma de las horas de las materias posibles, NP es el número total de docentes, NH es el número de horas disponibles por aula, ND es el número de días posibles y NA es el número de aulas disponibles, el resultado de este calculo es : 2602 * 121 * 14 * 5 *23 = 506,895,620 posibles combinaciones para una asignatura en particular. Si tomamos en consideración que en un periodo normal se seleccionan 168 asignaturas a aperturarse, tenemos entonces : 506,895,620 * 168 = 85,158,464,160 posibles horarios. Por supuesto, la amplia mayoría de ellos no son horarios válidos debido a las restricciones impuestas por la Facultad, algunas de ellas de carácter forzado (restricción dura) y otras que pueden tolerarse(restricción blanda), la Tabla 3 muestra las restricciones existentes:

Restricciones Duras Restricciones Blandas

No puede existir empates de horario entre profesores

Evitar en lo posible asignaciones en las últimas dos horas del día

No puede existir empates de horarios-aula entre materias

Los horarios de una asignatura deben tener cierta coherencia (horas consecutivas)

No es posible colocar una asignatura en un horario no permitido

No deben existir huecos de horarios en las aulas (horarios consecutivos)

En el caso de las materias basificadas no es posible el cambio de horario ni día

Una asignatura debe ser impartida en solo un aula

No es posible cambiar de profesor a una materia

Deben respetarse los 5 días laborables Tabla 2 Restricciones del problema de asignación de horarios escolar de la Facultad de Psicología

Debido a la configuración de las materias y a las múltiples restricciones impuestas por la Facultad, su problema de asignación de horarios está ubicado en el grupo 2 (asignación de horarios universitarios) y es un problema de búsqueda NP-duro.

Page 37: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

33

3.3 Sistema Actual

La Facultad cuenta con un sistema organizador de horarios de forma manual. En él se crea un periodo, se seleccionan las asignaturas y profesores y se confía en la habilidad del experto para configurar las horas, días y aulas necesarias para evitar los empates. Este sistema manda un aviso cuando existe un empate al momento de que se asignan las horas, muestra a las asignaturas informando si son basificadas o no y a los profesores disponibles para determinada asignatura.

La efectividad del actual sistema radica en que detecta los empates posibles, ayudando en gran parte a la anterior forma de hacerlo (completamente manual en una hoja de cálculo). También permite el cambio de profesores o eliminación de una asignatura (normalmente esto se hace cuando no existe forma de eliminar empates). En este sistema el experto toma la iniciativa de aperturar tantas asignaturas como sea posible, normalmente logra un promedio de 168 asignaturas por periodo.

Este procedimiento es demasiado tedioso y tardado, ya que en promedio el experto puede tardarse hasta una semana en generar un horario válido. Además, esta tarea debe realizarse dos veces por año.

Las Figuras 24 y 25 muestran parte de la interfaz de usuario del sistema actual:

Figura 24 Sistema actual para el diseño de horarios escolares Facultad de Psicología de la Universidad Veracruzana

Page 38: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

34

Figura 25 Sistema actual para el diseño de horarios escolares en la Facultad de Psicología de la Universidad Veracruzana

Page 39: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

35

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

Una de las principales problemáticas presentadas por los problemas de asignación de horarios es su gran espacio de búsqueda. Esto puede hacerse ver en el caso de estudio presentado en este proyecto, puesto que abarca alrededor de 85,158,464,160 soluciones posibles por periodo. Si se intentara resolver la problemática por un algoritmo de programación entera abordando todas las posibles soluciones con el objetivo de encontrar aquella que resulte óptima, y suponiendo que se tardase un milisegundo por solución, el tiempo consumido por el algoritmo seria alrededor de 2 años en poder culminar con éxito su objetivo.

Por otro lado este tipo de problemas exigen el cumplimiento de ciertas restricciones, las cuales, debido a su naturaleza obligatoria se convierten en grandes consumidoras de tiempo computacional. De hecho los problemas de asignación de horarios con un número considerable de variables difícilmente llegan a terminar en tiempos permisibles para las instituciones si se opta por solucionarlos mediante programación del tipo entera, lineal o tableau. Cabe mencionar que el caso de estudio cuenta con una restricción particular, originada por la naturaleza de las asignaturas de la misma Universidad. Esta restricción obliga a dividir a las asignaturas en dos clases, las basificadas, que son asignaturas con horario y día forzados y las no basificadas, aquellas en las cuales el horario es de libre modificación.

Otro punto importante a considerar como limitante para el algoritmo es el tiempo máximo permitido para entregar una solución aceptable por la institución educativa, el cual radica en un máximo de 8 horas.

Con base en el análisis de los puntos anteriores las medidas a considerar para medir el buen desempeño de los algoritmos desarrollados serán las siguientes:

1. Tiempo computacional (tiempo necesario para entregar una solución aceptable).

2. Valor promedio de aptitud en la población. 3. Valor de la mediana de aptitud en la población. 4. Mejor solución en la población. 5. Desviación estándar del valor de aptitud en la población.

Los datos del experimento corresponden al periodo 21051 de la Facultad de Psicología , el cual cuenta con 168 experiencias educativas, 120 profesores, 20 aulas, 14 horas por día y 5 días.

Para poder medir el tiempo computacional, todas las pruebas fueron realizadas en un mismo equipo que cuenta con las características indicadas en la Tabla 4:

Page 40: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

36

Configuración del equipo de cómputo Sistema operativo Mac OSX 10.6.6 Procesador 2.53 GHz intel core 2

Duo Memoria 4 GB 1067 MHz DDr3

Tabla 4 Muestra la configuración del equipo de cómputo en el cual fueron ejecutados los algoritmos

Cada algoritmo desarrollado en este trabajo fue ejecutado 30 veces (de acuerdo a [18]) y las gráficas mostradas representan el valor promedio de aptitud de dichas ejecuciones.

4.1 Desarrollo y resultados de la metodología para la solución del problema

Parte de los objetivos presentados en este documento conlleva a la resolución de problemas utilizando la metodología de desarrollo de algoritmos inspirados en la naturaleza del Laboratorio Nacional de Informática Avanzada (LANIA) . Debido a ésto el presente capítulo desarrollará una serie de algoritmos basados en las etapas de dicha metodología con el objetivo de dar solución a la problemática presentada.

4.1.1 Aplicación de algoritmos inspirados en la naturaleza en su versión original

Existe una gran diversidad de representaciones posibles de individuos para la resolución de este tipo de problemas de asignación de horarios usando algoritmos evolutivos. Sin embargo, se optó para iniciar el proceso, por una representación general y tradicional como lo es una codificación binaria. La Figura 26 muestra el algoritmo de este proceso:

Page 41: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

37

Figura 26 Algoritmo genético con representación binaria para resolver el problema de horarios.

4.1.1.1 Representación

Debido al tipo de configuración que se requiere para los individuos de este problema se propone la siguiente representación:

Cada gen será codificado de la siguiente manera : materia-profesor-hora-día-aula

En primera instancia, cada parte del gen tendrá formato decimal, este número corresponderá a una clave única de cada elemento, posteriormente se realizará su cambio en formato binario.

La solución tendrá estructuradas de manera ordenada las asignaturas con formato basificado y se diferencian de las que no lo son.

Con el objetivo de poder obtener una codificación binaria para los individuos del algoritmo, es necesario primero obtener una codificación decimal y posteriormente codificarla a un formato binario. Esto es debido a que toda la información de los elementos necesarios de este problema cuenta convenientemente con una clave única e individual representada por un número decimal, la Figura 27 muestra un ejemplo de esta situación:

Page 42: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

38

Figura 27 Ejemplo de obtención de una codificación decimal

La codificación binaria se obtiene al convertir los números de la representación decimal en formato binario, para poder realizarla se hace uso de las siguientes fórmulas:

L = int[log2(lsup - linf) + .9] : Entrega el número de dígitos necesarios para poder convertir cualquier número decimal ubicado entre los rangos “lsup” y “linf” a binario.

X_real = L_inf + ((X_decod*(L_sup – L_inf)) / (2L-1) : Devuelve, con base en un rango de valores, el número correspondiente.

Por ejemplo supongamos que el rango de profesores se encuentra entre 1 y 350, entonces tenemos que:

L = int[log2(350 - 1) + .9] = 9.35 = 9

Es decir , se requieren 9 dígitos binarios para poder codificar los números ubicados dentro del rango 1-350, donde 000000000 = 1 y 111111111 = 350, sin embargo, esto no es del todo cierto, debido a que 000000000 = 0 y 111111111 = 511, y es aquí donde entra la primera fórmula:

111111111 = 511

X_real = 1 + ((511 * (350-1))/(29-1)) = 350

Como puede observarse, el aplicar estas fórmulas hace posible la codificación de representaciones decimales a binarias, la Figura 28 muestra un ejemplo de ello.

Page 43: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

39

Figura 28 Ejemplo de conversión de formato binario a decimal

El algoritmo completo de conversión de decimal a binario se presenta en la Figura 29:

Figura 29 Convierte números decimales en números binarios de acuerdo a su rango, donde solution{i} es un cromosoma binario y solution{i,j} es un gen del cromosoma solution{i}.

Page 44: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

40

4.1.1.2. Función de Calidad

Con la idea principal de poder definir la función de calidad, serán tomadas las siguientes variables:

M = Cantidad de salones N = Cantidad de asignaturas P = Cantidad de profesores D = Días de la semana H = Horas disponibles por día C = Número total de horas hábiles por semana obtenido de D * H

Tomando en cuenta las variables anteriores, serán definidas a continuación cada una de las restricciones consideradas en este proyecto, así como funciones requeridas para las mismas:

Total de horas por materia (THM): Cada asignatura posee un número variable de horas asignadas durante los D días disponibles :

Donde:

Total de horas de una materia por día (THMD): Todas las materias pueden o no tener un número de horas asignados en un día determinado:

Determinar si una hora h, en el día d es establecida para la materia n (NDH):

Page 45: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

41

Restricción fuerte de asignaturas (RFA y ColFA): Un salón m, en un día d, de una hora h solo puede tener establecida una asignatura n:

donde :

Restricción fuerte de profesores (RFP y ColFP): Un profesor p en un día d, con una hora h, solo puede tener establecida una asignatura n:

Donde:

Restricción débil de profesores (RDP y ColDP): Un profesor p con una asignatura n debe poder impartir dicha asignatura exclusivamente en un salón m:

Donde:

Restricción débil de materias (ColDA): Los horarios h, en un día d, de una asignatura n sólo deben tener 3 horas de diferencia:

Page 46: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

42

Tomando en consideración las definiciones anteriores la función de calidad es la siguiente:

La idea de dividir las restricciones débiles en la función de calidad previamente descrita entre 2 es simplemente una ponderación otorgada para prestar mas atención a las restricciones duras. El algoritmo para calcular la función de calidad se presenta en la Figura 30:

Figura 30 Algoritmo función de calidad, donde solution es una solución completa y solution{j} es una variable de la solución

4.1.1.3 Selección de Padres

En este punto se propone una selección de padres por torneo binario, es decir, se tomaran dos individuos aleatoriamente de la población actual, se evaluará su función de calidad y se seleccionará al mejor de ellos con base en esta última, luego se repite el proceso una vez más y de esta manera tenemos dos individuos que se cruzarán. Este proceso se repetirá hasta que se obtenga el

Page 47: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

43

número de parejas requeridas para generar un número de descendientes igual al tamaño actual de la población, es decir, si se tiene una población de “n” individuos se generaran “n” descendientes y para ello se necesitan “n/2” parejas dado que de la cruza de dos individuos se generarán dos nuevos individuos. El algoritmo aparece en la Figura 31:

Figura 31 Algoritmo de selección de padres mediante torneo binario.

4.1.1.4 Selección de sobrevivientes

Para mantener a la población con un tamaño fijo durante el proceso, se realiza una selección de sobrevivientes generacional, es decir, los nuevos individuos, es decir los hijos recién creados (New_population) permanecen y aquellos de la población actual son eliminados, excepto el mejor de ellos, que reemplazará al peor de los hijos. A ésto último se le conoce con el nombre de elitismo. El algoritmo se muestra en la figura 32:

Figura 32 Algoritmo selección de sobrevivientes, donde New_population representa a la población actual y Old_population a la población de la cual se generó New_population.

Page 48: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

44

4.1.1.5 Operadores

Cruza

La representación utilizada en este algoritmo brinda la posibilidad de desarrollar el operador de cruza de diversas maneras. El tipo de cruza utilizada por este algoritmo es de dos puntos (véanse Figuras 33 y 34). El motivo de esta elección fue debido a la simplicidad de la misma y a la superioridad mostrada sobre la cruza de un punto de acuerdo a la literatura especializada[18].

Figura 33 Ejemplo cruza de dos puntos con representación binaria

Page 49: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

45

Figura 34 Algoritmo de cruza representación binaria, donde Old_population es la población actual y mediante la cual se generará al conjunto de hijos llamado New_population y New_population{i} representa un hijo dentro de New_population. Flip regresa 1 ó 0 con probabilidad “prob”

Mutación

El tipo de representación utilizada permite el desarrollo de un operador de mutación sencillo, puesto que solo deberá recorrer al individuo mutando dígito por dígito su estructura con cierta probabilidad. Cabe mencionar que el operador deberá identificar si la asignatura pertenece a la sección de basificadas o no, y dependiendo de ello podrá mutar los dígitos permitidos (véanse Figuras 35 y 36).

Page 50: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

46

Figura 35 Ejemplo del operador de mutación

Figura 36 Algoritmo de mutación con representación binaria. Aquí un dígito es un bit, y un conjunto de bits representa alguna parte de la codificación de un gen(materia-profesor-aula-día-hora). Un dígito es basificado si este pertenecen a un gen que corresponde a una materia basificada.

4.1.1.6 Inicialización

Con el objetivo de generar puntos de inicio (soluciones) sobre todo el espacio de búsqueda, la creación de la primera población de soluciones es realizada de manera aleatoria con una distribución uniforma (véase Figura 37):

Page 51: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

47

Figura 37 Algoritmo de inicialización con representación binaria, donde subjects{j,k} representa la hora k de la asignatura subjects{j}.

4.1.1.7 Condición de paro

Tomando en consideración la restricción de tiempo , se controlará el término del algoritmo mediante un determinado número de generaciones. Lo anterior puede apreciarse en el algoritmo completo detallado en la Figura 1.

4.1.1.8 Evaluación del desempeño del algoritmo

Una vez desarrollado el algoritmo. Éste fue probado con diversas combinaciones de sus parámetros (tamaño de población, número de generaciones, porcentaje de cruza y porcentaje de mutación). La Figura 38 y la Tabla 5 muestra los resultados obtenidos con probabilidad de mutación del 10%

Page 52: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

48

, cruza del 98%, número de individuos 100 y número de generaciones 1000, mismas que ofrecieron un mejor resultado con la función de calidad.

Figura 38 Resultados del algoritmo con representación binaria mutación 10% cruza 98%. Las gráficas representan el valor promedio de la función de calidad a los largo de 1000 generaciones en un total de 25 ejecuciones.

Máximo valor de la función de calidad

Mínimo valor de la función de calidad

Media Mediana Desviación estandar

Tiempo total por corrida

257 49 108 66 60 8 horas 23 minutos 43 segundos

Tabla 5 Estadísticas de los resultados obtenidos con el algoritmo genético de representación binaria durante 25 ejecuciones.

Page 53: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

49

La gráfica anterior sugiere que el algoritmo genético con representación binaria converge en un periodo relativamente corto de generaciones. La Tabla 2 muestra el resultado promedio de las ejecuciones realizadas con este algoritmo con valor de cruza del 98%, mutación del 10% número de individuos 100 y número de individuos 1000:

De acuerdo a estos resultados se puede apreciar que el algoritmo sufre de convergencia prematura (se obtiene una solución no aceptable de manera rápida y el algoritmo no puede mejorarla al paso de las generaciones). Además el valor alto de la desviación estándar indica que el algoritmo no es robusto y varia en la calidad de los resultados entregados. Por otro lado, el tiempo requerido es superior al indicado por la Facultad, aunado a ello, la mejor solución entregada contiene un valor alto ( es decir, pobre) en la función de calidad.

Es posible que el algoritmo converja en pocas generaciones debido a que el operador de mutación no es capaz de explorar correctamente, motivo por el cual se propone ahora un enfoque con mutación dinámica que dependa del número de generaciones del algoritmo, la intención es promover la exploración durante las primeras etapas de la búsqueda , mientras que en las etapas finales la mutación será muy pequeña para favorecer la convergencia. La fórmula para dicho proceso se encuentra en [18] y es la siguiente :

1-(0.9 * (Generación actual/número total de generaciones))

El algoritmo desarrollado se muestra en la Figura 39:

Figura 39 Algoritmo principal enfoque binario con mutación dinámica

Una vez desarrollado el algoritmo fue probado con diversas probabilidades del operador cruza siendo la mas efectiva la probabilidad de 98%, la Figura 40 muestra los resultados de esta ejecución y la Tabla 6 las estadísticas correspondientes:

Page 54: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

50

Figura 40 Resultado del algoritmo representación binaria y mutación dinámica, cruza 98%. Las gráficas representan el valor promedio de la función de calidad a los largo de 1000 generaciones en un total de 25 ejecuciones.

Máximo valor de la función de calidad

Mínimo valor de la función de calidad

Media Mediana Desviación estandar

Tiempo total por corrida

247 87 131 57 93 10 horas 43 minutos 23 segundos

Tabla 6 Estadísticas de los resultados obtenidos con el algoritmo genético de representación binaria y mutación dinámica durante 25 ejecuciones.

Como se puede observar , este enfoque no permite un adecuado espacio de búsqueda e incrementa el costo computacional, motivo por el cual se omite la idea de un operador dinámico de mutación. La Tabla 3 muestra el resultado promedio de todas las corridas generadas con los valores de cruza del 98% , número de individuos 100 y número de generaciones 1000:

4.1.2 Representaciones Alternativas

Debido a que el tipo de representación binaria no logro un nivel aceptable en la función de calidad y trajo consigo un costo computacional elevado de

Page 55: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

51

acuerdo a los estándares permitidos por la Facultad, se procederá a utilizar un nuevo tipo de representación. Para tal efecto se propone un formato decimal. Ya que es el formato en el que se encuentran las claves de todas las variables del problema y como consecuencia se espera tener un costo computacional menor.

4.1.2.1 Representación decimal

La idea básica de cambiar a una representación decimal es disminuir el costo computacional que agrega la decodificación a partir de la representación binaria, debido a que las configuraciones de los parámetros de los genes (profesor-materia-hora-día-aula) están en números decimales y de esta manera se evita la conversión de los mismos. Con el objetivo de cambiar el tipo de representación fue necesario modificar la función de inicialización como se indica en la Figura 41:

Figura 41 Algoritmo principal enfoque decimal, donde subjects{j,k} representa la hora k de la asignatura subjects{j}.

Page 56: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

52

4.1.2.2 Operadores

Cruza

Para el tipo de representación decimal es necesario que el operador de cruza conozca específicamente donde comienza un gen y termina otro dentro de la solución, ya que, cada parte del gen tiene mínimos y máximos números diferentes, por ejemplo si tenemos 24 aulas y 163 maestros, la parte correspondientes a aulas permite números entre 1 y 24 mientras que la parte de maestros acepta valores entre 1 y 163. Si al cruzar se escoge un punto incorrecto al convertir los genes podría quedar una solución con un número, en la parte correspondiente a las aulas superior a 24, motivo por el cual la cruza no elegirá un punto al azar de entre toda la solución si no que partirá de puntos que abarquen genes completos.

Por otro lado, debido a que la cruza de dos puntos resultó efectiva en la representación binaria no se cambiará de esquema y se seguirá trabajando con el mismo enfoque(cruza de dos puntos).La modificación al algoritmo se representa en la Figura 42 y se ejemplifica en la Figura 43:

Figura 42 Algoritmo cruza representación decimal, donde Old_population es la población a través de la cual será generada New_population y New_population{i} representa a una solución del conjunto de soluciones de New_population

Page 57: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

53

Figura 43 Ejemplo de cruza con formato decimal, muestra los puntos claves de cruza

Mutación

La mutación para la representación decimal deberá tener especial cuidado de no mutar una parte de la solución que conlleve a resultados no validos, por ejemplo, si se manejan un máximo de 24 aulas, al mutar un aula no será posible que mute un número 25 o valores negativos. Un ejemplo del diseño del operador de mutación se representa en la Figura 44 y el proceso se detalla en la Figura 45

Figura 44 Ejemplo de mutación con representación decimal

Page 58: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

54

Figura 45 Algoritmo de mutación con representación decimal, una variable es basificada o no dependiendo el tipo de asignatura que corresponda su representación en el gen. Por su parte no_aulas, no_dias y no_horas representan los límites superiores de cada variable a mutar.

4.1.2.3 Evaluación del desempeño del algoritmo

El mejor resultado observado con la representación decimal fue la configuración del 10% de probabilidad de mutación y 98% de probabilidad en cruza, los resultados de este experimento se muestran en la Figura 46 y las estadísticas se incluyen en la Tabla 7:

Page 59: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

55

Figura 46 Resultados del algoritmo con representación decimal mutación 10% cruza 98%. Las gráficas representan el valor promedio de la función de calidad a los largo de 1000 generaciones en un total de 25 ejecuciones.

Máximo valor de la función de calidad

Mínimo valor de la función de calidad

Media Mediana Desviación estandar

Tiempo total por corrida

281 61 132 92 67 1 hora 10 minutos 28 segundos

Tabla 7 Estadísticas de resultados obtenidos con el algoritmo genético de representación decimal durante 25 ejecuciones.

Con el objetivo de estudiar con mayor detalle el problema se decidió graficar por separado los empates de aulas y de profesores. Sin embargo, como puede visualizarse en la Figura 21, la mejor solución entregada aún está lejos de tener un valor cero en la función de calidad. De la Figura 21 se puede concluir que la mayor problemática presentada son los empates de profesores, motivo por el

Page 60: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

56

cual se puede plantear un mecanismo especial para minimizar este tipo de empates.

Como se puede observar en la Tabla 4, la función de calidad ésta no mostró cambios favorables en cuanto a su disminución. Sin embargo, el tiempo computacional se vió favorecido al reducir de 8 horas a sólo 1 hora, lo cual se encuentra dentro del umbral permitido por la Facultad de Psicología.

4.1.3 Esquemas Poblacionales

El punto 3 de la metodología de desarrollo tiene como objetivo analizar más a fondo los beneficios que detallan cada una de las representaciones probadas en los 2 pasos anteriores.

Debido a la característica del problema presentado a lo largo de este trabajo , se han desarrollado dos diferentes representaciones : la binaria y la decimal, motivo por el cual se optará por construir un algoritmo con más de una población. En el se tendrán dos poblaciones cada una correspondiente al tipo de representaciones antes mencionadas. Ambas poblaciones contarán con los mismos elementos y configuración de operadores, además, evolucionarán en paralelo, de esta forma cada determinado número de generaciones, cierto número de integrantes de ambas poblaciones pasarán a la otra población, es decir, cada población intercambiará individuos a su población vecina, el objetivo de combinar los espacios de búsqueda de ambas, permitiendo ampliar la diversidad de las soluciones. La Figura 47 muestra un ejemplo de esta propuesta:

Figura 47 Algoritmo genético paralelo con dos poblaciones e intercambio de soluciones.

Page 61: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

57

El algoritmo puede observarse en la Figura 48:

Figura 48 Algoritmo genético con dos poblaciones

4.1.3.1 Evaluación del desempeño del algoritmo

Una de las ideas fundamentales de la implementación de un enfoque con dos poblaciones es lograr beneficiar a alguna de ellas mejorando su proceso de búsqueda dentro del espacio de soluciones existentes. Motivo por el cual se optó por graficar el comportamiento de cada población de manera individual. Las Figuras 49 y 50 muestran el resultado de la mejor combinación de parámetros para ambas poblaciones , a su vez, en la Tabla 8 se muestran las estadísticas para cada población:

Page 62: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

58

Figura 49 Resultados del algoritmo genético con dos poblaciones, se muestra la población con representación binaria pasando 20 individuos cada 100 generaciones. Las gráficas representan el valor promedio de la función de calidad a lo largo de 1000 generaciones en un total de 25 ejecuciones.

Page 63: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

59

Figura 50 Resultados del algoritmo genético con dos poblaciones. Se muestra la población con representación decimal pasando 20 individuos cada 100 generaciones. Las gráficas representan el valor promedio de la función de calidad a los largo de 1000 generaciones en un total de 25 ejecuciones.

Tipo de representación

Máximo valor de la función de calidad

Mínimo valor de la función de calidad

Media Mediana Desviación estandar

Tiempo total por corrida

Binaria 237 48 124 94 63 10 horas 30 minutos 25 segundos Decimal 215 20 79 34 60

Tabla 8 Estadísticas de resultados obtenidos con el algoritmo genético con dos poblaciones durante 25 ejecuciones.

Como se muestra en las Figuras 49 y 50 y en la Tabla 8, al ocupar la técnica de subpoblaciones se logra visualizar un claro beneficio por parte de ambas poblaciones. De hecho, la población con representación decimal es ampliamente favorecida al obtener una calidad inferior a los 25 empates. Por su parte , la

Page 64: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

60

población binaria logra disminuir a cero los empates de profesores que son el mayor problema de la población decimal.

Tomando en cuenta que en la población con representación decimal no se nota una clara convergencia, seria factible permitirle al algoritmo seguir desempeñándose para visualizar si logra obtener algún individuo con una mejor calidad. Sin embargo, el tiempo computacional en este algoritmo fue muy alto y completamente prohibitivo de acuerdo a lo permitido por parte de la Facultad de Psicología. De ahí que es necesario desarrollar un algoritmo que mejore el proceso búsqueda de soluciones existentes con un costo computacional permisible.

4.1.4 Algoritmo híbrido

Con base en los resultados de los algoritmos anteriormente desarrollados, es posible enmarcar las debilidades generales presentadas por los mismos:

1. Costo y tiempo computacional elevado o prohibitivo. 2. Existencia de numerosos óptimos locales. 3. La deficiente exploración del espacio de búsqueda de soluciones por parte

de los operadores. 4. El principal problema de la minimización de la función de calidad es

debido a la restricción dura concerniente a los profesores.

Una manera de atacar las debilidades antes mencionadas es el uso de algoritmos meméticos[42], que proponen un método de integración de búsqueda global con búsqueda local. La forma en que este tipo de algoritmo es capaz de contrarrestar los problemas presentados por los algoritmos anteriores está determinado por los siguientes factores:

1. Es factible el desarrollo de cualquier representación motivo por el cual se utilizará la representación decimal, ya que ofreció un costo y tiempo computacional menor con respecto a la representación binaria.

2. La búsqueda local puede ser enfocada a la ampliación de la explotación, lo cual, de acuerdo a lo observado en el esquema de dos poblaciones, fomenta la convergencia, evitando óptimos locales y permitiendo una minimización de la función de calidad.

3. Es posible orientar la búsqueda local para fomentar la eliminación de las restricciones más problemáticas denotadas por los enfoques anteriormente desarrollados.

Page 65: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

61

4.1.4.1 Representación

Debido a que el algoritmo con representación decimal requiere un tiempo computacional que se encuentra dentro de los márgenes contemplados por la Facultad de Psicología, se optará por usar esta representación en el algoritmo memético. Además, esta representación fue la que logro disminuir mas la función de calidad en el algoritmo de dos poblaciones.

4.1.4.2 Operadores

Tomando como base las problemáticas encontradas en los algoritmos anteriores se propone la creación de dos operadores los cuales ampliarán la capacidad de búsqueda y apoyarán en la minimización de la función de calidad.

Operador 1

Este operador se aplicará en intervalos regulares dentro del ciclo del algoritmo genético e intentará disminuir los empates de profesores y posteriormente los de aulas para las materias no basificadas. Esto debido a que estas experiencias educativas cuentan con una mayor movilidad al poder modificar tres de sus parámetros los cuales son hora , día y aula, mientras que las basificadas solo tienen la posibilidad de mover el parámetro de aula. La Figura 51 muestra el algoritmo y la Figura 53 A) una representación gráfica del funcionamiento de este operador:

Figura 51 Algoritmo operador uno, population{i,j} representa el empate de profesores j de la solución population{i} y population{i,k} simboliza el empate k de aulas de la solución population{i}, no_empates_profesor alude a los empates encontrados para el profesor en population{i}, no_empates_aulas indica los empates de aulas hallados en population{i}

Page 66: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

62

Operador 2

Este operador se efectuará al final del algoritmo genético e intentará disminuir los empates de aulas para toda la solución, es decir, a diferencia del primer operador, no discriminará entre materias basificadas y no basificadas, sin embargo, la manera en que buscará disminuir los empates es la misma. La Figura 52 muestra el algoritmo y la Figura 53 B) muestra un ejemplo gráfico del mismo:

Figura 52 Algoritmo operador 2 , population{i,j} representa el empate de aulas j de la solución population{i} , no_empates_aulas alude a los empates de aulas hallados en population{i}

La Figura 53 muestra un ejemplo del proceso de ambos operadores y en la Figura 54 se muestra el algoritmo memético completo.

Figura 53 Ejemplo de la funcionalidad de los operadores

Page 67: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

63

Figura 54 Algoritmo memético con representación decimal

4.1.4.3 Evaluación del desempeño del algoritmo

El beneficio de los operadores fue evidente al realizar todas las pruebas debido a que los individuos de la población convergen rápidamente a un valor de la función de calidad cero como lo muestra la Figura 55 y la Tabla 9:

Figura 55 Resultados del algoritmo memético cruza del 98% y mutación del 10%. Las gráficas representan el valor promedio de la función de calidad (separando de ella la parte correspondiente a los empates de maestros y aulas los cuales representan a las restricciones duras contempladas por dicha función) a lo largo de 1000 generaciones en un total de 25 ejecuciones.

Page 68: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

64

Las bajas repentinas en la media y el valor de la mejor solución por generación corresponden al momento en que entra en ejecución el operador 1. Es importante mencionar que no es necesaria la ejecución de las 1000 generaciones debido a la rápida obtención de un individuo con calidad 2, lo cual es válido para la Facultad de Psicología. Por su parte el operador 2 logró obtener un valor para la función de calidad 0. Sin embargo , éste no entró en ejecución hasta el final del ciclo. Este algoritmo soluciona el problema de la Facultad de Psicología en un tiempo computacional permitido por la misma como lo muestra la Tabla 9:

Máximo valor de la función de calidad

Mínimo valor de la función de calidad

Media Mediana Desviación estandar

Tiempo total por corrida

220 0 0.00375 0 0.079 1 hora 40 minutos 20 segundos

Tabla 9 Estadísticas de los resultados obtenidos con el algoritmo memético durante 25 ejecuciones.

Una vez solucionado el problema de horarios considerando sólo las restricciones duras se procede a atacarlo ahora considerando también el otro grupo de restricciones (las débiles). La Figura 56 muestra el resultado anterior tomando en cuenta también estas restricciones :

Page 69: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

65

Figura 56 Resultados algoritmo memético considerando restricciones duras y débiles. Las gráficas representan el valor promedio de la función de calidad (incluyendo todos los tipos de restricciones contemplados en la función) a lo largo de 1000 generaciones en un total de 25 ejecuciones.

Como se puede apreciar en la Figura 56 las restricciones débiles tanto de profesores como de aulas no logran ser satisfechas del todo. Para atacar estas problemática se propone una inicialización especial que minimice la aparición de las mismas.

Page 70: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

66

4.1.4.4 Modificación al algoritmo memético

Inicialización

Para evitar la existencia de restricciones débiles se propone crear soluciones aleatorias por secciones y después integrarlas a la solución global, es decir, se tomará una materia y se determinará cuántas horas posee, en vez de crear las estructuras de hora, día, aula de manera completamente aleatoria se crearán horas consecutivas, por ejemplo, si el proceso de aleatoriedad para el parámetro de horas es 7:00 – 8:00 am y la materia posee 3 horas, las siguientes dos horas serán 8:00-9:00 am y 9:00-10:00 am, siempre y cuando el día sea el mismo, en caso de cambiar el día se seleccionará una hora aleatoria de nuevo. Con respecto al parámetro de aula ésta se seleccionará al azar y será la misma para toda la materia. La Figura 57 muestra el algoritmo del proceso de inicialización modificación:

Figura 57 Modificación al algoritmo de inicialización del enfoque decimal cuidando las restricciones débiles.

4.1.4.5 Evaluación del desempeño del algoritmo

Los cambios realizados al algoritmo mejoraron significativamente en el desempeño del mismo como lo muestra la Figura 58 :

Page 71: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

67

Figura 58 Resultados del algoritmo memético con modificación en inicialización de población. Las gráficas representan el valor promedio de la función de calidad (incluyendo todos los tipos de restricciones contemplados en la función) a lo largo de 1000 generaciones en un total de 25 ejecuciones.

Cabe mencionar que a diferencia de todos los experimentos anteriores, aquí el algoritmo fue probado con 420 generaciones en vez de 1000. Es fácil observar como el cambio en la inicialización de los individuos resultó satisfactorio, puesto que ahora el algoritmo es capaz de entregar un resultado aceptable en términos de las restricciones duras y débiles. Además, su tiempo y costo computacional

Page 72: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

68

están dentro de lo permitido por la Facultad de Psicología. La Tabla 10 muestra las estadísticas de todos los experimentos realizados:

Máximo valor de la función de calidad

Mínimo valor de la función de calidad

Media Mediana Desviación estandar

Tiempo total por corrida

220 0 0.0023 0 0.060 35 minutos 23 segundos

Tabla 10 Estadísticas de los resultados obtenidos con el algoritmo memético con modificación en la inicialización de la población durante 25 ejecuciones.

4.2. Visualización gráfica de los datos

La presentación gráfica de los datos es una forma ampliamente utilizada como herramienta de análisis, ya que permite identificar aspectos relevantes de una manera rápida y simple. Cuando se dispone de datos de una o varias poblaciones, y antes de abordar análisis estadísticos, un primer paso consiste en presentar la información de forma que esta pueda visualizarse de manera más sistemática y resumida.

Tomando lo anterior en cuenta, fue desarrollado un diagrama de cajas de los resultados obtenidos en 25 ejecuciones independientes por cada algoritmo desarrollado en la presente tesis, este diagrama permite evaluar todas las muestras y dar a conocer su comportamiento con respecto a sus medidas de tendencia central como la media, desviación estándar , límites inferiores y superiores etc. La Figura 59 muestra dicha gráfica:

Figura 59 Diagrama de cajas de las poblaciones de los algoritmos desarrollados en este trabajo

Como se puede visualizar en el diagrama de la Figura 34, uno de los grandes problemas de la mayoría de estos algoritmos es su alta desviación estándar, así como de sus limites superiores. Es de notarse como el algoritmo memético tiene el comportamiento más estable que los demás algoritmos puesto que su desviación estándar en muy pequeña y técnicamente la media alcanza a explicar a toda su población.

Page 73: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

69

4.3. Pruebas estadísticas

El uso de la Estadística es de gran importancia en la investigación científica. Casi todas las investigaciones aplicadas requieren algún tipo de análisis estadístico con el objetivo de evaluar sus resultados. En algunos casos, para resolver un problema de carácter empírico es preciso llevar a cabo un análisis bastante complejo, otras veces, basta con efectuar un análisis muy simple y directo. La elección de uno u otro tipo de análisis estadístico depende del problema que se plantee en el estudio así como de la naturaleza de los datos. Desde este punto de vista, la Estadística constituye un instrumento de investigación y no un producto final de esta última[41].

Al iniciar el análisis estadístico de una serie de datos, un primer paso consiste en describir la distribución de las variables estudiadas y, en particular, de los datos numéricos para poder determinar si estos siguen una distribución normal o no.

Con el objetivo de poder demostrar si los datos recolectados de todos los algoritmos desarrollados siguen una distribución Normal, serán evaluados mediante el test K-S (Kolmogorov-Smirnov) de una muestra.

4.3.1. Prueba de Kolmogorov – Smirnov de una muestra

El test de Kolmogorov-Smirnov (K-S) de una muestra se basa en la idea de comparar la función de distribución acumulada de los datos observados con la de una distribución normal, midiendo la máxima distancia entre ambas curvas. Como en cualquier prueba de hipótesis, la hipótesis nula se rechaza cuando el valor del estadístico supera un cierto valor crítico que se obtiene de una tabla de probabilidad. Las hipótesis de esta prueba son las siguientes:

1. Hipótesis nula : La población sigue una distribución normal. 2. Hipótesis alternativa : La población no sigue una distribución normal.

Los resultados obtenidos al aplicar la prueba con una confianza de 99% se observan en la Tabla 11 (cabe destacar que los resultados fueron los mismo al evaluarlos con una confianza del 90 y 95%):

Algoritmo Hipótesis nula Hipótesis alternativa

Binario X Binario mutación

dinamico X

Decimal X

Poblaciones (binario) X Poblaciones

(decimal) X

Memético X Tabla 11 Resultados después de aplicar el test K-S a los resultados de los algoritmos desarrollados en este trabajo

Page 74: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

70

Al obtener estos resultados se puede comprobar que las poblaciones de todos los algoritmos no siguen una distribución Normal(distribución gaussiana).

Con base en los resultados obtenidos por la prueba K-S , la siguiente prueba a realizar será la de Wilcoxon, que funciona para muestras no paramétricas, es decir, que no sigan una distribución Normal y esta diseñada para evaluar si dos muestras están relacionadas entre sí.

4.3.2. Prueba de Wilcoxon

Partiendo de la base de que algunos contrastes de hipótesis dependen del supuesto de Normalidad, muchos de estos contrastes siguen siendo aproximadamente válidos cuando se aplican a muestras muy grandes, incluso si la distribución de la población no es Normal. Sin embargo, muchas veces se da también el caso de que, en aplicaciones prácticas, dicho supuesto de Normalidad no sea sostenible. Lo deseable entonces será buscar la inferencia en contrastes que sean válidos bajo un amplio rango de distribuciones de la población. Tales contrastes se denominan no paramétricos.

La prueba de Wilcoxon es una prueba no paramétrica para comparar la mediana de dos muestras relacionadas y determinar si existen diferencias entre ellas. Se utiliza como alternativa a la prueba t de Student cuando no se puede suponer la Normalidad de dichas muestras.

Las hipótesis de esta prueba son las siguientes:

1. Hipótesis nula: Los datos de las dos poblaciones son ejemplos independientes de una distribución continua idéntica con medianas iguales.

2. Hipótesis alternativa : Los datos de las dos poblaciones no son ejemplos independientes de una misma distribución continua y sus medianas no son iguales.

Los resultados al aplicar la prueba de Wilcoxon a todos los algoritmos desarrollados con un nivel de confianza del 99% se observan en la Tabla 12 (cabe señalar que los niveles de confianza 90 y 95% devolvieron los mismos resultados). La prueba se aplicó a pares de algoritmos para verificar diferencias significativas entre ellos.

Page 75: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

71

Wilcoxon Hipótesis nula Hipótesis alternativa

Binario vs binario dinamico X

Binario vs Poblaciones (Binario) X

Binario vs Poblaciones (Decimal) X

Binario vs decimal X

Binario vs memetico X

Binario dinámico vs Poblaciones (Binario)

X

Binario dinamico vs Poblaciones (Decimal)

X

Binario dinamico vs decimal X

Binario dinamico vs memetico X

Poblaciones (Binario) vs Poblaciones (Decimal)

X

Poblaciones (Binario) vs decimal X

Poblaciones (Binario) vs memetico X

Poblaciones (Decimal) vs decimal X

Poblaciones (Decimal) vs memetico X

Decimal vs memetico X

Tabla 12 Resultados al aplicar el test de wilcoxon a los algoritmos desarrollados en este trabajo

Los resultados de acuerdo a la prueba Wilcoxon, se puede concluir con un grado de significancia del 99% que el comportamiento de cada algoritmo es diferente en todos los casos desarrollados en este trabajo.

Con el objetivo de corroborar los datos obtenidos mediante esta prueba , se procederá a realizar el análisis de Friedman, mismo que permite determinar si todas las poblaciones presentadas son mutuamente excluyentes o no.

4.3.3. Prueba de Friedman

Uno de los métodos estadísticos mas utilizados para comparar varias muestras y poder determinar cuales de ellas poseen una distribución similar es el test de Friedman. Se trata de un equivalente no paramétrico al test de medidas repetidas ANOVA. Calcula el orden de los resultados observados por algoritmo (rj

para el algoritmo j con k algoritmos) para cada función, asignando al mejor de ellos el orden 1, y al peor el orden k. Bajo la hipótesis nula, que se forma a partir de suponer que los resultados de los algoritmos son equivalentes y, por tanto, sus rankings son similares y la hipótesis alternativa que afirma lo contrario[44].

Page 76: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

72

La Figura 60 muestra el resultado del test Friedman al ser aplicado a los algoritmos desarrollados en este trabajo:

Figura 60 Resultados del test de Friedman aplicado a los algoritmos desarrollados en este trabajo.

De acuerdo a los resultados obtenidos por esta prueba se puede determinar que las muestras de los algoritmos memético, decimal sub poblaciones y binario mutación dinámica son significativamente diferentes, mientras que los algoritmos binario y binario sub-población, así como binario sub población y decimal pertenecen una misma población, es decir, no poseen una diferencia significativa estadísticamente de acuerdo con la prueba de Friedman. Aunque el punto de cruce entre las muestras es muy pequeño, como se puede apreciar en la Figura 35.

Debido a que el punto de cruce que determina si las poblaciones pertenecen a una misma población es muy pequeña y que la prueba de Wilcoxon brindó como resultado que ninguna muestra pertenecía a poblaciones similares, se procederá a realizar el test de Kruskal-Wallis para poder corroborar los resultados.

4.3.4. Prueba de Kruskal-Wallis

En estadística, la prueba de Kruskal-Wallis es un método no paramétrico para probar si un grupo de datos proviene de la misma población. Intuitivamente, es idéntico al ANOVA con los datos reemplazados por categorías, sin embargo, ya

Page 77: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

73

que es una prueba no paramétrica, la prueba de Kruskal-Wallis no asume normalidad en los datos, de hecho, no asume ningún tipo de distribución.

La prueba de Kruskal-Wallis compara varios grupos usando la mediana de cada uno de ellos, en lugar de las medias.

Las ventajas fundamentales de esta prueba frente a otras pruebas estadísticas son principalmente dos: 1) no necesita establecer supuestos sobre las poblaciones originales tan exigentes como la Normalidad de los datos o la homocedasticidad de los mismos; y 2) permite trabajar con datos ordinales.

La Figura 61 muestra los resultados tras aplicar el test de Kruskal-Wallis a los algoritmos desarrollados en este trabajo:

Figura 61 Resultados al aplicar el test Kruskal-Wallis a los algoritmos desarrollados en este trabajo

Como puede observarse en los resultados de esta prueba se puede afirmar que todas las muestras pertenecen a poblaciones diferentes al rechazarse la hipótesis nula y aceptarse la hipótesis alternativa.

Page 78: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

74

Capítulo V Conclusiones

5.1. Análisis de la metodología utilizada

El uso de la metodología del Laboratorio Nacional de Informática Avanzada (LANIA) para el desarrollo de soluciones mediante el uso de algoritmos evolutivos resultó ser de gran utilidad para la resolución del problema presentado en este trabajo. Dicha metodología ayuda en gran medida en la obtención de un mayor entendimiento del problema, evaluar paso a paso el comportamiento de los algoritmos evolutivos y brindar una solución al mismo. Dentro de los beneficios encontrados se mencionan los siguientes:

1. Brinda una mayor perspectiva del problema a tratar. 2. Otorga una guía paso a paso para la resolución de problemas. 3. Permite observar modificaciones puntuales necesarias tanto en los

operadores como en las representaciones del algoritmo. 4. Es fácil de entender y de aplicar. 5. Permite atacar el problema de una forma ordenada y estandarizada. 6. Brinda un punto de inicio sencillo.

5.2. Análisis de la hipótesis planteada

La hipótesis presentada en el capitulo 1 :

“Es posible encontrar, en un tiempo razonable para el usuario, una solución factible, es decir, un horario que cumpla con los requerimientos establecidos por la Facultad de Psicología, mediante el uso de un algoritmo meta heurístico inspirado en la naturaleza”.

fue aceptada debido a que el algoritmo memético con los 2 operadores locales desarrollados logró obtener al menos una solución factible en los términos establecidos por la Facultad de Psicología. Por otro lado, el algoritmo de subpoblaciones también brindó una solución aceptable, sin embargo, el tiempo computacional requerido por el no logro satisfacer el margen máximo requerido por la Facultad.

Cabe destacar que el principal problema de los algoritmos que no lograron obtener una solución con calidad satisfactoria fue debido a la existencia de la restricción de asignaturas basificadas. Ésto fue comprobado al correr dichos algoritmos sin esta restricción y todos a excepción del algoritmo de mutación dinámica lograron obtener una mejor solución, aunque su tiempo computacional no disminuyó significativamente. La Figura 62 muestra el comportamiento del algoritmo con representación decimal al eliminar la restricción de asignaturas basificadas (el resultado incluyendo las asignaturas basificadas puede verse en la Figura 46):

Page 79: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

75

Figura 62 Algoritmo representación decimal sin restricciones de experiencias basificadas, 1000 generaciones, 100 individuos de población, cruza 98% y mutación 10%

Page 80: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

76

Como se observa en la Figura 62, al eliminar la restricción de las asignaturas basificadas el algoritmo con representación decimal es capaz de satisfacer paulatinamente las restricciones del problema.

5.3. Análisis de los objetivos planteados

Con respecto a los objetivos presentados en el Capítulo 1 de este trabajo se puede considerar el cumplimiento de todos ellos puesto que, para el objetivo general :

“Encontrar una solución computacional, basada en algoritmos meta heurísticos inspirados en la naturaleza, que sea capaz de resolver de manera automatizada la asignación de horarios de la Facultad de Psicología, Campus Xalapa, de la Universidad Veracruzana”.

El algoritmo memético cumple con dicho objetivo solucionando el problema al encontrar una solución que logro satisfacer las restricciones planteadas en un tiempo computacional relativamente bajo y permitido por la Facultad de Psicología.

Con respecto a los objetivos específicos los cuales se citan a continuación:

Diseñar un algoritmo, basado en la metodología de aplicación de algoritmos meta heurísticos inspirados en la naturaleza, que sea capaz de brindar una solución eficiente y eficaz al problema de asignación de horarios de dicha Facultad.

Generar un diseño experimental que permita valorar adecuadamente el desempeño de los algoritmos que se generen con base en la metodología antes descrita

Crear un sistema que sea capaz de optimizar la recolección , modificación y extracción de la información de experiencias educativas, asignaturas, docentes y horarios escolares de la Facultad de Psicología, Campus Xalapa, Universidad Veracruzana.

Generar un prototipo funcional que permita el uso del algoritmo descrito en el objetivo no. 1 de esta lista

Fue desarrollado un prototipo de sistema que logra almacenar la información requerida, el cual ejecuta de manera automática la solución al problema presentado mediante la integración del algoritmo memético desarrollado en este trabajo, dicho algoritmo es capaz de encontrar un solución factible para la Facultad de Psicología como se muestra en el Capítulo 5.

Con el objetivo de contar con resultados confiables, todos los algoritmos fueron sometidos a 30 ejecuciones con los mismos parámetros de entrada, y se recabo

Page 81: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

77

información estadística de los mismos, consistentes en medidas de tendencia central así como del mejor individuo generado por cada algoritmo e información del comportamiento de las restricciones de la población de cada uno. Posteriormente se analizaron los resultados obtenidos de los algoritmos con 4 test estadísticos los cuales son : Kolmogorov, Wilcoxon, Friedman y Kruskal-Wallis con el objetivo de dar confianza estadística al comportamiento y desempeño de las técnicas utilizadas en este trabajo.

Por todo lo anterior es factible decir que este trabajo cumplió de manera satisfactoria con sus objetivos planteados.

5.4 Trabajo Futuro

Analizar la sensibilidad de los parámetros y operadores del algoritmo memético.

Resolver el problema de asignación de horarios escolar en otras Facultades de la Universidad Veracruzana con el algoritmo memético

Page 82: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

78

Bibliografía

[1]Wren, A., Scheduling, Timetabling and Rostering - a Special Relationship, Lecture Notes in Computer Science 1153. Springer-Verlag, Berl n, Heidelberg, New ork, pa gs. 46-75,1996.

[2] Metaheuristics Networks “International Timetabling Competition” http://www.idsia.ch/Files/ttcomp2002/ consultado el 16-10-2010.

[3] Schaerf, Andrea, A survey of automated Timetabling, Technical eport CS- 95 7, C I - Centrum voor iskunde en Informa tica, 1995.

[ ] John Fredy Franco Baquero, Eliana Mirledy Toro Ocampo, amo n Alfonso Gallego endo n, Problema de asignacio n o ptima de salones resuelto con Bu squeda tabu , INGENIE I A & DESARROLLO, Nu mero 24 Julio-diciembre, 2008 ISSN: 0122-3461

[5] White, G. M. Chan P. W., Towards the construction of optimal examination timetables. INFOR 17 (1979), pp. 219–229.

[6] Fifher, J. G., Shier, D. R., A heuristic procedure for large-scale examination scheduling problems. Technical Report 417, Department of Mathematical Sciences, Clemson University, 1983.

[7] White, G. M., “Constrained satisfaction, not so constrained satisfaction and the Timetabling problem”. In: A Plenary Talk in the Proceedings of the 3rd International Conference on the Practice and Theory of Automated Timetabling, University of Applied Sciences, Konstanz, Aug., 16–18, 2000 (2000), pp. 32–47.

[8]Burke,E.K.,Newall,J.P.,Weare,R.F.,1996b.AmemeticalgorithmforUniversity exam Timetabling. In: Burke and Ross (1996) pp. 241–250.

[9] Schaerf, Andrea, A survey of automated Timetabling, Technical eport CS- 95 7, C I - Centrum voor iskunde en Informa tica, 1995.

[10] Carter, M. W., Laporte, G., Recent developments in practical examination Timetabling. In: Burke and Ross, pp. 3–21, 1996.

[11] José Ma. Mejía Caballero , Asignación de horarios de clases universitarias mediante algoritmos, Universidad del norte división de postgrados e investigaciones en ingeniería, maestría en ingeniería industrial, Barranquilla-atlántico 2008, tesis de grado

[12]M. Carrasco and M. Pato. “A Multiobjective Genetic Algorithm for the Class/Teacher Timetabling Problem”. Lecture Notes in Computer Science. Vol. 2079, pp. 3-17. 2001

[13] docCF http://www.grupocfdeveloper.com/ consultado el 16-10-2010

[14] UNTIS http://www.grupet.at/espanol/produkte/untis/uebersicht_untis.php consultado el 16-10-2010

Page 83: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

79

[15] GES http://www.grupoges.com.mx/ consultado el 16-10-2010

[1 ] PATAT,”International Timetabling Competition” http://www.cs.qub.ac.uk/itc2007/ consultado el 16-10-2010

[17] Facultad de Psicología, Universidad Veracruzana http://www.uv.mx/facpsi/ consultado el 16-10-2010

[18] A. E. Eiben, J.E. Smith , Introducction to evolutionary computing, natural computing series, springer.

[19] L.J. Fogel, P.J. Angeline, T. Bäck, Eda. Proceedings of the 5th Annual Conference on Evolutionary Programming, MIT Press , Cambridge, MA, 1996.

[20] L.J. Fogel, A.J. Owens, M.J. Walsh. Artificial Intelligence through Simulated Evolution, Wiley, Chichester, UK, 1966.

[21] J.H. Holland. Genetic algorithms and the optimal allocation of trials. SIAM J. Of Computing, 2pp.88-105, 1973.

[22]J.H. Holland. Adaption in Natural and artificial Systems. MIT Press, Cambridge, MA, 1992. 1st. Edition: 1975, The University of Michigan Press, Ann Arbor.

[23] I. Rechenberg. Evolution strategie: optimierung Technisher Systeme nach Prinzipien des Biologischen Evolution. Fromman-Hozlboog Verlag, Stuttgart, 1973.

[24] H.P. Schwefel. Evolution and Optimum Seeking. Wiley , New York 1995.

[25] T. Bäck Evolutionary Algorithms in Theory and Practice. Oxford University Press, Oxford. UK, 1996.

[26] T. Bäck, D.B. Fogel, Z. Michalewicz, Eds. Evolutionary Computating 1: Basic Algorithms and Operators . Institute of Physics Publishing. Bristol. 2000.

[27] T. Bäck , D.B. Fogel, Z. Michalewicz, Eds. Evolutionary Computation 2: Advance Algorithms and Operators. Institute of Physics Publishing, Bristol, 2000.

[28] A.E.Eiben, Z. Michaelewicz, Eds. Evolutionary Computation. IOS Press, 1998.

[29] Z. Michalewicz. Genetic Algorithms + Data Structures = Evolution Programs, springer, Berlín, Heidelberg, New York, 3rd edn., 1996.

[30] David E. Goldberg, Genetic Algoritms in Search Optimization & Machine Learning, Addison-Wesley Publishing Company.

[31] Santana Quintero,Luis Vicente, Coello Coello Carlos A. ,Una introducción a la computación evolutiva y algunas de sus aplicaciones en economia y finanzas, Revista de métodos cuantitativos para la economía y la empresa paginas 3-25, diciembre 2006.

Page 84: AGRADECIMIENTOS - Laboratorio Nacional de …emezura/util/files/tesis_FerminFinal.pdf · [42]. la intención principal de la metodología es proveer de una guía a aquellos interesados

80

[32] Pervys Rengifo Rengifo, Leonardo Jiménez, Programación Genética, Fundación universitaria Konrad Lorenz, Facultad de matemáticas e ingenierías , ingeniería en sistemas.

[33]Pablo Moscato, Carlos Cotta, An Introduction to memetic Algorithms, Inteligencia artificial, Revista iberoamericana de inteligencia artificial, No. 19 ,pp 131-148, ISSN: 1137-3601.

[34] Yuichi Nagata, Shigenubo Kobayashi, An analysis of Edge Assembly Crossover for the Traveling Salesman Problem,0-7803-5731-0/99 1999 IEEE.

[35] Mitchell, Melanie. An Introduction to Genetic Algorithms. MIT Press, 1996.

[36] Haupt, Randy y Sue Ellen Haupt. Practical Genetic Algorithms. John Wiley & Sons, 1998.

[37] Baumelt Zdenek · Sucha Premysl · Hanz alek Zdenek An Evolutionary Algorithm in a Multistage Approach for an Employee Rostering Problem with a High Diversity of Shifts PATAT 2010

[38] Burke, E.K., Cowling, P., De Causmaecker, P. and Berghe, G.V.: A Memetic Approach to the Nurse Rostering Problem. Applied Intelligence 15, 199-214 (2001)

[39] http://www.asap.cs.nott.ac.uk/ASAP_Brochure20072008.pdf consultado el 12 de enero del 2011

[40] http://www.cs.qub.ac.uk/itc2007/winner/finalorder.htm consultado el 12 de enero del 2011

[41] Ms.C: Arsenio Celorrio Sánchez, Pruebas de hipótesis no paramétricas de K-S, http://www.monografias.com/trabajos11/docima/docima.shtml, consultado el 15 de enero del 2011.

[42] Hart, William E.; Krasnogor, Natalio; Smith, J.E. (Eds.). Recent Advance in Memetic Algoritmics, Studies in Fuzziness and Soft Computing, Vol. 166, ISBN 978-3-540-22904-9