Escolar Documentos
Profissional Documentos
Cultura Documentos
Aplicacin de algoritmos genticos para el diseo de un sistema de apoyo a la generacin de horarios de clases para la Facultad de Ingeniera de Sistemas e Informtica de la UNMSM.
AUTOR
Bach. Ral Esteban Naupari Quiroz Bach. Gissela Katheryn Rosales Gernimo
Ttulo:
APLICACIN DE ALGORITMOS GENTICOS PARA EL DISEO DE UN SISTEMA DE APOYO A LA GENERACIN DE HORARIOS DE CLASES PARA LA FACULTAD DE INGENIERA DE SISTEMAS E INFORMTICA DE LA UNMSM.
Bachilleres:
NAUPARI QUIROZ, Ral Esteban ROSALES GERNIMO, Gissela Katheryn
Tesina presentada a consideracin del cuerpo docente de la Facultad de Ingeniera de Sistemas e Informtica de la UNMSM como parte de los requisitos para obtener el Ttulo Profesional de Ingeniero de Sistemas. Aprobado por:
Nombre: Presidente
ii
Resumen
Ttulo: Aplicacin de algoritmos genticos para el diseo de un sistema de apoyo a la generacin de horarios de clases para la Facultad de Ingeniera de Sistemas e Informtica de la UNMSM. NAUPARI QUIROZ, Ral Esteban ROSALES GERNIMO, Gissela Katheryn Asesor u Orientador de la Tesina: Ttulo o Grado acadmico a obtener: CORTEZ VASQUEZ, Augusto Ingeniero de Sistemas
Bachilleres:
El presente trabajo tiene como objetivo encontrar una solucin al problema de elaboracin de horarios de clases que existe en la Facultad de Ingeniera de Sistemas e Informtica de la UNMSM. Este problema consiste en la asignacin de un conjunto de recursos dentro de un nmero limitado de periodos de tiempo; adems de satisfacer un conjunto de restricciones que se presentan en el mbito acadmico. La importancia de resolver el problema radica en minimizar el tiempo y la cantidad de personal que interviene en el proceso de elaboracin de horarios, adems de brindar un apoyo en dicho proceso al personal responsable. Durante la investigacin se realiz una comparativa entre algunas tcnicas de bsqueda y optimizacin conocidas, tales como: la Bsqueda Tab, los Algoritmos Memticos, el Recocido Simulado y los Algoritmos Genticos, para identificar cual de ellas posee las mejores caractersticas que permita resolver nuestra problemtica. Una vez realizado esto, se determin utilizar los Algoritmos Genticos, los cuales pertenecen al grupo de tcnicas metaheursticas. Estas tcnicas son mtodos que consisten en desarrollar algoritmos eficientes que sean capaces de dar buenas soluciones a problemas, en donde encontrar el ptimo resulta costoso. En base a lo descrito, se propone un modelo matemtico en el cual se definen las restricciones del problema, para luego establecer el diseo de la solucin y la adaptacin del algoritmo a sta. Para la implementacin del algoritmo se utiliz el lenguaje de programacin Java; obtenindose como resultado diferentes horarios de clases, los cuales son validados con los horarios elaborados manualmente; dicha comparacin permitir determinar el alcance y las limitaciones del algoritmo creado en este trabajo. Finalmente se lleg a la conclusin que el modelo desarrollado encontr buenas soluciones al problema dentro del margen de error definido. Palabras claves: Algoritmos Genticos, Timetabling, Optimizacin, Asignacin de carga acadmica, Meta Heursticas.
iii
Abstract
Title: Application of genetic algorithms to design a support system to generate class schedules for the Faculty of Engineering and Computer Systems of San Marcos University. Bachees: NAUPARI QUIROZ, Ral Esteban ROSALES GERNIMO, Gissela Katheryn Advisor or Supervisor of Dissertation: Qualification or degree to obtain: CORTEZ VASQUEZ, Augusto Systems Engineer
The present work aims to find a solution to the problem of development of class schedules that exists in the Faculty of Engineering and Computer Systems of San Marcos University. This problem can be defined as a set allocation of resources within a limited number of time periods, in addition to meeting a set of constraints that arise in academia. The importance of resolving the problem is to minimize the time and resources used in the scheduling process, in addition to providing support in this process to responsible staff. During the investigation it conducted a comparison between some search and optimization techniques known, such as Tabu Search, the memetic algorithms, simulated annealing and genetic algorithms to identify which of them has the best features that could solve our problems. Once this was determined using genetic algorithms, which belong to the group of metaheuristics techniques. These techniques are methods that are to develop efficient algorithms that are capable of "good solutions" to problems, where finding the optimum is costly. These genetic algorithms are based on natural biological evolution, and can be adapted to solving many problems.Based on what has been described, we propose a mathematical model in which we define the constraints of the problem, then establish the design of the solution and adapting the algorithm to it. To implement the algorithm we used the Java programming language, obtaining as a result different class schedules, which are validated manually prepared schedules, such comparison will help determine the scope and limitations of the algorithm developed in this work. Finally, conclude that the model developed good solutions to the problem found within the defined margin of error. Keywords: Genetic Algorithms, Timetabling, Optimization, Allocation of academic load, Meta Heuristics.
iv
Ficha catalogrfica NAUPARI QUIROZ, Ral Esteban ROSALES GERNIMO, Gissela Katheryn APLICACIN DE ALGORITMOS GENTICOS PARA EL DISEO DE UN SISTEMA DE APOYO A LA GENERACIN DE HORARIOS DE CLASES PARA LA FACULTAD DE INGENIERA DE SISTEMAS E INFORMTICA DE LA UNMSM Inteligencia Artificial (Lima 2010) (UNMSM, Pregrado, Ingeniera de Sistemas e Informtica)
Agradecimientos
A nuestros padres por su incondicional cario, dedicacin, comprensin y sobretodo por su paciencia, gracias por todos los consejos y el gran apoyo que nos han entregado no solamente en esta etapa de nuestra vida, sino tambin a lo largo de sta. A ustedes dedicamos este trabajo. A nuestros hermanos y dems seres queridos por estar siempre con nosotros, por su preocupacin y gran cario, gracias por estar siempre a nuestro lado. A todos los que han hecho posible el desarrollo de este trabajo, gracias por mostrarnos siempre su apoyo incondicional.
Y sobre todo agradecemos a Dios por ser siempre un gua en nuestras vidas.
vi
NDICE
Resumen Abstract Ficha catalogrfica Agradecimientos ndice ndice de Tablas ndice de Figuras Introduccin 1. Captulo 1: Planteamiento Metodolgico 1.1. Introduccin 1.2. El Problema 1.2.1. Antecedentes del Problema 1.2.2. Realidad Problemtica 1.2.3. Descripcin del Problema 1.2.3.1. 1.2.3.2. Enunciado del Problema Restricciones para realizar horarios de clases
1.2.3.2.1. Restricciones Obligatorias 1.2.3.2.1.1. Restricciones Obligatorias Generales 1.2.3.2.1.2. Restricciones Obligatorias Especficas 1.2.3.2.2. Restricciones Deseables 1.2.3.2.2.1. Restricciones Deseables Generales 1.2.3.2.2.2. Restricciones Deseables Especficas 1.2.3.3. Definicin Formal del Problema
1.2.3.3.1. Modelo General 1.2.3.3.1.1. Conjunto de Datos 1.2.3.3.1.2. Parmetros 1.2.3.3.1.3. Variables de decisin 1.2.3.3.1.4. Variable de duracin 1.2.3.3.1.5. Modelamiento de Restricciones Obligatorias 1.2.3.3.1.6. Modelamiento de Restricciones Deseables 1.2.3.3.1.7. Funcin Objetivo 1.2.3.3.1.7.1. Funcin objetivo global 1.2.3.3.1.7.2. Funcin objetivo local 1.2.3.3.1.8. Criterio de Optimizacin 1.2.3.3.2. Modelo Particular
vii
1.2.3.3.2.1. Conjunto de Datos 1.2.3.3.2.2. Parmetros 1.2.3.3.2.3. Variables de decisin 1.2.3.3.2.4. Variable de duracin 1.2.3.3.2.5. Modelamiento de Restricciones Obligatorias 1.2.3.3.2.6. Modelamiento de Restricciones Deseables 1.2.3.3.2.7. Funcin Objetivo 1.2.3.3.2.7.1. Funcin objetivo global 1.2.3.3.2.7.2. Funcin objetivo local 1.2.3.3.2.8. Criterio de Optimizacin 1.2.3.4. Complejidad Computacional 1.2.3.4.1. Problemas P 1.2.3.4.2. Problemas NP 1.2.3.4.3. Problemas NP-Completos 1.3. Delimitaciones de la investigacin 1.3.1. Delimitacin Espacial 1.3.2. Delimitacin Social 1.3.3. Delimitacin Tcnica 1.4. Justificacin 1.4.1. Justificacin de carcter practico 1.4.2. Justificacin de carcter metodolgico 1.5. Objetivos 1.5.1. Objetivo General 1.6. Hiptesis General 1.7. Variables e Indicadores 2. Captulo 2: Marco Terico 2.1. El proceso de evolucin 2.2. Introduccin a los algoritmos genticos 2.3. Definicin de algoritmos genticos 2.4. Analoga de un algoritmo gentico con la naturaleza 2.5. Anatoma de un algoritmo gentico 2.6. Componentes de un algoritmo gentico 2.7. Caractersticas de los algoritmos genticos 2.8. Algoritmo gentico simple 2.8.1. Funcionamiento
25 25 26 26 26 27 28 28 28 28 28 29 29 30 33 33 33 33 33 33 34 34 34 34 34 36 36 38 40 42 46 46 49 50 51
viii
2.8.2. Algoritmo bsico 2.9. Codificacin de variables 2.10. Parmetros de Configuracin 2.10.1. Condicin de Trmino 2.10.2. Tamao de la Poblacin 2.10.3. Porcentaje de Emparejamiento 2.10.4. Porcentaje de Mutacin 2.11. Operadores Genticos 2.11.1. Seleccin 2.11.1.1. Elitista 2.11.1.2. Proporcional a la aptitud 2.11.1.3. Escalada 2.11.1.4. Basado en rango 2.11.1.5. Rueda de ruleta 2.11.1.6. Por Torneo 2.11.1.7. Por Estado Estacionario 2.11.1.8. Generacional 2.11.1.9. Jerrquica 2.11.2. Emparejamiento 2.11.2.1. Emparejamiento de n-puntos 2.11.2.2. Emparejamiento de n-puntos 2.11.2.3. Emparejamiento segmentado 2.11.2.4. Emparejamientos Especializados 2.11.3. Mutacin 2.11.3.1. Mutacin de bit 2.11.3.2. Mutacin multibit 2.11.3.3. Mutacin de gen 2.11.3.4. Mutacin multigen 2.11.3.5. Mutacin de intercambio 2.11.3.6. Mutacin de barajado 2.12. Ventajas y desventajas 2.13. Cmo saber si es posible usar un Algoritmo Gentico 2.14. Ejemplo del funcionamiento de un algoritmo gentico 2.14.1. Un Problema de ejemplo 2.14.2. Representacin gentica del ejemplo 2.14.3. Funcin de aptitud del ejemplo 2.14.4. Operadores del ejemplo
52 54 55 55 56 56 56 57 57 57 58 58 58 58 59 59 59 60 60 60 61 61 61 61 62 62 62 62 63 63 64 65 66 66 66 67 68
ix
68
3. Captulo 3: Estado del Arte 3.1. Introduccin 3.2. Mtodos Existentes para Resolver el Problema 3.2.1. Bsqueda Tab 3.2.1.1. Descripcin 3.2.1.2. Aplicaciones de la bsqueda tab al problema de la generacin de horarios 3.2.2. Algoritmos Memticos 3.2.2.1. Mtodos de Optimizacin Local 3.2.2.2. Anatoma de un Algoritmo Memticos 3.2.2.3. Aplicaciones de los Algoritmos Memticos al problema de la generacin de horarios 3.2.3. Recocido simulado 3.2.3.1. Estructura del algoritmo 3.2.3.2. Aplicaciones del Recocido Simulado al problema de la generacin de horarios 4. Capitulo 4: Aporte Terico 4.1. Introduccin 4.2. Evaluacin y Seleccin del Algoritmo 4.2.1. Cuadro comparativo de Metaheursticas 4.2.2. Anlisis de tiempo y calidad de solucin 4.2.3. Comparacin de tiempos 4.3. Adaptacin del algoritmo 4.3.1. Unidad de asignacin 4.3.2. Separacin en Sub-Fases 4.3.3. Representacin del problema 4.3.4. Codificacin mediante alfabetos duros 4.3.5. Inicializacin de la poblacin 4.3.6. Funcin de evaluacin y tratamientos de las restricciones 4.3.7. El proceso de seleccin 4.3.7.1. Escalamiento de la aptitud 4.3.7.2. Seleccin de torneo 4.3.8. Criterio de Trmino 4.3.9. Operadores genticos
70 70 71 71 72 79 86 89 90 96 99 101 106 109 109 110 110 113 115 117 117 119 122 123 125 128 130 131 132 133 134
4.3.9.1. Operador de emparejamiento 4.3.9.2. Operador de mutacin 4.3.10. Reinsercin y Elitismo 5. Capitulo 5: Diseo de la Solucin. 5.1. Modelado del Negocio 5.1.1. Diagramas de Actividades 5.2. Vista de Casos de Uso 5.2.1. Diagrama de Casos de Uso 5.2.2.1. Caso de Uso Ingresar al Sistema 5.2.2.3. Caso de Uso Cargar Informacin de Cursos 5.2.2.4. Caso de Uso Cargar Informacin de Docentes 5.2.2.5. Caso de Uso Cargar Informacin de Aulas 5.2.2.6. Caso de Uso Configurar Valores de Parmetros 5.2.2.7. Caso de Uso Generar Horario Acadmico 5.3. Diagrama de Clases 5.4. Modelo de Datos 5.5. Arquitectura de la Solucin 5.5.1. Restricciones no funcionales 5.6. Vista de Componentes 5.7. Vista de Despliegue 5.8. Prototipos de la Solucin 5.8.1. Ventana de Ingreso al Sistema 5.8.2. Ventana de Carga de Informacin de Horarios 5.8.3. Ventana de Carga de Informacin de Cursos 5.8.4. Ventana de Carga de Informacin de Docentes 5.8.5. Ventana de Carga de Informacin de Aulas 5.8.6. Ventana de Configuracin de Valores de Parmetros 5.8.7. Ventana de Generacin de Horario Acadmico 6. Capitulo 6: Pruebas y Resultados 6.1. Introduccin 6.2. Casos de Anlisis 6.3. Esquema de Pruebas 6.3.1. Pruebas sobre el proceso de seleccin
134 135 136 137 137 140 144 144 145 151 156 161 166 169 171 174 175 176 177 178 179 179 181 181 182 183 184 185 186 186 187 188 189
5.2.2. Especificaciones de Casos de Uso y Diagramas de Secuencia 145 5.2.2.2. Caso de Uso Cargar Informacin de Horas Acadmicas 148
xi
6.3.1.1. Prueba de escalamiento de la aptitud 6.3.1.2. Prueba sobre el mtodo de seleccin 6.3.1.3. Prueba sobre el tamao del torneo 6.3.2. Pruebas sobre los operadores genticos 6.3.2.1. Prueba sobre el mtodo de emparejamiento 6.3.2.1.1. Prueba de porcentajes de emparejamiento 6.3.2.2. Prueba sobre el mtodo de mutacin 6.3.2.2.1. Prueba de porcentaje de mutacin 6.3.3. Prueba sobre el proceso de reinsercin 6.3.3.1. Prueba sobre el mtodo de reinsercin 6.3.3.2. Prueba sobre el uso del elitismo 6.3.4. Prueba de parmetros de configuracin 6.3.4.1. Prueba de nmero de individuos 6.3.4.2. Prueba de nmero de generaciones 6.4. Horario de Clases 7. Capitulo 7: Conclusiones y Recomendaciones 7.1. Conclusiones 7.2. Recomendaciones Bibliografa Apndice 1: Definicin de trminos usados Apndice 2: Definicin de acrnimos y abreviatura Apndice 3: Estructura de Datos del Modelo General Apndice 4: Descripcin de paquetes del API JGAP
189 192 192 193 194 196 197 197 199 199 200 201 202 203 204 217 217 219 221 223 226 227 228
xii
ndice de Tablas
Tabla 1.1. Tiempos de los algoritmos Tabla 2.1. Datos obtenidos con la investigacin de mercado en cada una de las regiones Tabla 4.1. Puntuaciones para calificar las caractersticas de las metaheursticas Tabla 4.2. Resultados de la calificacin de las metaheursticas Tabla 4.3. Medicin de soluciones en intervalos de tiempo Tabla 4.4. Habilidad de las meta heursticas de encontrar la mejor solucin Tabla 4.5. Habilidad de las metaheursticas de producir un mximo costo de reduccin Tabla 4.6. Comparacin de tiempos para alcanzar una adecuada solucin Tabla 4.7. Horas de Dictado de Algortmica I Tabla 4.8. Clases generadas para el curso de Algortmica I Tabla 6.1. Valores para realizar el escalamiento de la aptitud Tabla 6.2. Porcentaje de ocurrencia del operador de emparejamiento Tabla 6.3. Porcentaje de ocurrencia del operador de mutacin 115 116 118 119 189 195 197 112 114 115 67 112 31
xiii
ndice de Figuras
Figura 2.1. Individuo gentico binario Figura 2.2. Funcionamiento de un algoritmo gentico Figura 2.3. Pseudocdigo de un algoritmo gentico Figura 2.4. Construccin de Ruleta con probabilidades Figura 2.5. Esquematizacin de Seleccin por Torneo Figura 2.6. Emparejamiento de 1 punto Figura 2.7. Mutacin de un bit Figura 2.8. Cadena representativa de un cromosoma del ejemplo Figura 2.9. Grfica de los valores de la Tabla Figura 3.1. Vecindario de la solucin actual Figura 3.2. Trayectoria para encontrar la solucin ptima Figura 3.3 Lista Tab Figura 3.4 El componente de memoria de corto plazo de la bsqueda tab Figura 4.5. Seleccin del mejor movimiento posible Figura 3.6. Algoritmo de la Bsqueda Tab Simple Figura 3.7. Estructura de un horario de clases Figura 3.8. Ilustracin del movimiento(a) Figura 3.9. Ilustracin del movimiento (b) Figura 3.10. Estructura de un Algoritmo Memtico Figura 3.11. Esquema de una generacin Figura 3.12. Generacin de la nueva poblacin Figura 3.13. Esquema de un optimizador local Figura 3.14. El esqueleto genrico de un MA Figura 3.15. Generacin guiada de la poblacin inicial Figura 3.16. Reiniciacin de la poblacin en un Algoritmo Memtico Figura 3.17. Representacin de la solucin Figura 3.18. Diagrama de Flujo del Algoritmo de Recocido Simulado Figura 4.1. Comportamiento del tiempo de operacin de las metaheursticas Figura 4.2. Estructura de la unidad de asignacin (clase) Figura 4.3. Fases para la asignacin de clases a los recursos Figura 4.4. Representacin vectorial del cromosoma Figura 5.1. Diagrama de Casos de Uso del Negocio Figura 5.2. Diagrama de Actividad de Recopilar Informacin de Docentes Figura 5.4. Diagrama de Actividad de Establecer Disponibilidad de Aulas 51 52 53 59 59 61 62 68 69 73 74 74 76 77 79 80 81 81 88 91 91 93 94 95 95 97 101 113 117 120 122 140 141 142
Figura 5.3. Diagrama de Actividad de Establecer grupos aperturados por curso 141
xiv
Figura 5.5. Diagrama de Actividad de Elaborar Horario Acadmico Figura 5.6. Diagrama de Actividad de Verificar Carga Acadmica Figura 5.7. Diagrama de Actividad de Publicar Horarios Acadmicos Figura 5.8. Diagrama de Casos de Uso del Sistema Figura 5.9. Diagrama de Secuencia de Ingresar al Sistema Figura 5.10. Diagrama de Secuencia de Cargar Informacin de Horas Acadmicas Figura 5.11. Diagrama de Secuencia de Cargar Informacin de Cursos Figura 5.12. Diagrama de Secuencia de Cargar Informacin de Docentes Figura 5.13. Diagrama de Secuencia de Cargar Informacin de Aulas Figura 5.14. Diagrama de Secuencia de Configurar Valores de Parmetros Figura 5.15. Diagrama de Secuencia de Generar Horario Acadmico Figura 5.16. Diagrama de clases y sus relaciones Figura 5.17. Diagrama Entidad Relacin Figura 5.18. Arquitectura del Sistema Figura 5.19. Diagrama de Componentes Figura 5.20. Estructura de paquetes de JGAP 3.4.4 Figura 5.21. Diagrama de Despliegue Figura 5.22. Prototipo del Caso de Uso Ingresar al Sistema Figura 5.23. Prototipo del Men Principal Figura 5.24. Prototipo del Caso de Uso Cargar Informacin de Horarios Figura 5.25. Prototipo del Caso de Uso Cargar Informacin de Cursos Figura 5.26. Prototipo del Caso de Uso Cargar Informacin de Docentes Figura 5.27. Prototipo del Caso de Uso Cargar Informacin de Aulas Figura 5.28. Prototipo del Caso de Uso Configurar Valores de Parmetros Figura 5.29. Prototipo del Caso de Uso Generar Horario Acadmico Figura 6.1. Nmero de generaciones vs. Escalamiento de la aptitud utilizado Figura 6.2. Frecuencia de xito vs. Escalamiento de la aptitud utilizado Figura 6.3. Nmero de generaciones vs. Mtodo de seleccin utilizado Figura 6.4. Nmero de generaciones vs. Tamao de torneo utilizado Figura 6.5. Frecuencia de xito vs. Tamao de torneo utilizado Figura 6.6. Nmero de generaciones vs. Mtodo de emparejamiento utilizado Figura 6.7. Frecuencia de xito vs. Mtodo de emparejamiento utilizado Figura 6.8. Nmero de generaciones vs. Porcentaje de emparejamiento Figura 6.9. Nmero de generaciones vs. Porcentaje de mutacin Figura 6.10. Frecuencia de xito vs. Porcentaje de mutacin Figura 6.11. Nmero de generaciones vs. Mtodo de reinsercin utilizado
150 155 160 165 168 171 172 175 176 177 178 179 180 180 181 182 183 184 185 185 190 190 191 192 192 194 194 196 197 198 199
xv
Figura 6.12. Frecuencia de xito vs. Mtodo de reinsercin utilizado Figura 6.13. Nmero de generaciones vs. Elitismo Figura 6.14. Frecuencia de xito vs. Tamao de la poblacin inicial Fase uno Figura 6.15. Frecuencia de xito vs. Tamao de la poblacin inicial Fase dos Figura 6.16. Frecuencia de xito vs. Tamao de la poblacin inicial Fase tres Figura 6.17. Nmero de generaciones vs. Fase
202 203
xvi
UNMSM
Introduccin
La asignacin de recursos limitados, sujetos a restricciones de distinto tipo, ha sido un problema de relevancia en reas como la investigacin operativa, la administracin de las organizaciones e incluso la inteligencia artificial. Por lo general, la solucin de este tipo de problemas trae consigo una serie de condiciones de eficiencia, tiempo y oportunidad que deben ser tomadas en cuenta, ms all de la forma correcta de realizar la asignacin. Es deseable considerar todas las variables al mismo tiempo en un problema de asignacin, ponderndolas segn su importancia, y buscando obtener el mayor beneficio en la resolucin del problema. De esta manera, y como revisar un espacio de combinaciones muy grande es dificultoso, conviene dirigir o conducir la bsqueda de la solucin que permita resolver el problema de forma eficiente. Podemos considerar varios mtodos de resolucin como puede ser la bsqueda nodo por nodo de forma sistemtica [10], que en algn momento debieran encontrar la solucin, pero nada puede garantizar que no se deba recorrer todo el espacio de estados para lograrlo. Si bien se cuenta con mtodos de ramificacin y acotacin (que se utilizan en problemas de programacin lineal entera), los valores en las restricciones varan con el tiempo, haciendo que se deba calcular las configuraciones constantemente. Otra alternativa es utilizar mtodos de bsqueda heurstica [10], donde se sacrifica la completitud de la exploracin por la eficiencia en el tiempo de respuesta. Estos mtodos necesitan contar con informacin de qu tan lejos estamos de una posible solucin para poder conducir la bsqueda y, por lo general, la determinacin de una buena funcin heurstica que contemple varias variables no es simple de conseguir. La propuesta que se hace en este trabajo es utilizar algoritmos genticos para la resolucin del problema de generacin de horarios de clases, tomando como dominio del problema los cursos que se dictan en la Facultad de Ingeniera de Sistemas e Informtica de la Universidad Nacional Mayor de San Marcos. Durante los ltimos aos se ha experimentado un creciente inters por la construccin de sistemas de resolucin de problemas basados en el proceso de evolucin natural. En este sentido los algoritmos genticos son algoritmos de bsqueda y optimizacin cuyo mecanismo de funcionamiento est basado en dicho proceso.
UNMSM
Los objetivos son maximizar el uso de los recursos, minimizar el desperdicio del espacio fsico y establecer adecuadamente la carga acadmica de los docentes para lograr la asignacin completa de los horarios de clases. El presente trabajo est organizado en 7 captulos, en el captulo uno se presenta la descripcin del problema a travs de un modelo matemtico, su funcin objetivo, las restricciones, las variables y el modelo particular que es aplicado al problema prctico, adems se describe las delimitaciones de la investigacin, la justificacin, los objetivos, la hiptesis, y algunos conceptos, tales como, complejidad computacional. En el captulo dos se describen los conceptos tericos relacionados a algoritmos genticos, incluyendo sus componentes, caractersticas, el funcionamiento, los operadores genticos y su aplicacin en un problema de ejemplo. En el captulo tres se detallan otros mtodos empleados hasta la actualidad para resolver el problema planteado, as como un estudio comparativo entre dichos mtodos. En el captulo cuatro se presenta el aporte terico de la investigacin, mientras que en el captulo cinco se especifica el diseo de la solucin al problema. En el captulo seis se muestran las pruebas realizadas a cada una de las etapas del algoritmo gentico, tales como, pruebas sobre el proceso de seleccin, sobre operadores genticos y sobre el proceso de reinsercin; adems se muestran los resultados obtenidos por el sistema desarrollado. Por ltimo en el captulo siete se detallan las conclusiones surgidas durante el desarrollo de la investigacin y las recomendaciones para posibles trabajos futuros.
UNMSM
Captulo 1: Planteamiento Metodolgico En este captulo se describir el planteamiento del problema, las limitaciones y la justificacin de la investigacin, as como los objetivos planteados y se realizar el planteamiento de hiptesis y se identificarn las variables y los indicadores de cada una de ellas.
1.1
Introduccin
A travs de los aos, la sociedad ha presentado avances en diferentes aspectos que la han tornado ms compleja, en parte debido al nivel de aprendizaje de los individuos en las universidades. En respuesta a esto, las universidades han ido creciendo en una complejidad enigmtica, en diversidad de operaciones y en la capacidad de responder a las necesidades educativas de hoy. El objetivo de los estudiantes de aprender ms, de una amplia gama de profesionales que pueden contribuir a su conocimiento, ha hecho que sean cada vez ms exigentes al momento de elegir una universidad. Con lo cual las universidades, como cualquier negocio, se han visto en la necesidad de re-disear sus procesos internos para hacerlos ms eficientes y as satisfacer al exigente alumnado de hoy.
UNMSM
Actualmente las instituciones acadmicas presentan diversas dificultades para resolver el problema de asignacin horaria, debido a la cantidad de restricciones que se presentan y el criterio con el que se aplican. La complejidad de este proceso radica en las restricciones asociadas a los recursos, tales como: docentes, alumnos, cursos, aulas, etc.
Este problema es conocido con el nombre de Timetabling, que consiste en la asignacin de entidades o recursos escasos dentro de un nmero limitado de perodos de tiempo; y es utilizada en distintas reas para regular diferentes operaciones donde sea necesaria la ubicacin de un recurso en un sitio determinado en una hora especfica, como por ejemplo en el transporte (vuelos areos), en salud (programacin de cirugas), en el campo del entretenimiento (deportes), etc. En general, han habido muchas tentativas de tratar este problema usando mtodos clsicos, como por ejemplo la programacin entera, pero sin mucho xito. Tambin han habido otras un poco ms acertadas como las de tratar el problema usando varios mtodos de bsqueda heurstica. Hasta la fecha, en la Escuela de Ingeniera de Sistemas e Informtica de la Facultad de Ingeniera de Sistemas e Informtica (FISI) de la Universidad Nacional Mayor de San Marcos (UNMSM), el proceso de elaboracin de horarios de clases todava se hace manualmente, porque se deben considerar restricciones que son difciles de modelar y automatizar. En este contexto, estudiamos los Algoritmos Genticos (AG) para encontrar la solucin a dicho problema. Esta tcnica ha demostrado resultados prometedores en muchos campos de la optimizacin en donde se modelaban y diseaban mtodos, y donde el tamao y la dimensin son factores complicados. Este trabajo tiene como objetivo alcanzar una gran utilidad, a travs de dos maneras concretas, para solucionar el problema de generacin de horarios de clases de la facultad de tal manera que se pueda encontrar una ptima solucin: En primer lugar, incorporar tantas restricciones posibles y realistas del problema, para encontrar una ptima solucin a travs de una adecuada asignacin de recursos. Y en segundo lugar, proporcionar el diseo de una aplicacin fcil de utilizar para el personal de la FISI.
UNMSM
Especficamente este trabajo desea disear un sistema prctico y til para generar los horarios de clases, el cual resulta ser un trabajo demasiado arduo y complejo. Por supuesto, el estudio est dirigido a nuestra facultad, pero este mtodo puede fcilmente extenderse a otras facultades e incluso universidades, dado que se encuentran en condiciones similares en lo que respecta al proceso de generacin de horarios.
1.2
El Problema
En esta seccin se detallarn los antecedentes del problema, la realidad problemtica, la descripcin del problema, las restricciones para realizar los horarios de clase, el modelo general y particular del problema y la complejidad computacional. 1.2.1. Antecedentes del Problema En toda institucin de educacin superior, al inicio de cada perodo acadmico se presenta la necesidad de asignar y coordinar los recursos econmicos, materiales y humanos en beneficio de los estudiantes. Considerndose de vital importancia la organizacin y distribucin de los horarios de clases de docentes y alumnos, para lo cual se debe tomar en cuenta las condiciones particulares originadas por el avance acadmico de los alumnos y algunos otros factores tales como la disponibilidad de docentes y la capacidad de aulas; que son las que complican an ms la programacin de los horarios de clases.
El proceso de distribucin horaria (Timetabling) es parte de los problemas de programacin en general, dicha programacin trata de la asignacin satisfactoria de una cantidad de recursos para alcanzar los objetivos de una organizacin. Adems es un procedimiento de toma de decisin, con la intencin de optimizar objetivos. Este proceso difiere de acuerdo al tipo de institucin involucrada, ya sea una universidad o una escuela [26]:
Asignacin de horarios escolares, tambin conocida como ClassTeacher Problem, considera el horario semanal para las sesiones de los cursos de una escuela o colegio. Dado los cursos, docentes y una matriz
UNMSM
Facultad de Ingeniera de Sistemas e Informtica de requerimientos (que establece el nmero de sesiones que cada docente dicta por curso), el problema consiste en asignar las sesiones a los perodos de tiempo, de tal manera que ningn docente o curso tenga ms de una sesin en el mismo perodo y que todas las sesiones del curso estn presentes en el horario.
Asignacin de horarios universitarios, consiste en organizar un horario para las clases de un conjunto de cursos, considerando un nmero determinado de aulas y bloques de tiempo. La principal diferencia entre un horario escolar y uno universitario es la forma como se considera a los estudiantes. En el mbito escolar stos pueden considerarse como una entidad, debido a que es un grupo de alumnos que toman los mismos cursos. En el caso universitario, generalmente con rgimen semiflexible, los estudiantes toman distintos cursos, por lo que se generan cursos en comn con otros estudiantes. Otra diferencia que se presenta son los docentes. En las escuelas se encargan de ensear un curso y en la universidad generalmente imparten de 1 a 3 cursos. Adems, se presenta el problema de la capacidad de las aulas ya que cada curso tiene asociado su propio requerimiento; por el contrario, para el caso de las escuelas se pueden destinar todas las aulas como aptas para cualquier curso.
Por otro lado, existen diversas tcnicas para la resolucin de problemas de generacin de horarios, los cuales se clasifican en dos grupos:
Las tcnicas tradicionales; son mtodos que debido a su forma de buscar soluciones se les denomina completos, ya que recorren todo el espacio de bsqueda, es decir, encuentran todas las soluciones posibles a un determinado problema, sin embargo, estos depende del nmero de variables que influyen en el problema, es decir, el xito de estas depende directamente del nmero de variables que intervienen en el problema. Entre estas tcnicas tenemos los siguientes tipos: Programacin entera, Programacin Lineal, Tableau, entre otras.
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Las tcnicas no tradicionales; utilizadas principalmente en el campo de la inteligencia artificial, siendo una de las ms conocidas las metaheursticas, que consisten en sistematizar ideas con el fin de desarrollar algoritmos eficientes que sean capaces de entregar buenas soluciones a problemas, donde encontrar el ptimo resulta muy costoso e incluso en algunos casos imposible. Estos problemas se clasifican en diversas complejidades: En primer lugar tenemos la complejidad P, que son algoritmos que encuentran siempre una solucin a un problema en tiempo polinomial y las de complejidad NP, que encuentran solucin a un problema en tiempo polinomial usando una computadora no determinstica.
En el mbito de las ciencias computacionales, los problemas de tipo timetabling estn clasificados como NP completo [10]-[3]. Un gran nmero de problemas tratables tienen un estado hasta ahora indeterminado; se supone que son intratables, pero esto no se ha demostrado. Entre la clase de problemas NP encontramos el problema de satisfactibilidades (SAT). Este es un problema central en la lgica matemtica y la teora de la computacin. SAT es fundamental para la solucin de varios problemas en razonamiento automtico, diseo y manufactura asistida por computadoras, visin computacional, bases de datos, robtica, diseo de circuitos integrados, arquitectura de computadoras, redes de computadoras y asignacin de tareas, entre otros. Los mtodos para resolver el problema SAT juegan un papel crucial en el desarrollo de sistemas informticos eficaces y las aplicaciones de dicho problema [16]-[2]. El caso de programacin de horarios acadmicos es un ejemplo de este tipo de problemas. Las tcnicas metaheursticas combinan la simplicidad de sus ideas con su gran eficiencia para obtener buenos resultados para este tipo de problemas complejos. Entre stas se encuentran: Simulated annealing (Simulado recocido), Genetic algorithms (Algoritmos genticos), Tab search (Bsqueda tab), GRASP (Algoritmos Voraces), Neuronal networks (Redes neuronales), entre otras.
1.2.2. Realidad Problemtica Actualmente, como caso particular, en la Facultad de Ingeniera de Sistemas e Informtica la tarea de elaboracin de horarios acadmicos se realiza de
UNMSM
forma manual, estimando y estipulando los recursos como mejor parecen ajustarse segn el criterio del responsable de elaborar dichos horarios en cada semestre acadmico. Esta tarea normalmente requiere varios das de trabajo; sin embargo, debido al volumen de datos y variables que intervienen en el proceso, la tarea resulta ser costosa, compleja y no siempre culmina en resultados satisfactorios; como por ejemplo, realizar una asignacin de aulas que permanecen medianamente vacas ya que la cantidad de alumnos matriculados es menor a su capacidad o viceversa, es decir, tal vez se asignan recintos muy pequeos para una gran cantidad de estudiantes, etc. Adems se puede producir insatisfaccin en algunos aspectos, tales como, que un estudiante no podr matricularse en todos los cursos que desea debido a que estn programados en el mismo periodo de tiempo, o que a un docente se le programan dos cursos en el mismo horario o periodo, etc. Debido a esto se tiene como resultado varios problemas de funcionamiento, molestias personales, desprogramacin, aunque lo ms preocupante es la cantidad de tiempo que se emplea para solucionar los cruces de horarios que se puedan originar. Para realizar la asignacin de horarios, los encargados no cuentan con una planeacin exacta de la informacin a usar, como por ejemplo, el nmero de estudiantes por curso, o la cantidad de grupos que se debe aperturar por cada curso; lo cual trae como consecuencia que al tener una mayor demanda de alumnado en un determinado curso se tenga que abrir un grupo adicional, asignarle un docente disponible y programarlos en un nuevo
horario que beneficie a todos. Con una asignacin de horarios de clases automatizada se elimina el proceso manual, la cual requiere mucho tiempo y una desgastante y compleja coordinacin entre directores de oficinas, coordinadores, etc., adems se logra una adecuada administracin de los espacios fsicos de la facultad para evitar que se desaprovechen dichos espacios. El proceso de elaboracin de horarios de clases que a simple vista parece la optimizacin de slo algunos parmetros como cantidad de alumnos por clase, capacidad de las aulas, cantidad de aulas disponibles, etc., ha sido motivo de varios trabajos de investigacin. Para esto ser necesario implementar una solucin que tome en cuenta las limitaciones dinmicas y
UNMSM
mltiples, considerando adems el conflicto de objetivos existentes que permita un modelo ms cercano a la realidad. Por ltimo, cabe mencionar, que el modelado de las relaciones complejas entre los distintos parmetros del problema como son las aulas, los docentes con sus periodos disponibles, los cursos que pueden dictar, los periodos hbiles del ciclo acadmico y otros ms, plantean un tipo de problema no resuelto hasta la actualidad de manera conjunta e integral, en parte por la escasez de investigacin en el rea. 1.2.3. Descripcin del Problema La elaboracin de los horarios de clases tiene como finalidad brindar un conjunto de cursos que puede y debe cursar el alumno dependiendo del semestre acadmico a inscribirse y de las circunstancias acadmicas en que se encuentre. La manera en que se presentan dichos horarios y la libertad para escogerlos, ser de gran ayuda en la realizacin y consolidacin de su carrera, siempre y cuando estos horarios estn bien elaborados. Por el contrario, si no lo estn puede llegar a repercutir negativamente en el alumnado de diferentes maneras, por ejemplo, un alumno puede llegar a estar rezagado en uno o ms semestres si es que los grupos aperturados no poseen cupos disponibles. Otro problema se presenta cuando un alumno que selecciona un curso en un horario o periodo especfico y con un determinado docente, se encuentra posteriormente con que el horario cambi o que el dictado del curso estar a cargo de otro docente o ambas cosas. El problema de elaboracin de horarios de clases se asocia a la ardua labor de estructurar los horarios de clases a partir de un conjunto de recursos, considerando cada una de las restricciones que tiene el problema y buscando maximizar el nmero total de perodos asignados en espacios de tiempo deseados. Es necesario considerar algunos factores como la carga acadmica de los docentes, las aulas disponibles para la imparticin de clases y algunas otras polticas particulares que son definidas por la institucin.
UNMSM
En cualquier problema de optimizacin existen objetivos, decisiones que tomar, recursos disponibles y necesidades. En el problema de programacin de horarios universitarios, los recursos disponibles son los docentes, los estudiantes, los cursos que son parte del plan acadmico, los periodos hbiles semanales y las aulas de clase. Una solucin para este problema debe agrupar estos recursos para producir un horario de clases, que
cumpla con el conjunto de restricciones que sern fijadas por el personal responsable. Es importante sealar que en muchas aplicaciones prcticas algunas de estas restricciones tienen carcter de necesarias; es decir, todas las soluciones factibles y significativas deben satisfacer este grupo de restricciones, tales como, la restriccin que dos clases distintas no se pueden llevar a cabo en el mismo periodo de tiempo y en la misma aula de clase. Tambin hay otras restricciones que se podran denominar como altamente deseables, que podran afectar en cierto grado la satisfaccin total del horario que se elaborar. Una restriccin altamente deseable sera, por ejemplo, no tener ninguna clase durante la hora del almuerzo; sin embargo, otras restricciones ms importantes podran forzarnos a programar clases sobre las horas de almuerzo, y a pesar de ello podra considerarse tolerable. Por lo tanto, el objetivo de un horario de clases sera satisfacer en gran medida varias restricciones que se encuentran en conflicto o involucradas entre s.
1.2.3.1. Enunciado del Problema Por consiguiente, observamos que el problema general encontrado en la FISI con relacin a la generacin de horarios de clases es: En qu medida se puede automatizar el proceso de generacin de horarios de clase, mediante el uso de algoritmos genticos, con el fin de reducir el tiempo y los recursos empleados en su elaboracin y a su vez elevar el grado de satisfaccin del alumnado y el docente?
10
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 1.2.3.2. Restricciones para realizar horarios de clases Larrosa [7] define el trmino restricciones como condiciones que debe satisfacer el horario generado; y las clasifica en dos tipos:
Restricciones obligatorias, son propiedades espaciales o temporales. Toda restriccin obligatoria debe cumplirse, la violacin de alguna origina un horario no vlido. Podemos entenderlas tambin como reglas que deben satisfacerse. Restricciones deseables son restricciones que en realidad denotan preferencias del usuario (polticas flexibles) y se desea que se cumplan en la medida de lo posible. La violacin de algunas de ellas seguir produciendo un horario vlido, pero de menor calidad que si se cumplieran todas stas. Adicionalmente clasificaremos cada uno de estos tipos en
Restricciones generales las cuales podrn aplicarse a la mayora de problemas de timetabling universitario y las Restricciones especficas que son propias de una sola institucin, en este caso la FISI. Para la solucin de nuestro problema slo se considerarn las restricciones obligatorias. 1.2.3.2.1. Restricciones Obligatorias 1.2.3.2.1.1. Restricciones Obligatorias Generales ROG1. Un curso debe tener asignado a lo ms un docente en un aula en un periodo especfico. ROG2. Un docente debe tener asignado a lo ms un curso en un aula en un periodo especfico. ROG3. Un aula puede tener a lo ms un curso asignado y un docente en un periodo especfico. ROG4. No es posible asignar a un docente un curso por el cual no posea preferencia. ROG5. No se puede asignar un curso a un docente fuera de su disponibilidad de tiempo.
11
UNMSM
Facultad de Ingeniera de Sistemas e Informtica ROG6. La cantidad de estudiantes en un curso no puede sobrepasar la capacidad del aula. ROG7. Un curso debe cumplir con una cantidad de horas semanales requeridas. Segn sea el caso, si el nmero de horas acadmicas es par se asignar dos horas diarias hasta cubrir la totalidad, sino se asignar un da de tres horas y el resto de dos horas. A cada uno de estos grupos de horas se les llamar bloques. ROG8. Las horas de un bloque para un determinado curso en un mismo da deben de ser consecutivas adems de ser asignados a un docente y aula. ROG9. Los cursos no deben de solaparse entre ellos, ni en duracin ni ubicacin fsica, una vez seleccionada la hora de inicio de stos y el aula correspondiente.
1.2.3.2.1.2. Restricciones Obligatorias Especficas ROE1. Un docente debe de impartir una cantidad determinada de horas de dictado de clases como mximo y como mnimo segn su categora. ROE2. Los cursos de teora y prctica deben de asignarse a aulas de tipo no laboratorio. ROE3. Los cursos de laboratorio deben de asignarse a aulas de tipo laboratorio. ROE4. No deben coincidir los horarios de los cursos que corresponden a un mismo semestre y grupo. ROE5. Pueden existir asignaciones previas de cursos a un determinado periodo y aula. ROE6. Pueden existir asignaciones previas de docentes a un determinado perodo y curso. ROE7. Los cursos son clasificados en los turnos de maana, tarde y noche segn el semestre al que pertenecen.
12
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 1.2.3.2.2. Restricciones Deseables 1.2.3.2.2.1. Restricciones Deseables Generales RDG1. Dos cursos de semestres consecutivos no deben de ser asignados en un mismo periodo de tiempo. RDG2. Los bloques de un curso deben de distribuirse lo mejor posible en la semana. RDG3. Se debe minimizar el nmero de horas libres entre el fin de una clase y el inicio de otra. RDG4. Pueden existir prioridades o penalidades sobre cursos para que sean dictados en periodos determinados. Es decir, una solucin ser de mayor calidad mientras se cumplan adecuadamente las prioridades o se tenga la menor cantidad de asignaciones a perodos penalizados. RDG5. Cada bloque de un determinado curso slo puede asignarse a lo ms una sola vez cada da. 1.2.3.2.2.2. Restricciones Deseables Especficas RDE1. No se deben de asignar cursos en horario de almuerzo 1.2.3.3. Definicin Formal del Problema Una vez planteado el problema de timetabling para la FISI, vamos a presentar el modelo matemtico general y especfico del problema, en el cual presentamos los conjuntos de datos, los parmetros, las variables de decisin, las restricciones, la funcin objetivo y el criterio de optimizacin, que son necesarios para encontrar una solucin factible, y en el mejor de los casos, una solucin ptima. Para formular un modelo matemtico, que sirva de base para la solucin del problema de timetabling por lo menos en un sentido aproximado, debemos considerar todas las intersecciones posibles existentes entre los cuatro elementos bsicos que lo componen: aulas, docentes, cursos y periodos de tiempo.
13
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 1.2.3.3.1. Modelo General En el apndice 3 se muestra la visin global de la estructura de datos que se describe a continuacin: 1.2.3.3.1.1 Conjunto de Datos Sea C = {1,...,c} c
Ejemplo: C = { }
Algortmica I
Clculo I
Base de Datos
C,
que no pueden ser programados en un mismo periodo de tiempo. Dos grupos distintos pueden tener cursos iguales, por ejemplo sea Cg1 y Cg2 dos cursos pertenecientes a los grupos G1 y G2, con G1
Cg2
0.
Ejemplo: G = { Grupo 1 } Sea L= {l1,...,ln} el vector de tipos que indica la modalidad del dictado de los cursos. Cada l cursos Cl Grupo 2 Grupo 3
L contiene un conjunto de
C, que
periodo de tiempo. Dos tipos distintos pueden tener cursos iguales, por ejemplo sea Cl1 y Cl2 dos cursos pertenecientes a los tipos L1 y L2, con L1 Definimos de
Cl2
0.
antemano
cada
elemento
Teora
Prctica Laboratorio
14
C.
ejemplo sea Ti1 y Ti2 dos periodos pertenecientes a los tipos I1 y I2, con I1
I= {il,im,ie,ij,iv,is},
Lunes
} Sea D = {1,...,d}
Martes
Mircoles Jueves
Viernes Sbado
C.
C.
Aula 101
}
Aula 102
Aula 103
Aula 104
15
UNMSM
T en que se puede
C.
Ejemplo: TC = {
Base de Datos 0 0 0 1 1 1 0 0 0 0
16
UNMSM Ejemplo: TD = {
50
40
30
50 alumnos (Algortmica I)
} Sea H = {h1,...,hc} h
50
50
40
6 horas (Algortmica I)
}
17
UNMSM
D.
D.
Sea S = {s1,...,sn} el vector de semestres (o ciclos acadmicos) que est asociado a los diferentes cursos. Cada s un conjunto de cursos Cs
S contiene
en un mismo periodo de tiempo. Dos semestres distintos no pueden tener cursos iguales, por ejemplo sea Cs1 y Cs2 dos cursos pertenecientes a los semestres S1 y S2, con S1 debe ocurrir que Cs1
S2
Cs2 = 0.
Definimos de antemano S= {s1,s2,s3,s4,s5,s6,s7,s8,s9,s10}, cada elemento correspondiente a los cursos de los semestres del 1 al 10. Ejemplo: S = {
Semestre I
}
Semestre X
Sea M = {m1..,mn} el vector de tipos para indicar las clases de aulas existentes. Cada m
18
UNMSM
Facultad de Ingeniera de Sistemas e Informtica sea Am1 y Am2 dos aulas pertenecientes a los tipos M1 y M2, con M1
Am2
0.
cada elemento
Definimos de antemano
M={mt,mp,ml},
Teora
}
Prctica Laboratorio
C.
Ejemplo: PrvCD= {
T.
Ejemplo: PrvTC = {
Base de Datos 0 0 0 0 0 0 0 1 0
Inteligencia Artificial 0 0 0 0 0 0 1 0 0
19
UNMSM
T donde un curso
C se pueda dictar.
Ejemplo: DTC = { }
Algortmica I 1 1 0 0 0 0 0 0 0
Base de Datos 0 0 0 1 1 0 0 0 0
Inteligencia Artificial 0 0 0 0 0 0 1 1 0
1.2.3.3.1.2 Parmetros Definimos los siguientes parmetros que corresponden a cada uno de los recursos involucrados: y = cantidad de periodos semanales z = cantidad de aulas, n = cantidad de cursos, p = cantidad de docentes,
y, z, n, p
1.2.3.3.1.3 Variables de decisin Tenemos Xijkl como variables binario-valoradas: 1, si asignan un aula i, al curso j, un docente k, en el periodo l. 1 si el aula i es asignada al curso j con el docente k en el periodo l. Xijkl = 0 si no.
20
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 1.2.3.3.1.4 Variable de duracin Tenemos W ijkl tiempo de ocupacin del aula i por el curso j con el docente k en el periodo l.
RZ
Wijkl =
0
1.2.3.3.1.5 Modelamiento de Restricciones Obligatorias Este modelamiento se dar en funcin de las restricciones obligatorias mencionadas anteriormente:
Todo curso j que se dicta en un periodo especfico l debe tener asignado a lo ms un docente k en un aula i.
z p i jkl
X
i =1 k =1
j C , l T
(ROG1)
Todo docente k que ensea en un periodo especfico l debe tener asignado a lo ms un curso j en un aula i.
z n i jkl
X
i =1 j =1
k D, l T
(ROG2)
X
j =1 k =1
i A, l T
(ROG3)
Todo docente k debe tener asignado un curso j que corresponda a su preferencia. [DC = Matriz de docentes y cursos]
X i jkl = DC jk
de tiempo.
Xi jkl = 1, i A, l T , j C , k D
(ROG4)
Todo docente k debe tener asignado un curso j dentro de su disponibilidad [TD = Matriz de docentes y periodos de tiempo]
X i jkl = TD jk
X i jkl = 1, i A, l T , j C , k D
(ROG5)
21
UNMSM
Todo curso j debe tener una cantidad de alumnos Q matriculados que no sobrepase la capacidad K del aula i.
(ROG6)
X
i =1 k =1 l =1
* Wi jkl = H j
j C
(ROG7.a)
Todo curso j cuya cantidad de horas acadmicas sea par se le asignar bloques de dos horas diarias hasta cubrir la totalidad, sino se le asignar un da de tres horas y el resto de dos horas.
W ijkl = 2 + H j mod2
i A, l T , j C , k D
(ROG7.b)
Todo curso j debe ser nicamente asignado en una aula i con un docente k desde que inicia en un periodo a hasta la finalizacin de su tiempo de duracin W.
a +Wijka
X
l =a
i jkl
1 X i jka = 1, i A, l , a T , j C , k D
(ROG9)
Todo docente k tiene una cantidad mnima de horas NHD y una cantidad mxima de horas MHD de dictado de clases. [W = Vector de ocupacin del aula i por el curso j con el docente k en el periodo l]
z p y i jkl z p y
X
i =1 j =1 l =1
(ROE1)
Todo curso j de tipo teora Lt debe ser asignado a un aula i de tipo no laboratorio Mt.
L jT = MiT
X i jkl = 1, i A, l T , j C , k D
(ROE2.a)
Todo curso j de tipo prctica Lp debe ser asignado a un aula i de tipo no laboratorio Mp.
L jP = M iP
X i jkl = 1, i A, l T , j C , k D
(ROE2.b)
22
UNMSM
Todo curso j de tipo laboratorio Ll debe ser asignado a un aula i de tipo laboratorio Ml.
L jL = MiL
X i jkl = 1, i A, l T , j C , k D
(ROE3)
Todo curso j dentro de un rango con valor inicial a y un valor final b que pertenece a un semestre S y a un Grupo G debe ser asignado a un aula i y un docente k y no debe coincidir con otro rango de cursos de otro semestre y con ningn otro grupo.
p b z i jkl
X
k =1 j = a i =1
1 l T , a, b C [a, b] S [a, b] G
(ROE4)
X i jkl = 1, i A, l T , j C , k D
(ROE5)
X i jkl = 1, i A, l T , j C , k D
(ROE6)
Los cursos son clasificados en los turnos de maana, tarde y noche segn el semestre al que pertenecen
X i jkl = TTC jl
1.2.3.3.1.6 Modelamiento de Restricciones Deseables Este modelamiento se dar en funcin de las restricciones deseables mencionadas anteriormente:
Todo curso j que pertenece a un rango inicial a y rango final b no debe ser asignado en un mismo periodo l con respecto a otro rango inicial c y un rango final d que corresponden a semestres S consecutivos.
p b z p d z
(RDG1)
23
UNMSM
Los bloques de un curso deben de distribuirse adecuadamente durante la semana. Vi das que ocupa el curso en la semana / (ultimo da de la semana que ocupa el curso-primer da de la semana usado para el curso)
Vs j C
(RDG2)
Minimizar el nmero de horas libres entre el fin de una clase y el inicio de otra. Bi Total de horas ocupadas por algn curso/ (ultima hora ocupada del da por algn curso - primera hora ocupada del da por algn curso)
Bs i I
(RDG3)
DTC jl = X ijkl
X i jkl = 1
(RDG4) y (RDE1)
Todo curso j debe tener asignado un bloque de horas a lo ms una vez dentro de los periodos [a,b] que pertenecen a un da de la semana I.
z p b i jkl
X
i =1 k =1 l =a
j C , a, b T [a, b] I
(RDG5)
fog ( x) = fol ( x)
x =1
x = {1,.., N }
Donde x representa cada elemento de la matriz, N representa el nmero total de elementos en la matriz de cuatro dimensiones.
24
UNMSM
que chsg y chpg representan los conflictos de aulas y docentes entre semestres. 1.2.3.3.1.8 Criterio de Optimizacin
1.2.3.3.2. Modelo Particular Una vez definido el modelo general debemos adaptarlo a la FISI, dando como resultado un modelo particular el cual acota an ms el dominio del problema. 1.2.3.3.2.1 Conjunto de Datos Se cuenta con un total de 68 cursos a programar. Existen a lo mximo 3 grupos por cada curso a programar. Los cursos a programar se pueden dictar en las diferentes modalidades de tipo teora, practica y laboratorio Existen un total de 84 periodos de tiempo posibles que van desde el lunes a las 8 am. hasta el sbado a las 10:00 pm. definiendo la duracin por periodo de 60 minutos. Los diferentes periodos de tiempo son contenidos en los das lunes, martes, mircoles, jueves, viernes y sbado. Se cuenta con un total de una plana de 101 docentes. Se cuenta con un total de 25 aulas hbiles para dictar las clases Son 10 semestres (ciclos acadmicos) en total. Existen tres clasificaciones diferentes de aulas, de teora, prctica y laboratorio. 1.2.3.3.2.2 Parmetros 84 = cantidad de periodos semanales 25 = cantidad de aulas, 68 = cantidad de cursos, 101 = cantidad de docentes,
x, y, z, n, p
25
UNMSM
1.2.3.3.2.3 Variables de decisin Tenemos Xijkl como variables binario-valoradas: 1, si asignan una aula i, al curso j, un docente k, en el periodo l
RZ
W ijkl =
0
25 101
X
i =1 k =1
i jkl
j C , l T
(ROG1)
25
68
i jkl
X
i =1 j =1
1
1
k D, l T
i A, l T
(ROG2)
68 101
X
j =1 k =1
i jkl
(ROG3)
X i jkl = DC jk X i jkl = 1, i A, l T , j C , k D
X i jkl = TD jk
X i jkl = 1, i A, l T , j C , k D
X ijkl = 1 + (K i - Q j ) Xi jkl = 1, i A, l T , j C , k D
25 101 84
X
i =1 k =1 l =1
i jkl
* Ti jkl = H j
j C
26
UNMSM
T ijkl = 2 + H jmod2
a +T jlka
i A, l T , j C , k D
X
l =a
25 68
i jkl
84
1 X i jka = 1, i A, l , a T , j C , k D
25 i jkl 68 84
X
i =1 j =1 l =1
L jT = MiT
L jP = M iP
L jL = M iL
25 b 101
X
i =1 j = a j =1
1 l T , a, b C [a, b] S [a, b] L
(ROE5) (ROE6)
1.2.3.3.2.6 Modelamiento de Restricciones Deseables Segn las restricciones deseables mencionadas anteriormente:
25 b 101 i jkl
X
i =1 j = a k =1
25
101
(RDG1)
Vi das que ocupa el curso en la semana/ (ultimo da de la semana que ocupa el curso-primer da de la semana usado para el curso)
Vs
j C
(RDG2)
Bi Total de horas ocupadas por algn curso/ (ultima hora ocupada del da por algn curso - primera hora ocupada del da por algn curso)
Bs
i I
(RDG3)
DTC jl = X ijkl
X i jkl = 1
(RDG4) y (RDE1)
25 101
b i jkl
X
i =1 k =1 l = a
j C , a, b T [a, b] I
(RDG5)
27
UNMSM
fog ( x) =
fol ( x)
x =1
x = {1,..,14422800}
Donde x representa cada elemento de la matriz, N representa el nmero total de Elementos en la matriz de cuatro dimensiones. El valor 14422800 es producto de multiplicar las 25 aulas por los 68 cursos por los 101 docentes por los 84 periodos. 1.2.3.3.2.7.2 Funcin objetivo local
28
UNMSM
29
UNMSM
30
UNMSM
20 .00002
50 .00005
60 .00006 s
segundos segundo
.0004
.0009 s
.0016
.0025
.0036 s
segundos segundo
1 s
3.2
24.3 s
1.7
5.2 minutos
13.0 minutos
.001 s
1.0
17.9
12.7 das
35.7 aos
366 siglos
Tabla 1.1 Tiempos de los algoritmos Como se muestra en la Tabla 1.1, las funciones polinmicas N, N2, y N5 requieren tiempos de cmputo de segundos en problemas pequeos y de minutos en problemas grandes. Sin embargo, los tiempos de los problemas no-polinmicos crecen a partir de segundos a das e incluso a siglos, cuando el tamao del problema aumenta. Es decir, el tiempo de procesamiento incrementa mientras que el problema se hace ms grande.
31
UNMSM
32
UNMSM
1.3
Delimitaciones de la investigacin 1.3.1. Delimitacin Espacial La presente investigacin tiene como mbito geogrfico la Facultad de Ingeniera de Sistemas e Informtica de la Universidad Nacional Mayor de San Marcos. 1.3.2. Delimitacin Social
Esta investigacin delimita su estudio al beneficio que puedan obtener las autoridades encargadas de la elaboracin de horarios de clases en cuanto a la agilizacin de sus procesos, adems de la satisfaccin generada para el alumnado y los docentes.
1.3.3. Delimitacin Tcnica Esta investigacin delimita su estudio tcnico al desarrollo del anlisis y diseo de un sistema de apoyo a la decisin basado en algoritmos genticos que ayude a la elaboracin de horarios de clases. 1.4 Justificacin
Con este desarrollo se pretende obtener un modelo cuyo principal objetivo es el de reducir el tiempo y la ocurrencia de errores en la generacin manual de los horarios de clase por parte de las autoridades responsables de la Facultad de Ingeniera de Sistemas e Informtica de la Universidad Nacional Mayor de San Marcos, y satisfacer al mximo las necesidades de los usuarios. Esto significa un avance tecnolgico y organizativo cuyo propsito es el de minimizar los cruces entre cursos y horas, evitando extensos intervalos entre clases y disminuyendo los niveles de insatisfaccin entre los docentes y estudiantes. 1.4.1. Justificacin de carcter practico Desde el punto de vista prctico se plantea disear un sistema de apoyo a la decisin que a partir de las entradas genere un conjunto de posibles
33
UNMSM
horarios factibles de los cuales uno, previa seleccin por parte de las autoridades, podra convertirse en un horario de clase definitivo para su uso en el semestre en curso. 1.4.2. Justificacin de carcter metodolgico
Desde el punto de vista metodolgico esta investigacin es importante porque plantea una nueva variante del algoritmo gentico bsico aplicado a la generacin de horarios de clases a nivel universitario adems de aplicarlo en cada una de las fases del problema. 1.5 Objetivos 1.5.1. Objetivo General El objetivo general de nuestro trabajo es automatizar el proceso de generacin de horarios de clases con un margen de error de 2%, mediante el uso de algoritmos genticos, con el fin de reducir el tiempo y los recursos empleados en su elaboracin, adems de aumentar la calidad de los mismos y elevar el grado de satisfaccin por parte del alumnado y el docente. 1.6 Hiptesis General
La automatizacin del proceso de generacin de horarios de clases con un margen de error de 2%, mediante el uso de algoritmos genticos, reducir el tiempo y los recursos empleados, adems de aumentar la calidad de los mismos y elevar el grado de satisfaccin por parte del alumnado y el docente.
1.7
Variables e Indicadores
A continuacin detallaremos la variable independiente y las variables dependientes que forman parte de la hiptesis planteada, as como tambin el indicador asociado a dichas variables: Variable independiente 1: La automatizacin del proceso de generacin de horarios de clases.
34
UNMSM
Indicador
Numero de clases del horario acadmico semestral que infrinjan una o ms restricciones del problema.
Variable Dependiente 3: Reducir el uso de recursos implicados en la elaboracin de los horarios de clases Indicador
Numero de clases del horario acadmico semestral que infrinjan una o ms restricciones del problema.
35
UNMSM
Captulo 2: Marco Terico En este captulo se presentarn los conceptos bsicos que se requieren para abordar los algoritmos genticos, as como un ejemplo que permita comprender cmo aplicarlo a un problema de eleccin. 2.1. El proceso de evolucin
La mayora de los organismos evolucionan a travs de dos procesos primarios: la seleccin natural y la reproduccin. Mediante la seleccin se determina qu miembros de una poblacin sobreviven para reproducirse, y mediante la reproduccin se asegura la recombinacin de los genes de la descendencia. Esta mezcla del material gentico permite que las especies evolucionen mucho ms rpidamente de lo que lo haran si tuvieran slo la copia de los genes de uno de sus progenitores. El principio fundamental de la seleccin natural fue formulado por Darwin, anteriormente al descubrimiento de los mecanismos genticos, al observar que una diferencia entre el crecimiento de una poblacin y los recursos disponibles llevara a situaciones de competicin y adaptacin. Desconocedor en aquel momento de los
36
UNMSM
principios bsicos de la herencia mendeliana, Darwin conjetur la fusin de las cualidades de los padres mezclndose en los organismos de sus descendientes. La teora de la evolucin defendida por Charles Darwin se sustenta en los siguientes argumentos [18]: La naturaleza est en constante evolucin por lo tanto las especies cambian continuamente; con el paso del tiempo algunas se extinguen y otras nuevas aparecen. El proceso de cambio es gradual y continuo, no se produce a saltos discontinuos o por transformaciones sbitas. Los organismos que presentan semejanzas estn emparentados. El cambio evolutivo es el resultado del proceso de seleccin natural: los individuos ms eficientes a la hora de proporcionarse alimentos y hbitat, y con ms aptitudes para dejar un mayor nmero de descendientes, son los ms favorecidos y transmiten a sus hijos los caracteres favorables. En la lucha por la existencia sobreviven los ms aptos. Las cuestiones, relacionadas con los mecanismos hereditarios, a las que la teora de Darwin no poda responder han sido contestadas con el desarrollo de la Gentica. Mendel descubri los principios bsicos de la transferencia de factores hereditarios de padres a hijos, donde se estableci que los cromosomas son los principales portadores de la informacin hereditaria y que los genes, que representan los factores hereditarios, estn alineados en cromosomas. El origen de las variaciones en la herencia se explica por la existencia de ciertos cambios (mutaciones) en el texto gentico, pudiendo sufrir mutacin todos los organismos de forma aleatoria. Pero adems, en aquellos individuos que se reproducen sexualmente se puede considerar el proceso por el cual las caractersticas de los organismos se mezclan al combinar su ADN (cruce). Este proceso es la fuente de inspiracin de los algoritmos genticos y, en consecuencia, su idea bsica es imitar lo que hace la naturaleza. Por esta razn estos algoritmos utilizan un vocabulario tomado de la Gentica.
37
UNMSM 2.2.
Los primeros intentos serios de relacionar la informtica y la evolucin surgieron a principios de los aos sesenta cuando varios bilogos comenzaron a experimentar con simulaciones de sistemas genticos; esto es, modelos computacionales que imitan la evolucin biolgica. En los ltimos aos, se ha mostrado un creciente inters en una nueva tcnica de bsqueda basada en la teora de la evolucin y que se conoce como Algoritmo Gentico. Esta tcnica se basa en los mecanismos de seleccin que utiliza la naturaleza, de acuerdo a los cuales los individuos ms aptos de una poblacin son los que sobreviven, al adaptarse ms fcilmente a los cambios que se producen en su entorno. La tcnica de los Algoritmos Genticos se encuentra dentro de un marco ms amplio que viene a ser la Inteligencia Artificial, y ms an en la rama que se ha denominado Computacin Evolutiva. El trmino Computacin Evolutiva se refiere al estudio de los fundamentos y aplicaciones de ciertas tcnicas heursticas de bsqueda basadas en los principios naturales de la evolucin. Una gran variedad de algoritmos evolutivos han sido propuestos, pero principalmente pueden clasificarse en: Algoritmos Genticos, Programacin Evolutiva, Estrategias Evolutivas, Sistemas Clasificadores y Programacin Gentica. Esta clasificacin se basa sobre todo en detalles de desarrollo histrico ms que en el hecho de un funcionamiento realmente diferente, de hecho las bases biolgicas en las que se apoyan son esencialmente las mismas. Las diferencias entre ellos se centran en los operadores que se usan en cada caso y en general en la forma de implementar la seleccin, reproduccin y sustitucin de individuos en una poblacin [33]. Aunque los detalles de la evolucin no han sido completamente comprendidos, incluso hoy en da, existen algunos puntos en los que se fundamentan [33]: La evolucin es un proceso que opera a nivel de cromosomas, y no a nivel de individuos. Cada individuo es codificado como un conjunto de cromosomas. La seleccin natural es el mecanismo mediante el cual los individuos mejor adaptados son los que tienen mayores posibilidades de reproducirse. El proceso evolutivo tiene lugar en la etapa de la reproduccin. Es en esta
38
UNMSM
etapa donde se produce la mutacin, que es la causante de que los cromosomas de los hijos puedan ser diferentes a los de los padres, y el cruce, que combina los cromosomas de los padres para que los hijos tengan cromosomas diferentes. De forma breve, comentaremos cada uno de los algoritmos evolutivos mencionados anteriormente, para tener una idea de las similitudes y diferencias entre ellos [33]: Los Algoritmos Genticos resuelven los problemas generando poblaciones sucesivas a las que se aplican los operadores de mutacin y cruce. Cada individuo representa una solucin al problema, y se trata de encontrar al individuo que represente a la mejor solucin. La Programacin Gentica funciona igual que la tcnica anterior pero se centra en el estudio de problemas cuya solucin es un programa. De manera que los individuos de la poblacin son programas que se acercan ms o menos a realizar una tarea que es la solucin. La Programacin Evolutiva es otro enfoque de los algoritmos genticos, en este caso el estudio se centra en conseguir operadores genticos que imiten lo mejor posible a la naturaleza, en cada caso, ms que en la relacin de los padres con su descendencia. En este caso no se utiliza el operador de cruce, tomando la mxima importancia el operador de mutacin. Estrategias Evolutivas se centran en el estudio de problemas de optimizacin e incluyen una visin del aprendizaje en dos niveles: a nivel de genotipo, y a nivel de fenotipo. Y por ltimo los Sistemas Clasificadores engloban el estudio de problemas en los que la solucin buscada se corresponde con toda una poblacin.
El comienzo del desarrollo de los algoritmos genticos se ha debido realmente al trabajo de John Holland, investigador matemtico de la Universidad de Michigan, quien estaba convencido de que la recombinacin de grupos de genes, que se realiza mediante el cruce, era la parte ms importante de la evolucin. Desde pequeo se preguntaba cmo logra la naturaleza crear seres cada vez ms perfectos (aunque, esto no es totalmente cierto, o en todo caso depende de qu entienda uno por perfecto). Lo curioso era que todo se lleva a cabo a base de interacciones locales entre individuos, y entre stos y lo que les rodea. Fue a travs de la lectura de un libro escrito por un bilogo evolucionista, R. A. Fisher, titulado "La teora gentica de la seleccin natural", como comenz a
39
UNMSM
descubrir los medios de llevar a cabo sus propsitos de comprensin de la naturaleza. De ese libro aprendi que la evolucin era una forma de adaptacin ms potente que el simple aprendizaje. Su objetivo era lograr que las computadoras aprendieran por s mismas. A la tcnica que invent Holland se le llam originalmente "planes reproductivos", pero fue a principios de los 60, en la Universidad de Michigan, donde Holland imparta un curso titulado Teora de Sistemas Adaptativos y con la participacin de sus alumnos crearon las ideas que ms tarde se convertiran en una tcnica de programacin, el Algoritmo Gentico, que se adapta a la evolucin tanto por el cruce como por la mutacin. Durante la dcada siguiente trabaj para ampliar el alcance de este tipo de algoritmos y fruto de ese trabajo publica en 1975 la primera monografa sobre el tema, Adaptation in Natural and Artifical Systems, en la que se sientan las bases tericas que fundamentan el desarrollo de los Algoritmos Genticos desde el punto de vista computacional, abstrae los conceptos de la gentica natural y los aplica a la economa y al reconocimiento de patrones. El propsito de Holland era estudiar de un modo formal el fenmeno de la adaptacin, tal y como ocurre en la naturaleza, y desarrollar vas de extrapolar esos mecanismos de adaptacin natural a los sistemas computacionales. Desde entonces el campo de aplicaciones de este tipo de algoritmos no ha dejado de crecer: diseos de turbinas de aviones, predicciones de la evolucin burstil, estudios de progresin de enfermedades (mediante comparacin de imgenes tomadas por resonancia magntica), anlisis de la estructura del cristal lquido, son algunos de los ejemplos.
2.3.
Una definicin bastante completa de algoritmo gentico es la propuesta por John Koza [12]: "Es un algoritmo matemtico altamente paralelo que transforma un conjunto de objetos matemticos individuales con respecto al tiempo usando operaciones modeladas de acuerdo al principio Darwiniano de reproduccin y supervivencia del ms apto, y tras haberse presentado de forma natural una serie de operaciones genticas de entre las que destaca la recombinacin sexual. Cada uno de estos objetos matemticos suele ser una cadena de caracteres (letras o nmeros) de longitud fija que se ajusta al modelo de las cadenas de cromosomas, y se les asocia con una cierta funcin matemtica que refleja su aptitud. "
40
UNMSM
Segn Michalewicz [18]: En general, cualquier tarea abstracta para ser llevada a cabo puede ser pensada como la solucin de un problema. Para los espacios pequeos, los mtodos clsicos exhaustivos son por lo general suficientes; para grandes espacios deben ser empleadas tcnicas especiales de inteligencia artificial. Los algoritmos genticos estn entre esas tcnicas, son algoritmos estocsticos cuyos mtodos de bsqueda modelan algunos fenmenos naturales: la herencia gentica y la lucha darwiniana por la supervivencia. Los Algoritmos Genticos (AG) son mtodos adaptativos que pueden usarse para resolver problemas de bsqueda y optimizacin, y estn basados en el proceso gentico de los organismos vivos. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios de la seleccin natural y la supervivencia de los ms fuertes. Por imitacin de este proceso, los Algoritmos Genticos son capaces de ir creando soluciones para problemas del mundo real. La evolucin de dichas soluciones hacia valores ptimos del problema depende en buena medida de una adecuada codificacin de las mismas y del diseo del algoritmo gentico [5]. Un algoritmo gentico consiste en una funcin matemtica o una rutina de software que toma como entradas a los individuos de una poblacin y retorna como salidas cuales de ellos deben generar descendencia para la nueva generacin. Dado un problema especfico a resolver, la entrada del Algoritmo Gentico es un conjunto de soluciones potenciales a ese problema, codificadas de alguna manera, y una mtrica llamada funcin de aptitud que permite evaluar cuantitativamente a cada individuo. Estos individuos pueden ser soluciones que se sabe que funcionan, con el objetivo de que el Algoritmo Gentico las mejore, pero que se suelen generar aleatoriamente. Un punto clave de este modelo, es que el proceso de adaptacin no se hace cambiando incrementalmente un solo individuo, sino manteniendo una poblacin de individuos a partir de los cuales se generan nuevos individuos haciendo uso de los operadores genticos. Cada individuo en la poblacin est asociado con una aptitud y los valores se usan en competencia para determinar qu individuos sern usados para formar nuevos individuos. Los mejores individuos o soluciones sobreviven a lo largo de las generaciones y las peores van desapareciendo y son sustituidas por nuevas.
41
UNMSM
Una de las caractersticas de los AG es su habilidad de explotar informacin acumulada acerca de un espacio de bsqueda inicialmente desconocido para guiar la bsqueda subsecuente a subespacios tiles. Su aplicacin est enfocada sobre todo a espacios de bsqueda grandes, complejos y poco entendidos. 2.4. Analoga de un algoritmo gentico con la naturaleza
En la naturaleza, los individuos compiten entre si por recursos tales como comida, agua y refugio. Adems, los animales de la misma especie normalmente antagonizan para obtener una pareja. Aquellos individuos que tengan ms xito tendrn probablemente un nmero mayor de descendientes, por lo tanto, mayores probabilidades de que sus genes sean propagados a lo largo de sucesivas generaciones. La combinacin de caractersticas de los padres bien adaptados, en un descendiente, puede producir muchas veces un nuevo individuo mucho mejor adaptado que cualquiera de sus padres a las caractersticas de su medio ambiente [9]. Los Algoritmos Genticos utilizan una analoga directa del fenmeno de evolucin en la naturaleza. Trabajan con una poblacin de individuos, cada uno representando una posible solucin a un problema dado. Adems recibe una calificacin relacionada con la eficiencia de cada posible solucin, siguiendo con la relacin anloga esto vendra siendo en la naturaleza la capacidad de supervivencia de cada individuo o la capacidad de competencia con otros individuos para obtener recursos. Con respecto a esto, a cada individuo se le asigna una puntuacin de adaptacin dependiendo de que tan buena sea la respuesta al problema. A los ms adaptados se les da la oportunidad de reproducirse mediante cruzamientos con otros individuos de la poblacin, produciendo descendientes con caractersticas de ambos padres. Al producirse estas reproducciones se da paso a una nueva generacin que a su vez se convierte en una nueva poblacin. Los miembros menos adaptados poseen pocas probabilidades de que sean seleccionados para la reproduccin, y desaparecen. Una nueva poblacin de posibles soluciones es generada mediante la seleccin de los mejores individuos de la generacin actual, emparejndolos entre ellos para producir un nuevo conjunto de individuos. Esta nueva generacin contiene una proporcin ms alta de las caractersticas posedas por los mejores miembros de la generacin anterior. De esta forma, a lo largo de varias generaciones, las caractersticas buenas son difundidas a lo largo de la poblacin mezclndose con otras. Con la nueva
42
UNMSM
poblacin se repite el proceso hasta poder encontrar los resultados esperados en un individuo o en una poblacin. Favoreciendo el emparejamiento de los individuos mejor adaptados, es posible recorrer las reas ms prometedoras del espacio de bsqueda [9]. Si el Algoritmo Gentico ha sido diseado correctamente, la poblacin converger a una solucin ptima o aceptable al problema. Los dos procesos que ms contribuyen a la evolucin son el cruzamiento y la adaptacin basada en la seleccin y reproduccin. La mutacin tambin juega un papel significativo, pero no se puede determinar qu tan importante sea su rol; adems no debe ser utilizada demasiado ya que el Algoritmo Gentico se puede convertir en una bsqueda al azar, pero su utilizacin asegura que ningn punto en el espacio de bsqueda tenga probabilidad cero de ser examinado. Se han realizado diversos estudios en profundidad acerca de los mecanismos de la evolucin, y aunque quedan partes por entender, muchos aspectos estn bastante explicados. De manera muy general podemos decir que, en la evolucin de los seres vivos el problema al que cada individuo se enfrenta cada da es la supervivencia. Para ello cuenta con las habilidades innatas provistas en su material gentico. A nivel de los genes, el problema es el de buscar aquellas adaptaciones beneficiosas en un medio hostil y cambiante. Debido en parte a la seleccin natural, cada especie gana una cierta cantidad de "conocimiento", el cual es incorporado a la informacin de sus cromosomas. As pues, la evolucin tiene lugar en los cromosomas, en donde est codificada toda la informacin del ser vivo. La informacin almacenada en el cromosoma vara de unas generaciones a otras. En el proceso de formacin de un nuevo individuo, se combina la informacin cromosmica de los progenitores aunque la forma exacta en que se realiza es desconocida. Aunque muchos aspectos no estn totalmente resueltos, podemos definir algunos principios generales aceptados. Entre ellos tenemos: 1. La evolucin se realiza a nivel de los cromosomas en lugar de los individuos a los que representan. 2. La seleccin natural es el proceso por el que los cromosomas con "buenas estructuras" se reproducen ms a menudo que los dems.
43
UNMSM
3. La evolucin tiene lugar en el proceso de reproduccin mediante la combinacin de los cromosomas de los progenitores. Llamamos recombinacin al proceso que tiene como resultado la formacin del cromosoma del descendiente. Tambin son de tener en cuenta las mutaciones que pueden alterar dichos cdigos. 4. La evolucin biolgica no posee un almacenamiento en memoria, en el sentido de que durante la formacin de los cromosomas solamente se considera la informacin del perodo anterior. En el contexto de los algoritmos genticos, la idea bsica es la siguiente: generar un conjunto con algunas de las posibles soluciones. Cada una va a ser llamada individuo, y a dicho conjunto se le denominar poblacin. Un individuo se entiende como una solucin posible al problema que puede representarse mediante una cadena de cromosomas. Se denomina cromosoma a cada una de las cadenas de ADN que se encuentran en el ncleo de las clulas y son responsables de la transmisin de informacin gentica. Hoy en da se sabe que los cambios de dicha informacin se efectan en los genes de un individuo (unidad bsica de codificacin de cada uno de los atributos de un ser vivo), y que sus atributos ms deseables, por ejemplo los que le permiten adaptarse mejor a su entorno, se transmiten a sus descendientes cuando ste se reproduce sexualmente. Un gen es fundamentalmente una unidad de herencia, una seccin de ADN que codifica una cierta funcin bioqumica. Dependiendo de su especie, un organismo puede tener un nmero variable de genes en su ADN (desde una docena de genes hasta decenas de miles). Cada gen es capaz de ocupar una nica regin en particular de un cromosoma, a lo cual se le llama locus. A su vez pueden existir formas alternativas o valores del gen llamadas alelos. Las caractersticas de los individuos, sean beneficiosas o no, se van a denominar fenotipos. Un fenotipo puede estar en ms de un cromosoma, en cuyo caso puede ser que el hijo herede un fenotipo que no tena ni el padre ni la madre, sino una combinacin de ambos. Un ejemplo en el humano es el color de la piel o la estructura del crneo. A su vez se denomina genotipo a la informacin contenida en el genoma de un individuo. Puede verse como lo que potencialmente puede llegar a ser el individuo. Por lo tanto el fenotipo podra entenderse como una solucin de-codificada mientras que el genotipo como una solucin codificada. Los rasgos especficos y observables de un individuo constituyen su fenotipo En caso de que el hijo tenga parte de los genes del padre y parte de los genes de la
44
UNMSM
madre que intervienen en un fenotipo, se va a crear una caracterstica nueva asociada a ese fenotipo. De todas formas, no es un enfoque muy frecuente, ya que debemos asegurar que el conjunto de los fenomas tendr ley de composicin interna respecto al operador de cruce definido sobre el alfabeto cromosmico, el cual es utilizado para representar los valores de cada gen de los cromosomas del individuo. Por otro lado, que un cromosoma codifique ms de un fenotipo es ms raro todava. El cromosoma debe tener en dicho caso tantos valores como el producto del nmero de valores posibles que tenga cada fenotipo del cromosoma. Es de vital importancia la forma de codificar los fenotipos en los cromosomas y la determinacin de qu es fenotipo; es decir, cmo la informacin va a ser almacenada en el cdigo gentico. Escoger equivocadamente la forma de almacenar la informacin puede ralentizar la convergencia, es decir, que se tardar ms en encontrar la solucin o nunca converger en una solucin debido a que la poblacin est errando aleatoriamente por efecto de las mutaciones y de los cruzamientos sin llegar nunca a un punto estable, a este fenmeno se le denomina deriva gentica. Dado que un algoritmo gentico acta como un mtodo de bsqueda multidireccional sobre una poblacin de posibles soluciones, sta sufre la simulacin de una evolucin: En cada generacin las soluciones relativamente buenas se reproducen, mientras las relativamente malas mueren. Durante la evaluacin se decodifica el gen y se convierte en una serie de parmetros de un problema. Luego se halla la solucin del problema a partir de esos parmetros y se le da una puntuacin en funcin de lo cerca que est de la mejor solucin. A esta puntuacin se le llama fitness. Para distinguir las diferentes soluciones se usa una funcin evaluadora que juega el papel del entorno. Esta funcin se denomina funcin de adaptacin, funcin de ajuste o funcin de idoneidad lo cual determina el grado de adaptacin de un individuo y, en el campo de la optimizacin funcional, es la funcin objetivo del problema en cuestin; es decir, la funcin a optimizar. La seleccin es el proceso mediante el cual algunos individuos en una poblacin son seleccionados para reproducirse basados en su aptitud. Tenemos la seleccin dura que se da cuando solamente los mejores individuos se mantienen para generar progenia y la seleccin blanda cuando se utilizan mecanismos probabilsticos para mantener como padres a individuos que tengan aptitudes relativamente bajas. Posteriormente se establece un proceso de creacin de un nuevo individuo a partir de dos progenitores (reproduccin sexual) o de un nico progenitor (reproduccin asexual) a lo cual se le denomina reproduccin. Durante
45
UNMSM
la reproduccin sexual ocurre la recombinacin o cruzamiento. La presin de seleccin o presin selectiva determina la intensidad con la que el entorno tiende a dar ventajas adaptativas a organismos o a eliminar su informacin gentica. La mutacin consiste en el cambio individual de nucletidos de padre a hijo. En general, las mutaciones son provocadas por errores probabilsticos en el mecanismo de replicacin del ADN.
2.5.
Cuando las personas se enfrentaron con problemas que no podan ser solucionados por mtodos matemticos o analticos, y que la nica forma de resolverlos era a travs de prueba y error dirigido, es decir, probar dnde se crea que va a mejorar el resultado, se dieron cuenta de que este proceso era similar al proceso que segua la naturaleza, as que se intent copiar su manera de operar y se crearon los algoritmos genticos que imitan el proceso evolutivo de la naturaleza. Un algoritmo gentico est compuesto por [22]: Mdulo evolutivo: Presenta un mecanismo de decodificacin que se encarga de interpretar la informacin de un individuo y una funcin de evaluacin que mide la calidad del mismo. Mdulo poblacional: Posee una representacin poblacional y las tcnicas necesarias para poder manipularla como son la tcnica de representacin, el criterio de seleccin y de reemplazo. Aqu tambin se define el tamao de la poblacin y la condicin de terminacin. Mdulo reproductivo: Contiene los operadores genticos. 2.6. Componentes de un algoritmo gentico
A grandes rasgos, un algoritmo gentico hace lo siguiente: genera una poblacin inicial de soluciones, calcula su rendimiento, selecciona padres y reproduce soluciones utilizando informacin de los padres; este proceso se repite hasta que se cumpla una condicin de terminacin previamente establecida. Un Algoritmo gentico tiene cinco componentes bsicos: Una representacin de las soluciones potenciales del problema.
46
UNMSM
Antes de que un algoritmo gentico pueda empezar a trabajar en un problema, se necesita un mtodo para codificar las soluciones potenciales del problema de forma que una computadora pueda procesarlas. Un enfoque comn es codificar las soluciones como cadenas binarias: secuencias de 1s y 0s, donde el dgito de cada posicin representa el valor de algn aspecto de la solucin. Otro mtodo similar consiste en codificar las soluciones como cadenas de enteros o nmeros decimales, donde cada posicin, de nuevo, representa algn aspecto particular de la solucin. Este mtodo permite una mayor precisin y complejidad que el mtodo comparativamente restringido de utilizar slo nmeros binarios, y a menudo est intuitivamente ms cerca del espacio de problemas. Un tercer mtodo consiste en representar a los individuos de un AG como cadenas de letras, donde cada letra representa un aspecto especfico de la solucin. La virtud de estos tres mtodos es que facilitan la definicin de operadores que causen los cambios aleatorios en los individuos seleccionados: cambiar un 0 por un 1 o viceversa, sumar o restar al valor de un nmero una cantidad elegida al azar, o cambiar una letra por otra. Un procedimiento para crear una poblacin inicial de posibles soluciones. La poblacin inicial suele ser generada aleatoriamente, pero dependiendo del problema, tambin se pueden utilizar otros mtodos para obtener esta solucin inicial. ltimamente se estn utilizando mtodos heursticos para generar soluciones iniciales de buena calidad. En este caso, es importante garantizar la diversidad estructural de estas soluciones para tener una representacin de la mayor parte de poblacin posible o al menos evitar la convergencia prematura. Una funcin de evaluacin que permite clasificar las soluciones en trminos de su aptitud. En general, los problemas de optimizacin tienen una funcin que se quiere minimizar o maximizar. Cada vez que se obtiene una solucin cualquiera, sta tiene un valor de dicha funcin, con este valor se pueden comparar las soluciones y determinar cul es mejor. A esta funcin se le llama funcin objetivo. Dicha funcin gua el mecanismo de bsqueda a travs del operador de seleccin. La influencia de la funcin es fundamental para determinar los individuos candidatos a sobrevivir que sern aquellos individuos a los que se aplicarn los operadores evolutivos.
47
UNMSM
Un conjunto de operadores de evolucin que alteran la composicin de los individuos de la poblacin a travs de las generaciones. Una vez que se tienen seleccionados los padres es necesario combinarlos para generar nuevos cromosomas que nos sirvan para ir mejorando los rendimientos y a partir de ah llegar a una solucin final. Una manera de hacer esta reproduccin es tomar informacin de cada uno de los padres y combinarla, es decir, se seleccionan algunos genes de los padres y se mezclan para crear un nuevo cromosoma. A este proceso se le determina recombinacin (cruzamiento o emparejamiento). Tambin se pueden reproducir los cromosomas mediante un proceso llamado mutacin, por medio del cual se toma un cromosoma, y se modifican algunos de sus genes, de acuerdo a un porcentaje llamado porcentaje de mutacin, para producir un nuevo cromosoma. Dependiendo de cada las caractersticas del problema que se quiere resolver se pueden utilizar diferentes mtodos para la reproduccin de cromosomas, incluso se pueden combinar mtodos. En algunas ocasiones parte de la poblacin es reproducida por medio de recombinacin y el resto por medio de mutacin Una configuracin paramtrica de elementos tales como el tamao de la poblacin, probabilidad de cruzamiento, probabilidad de mutacin, criterio de parada, etc. Sobre la configuracin paramtrica podemos indicar lo siguiente: o En general los AG trabajan sobre una poblacin fija de n individuos, inicializada aleatoriamente. o El tamao de la poblacin debe ser un nmero tal que permita mantener diversidad en los individuos solucin, sin sacrificar la eficiencia computacional del mecanismo de bsqueda. El tamao de esta poblacin depende de varios factores, uno de estos es el tipo de representacin que se tiene para los cromosomas. Usualmente, con la representacin binaria, las poblaciones suelen ser grandes mientras que con otro tipo de representaciones se reduce el tamao de la poblacin. o Las probabilidades de aplicacin de los operadores evolutivos definen el balance entre la exploracin del espacio de bsqueda y la explotacin de buenas soluciones.
48
UNMSM
Facultad de Ingeniera de Sistemas e Informtica El criterio de parada puede especificar un esfuerzo prefijado (en nmero de generaciones) o involucrar aspectos dinmicos de la evolucin (variaciones en los valores mejor o promedio) de la funcin de fitness. Usualmente se determinan los valores apropiados mediante anlisis empricos.
2.7.
Para resolver un problema mediante algoritmos genticos se deben considerar las siguientes caractersticas [18]: Son algoritmos estocsticos. Dos ejecuciones distintas pueden dar dos soluciones distintas. Esto es til por el hecho de que hay gran cantidad de soluciones vlidas, por lo que es interesante que distintas ejecuciones nos puedan dar resultados distintos.
Son algoritmos de bsqueda mltiple, de los que se obtiene como respuesta varias soluciones. Aunque habitualmente los individuos de la poblacin final son similares, los individuos suelen ser distintos entre s. Con el modelo de paralelizacin, la probabilidad de obtener muchas soluciones distintas es ms alta todava; por ello, nos podemos quedar con la solucin que ms nos convenga segn la naturaleza del problema. Son los algoritmos que hacen una barrida mayor al subespacio de posibles soluciones vlidas. De hecho, se considera que, de todos los algoritmos de optimizacin estocsticos, los algoritmos genticos son de los ms exploratorios disponibles. A diferencia de otros algoritmos, cuya convergencia y resultado final son fuertemente dependientes de la posicin inicial, en los algoritmos genticos salvo poblaciones iniciales realmente degeneradas, en los que el operador de mutacin va a tener mucho trabajo - la convergencia del algoritmo es poco sensible a la poblacin inicial si sta se escoge de forma aleatoria y es lo suficientemente grande. El algoritmo gentico es excelente descartando subespacios realmente malos. Cada cierto tiempo, la poblacin vuelve dar el salto evolutivo, y se produce un incremento en la velocidad de convergencia excepcional. La razn de esto es que algunas veces aparece una mutacin altamente beneficiosa, o un individuo excepcional, que propaga algn conjunto de cromosomas excepcional al resto de la poblacin.
49
UNMSM
La optimizacin es funcin de la representacin de los datos. Este es el concepto clave dentro de los algoritmos genticos, ya que una buena codificacin puede hacer la programacin y la resolucin muy sencillas, mientras que una codificacin errada nos va a obligar a estudiar que el nuevo genoma cumple las restricciones del problema, y en muchos problemas tendremos que abortar los que no cumplan las restricciones, por ser stas demasiado complejas. Adems, la velocidad de convergencia va a estar fuertemente influenciada por la representacin. Es una bsqueda paramtricamente robusta. Eso quiere decir que hemos de escoger adecuadamente los parmetros del algoritmo para que converja. Con tasas razonables, va a converger -mejor o peor- en una solucin razonablemente buena si la representacin es la adecuada. Por ltimo, los algoritmos genticos son intrnsecamente paralelos. Esto significa que, independientemente de que se implemente de forma paralela o no, buscan en distintos puntos del espacio de soluciones de forma paralela. Ese paralelismo intrnseco permite que sean fcilmente paralelizables, es decir, que sea fcil modificar el cdigo para que se ejecute simultneamente en varios procesadores.
2.8.
Existen mltiples propuestas y variantes de algoritmos genticos. En este parte estudiaremos la propuesta original de Goldberg (1989), conocida como ALGORITMO GENTICO SIMPLE. La representacin tradicionalmente utilizada es una cadena binaria. A la cadena general se le llama cromosoma. A cada subcadena (posicin en la cadena general) se le denomina gen y al valor dentro de esta posicin se le llama alelo. La longitud de la representacin depende de las caractersticas del problema (nmero de variables, nmero de funciones objetivo, dimensin del dominio), y de caractersticas de la solucin buscada (precisin deseada, por ejemplo). La representacin es el genotipo que se corresponde con una solucin al problema (fenotipo). Existe un proceso de codificacin (y su inverso de decodificacin) que permite pasar de fenotipo a genotipo y viceversa.
50
UNMSM
La codificacin especifica una funcin de correspondencia fC: S {0,1}*, siendo S el espacio de soluciones del problema. La funcin inversa es la decodificacin fD: {0,1}* S, puede ser una funcin parcial. La complejidad de fC y de fD depender de las caractersticas del problema y de las variables a codificar.
Cromosoma
1 Gen (1 ms posiciones)
2.8.1. Funcionamiento El proceso algortmico bsico del AG es como sigue: 1. [Inicio] se genera la poblacin aleatoria de n cromosomas (soluciones posibles para el problema). 2. [Aptitud] se evala la aptitud f (x) de cada cromosoma x de la poblacin. 3. [Prueba] si la condicin de trmino est satisfecha, se para el algoritmo, se devuelve la mejor solucin de la poblacin actual y se va al paso 7. 4. [Nueva poblacin] se crea una nueva poblacin repitiendo los siguientes pasos, hasta que se cumpla la condicin de parada. a. [Seleccin] se selecciona dos cromosomas padres, de una poblacin, segn su aptitud (cuanto mejor es la aptitud, mayor es la probabilidad de ser seleccionado). b. [Emparejamiento] con una probabilidad de emparejamiento, los padres se emparejan para formar a un nuevo descendiente (hijos). Si no se realiza emparejamiento alguno, el descendiente es la copia exacta de los padres. c. [Mutacin] con una probabilidad de mutacin, el nuevo descendiente muta (en alguna posicin de su cromosoma).
51
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 5. [Sustituir] la nueva poblacin generada es aplicada para otra iteracin del algoritmo. 6. [Bucle] se va al paso 2. 7. Fin del algoritmo.
COMIENZO
Mutacin Descendiente muta Aptitud Evaluacin de fitness Emparejamiento Formar nuevo individuo
FIN
Figura 2.2. Funcionamiento de un algoritmo gentico
2.8.2. Algoritmo bsico El Algoritmo Gentico Simple, tambin denominado Cannico, presenta un conjunto de pasos u operaciones que permiten hallar la solucin a un problema. Dado un estado inicial y una entrada, a travs de pasos sucesivos y bien definidos se llega a un estado final, obteniendo una solucin.
52
UNMSM
Facultad de Ingeniera de Sistemas e Informtica A continuacin mostraremos el procedimiento bsico del AG:
Begin t:=0 Inicializar P(t) // Generar una poblacin inicial Evaluar P(t) // Computar la funcin de evaluacin Mientras no sea condicin de trmino, repetir t : = t+1 Seleccionar P(t+1) a partir de P(t) Emparejamiento sobre P(t) // Obtener descendientes Aplicar Mutacin sobre P(t) // Segn probabilidad Sustituir P(t) por P(t+1) // Insertar la nueva generacin Evaluar P(t) // Computar la funcin de evaluacin Fin Mientras End
Figura 2.3. Pseudocdigo de un algoritmo gentico Donde P(t) es la poblacin de individuos en la generacin t; Emparejamiento y Mutacin son operadores genticos que permiten recombinar la informacin contenida en los cromosomas. En la aplicacin de algoritmos genticos, se necesita una codificacin o representacin del problema que resulte adecuada al mismo. Adems se requiere una funcin de evaluacin o de adaptacin al problema, la cual asigna un valor a cada posible solucin codificada indicando la bondad de la solucin. Durante la ejecucin del algoritmo, los padres deben ser seleccionados para la reproduccin o intercambio gentico lo que producir nuevos hijos o soluciones, a los cuales, con cierta probabilidad, se les aplicar una mutacin. El resultado de la combinacin de los pasos anteriores ser un conjunto de individuos, posibles soluciones al problema, los cuales pasarn a formar parte de la siguiente generacin.
53
Si un problema puede ser representado por un conjunto de parmetros (conocidos como genes), stos pueden ser unidos para formar una cadena de valores (cromosoma); a ste proceso se le llama codificacin. Existen varios aspectos relacionados con la codificacin de un problema que deben ser tomados en cuenta en el momento de su realizacin:
Se debe utilizar el alfabeto ms pequeo posible para representar los parmetros, normalmente se utilizan dgitos binarios Las variables que representan los parmetros del problema deben ser discretizadas para poder representarse con cadenas de bits, hay que utilizar suficiente resolucin para asegurar que la salida tiene un nivel de precisin adecuado. Se asume que la discretizacin es representativa de la funcin objetivo. La mayor parte de los problemas tratados con Algoritmos Genticos son no lineales y muchas veces existen relaciones ocultas entre las variables que conforman la solucin. Esta interaccin es referida como epstasis, y es necesario tomar la en cuenta para una representacin adecuada del problema. El tratamiento de los genotipos invlidos debe ser tomado en cuenta para el diseo de la codificacin. Supngase que se necesitan 1200 valores para representar una variable, esto requiere al menos 11 bits, pero estos codifican un total de 2048 posibilidades, "sobrando" 848 patrones de bits no necesarios. A estos patrones se les puede dar un valor cero de adaptacin, ser substituidos por un valor real, o eliminar el cromosoma.
Antes de que un algoritmo gentico pueda empezar a trabajar en un problema, se necesita un mtodo para codificar las soluciones potenciales del problema de forma que una computadora pueda procesarlas. Los tres mtodos principales de codificacin de variables son: Cadenas binarias; un enfoque comn es codificar las soluciones como cadenas binarias, es decir, secuencias de 1s y 0s, donde el dgito de cada posicin representa el valor de algn aspecto de la solucin.
54
UNMSM
Cadenas de enteros o nmeros decimales; otro mtodo similar consiste en codificar las soluciones como cadenas de enteros o nmeros decimales, donde cada posicin representa algn aspecto particular de la solucin. Este mtodo permite una mayor precisin y complejidad que el mtodo comparativamente restringido de utilizar slo nmeros binarios, y a menudo est intuitivamente ms cerca del espacio de problemas. Cadenas de letras; un tercer mtodo consiste en representar a los individuos de un AG como cadenas de letras, donde cada letra representa un aspecto especfico de la solucin.
La codificacin realizada a travs de cadenas binarias es un tipo de codificacin indirecta, mientras que la de cadenas de enteros y letras son un tipo de codificacin directa. La virtud de estos tres mtodos es que facilitan la definicin de operadores que causen los cambios aleatorios en los individuos seleccionados: cambiar un 0 por un 1 o viceversa, sumar o restar al valor de un nmero una cantidad elegida al azar, o cambiar una letra por otra. La eleccin de la codificacin de las variables no es trivial, especialmente si estamos tratando un problema de optimizacin. Por ejemplo una codificacin directa de los nmeros enteros puede dar problemas a la hora de que el algoritmo converja, ya que nmeros consecutivos, como por ejemplo el nmero 15 y el 16, al pasarlos a binario son muy diferentes (16 = 10000 y 15 = 01111) con lo que una solucin con el valor 15 en un campo, difcilmente llegar a evolucionar a una solucin con el valor 16 (ya que debera cambiar simultneamente todos los bits). Este problema es conocido como "Picos de Hamming".
2.10. Parmetros de Configuracin Un algoritmo gentico tiene una serie de parmetros que se tienen que fijar para cada ejecucin que se realice, los cuales son: 2.10.1. Condicin de Trmino El Algoritmo Gentico se deber detener cuando se alcance la solucin ptima, pero sta generalmente se desconoce, por lo que se
55
UNMSM
Facultad de Ingeniera de Sistemas e Informtica deben utilizar otros criterios de detencin. Normalmente se usan dos criterios: correr el algoritmo gentico un nmero mximo de iteraciones (generaciones) o detenerlo cuando no haya cambios en la poblacin.
2.10.2. Tamao de la Poblacin Debe ser suficiente para garantizar la diversidad de las soluciones, y, adems, tiene que ver ms o menos con el nmero de bits del cromosoma, aunque nadie ha aclarado cmo tiene que hacerlo. Por supuesto, depende tambin de la computadora en la que se est ejecutando.
2.10.3. Porcentaje de Emparejamiento Indica con qu frecuencia se cruzarn los individuos. Si ste es 0%, los hijos sern como los padres y slo sern alterados por la mutacin. Si ste es 100% todos los individuos nuevos sern creados mediante emparejamiento de los padres de la generacin previa. Cuanto ms se emparejen los individuos se supone que los hijos sern mejores; sin embargo, es recomendable, por la naturaleza del algoritmo gentico, que algunos individuos pasen sin modificarse a la siguiente generacin. 2.10.4. Porcentaje de Mutacin Establece la probabilidad con la cual los individuos sern mutados. Si ste porcentaje es 0% los individuos generados despus de aplicarse el emparejamiento no sufrirn ningn cambio por el contrario si es de 100% todos lo individuos de la poblacin sufrirn cambios o mutaciones. La mutacin trata de impedir que la bsqueda del algoritmo gentico caiga en extremos locales por eso es conveniente que ocurra de vez en cuando. No es bueno, sin embargo, que la mutacin ocurra continuamente, ya que la bsqueda del algoritmo gentico pasa de ser inteligente a bsqueda aleatoria.
56
Los operadores genticos consisten en una serie de pasos estructurados que se aplican a los cromosomas y forman resultados concretos, al igual que las operaciones matemticas y lgicas. Son los diferentes mtodos u operaciones que se pueden ejecutar sobre una poblacin y se dividen en 4 categoras: Seleccin, Emparejamiento, Mutacin y Reemplazo.
Seleccin: Proceso que escoge los miembros de la poblacin que sern utilizados para la reproduccin. Su meta es dar ms oportunidades de seleccin a los miembros ms aptos de la poblacin. Emparejamiento: Consiste en unir de alguna forma los cromosomas de dos padres para formar dos descendientes. Existen diversas variaciones, dependiendo del nmero de puntos de divisin a emplear, la forma de ver el cromosoma, etc. Mutacin: Se encarga de modificar en forma aleatoria uno o ms genes del cromosoma de un descendiente. Reemplazo: Es el mtodo por el cual se insertan los hijos en la poblacin; por ejemplo, mediante la eliminacin del individuo ms dbil o al azar. 2.11.1. Seleccin La seleccin de los padres viene dada habitualmente mediante probabilidades segn su fitness. Un algoritmo gentico puede utilizar muchas tcnicas diferentes para seleccionar a los individuos que deben copiarse hacia la siguiente generacin. Algunos de estos mtodos son mutuamente exclusivos, pero otros pueden utilizarse en combinacin, algo que se hace a menudo. 2.11.1.1. Elitista Se garantiza la seleccin de los miembros ms aptos de cada generacin. La mayora de los AG no utiliza elitismo puro sino que usan una forma modificada, por la que el mejor individuo o algunos de los mejores son copiados hacia la siguiente generacin en caso de que no surja nada mejor.
57
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 2.11.1.2. Proporcional a la aptitud Los individuos ms aptos tienen ms probabilidad de seleccionados, pero no la certeza. 2.11.1.3. Escalada Al incrementarse la aptitud media de la poblacin, la fuerza de la presin selectiva tambin aumenta y la funcin de aptitud se hace ms discriminadora. Este mtodo puede ser til para seleccionar ms tarde, cuando todos los individuos tengan una aptitud relativamente alta y slo se distingan por pequeas diferencias en la aptitud. 2.11.1.4. Basado en rango A cada individuo de la poblacin se le asigna un rango numrico basado en su aptitud, y la seleccin se basa en este ranking, en lugar de las diferencias absolutas en aptitud. La ventaja de este mtodo es que puede evitar que individuos muy aptos ganen dominancia al principio a expensas de los menos aptos, lo que reducira la diversidad gentica de la poblacin y podra obstaculizar la bsqueda de una solucin aceptable. 2.11.1.5. Rueda de ruleta Una forma de seleccin proporcional a la aptitud en la que la probabilidad de que un individuo sea seleccionado es proporcional a la diferencia entre su aptitud y la de sus competidores. Conceptualmente, esto puede representarse como un juego de ruleta, donde cada individuo obtiene una seccin de la ruleta, pero los ms aptos obtienen secciones mayores que las de los menos aptos. Luego la ruleta se hace girar, y en cada vez se elige al individuo que posea la seccin en la que se pare la ruleta. ser
58
UNMSM
Figura 2.4. Construccin de Ruleta con probabilidades 2.11.1.6. Por Torneo Se eligen subgrupos de individuos de la poblacin, y los miembros de cada subgrupo compiten entre ellos. Slo se elige a un individuo de cada subgrupo para la reproduccin.
Figura 2.5. Esquematizacin de Seleccin por Torneo 2.11.1.7. Por Estado Estacionario La descendencia de los individuos seleccionados en cada generacin vuelve al acervo gentico preexistente, reemplazando a algunos de los miembros menos aptos de la siguiente generacin. Se conservan algunos individuos entre generaciones.
2.11.1.8. Generacional La descendencia de los individuos seleccionados en cada generacin se convierte en toda la siguiente generacin. No se conservan individuos entre las generaciones.
59
Los individuos atraviesan mltiples rondas de seleccin en cada generacin. Las evaluaciones de los primeros niveles son ms rpidas y menos discriminatorias, mientras que los que sobreviven hasta niveles ms altos son evaluados ms rigurosamente. La ventaja de este mtodo es que reduce el tiempo total de clculo al utilizar una evaluacin ms rpida y menos selectiva para eliminar a la mayora de los individuos que se muestran pocos o nada prometedores, y sometiendo a una evaluacin de aptitud ms rigurosa y computacionalmente ms costosa slo a los que sobreviven a esta prueba inicial.
2.11.2. Emparejamiento Se denomina operador de emparejamiento a la forma de calcular el genoma del nuevo individuo en funcin de los genomas padres. El operador de emparejamiento es fuertemente responsable de las propiedades del algoritmo gentico, y determinar en gran medida la evolucin de la poblacin. El proceso de emparejamiento toma dos individuos y corta sus cromosomas en una posicin seleccionada al azar, para producir dos segmentos anteriores y dos posteriores, los posteriores se intercambian para obtener dos cromosomas nuevos. Existe gran cantidad de tcnicas de emparejamiento. Las tcnicas bsicas son las siguientes:
2.11.2.1. Emparejamiento de n-puntos Los dos cromosomas se cortan por n puntos, y el material gentico situado entre ellos se intercambia. Lo ms habitual es un emparejamiento de un punto o de dos puntos.
60
UNMSM Padre 1 1 1 0 1 1 1 0
Puntos de emparejamiento
Hijo 1 1 1 0 0 1 1 1 1 0 1 Hijo 2 1 1 1 0
Figura 2.6. Emparejamiento de 1 punto 2.11.2.2. Emparejamiento uniforme Se genera un patrn aleatorio de 1s y 0s, y se intercambian los bits de los dos cromosomas que coincidan donde hay un 1 en el patrn. O bien se genera un nmero aleatorio para cada 1 y 0, y si supera una determinada probabilidad se intercambia ese 1 y 0 entre los dos cromosomas. 2.11.2.3. Emparejamiento segmentado Existe una probabilidad de que un cromosoma sea punto de un emparejamiento. Conforme se va formando la nueva cadena del descendiente, para cada gen, se verifica si ah se va producir un emparejamiento.
2.11.2.4. Emparejamientos Especializados En algunos problemas, aplicar aleatoriamente el emparejamiento da lugar a cromosomas que codifican soluciones invlidas; en este caso hay que aplicar el emparejamiento de forma que genere siempre soluciones vlidas 2.11.3. Mutacin La operacin de mutacin ms sencilla, y una de las ms utilizadas consiste en reemplazar con cierta probabilidad el valor de un bit. Notar que el papel que juega la mutacin es el de introducir un factor de diversificacin ya que, en ocasiones, la convergencia del
61
UNMSM
Facultad de Ingeniera de Sistemas e Informtica procedimiento a buenas soluciones puede ser prematura y quedarse atrapado en ptimos locales. Otra forma obvia de introducir nuevos elementos en una poblacin es recombinar elementos tomados al azar sin considerar su fitness. La mutacin es aplicada a cada descendiente individualmente luego de cada emparejamiento. Altera un gen al azar, con una probabilidad muy pequea (tpicamente 0.001).
Existen varias tcnicas distintas de mutacin. Algunas de stas son: 2.11.3.1. Mutacin de bit Existe una nica probabilidad de que se produzca una mutacin de algn bit. De producirse, el algoritmo toma aleatoriamente un bit, y lo invierte. Hijo 1 1 0 0 1 1 1
Punto de mutacin
Hijo Mutado 1 1 0 1 1 1 1
Figura 2.7. Mutacin de un bit 2.11.3.2. Mutacin multibit Cada bit tiene una probabilidad de mutarse o no, que es calculada en cada pasada del operador de mutacin multibit. 2.11.3.3. Mutacin de gen Igual que la mutacin de bit, solamente que, en vez de cambiar un bit, cambia un gen completo. Puede sumar un valor aleatorio, un valor constante, o introducir un gen aleatorio nuevo. 2.11.3.4. Mutacin multigen Igual que la mutacin de multibit, solamente que, en vez de cambiar un conjunto de bits, cambia un conjunto de genes. Puede sumar un
62
UNMSM
Facultad de Ingeniera de Sistemas e Informtica valor aleatorio, un valor constante, o introducir un gen aleatorio nuevo. 2.11.3.5. Mutacin de intercambio Existe una probabilidad de que se produzca una mutacin. De producirse, toma dos bits/genes aleatoriamente y los intercambia.
2.11.3.6. Mutacin de barajado Existe una probabilidad de que se produzca una mutacin. De producirse, toma dos bits o dos genes aleatoriamente y baraja de forma aleatoria los bits o genes, segn hubiramos escogidocomprendidos entre los dos. Algunas de las razones que pueden motivar a incorporar la mutacin son: Desbloqueo del algoritmo. Si el algoritmo se bloque en un mnimo local, una mutacin puede llevarnos a un genotipo mejor dotado. Acabar con poblaciones degeneradas. Puede ocurrir que, bien por haber un cuasi-mnimo, ya sea porque en pasos iniciales apareci un individuo demasiado bueno que acab con la diversidad gentica, la poblacin tenga los mismos fenotipos. Si se ha llegado a una poblacin degenerada, es preciso que las mutaciones introduzcan nuevos genomas. Incrementar el nmero de saltos evolutivos. Los saltos evolutivos -aparicin de un fenotipo especialmente valioso, o dicho de otra forma, salida de un mnimo local - son muy poco probables en un gentico puro para un problema genrico. La mutacin permite explorar nuevos subespacios de soluciones, por lo que, si el subespacio es bueno en trminos de adaptacin, se producir un salto evolutivo despus de la mutacin que se expandir de forma exponencial por la poblacin. Enriquecer la diversidad gentica. Es un caso ms suave que el de una poblacin degenerada, es decir, que la poblacin tenga una diversidad gentica pobre; en este caso la mutacin
63
UNMSM es un
degeneradas. Sin embargo, si la tasa de mutacin es excesivamente alta tendremos la ya conocida deriva gentica. Una estrategia muy empleada es una tasa de mutacin alta al inicio del algoritmo, para aumentar la diversidad gentica, y una tasa de mutacin baja al final del algoritmo, para conseguir que converja.
2.12. Ventajas y desventajas Entre las ventajas que presentan los algoritmos genticos tenemos: 1. Lo ms importante de utilizar AG es que no es necesario tener un conocimiento profundo del problema que se desea resolver, sino que se parte de simples y pequeas estructuras que interactan entre si, dejando que sea el proceso de evolucin quien haga el correspondiente trabajo. Un AG es un mtodo de programacin opuesto al habitual: en vez de descomponer un problema en subproblemas, creamos los subproblemas ms sencillos que podamos imaginar y dejamos que se combinen entre s. nicamente basta con identificar cualitativamente en qu casos las cadenas se acercan o se alejan de la solucin buscada, para que el sistema se perfeccione automticamente. 2. Los AG son adaptativos, ya que son capaces de solucionar problemas que varan en el tiempo. La gran sencillez de los AG los hace muy atractivos para la programacin, pero existen casos en los que puede ser difcil, imposible o poco prctico aplicarlos. 3. Nos permite poder trabajar sobre mltiples soluciones. Cuando se tienen problemas con espacios de soluciones de gran tamao, y no es posible utilizar enumeracin exhaustiva (analizar una por una todas las soluciones posibles) como mtodo de bsqueda, es necesario buscar maneras alternativas de bsqueda para una buena solucin (aunque no sea la mejor). Operan en forma simultnea con varias soluciones, en vez de trabajar secuencialmente como las tcnicas tradicionales.
64
UNMSM
4. Cuando se utilizan para problemas de optimizacin como maximizar una funcin objetivo, resultan menos afectados por los mximos locales (falsas soluciones) que las tcnicas tradicionales. 5. Posee eficiencia en el clculo de una solucin objetivo y resulta fcil su ejecucin. Adems resultan fciles de ejecutar en arquitecturas modernas con paralelismo masivo. 6. Usan operadores probabilsticos, en vez de los tpicos operadores determinsticos de las otras tcnicas. Adems de las ventajas descritas, los AG presentan algunas desventajas tales como: 1. Pueden tardar mucho en alcanzar la convergencia, o no llegar a converger en absoluto, dependiendo en cierta medida de los parmetros que se utilicen, tales como el tamao de la poblacin, el nmero de generaciones, etc. 2. Pueden llegar a una convergencia prematura debido a un conjunto de problemas de diversa ndole, como mala eleccin de los operadores genticos o los porcentajes probables de emparejamiento y/o mutacin, entre otros.
2.13. Cmo saber si es posible usar un Algoritmo Gentico La aplicacin ms comn de los algoritmos genticos ha sido la solucin de problemas de optimizacin, en donde han mostrado ser muy eficientes y confiables; sin embargo, no todos los problemas pueden ser apropiados para la tcnica, es por ello que se recomienda, en general, tomar en cuenta las siguientes caractersticas del mismo antes de intentar usarla [5]: Su espacio de bsqueda que corresponde a sus posibles soluciones, debe estar delimitado dentro de un cierto rango. Este primer punto es muy importante y lo ms recomendable, ya que se debe intentar resolver problemas que tengan espacios de bsqueda discretos aunque stos sean muy grandes. Sin embargo, tambin podr intentarse el uso de la tcnica
65
UNMSM
con espacios de bsqueda continuos, pero preferentemente cuando exista un rango de soluciones relativamente pequeo. Debe poderse definir una funcin de aptitud que nos indique qu tan buena o mala es una determinada respuesta. Las soluciones deben codificarse de una forma que resulte relativamente fcil de implementar en la computadora. 2.14. Ejemplo del funcionamiento de un algoritmo gentico Con la finalidad de aclarar mejor los conceptos descritos previamente, presentamos ahora una sencilla aplicacin del algoritmo gentico a un problema de optimizacin tomado de [11]:
2.14.1. Un Problema de ejemplo Un grupo de financieros mexicanos ha resuelto invertir 10 millones de pesos en la nueva marca de vino "Carta Nueva". As pues, en 4 ciudades de las principales de Mxico se decide iniciar una vigorosa campaa comercial: Mxico en el centro, Monterrey en el noroeste, Guadalajara en el occidente y Veracruz en el oriente. A esas 4 ciudades van a corresponder las zonas comerciales I, II, III y IV. Un estudio de mercado ha sido realizado en cada una de las zonas citadas y han sido establecidas curvas de ganancias medias en funcin de las inversiones totales (almacenes, tiendas de venta, representantes, publicidad, etc.). Estos datos se ilustran en la Tabla 2.1 y en la Figura 2.9. Para simplificar los clculos, supondremos que las asignaciones de crditos o de inversiones deben hacerse por unidades de 1 milln de pesos. La pregunta es: En dnde se deben de asignar los 10 millones de pesos de los que se dispone para que la ganancia total sea mxima? 2.14.2. Representacin gentica del ejemplo Lo primero que necesitamos determinar para poder aplicar el algoritmo gentico, es cul ser el esquema a utilizarse para
66
UNMSM
Facultad de Ingeniera de Sistemas e Informtica representar las posibles soluciones del problema. En este caso necesitamos 4 bits (24 = 16) para representar cada solucin, porque cada una admite 11 valores posibles (de 0 a 10). Como existen 4 valores independientes (uno por cada zona de estudio), se requieren entonces 16 bits (4 x 4) por cada cromosoma. De tal forma, una cadena representativa de un cromosoma ser como se muestra en la Figura 2.8. Es importante hacer notar que se requiere una funcin de codificacin (esto es, que transforme el valor de la inversin a binario) y una de decodificacin (esto es, que realice el proceso inverso). Debido a que en este caso los 4 bits utilizados para representar una solucin pueden producir ms valores de los que se necesitan, se usar una funcin de ajuste que haga que los resultados producidos siempre se encuentren en el rango vlido.
Tabla 2.1 Datos obtenidos con la investigacin de mercado en cada una de las regiones en estudio 2.14.3. Funcin de aptitud del ejemplo Dado que el objetivo es obtener las inversiones que sumen 10, y que tengan un beneficio mximo, podemos usar la siguiente funcin de aptitud penalizada: F(x) = c1 + c2 + c3 + c4 500 * v + 1 Donde c1, c2, c3 y c4 son las ganancias por zona, que se calculan de acuerdo a los valores de la Tabla 2.1, y v es el valor absoluto de
67
UNMSM
Facultad de Ingeniera de Sistemas e Informtica la diferencia entre la suma obtenida y 10. Ntese que cuando no se viole ninguna restriccin (es decir, cuando la suma de inversiones sea exactamente 10) la funcin de aptitud no ser "castigada". Las cadenas 1, 2, 3 y 4 corresponden a las cantidades invertidas en las zonas econmicas respectivas.
Cadena 1
Cadena 2
Cadena 3
Cadena 4
Figura 2.8. Cadena representativa de un cromosoma del ejemplo 2.14.4. Operadores del ejemplo Se usar un emparejamiento de 2 puntos y la probabilidad que se dar a la misma ser del 80%. En cuanto a la mutacin, se le asignar una probabilidad baja, tal y como sugiere Goldberg [9], por lo que ser del orden del 1%. El tamao de poblacin manejado para este ejemplo ser de 50 cromosomas, y se correr el algoritmo gentico durante 20 generaciones.
2.14.5. Resultados del ejemplo El resultado obtenido en una corrida tpica es de $1.81 (en millones de pesos), correspondiente a los valores de C1 = 4 millones, C2 = 3 millones, C3 = 1 milln y C4 = 2 millones. Esta es la solucin ptima, la cual se obtuvo originalmente mediante programacin dinmica [12]. El tiempo que le tom al algoritmo gentico encontrar este valor fue de slo 13 segundos, Las pruebas se corrieron en una computadora IBM PC Compatible 486DX/2 de 66 MHz con coprocesador matemtico. Debe hacerse notar que, en este caso, si deseramos analizar inversiones que sumen otra cantidad, y en unidades menores al milln, el algoritmo gentico tendra que modificarse de manera mnima, mientras que la programacin dinmica requerira una cantidad tal de trabajo que prcticamente se volvera inoperante.
68
UNMSM
Figura 2.9. Grfica de los valores de la Tabla Aunque ste es slo un sencillo ejemplo del uso del algoritmo gentico para resolver problemas de optimizacin con restricciones, puede alcanzar a percibirse el poder de la tcnica en comparacin con los mtodos tradicionales de bsqueda.
69
UNMSM
Captulo 3: Estado del Arte En este captulo se mostrarn las tcnicas relacionadas al trabajo que se est realizando. Se har referencia al conocimiento disponible hasta el momento en torno a nuestro tema, adems de los resultados de investigaciones recientes de forma que integre y agregue claridad a nuestro trabajo.
3.1. Introduccin En este captulo se dar una breve explicacin a las tcnicas ms destacables relacionadas con los problemas de timetabling. stas fueron seleccionadas debido al gran xito obtenido en la resolucin de problemas de optimizacin combinatoria que es donde podemos considerar el nuestro. Como se mencion antes, se trata de un problema clasificado como NP-Completo, por lo cual no existen algoritmos determinsticos que encuentren la solucin ptima en un tiempo polinomial. Sin embargo, es posible utilizar estrategias con las cuales se pueden obtener soluciones aceptables. Las diferentes tcnicas las podramos dividir en dos grandes grupos:
70
Estos mtodos que debido a su forma de bsqueda, se les denomina mtodos completos, ya que recorren todo el espacio de bsqueda, es decir, encuentran todas las soluciones posibles a un determinado problema, sin embargo, stas dependen del nmero de variables que influyen en el problema, es decir, su xito depende directamente del nmero de variables involucradas. Dentro de este grupo podemos encontrar los siguientes tipos: Programacin entera, Programacin Lineal, Backtracking, entre otras.
Tcnicas no tradicionales Al contrario de las tcnicas tradicionales, stas no encuentran todas las soluciones posibles a un problema, es decir, acotan el espacio de bsqueda, por lo mismo caen en la categora de mtodos incompletos. Dentro de este grupo podemos encontrar los siguientes tipos: Recocido Simulado (Simulated Annealing), Algoritmos Geneticos (Genetic Algorithms), Bsqueda Tab (Tabu Search),Algoritmos Voraces (GRASP), Redes Neuronales (Neuronal Networks), Algoritmos Memtico (Memetic Algorithms),entre otras.
En este caso revisaremos la Bsqueda Tab, el Recocido Simulado y los Algoritmos Memticos. Haremos una breve descripcin de cada una de las tcnicas escogidas y luego mostraremos ejemplos de su aplicacin al problema de timetabling. 3.2.1 Bsqueda Tab
La metaheurstica Bsqueda Tab es introducida y desarrollada por Fred Glover [28], la cual se utiliza mucho para la resolucin de problemas de optimizacin cuya caracterstica principal es la de salir del ptimo local. "La filosofa de la Bsqueda Tab es la de manejar y explotar una coleccin de principios para resolver problemas de manera inteligente. Uno de los elementos fundamentales de la Bsqueda Tab es el uso de la memoria flexible. Desde el punto de vista de la Bsqueda Tab, la memoria flexible
71
UNMSM
envuelve el proceso dual de crear y explotar estructuras para tomar ventaja mediante la combinacin de actividades de adquisicin, evaluacin y mejoramiento de la informacin de manera histrica"... [7] Este mtodo est diseado, como se mencion, para salir del ptimo local, basado en el manejo y uso de una coleccin de principios que sirven para resolver el problema de manera inteligente. Esto se logra, haciendo uso de memoria flexible para involucrar dos procesos, el de la adquisicin y el de mejoramiento de la informacin; as, al tener cierta historia de los caminos ya recorridos y de los ptimos encontrados, se puede evitar permanecer en los mismos espacios, y recorrer espacios nuevos para encontrar otras mejores soluciones. El mtodo de bsqueda tab se basa en tres puntos principales:
La utilizacin de memorias de diferentes lapsos de tiempo: la de trmino corto, la de trmino intermedio y la de trmino largo, para guardar (por un tiempo) aquellas caractersticas que lograron una buena solucin, y olvidando otras (ya transcurrido el tiempo de memoria) para permitir al mtodo diversificarse dentro de nuevas regiones.
Adems de esto, el mtodo de bsqueda tab tiene la habilidad de obtener resultados de alta calidad con equipo computacional modesto, lo que es una ventaja, ya que en muchas ocasiones no se cuenta con equipo computacional de alta calidad.
3.2.1.1. Descripcin
El algoritmo Bsqueda Tab requiere de una solucin inicial, no es necesario que sea ni factible ni ptima. Esta solucin depender del algoritmo que la genera, aunque es posible generar la solucin inicial de manera aleatoria.
72
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Una vez obtenida la solucin inicial se procede a una etapa de mejora de sta, movindose paso a paso hacia una solucin que proporcione, en la medida de lo posible, el valor mnimo de la funcin objetivo (asumiendo que nos encontramos en un problema de minimizacin), para ejemplificar el mtodo usaremos la funcin objetivo C .
Para explicar el procedimiento, representamos a cada solucin por medio de un punto x (en algn espacio) y se define una vecindad
adyacentes a la solucin x .
N(X)
Es decir, el paso bsico del procedimiento consiste en empezar desde un punto factible x , desde una solucin inicial y generar un conjunto de vecinos, que son una serie de soluciones en N ( x) de esta vecindad, y as elegir la mejor x * de ellas llamada el mejor vecino y se posiciona en este nuevo punto ya sea que C ( x*) tenga o no mejor valor que C ( x ) . El hecho de permitir que en ocasiones la solucin actual empeore es para evitar quedar atrapados en un ptimo local.
73
UNMSM
Y Solucin ptima X* X
Figura 3.2. Trayectoria para encontrar la solucin ptima La caracterstica importante y sobresaliente de la Bsqueda Tab es precisamente la construccin de una lista tab T de movimientos. Pero qu significa esto de Lista Tab, pues se entiende por ella como todos aquellos movimientos que no son permitidos (movimientos tab) en la presente iteracin. De ah su nombre Tab. La utilidad de esta lista es evitar los posibles movimientos que nos puedan regresar a algn punto de alguna iteracin anterior, lo cual podra hacernos caer en un ciclo. El buen manejo de la lista tab nos lleva a la exploracin de nuevas regiones. Ahora bien, un movimiento permanece como tab slo durante un cierto nmero de iteraciones, de forma que se tiene la Lista Tab T.
X Solucin Actual
74
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Es decir, la lista Tab debe ser dinmica ya que pasado un determinado nmero de iteraciones, la bsqueda est en una regin distinta y las soluciones antiguas pueden liberarse del status tab. Tambin es importante seleccionar el tamao de nuestra Lista Tab, generalmente se toman valores dependiendo del tamao del problema. De cualquier forma, constituye un parmetro importante cuya influencia habra que analizar y de la cual podra depender la evolucin del algoritmo. Dentro de esta Lista Tab es importante, tambin, seleccionar qu se va a almacenar en ella, ya que, por ejemplo, almacenar la descripcin completa de las ltimas soluciones y comprobar alguno de estos movimientos que se encuentran en la lista puede ocupar mucho tiempo y memoria en nuestro sistema computacional. Como alternativa se puede almacenar slo un atributo representativo del movimiento. Tanto los atributos que se consideren, como la forma de almacenarlos, dependern del problema a resolver. El criterio de aspiracin consiste en dar un poco de flexibilidad a la Bsqueda Tab. El estatus tab de una solucin puede ser ignorado si ciertas condiciones se cumplen, stas se basan principalmente en admitir una solucin, considerar una aspiracin a pesar de estar clasificadas como Tab. Esto es, que cualquier solucin que sea mejor a cualquiera de las encontradas merece ser considerada, incluso si para alcanzarla debamos utilizar un movimiento prohibido. En resumen, el mtodo de Bsqueda Tab debe tener una memoria adaptativa, que se caracteriza por su selectividad; su abstraccin y descomposicin; el tiempo, aqu es donde entra la diferenciacin entre corto y largo plazo. La serie de movimientos en que se rechazan, en especfico la hecha en la Lista Tab, se denomina de memoria a corto plazo, ya que esta bsqueda slo se basa en una bsqueda local. Y descartando los movimientos encontrados dentro de nuestra lista tab. Para problemas ms complejos se pueden considerar estrategias de memorias a plazos ms largos.
75
UNMSM
Empezar con una solucin inicial Obtener una solucin a partir de los valores iniciales o del componente de memoria de mediano o largo plazo Crear una lista de movimientos Al escogerse un movimiento de esta lista, este generara una nueva solucin a partir de la actual Escoger el mejor movimiento La solucin obtenida pasa a ser la solucin actual, y se deber almacenar como la mejor solucin si su valor supera el valor asignado hasta el momento
Detenerse
Continuar
Terminar
76
UNMSM
Evaluar cada movimiento Produce la evaluacin de este movimiento un valor ms alto que cualquier otro movimiento analizado hasta ahora?
No
Si
Es Tab
No es Tab
Si Verificar el nivel de aspiracin El movimiento satisface el criterio de satisfaccin? El movimiento es admisible Designarlo como el mejor candidato
No
No
Verificar los movimientos posibles Hay una buena probabilidad de que falten por analizar mejores movimientos
La memoria a largo plazo es aquella memoria basada en frecuencias, adems que diversifica la bsqueda sobre regiones poco exploradas. Una forma comn de hacer esta diversificacin consiste en reiniciar cada determinado tiempo la bsqueda desde puntos elegidos aleatoriamente. Otro mtodo, propone registrar los atributos de los movimientos ms utilizados en los anteriores movimientos, penalizndolos a travs de una lista tab a largo plazo.
77
UNMSM
Facultad de Ingeniera de Sistemas e Informtica La heurstica de Bsqueda Tab requiere de una exploracin sensible, que consiste en la imposicin estratgica de limitaciones, un enfoque concentrado en buenas regiones y buenas caractersticas de las soluciones, caracterizacin y exploracin de nuevas regiones prometedoras, patrones de bsqueda no montonos e integracin y extensin de soluciones.
Las estrategias de diversificacin se basan en el cambio de las reglas, de modo que favorezcan combinaciones de movimiento, para as, de cierta forma evitar algn ciclo que se pueda dar. Las estrategias de diversificacin estn diseadas para llevar la bsqueda hacia nuevas regiones. La mayora de las veces son basadas en modificar los patrones de eleccin para as llevar a la solucin de atributos que no se hayan tomado en cuenta.
Como criterio de terminacin se puede tener en cuenta dos o ms condiciones, como las que a continuacin se anuncian:
Que se haya realizado un nmero de iteraciones k sin mejorar el valor de la funcin objetivo C .
Algo que es bsico e indispensable para implementar la Bsqueda Tab es que el solucionador del problema, el que usar la meta heurstica de bsqueda tab, debe estar familiarizado con el problema, conocer su naturaleza y la forma de las soluciones factibles, de tal manera que pueda sugerir la configuracin de la lista tab, del vecindario y del criterio de aspiracin.
78
UNMSM
Generar solucin inicial x0 x=x0, x solucin actual k=1 Identificar N(x). (Vecindario de x) Identificar T(x,k). (Lista Tab) Identificar A(s,k). (Conjunto de Aspirantes) Determinar N*(x,k) = {N(x) T(x,k)} u A(x,k). (Vecindario reducido)
Terminar
La versatilidad de la Bsqueda Tab la hace una tcnica muy utilizada para resolver el problema del timetabling, como ejemplo tenemos el trabajo de Marcos Gil Tallavo y Amads Antonio Martnez [6] donde toma en cuenta como recursos a combinar en el problema a los cursos, horarios y aulas. Para representar a un horario de clases, definen un arreglo
79
UNMSM
Facultad de Ingeniera de Sistemas e Informtica asignada para un curso en el da i , en el aula j a la hora k . En el caso de que no se tenga ninguna seccin asignada se tiene hijk = 0 . En la siguiente figura se presenta una ilustracin de la estructura de datos. Adems de esta estructura se definieron otras estructuras auxiliares, las cuales redundan cierta informacin pero permiten verificar las restricciones, tanto obligatorias como deseables, de una manera mas eficiente.
Figura 3.7. Estructura de un horario de clases A continuacin describiremos los componentes del algoritmo que fueron modificados para adaptarlo a su problemtica:
Para la construccin de la solucin inicial el algoritmo usa bsicamente un procedimiento greedy (voraz), en el que se asignan primero las secciones con ms restricciones, tomando das y aulas aleatorios y probando cada hora secuencialmente. Para definir los movimientos se estableci el de intercambio de bloques. Este intercambio puede ser entre dos bloques de dos horas, dos bloques de tres horas, un bloque de tres horas y otro de dos horas con una hora libre antes o despus del bloque, dos bloques de dos horas con una hora libre antes o despus del bloque, o un bloque de dos o tres horas y un bloque libre del mismo tamao. La vecindad de una solucin viene dada por cierta cantidad de movimientos aleatorios. En las Figuras 3.8 y 3.9 se presentan ejemplos de intercambio de bloques.
80
UNMSM
Como condicin tab nica se tiene que cuando alguno de los bloques de movimiento haya sido recientemente utilizado, no se podr usar despus de un tiempo. De acuerdo con esto, despus de intercambiar dos bloques, los mismos no podran ser utilizados en un movimiento durante la cantidad de iteraciones dada. Como nico criterio de aspiracin se tiene el criterio de la mejor solucin. Este significa que no se toma en cuenta el estatus tab de una solucin cuando esta tiene menor costo que la mejor solucin encontrada hasta el momento Se definieron dos condiciones de terminacin del ciclo principal del algoritmo: Se han realizado cierto nmero mximo de iteraciones.
81
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Si se llega a cierto nmero de iteraciones sin mejorar la mejor solucin encontrada en toda la bsqueda, se regresa a esa mejor solucin y se hace una intensificacin de la bsqueda en la vecindad, por medio de la duplicacin del nmero de movimientos aleatorios por iteracin. Si al realizar esta intensificacin aun no se encuentra una mejor solucin, el ciclo se detiene. Como conclusiones al trabajo se demostr que el algoritmo encontr mejores soluciones que las realizadas con el mtodo manual en un tiempo razonable, adems de mostrar los beneficios de combinar un procedimiento greedy (voraz) aleatorizado (utilizado para generar la solucin inicial) con las estrategias de intensificacin y diversificacin y con estructuras de memoria a corto y largo plazo.
Tenemos el trabajo realizado por Lpez Ceballo y Paulina Danae [15] en el cual se toma en cuenta a los docentes, cursos y el horario asignado. En este definen Sea
X ijk
toma el valor uno si se programa al docente i en el horario j y se le asigna el curso k y toma el valor cero en cualquier otro caso como estructura que representara la solucin.
Definen S como el conjunto de materias que se le programaron al docente i en los diferentes horarios que tenga disponibles, entonces tendramos que:
S X irk j = 1,2,...n
Definen C ( S ( x)) como la funcin que genera la informacin de a qu maestros se le asigna qu materia y cuantas veces, por lo que:
Mnima carga acadmica del maestro C ( S ( x )) Mxima carga acadmica del maestro.
82
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Dado que la variable X ijk toma el valor uno si se programa al docente i en el horario j y se le asigna el curso k , entonces tendramos que:
rjk
=0
rjk
=1
Y dado que S representa el nmero de cursos programados para el maestro i , en el horario j , tendramos:
El componente acadmico: se tiene un costo Cik de asignar al docente i el curso k , en este caso mientras ms deseable sea asignar a un maestro una materia, menor debe ser C ik .
El
componente
de
horarios:
una
vez
establecida
una
programacin se puede medir lo compacto de sta, midiendo el total de horas libres entre cursos para cada maestro. El componente de cursos distintos: se puede medir para cada maestro las materias distintas asignadas. En cuanto a los movimientos posibles asignados en este trabajo son:
Subir o bajar el valor de una variable (cero o uno): Para subir el valor de una variable se requiere que la suma de variables en ese grupo sea cero y todas las variables del grupo pueden subir.
Subir una variable y bajar otra. Para bajar el valor de una variable se requiere que la suma del grupo sea uno y en ese grupo solo una variable pueda bajar.
Para los movimientos de las variables donde se utilizan dos variables, una que sube y otra baja se requiere que:
83
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Si ambas variables estn en el mismo grupo, entonces la variable que baja deber ser la que tiene asignado el nmero uno en el grupo. Si ambas variables estn en grupos distintos se requiere entonces que la variable que baja est localizada en el grupo cuya suma sea uno y la variable que sube puede localizarse en cualquier grupo cuya suma sea cero, esto asegura que la suma de un grupo sea cero y la suma en el otro sea uno. El procedimiento se llevara a cabo de la siguiente manera: Sobre todos los grupos se revisa la suma de las variables. Si sta vale uno se busca en las variables del grupo, cual variable vale 1 y se prueba la disminucin de su valor, haciendo la variable 0. Si la suma es cero se prueba el incremento de todas las variables (una por una) en el grupo, eligiendo por ltimo la que genera "la mejor solucin". Cada uno de los movimientos realizados es almacenado en la lista
84
UNMSM
Facultad de Ingeniera de Sistemas e Informtica A continuacin presentamos el pseudo cdigo para entender mejor la solucin planteada: Introducir Datos Base de datos inicial Inicio Paso 1. Formar los grupos de cada docente Paso 2. Seleccionar un X ijk en el primer grupo Si X ijk = 0 entonces sube, de otra forma baja Paso 3. Guardar el movimiento en la lista tab. Paso 4. Verificar si
rjk
=0
rjk
=1
X Si X
Si
rjk
rjk
Si se cumple, continuar con el siguiente paso Si no, regresar al Paso 2 Paso 6. Medir la compactacin de horarios del docente i en el horario j mnima: Catalogar este arreglo como optimo Hacer los dems movimientos tab Continuar con el siguiente paso
rjk
C
i , j ,k
ijk
X rjk
Hacer ptimo el arreglo que tenga el menor costo. Paso 8. Verificar si el nmero de aulas disponibles en el horario j anda en el rango
85
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Si se cumple continuar con el siguiente paso Paso 9. Verificar si en el horario j se programaron C 2( j ) cursos de la materia k
X
i
rjk
C 2( j )
Si no se cumple regresar al Paso 2 Si se cumple continuar con el siguiente paso Paso 10. Verificar si para la materia k se programaron los cursos C 3( j ) en la maana y C 4( j ) en la tarde, tomando en cuenta que L es el ltimo horario de la maana.
X
i
rjk
C 3( j ) C 4( j )
X
i
rjk
Si no se cumple regresar al paso 2. Si se cumple catalogar este arreglo como la mejor solucin Fin.
En este trabajo se concluyo que El mtodo de bsqueda tab mostr tener siguiente las ventajas se pueden apreciar en:
La rapidez en la captura de datos, Permite manipular un nmero grande de requerimientos y restricciones en la programacin que otros programas no pueden,
La obtencin de resultados no supera los dos segundos y Los resultados obtenidos fueron mucho mejores que los que se haban obtenido en semestres anteriores, ya que se compactaron muchos horarios
3.2.2
Algoritmos Memticos
En 1989, Moscato [19] present el trmino Algoritmo Memtico para describir a la combinacin de Algoritmos Genticos con mtodos de optimizacin local. De esta manera, los Algoritmo Memtico son
86
UNMSM
considerados como una extensin de Algoritmos Genticos que aplica procesos separados para refinar a los individuos. Los Algoritmo Memtico fueron inspirados por modelos de adaptacin en sistemas naturales que combinan la adaptacin biolgica o gentica de una poblacin con el aprendizaje que los miembros de esta poblacin pueden lograr durante su tiempo de vida. La eleccin del nombre de estos algoritmos se basa en el concepto de meme definido por Richard Dawkin [1]. Un meme se refiere a una unidad de evolucin cultural que puede lograr refinamiento local en los individuos de una poblacin dada [1]. Una diferencia clave que existe entre genes y memes consiste en que antes de que un meme sea transmitido, este ltimo es tpicamente adaptado por el individuo que lo transmite en base a la forma en que este individuo piensa, entiende y procesa al meme. Sin embargo, los genes son transmitidos sin que el individuo acte sobre ellos.
En el contexto de problemas de optimizacin, un meme representa a una estrategia de aprendizaje u optimizacin local que puede ser empleada para mejorar a un individuo. De esta forma, un modelo de adaptacin memtica logra aprovechar la plasticidad que poseen los individuos. Esto ltimo es algo que un modelo gentico no puede capturar. La integracin de un Algoritmos genticos con mtodos de optimizacin local ha mostrado que permite acelerar el descubrimiento de buenas soluciones, o alcanzar soluciones que seran inalcanzables si slo se aplicara evolucin gentica [8]. Esto se debe a que el refinamiento local u optimizacin de los individuos permite que el Algoritmos Memticos desarrolle una exploracin mucho ms dirigida hacia las regiones del espacio de bsqueda que poseen las mejores soluciones. Desde un punto de vista de optimizacin, los Algoritmos Memticos han mostrado ser ms eficientes, requieren menos generaciones para encontrar un ptimo, y ms efectivos, identifican soluciones de mayor calidad, que los tradicionales Algoritmos Genticos sobre varios dominios de aplicacin. [17]
Como se mencion anteriormente, puede ser muy beneficioso combinar la bsqueda desarrollada por un Algoritmo Gentico con mtodos que permitan refinar a cada solucin de manera individual. Sin embargo, los beneficios logrados deben ser balanceados con el incremento en el nivel de
87
UNMSM
complejidad del algoritmo. De esta manera, es necesario considerar con mucho cuidado cmo se desarrollar exactamente la integracin
mencionada. En la siguiente figura se muestra la estructura genrica de un Algoritmo Memtico, la figura mencionada permite identificar la estructura bsica de un Algoritmo Gentico. En esta estructura, se han identificado y marcado con crculos los lugares donde la integracin puede tomar lugar. Cada uno de los lugares marcados provee una oportunidad de integrar mtodos de optimizacin. Por ejemplo, la poblacin inicial podra contener soluciones provenientes de heursticas diseadas especialmente para el problema que se intenta resolver, y los operadores de recombinacin y mutacin podran ser realzados con restricciones especficas del dominio. Adems, los mtodos de optimizacin local podran ser aplicados a uno o a todos los conjuntos intermedios de soluciones. Por ejemplo, podran ser aplicados sobre el conjunto de soluciones obtenido luego de la recombinacin, sobre el conjunto de soluciones obtenido luego de la mutacin, o sobre ambos conjuntos. Sin embargo, la forma ms aceptada de integracin consiste en aplicar una o ms fases de optimizacin local, basada sobre algn parmetro de probabilidad, a miembros individuales de la poblacin en cada generacin.
Poblacin Inicial
Poblacin Actual
Recombinacin
Seleccin
Hijos
Mutacin
88
UNMSM
s.
Este reemplazo puede ser llevado a cabo siguiendo el enfoque de Baldwin o el de Lamarck. Considrese que el individuo i pertenece a la poblacin P en la generacin t y que el fitness de i es f (i ) . Adicionalmente, supngase que la bsqueda local sobre i produce un nuevo individuo i ' con
89
UNMSM
Facultad de Ingeniera de Sistemas e Informtica el individuo i ' reemplazar a i . Ms precisamente, ser necesario elegir entre dos alternativas posibles. La primera alternativa consiste en reemplazar al individuo i con el individuo i ' , en este caso la informacin gentica de i es perdida y reemplazada con la informacin de i ' . La segunda alternativa consiste en mantener la informacin gentica de i y cambiar su valor de fitness por el valor de fitness de i ' , de esta manera f (i ' ) = f (i ) . La primera alternativa presentada es conocida como aprendizaje de Lamarck, mientras que la segunda alternativa es conocida como de Baldwin. Segn las pruebas realizadas, para algunos casos, local pero ms lento que el enfoque el de Lamarck. el enfoque de Baldwin es ms eficiente para converger en un ptimo
Un Algoritmo Memtico mantiene en todo momento una poblacin de diversas soluciones al problema considerado. Llamaremos agente a cada una de las mismas. Esta denominacin es una extensin del termino individuo tan comnmente empleado en el contexto de los Algoritmos Genticos, y permite capturar elementos distintivos de los Algoritmo Memtico que se mostraran mas adelante (por ejemplo, un agente puede contener mas de una solucin al problema considerado [25]). Estos agentes se interrelacionan entre si en un marco de competicin y de cooperacin, de manera muy semejante a lo que ocurre en la naturaleza entre los individuos de una misma especie. Cuando consideramos la poblacin de agentes en su conjunto, esta interaccin puede ser estructurada en una sucesin de grandes
90
UNMSM
Facultad de Ingeniera de Sistemas e Informtica pasos temporales denominados generaciones. La Figura 3.10 muestra el esquema de una de estas generaciones.
Proceso Paso_Generacional( poblacion Agente[], operadores Operador[] ) criadores, nueva_poblacion Agente[]; criadores Seleccion(poblacion); nueva_poblacion Reproducir(criadores,operadores); poblacion Actualizar(poblacion,nueva_poblacion); FinProceso
Figura 3.11. Esquema de una generacin
Tal como se muestra, cada generacin consiste en la actualizacin de la poblacin de agentes, usando para tal fin una nueva poblacin obtenida mediante la recombinacin de las caractersticas de algunos agentes seleccionados. Precisamente, este componente de seleccin es, junto con el paso final de actualizacin, el responsable de forzar la competicin entre agentes. Ms concretamente, la seleccin se encarga de elegir una muestra de los mejores agentes contenidos en la poblacin actual. Esto se realiza mediante el empleo de una funcin gua F encargada de cuantificar cuan bueno es cada uno de los agentes en la resolucin del problema abordado.
Funcion Reproducir( poblacion Agente[], operadores Operador[] ) Agente[] buffer Agente[]; j Entero; Para j 1 Hasta longitud(operadores) Hacer buffer[j] Aplicar(operadores[j],buffer[j-1]); FinPara Retornar buffer[longitud(operadores)] FinFuncion
Figura 3.12. Generacin de la nueva poblacin
91
UNMSM
Por su parte, el reemplazo o actualizacin incide en el aspecto competitivo, encargndose de la importante tarea de limitar el tamao de la poblacin, esto es, eliminar algunos agentes para permitir la entrada de otros nuevos y as enfocar la tarea de bsqueda. En este proceso tambin puede emplearse la informacin proporcionada por la funcin gua para seleccionar los agentes que se eliminaran. Tanto la seleccin como el reemplazo son procesos puramente competitivos en los que nicamente vara la distribucin de agentes existentes, esto es, no se crean nuevos agentes. Esto es responsabilidad de la fase de reproduccin. Dicha reproduccin tiene lugar mediante a aplicacin de cierto nmero de operadores reproductivos tal como se muestra en la Figura 3.12. Como puede apreciarse, es posible emplear un nmero variado de operadores. No obstante, lo ms tpico es emplear nicamente dos operadores: recombinacin y mutacin. El primero es el responsable de llevar a cabo los procesos de cooperacin entre agentes (usualmente dos, aunque es posible considerar grupos mas grandes). Dicha cooperacin tiene lugar mediante la construccin de nuevos agentes empleando informacin extrada del grupo de agentes recombinados, y quizs alguna informacin externa. Precisamente, la inclusin de informacin externa no contenida en ninguno de los agentes involucrados es responsabilidad del operador de mutacin.
Bsicamente, este tipo de operador generara un nuevo agente mediante la modificacin parcial de un agente existente.
92
UNMSM
Proceso Optimizador_Local( actual Agente, operador Operador ) nuevo Agente; Repetir nuevo Aplicar(operador,actual); Si Fg(nuevo)<Fg(actual) Entonces actual nuevo; FinSi Hasta Que Terminacion_Local(); FinProceso
Figura 3.13. Esquema de un optimizador local En relacin con los operadores de mutacin, es posible definir una meta operador basado en la aplicacin iterativa de un operador de mutacin arbitrario sobre un agente. El empleo de estos meta operadores es uno de los rasgos mas distintivos de los Algoritmos Memtico. Concretamente, dichos meta operadores iteran la aplicacin del operador de mutacin, conservando los cambios que llevan a una mejora en la bondad del agente, motivo por el cual son denominados optimizadotes locales. La Figura 3.13 ilustra el proceso. Como puede verse, la iteracin en la aplicacin del operador de mutacin y la subsiguiente conservacin de los cambios favorables se realiza hasta que se alcanza un cierto criterio de terminacin (un nmero de iteraciones fijo, un cierto nmero de iteraciones sin mejora, haber alcanzado una mejora suficiente, etc.). Estos optimizadotes locales pueden considerarse como un operador ms, y como tales pueden emplearse en diferentes fases de la reproduccin. Por ejemplo, pueden usarse tras la aplicacin de otros operadores simples de recombinacin y mutacin, aplicarse solo a un sub. conjunto de los agentes o nicamente ser aplicado al final del ciclo reproductivo. En cualquier caso, es la existencia de estos optimizadotes individuales lo que justifica el empleo de la denominacin agente en la jerga de los Algoritmos Memticos:
93
UNMSM
Facultad de Ingeniera de Sistemas e Informtica El algoritmo puede caracterizarse como una coleccin de agentes que realizan exploraciones autnomas del espacio de bsqueda, cooperando ocasionalmente a travs de la recombinacin, y compitiendo continuamente por los recursos computacionales a travs de la seleccin y el reemplazo.
Tras haber descrito el paso generacional bsico, podemos ahora considerar una visin global de un Algoritmo Memtico basada en la iteracin de este procedimiento, tal como se muestra en la Figura 3.14.
Funcion MA( tamao Entero, operadores Operador[] ) Agente poblacion Agente[]; poblacion Iniciar_Poblacion(tamao); Repetir poblacion Paso_Generacional(poblacion ,operadores); Si Convergencia(poblacion) Entonces poblacion Reiniciar_Poblacion(poblacion); FinSi Hasta Que Terminacion_MA(); Retornar i_esimo_Mejor(poblacin,1) FinFuncion
Figura 3.14. El esqueleto genrico de un MA La generacin de la poblacin inicial puede acometerse de diferentes formas. Por ejemplo, pueden crearse longitud(pob) agentes al azar, o emplear las soluciones proporcionadas por heursticas existentes. Una posibilidad mas sofisticada es el empleo de optimizadotes locales para tal fin, tal como se ilustra en la Figura 3.14:
94
UNMSM
Funcion Inciar_Poblacion( tamao Entero ) Agente[] poblacin Agente[]; agente Agente; j Entero; Para j 1 Hasta tamao Hacer agente Agente_Aleatorio() poblacin [j] Optimizador_Local(agente); FinPara Retornar poblacin FinFuncion
Figura 3.15 Generacin guiada de la poblacin inicial
La funcin para la reiniciacin de la poblacin es otro de los componentes fundamentales de los Algoritmos Memticos, ya que de el depender que se haga un uso apropiado de los recursos computacionales del sistema, o por el contrario estos se malgasten en la explotacin de una poblacin de agentes que hayan alcanzado un estado degenerado, por ejemplo, con una gran similitud entre todos los agentes de la poblacin. Esto se lo que se conoce como convergencia del Algoritmo Memtico. Una vez se ha detectado la convergencia del Algoritmo Memtico, la poblacin de agentes se reinicia, conservando una porcin de la misma, y generando nuevos agentes para completarla (Figura 3.16).
Funcion Reinciar_Poblacion( poblacin Agente[] ) Agente[] nueva_poblacin Agente[]; j,cons Entero; cons Tamao_Conservar(longitud(poblacin)) Para j 1 Hasta cons Hacer nueva_poblacin[j] <- i_esimo_Mejor(poblacin,j) FinPara Para j cons + 1 Hasta longitud(poblacin) Hacer nueva_poblacin[j] Agente_Aleatorio(); nueva_poblacin[j] Optimizador_Local(nueva_poblacin[j]); FinPara Retornar nueva_poblacin
Figura 3.16. Reiniciacin de la poblacin en un Algoritmo Memtico
95
UNMSM
Los Algoritmos Memticos se abren como una nuevo opcin para resolver los problema del timetabling, como ejemplo tenemos el trabajo de Alpay Alkan y Ender zcan [24] los cuales aborda el problema de asignacin de horarios, cursos y aulas. Estos consideran el problema como una como un 3-tupla (V , D, C ) donde
Definen 6 grupos diferentes grupos de restricciones: De Exclusin, las cuales representan la exclusin de algunas posibles soluciones, como por ejemplo que no se dicte estructura de datos los das martes. Predefinidas, representan las asignaciones predefinidas de ciertas variables, como que el curso de electrnica se dicte los vienes de las 14 a las 17. Limites, son las restricciones ms usadas en los problemas del timetabling y tenemos por ejemplo que dos cursos no pueden iniciar a la misma hora en la misma aula De orden, estas representan las restricciones de orden entre el dictado de cursos. Por ejemplo el curso de teora de algoritmos
96
UNMSM
Facultad de Ingeniera de Sistemas e Informtica debe de programarse a la misma hora que el curso de Base de Datos. De Distribucin de eventos, estas restricciones nos dicen como deben de distribuirse las horas en la semana De Atributos. Estos representan las restricciones aplicadas entre atributos del curso a dictar y / o los atributos de su asignacin. Por ejemplo asumamos que un atributo del curso sea el total de alumnos que pueden tomar el curso y un atributo del aulas sea su capacidad entonces una posible restriccin es que el total de alumnos que se puedan a escribir al curso sea menor que la capacidad del aula.
La representacin usada consiste en un conjunto de las clases a dictar, las cuales estn agrupadas, en los cursos respectivos, secciones y departamentos de manera jerrquica. Cada gen denota el tiempo de inicio del dictado del curso en un aula. Un curso puede ser dictado ms de una ves en la semana.
Un ptimo timetabling es aquel que satisfaga todas las restricciones. Sea p j que represente la penalidad asociada con la restriccin
UNMSM
f (T ) = w j p j g i (T )
ji
Para la generacin de la poblacin inicial se usa ciertas restricciones para sesgar la solucin aleatoria a una solucin factible. Despus de esta inicializacin aleatoria la poblacin es pasada atravs de un mtodo de asenso a la colina. Un mtodo adicional es implementado para proveer orientacin a la bsqueda ajustando los valores de las penalidades w j segn la poblacin inicial generada.
wj
g ( y) = y Poblacion{ } f ( y)
i
i
Utilizan operadores convencionales de reproduccin y mutacin pero posterior a cada uno de estos utilizan un procedimiento de acenso a la colina para mejorar el individuo hasta un ptimo local. La idea es crear un mtodo de asenso a la colina por cada tipo de restriccin y combinarlo bajo una solo. El modo de aplicar el mtodo de acenso a la colina es el siguiente, seleccionar el mtodo segn la restriccin que tenga un mayor numero de violaciones, luego seguimos los siguientes pasos:
Aplicar el mtodo para eliminar todas las violaciones del tipo de restriccin seleccionado produciendo un nuevo individuo.
Si el intento anterior no produce mejoras ignoramos el nuevo individuo. Segn la restriccin, seleccionar el bloque de genes que podra estar causando mas violaciones y tratar de corregirlo remplazndolo.
Si lo anterior no funciona escoger un nico gen del bloque de genes que podra estar causando mas violaciones y tratar de corregirlo remplazndolo.
Si la aptitud de un individuo mejora en cualquier caso, se vuelve a aplicar el mtodo de asenso a la colina en este individuo. En cuanto a la estrategia de seleccin utiliza el operador de elitismo.
98
UNMSM
Como resultados posteriores a la prueba del algoritmo con informacin real se logro que el tiempo computacional se reduzca y la calidad de la solucione incremente comparado contra un algoritmo evolutivo sin optimizadores locales.
3.2.3
Recocido simulado
Este tipo de algoritmos aparece a principios de los aos 80 [29]. Se trata de un tipo de modelo de resolucin para la optimizacin de problemas de tipo combinatorio con mnimos locales. Su aproximacin consiste en generar aleatoriamente una solucin cercana a la solucin actual (o en el entorno de la solucin) y la acepta como buena si consigue reducir una determinada funcin de costo, o con una determinada probabilidad de aceptacin. Esta probabilidad de aceptacin se ir reduciendo con el nmero de iteraciones y est relacionada tambin con el grado de empeoramiento del coste. El recocido simulado de un objeto para mejorar alguna de sus propiedades consiste en producir al azar cambios en su descripcin. Si es posible definir una temperatura en relacin a tal propiedad, el proceso comienza a altas temperaturas, en las que todos los cambios aleatorios son aceptados (y en consecuencia el aspecto del objeto inicial cambia continuamente); y contina con un paulatino y lento descenso de la temperatura, de manera que cada vez el nmero de cambios aceptados disminuye ms y ms y una forma particular del objeto acaba por emerger. Finalmente, cuando la temperatura es tan baja que ningn cambio se acepta, el algoritmo se detiene con el objeto inicial profundamente alterado, de hecho con el objeto que probablemente pueda encontrarse para la propiedad de inters. Esta situacin inicial es el cero absoluto del objeto respecto a la propiedad. [21] Su fundamentacin se basa en el trabajo de Nicholas Constantine Metrpolis en el campo de la termodinmica estadstica. Bsicamente,
Metrpolis model el proceso de recocido simulando los cambios energticos en un sistema de partculas conforme decrece la temperatura, hasta que converge a un estado estable (congelado). Estos algoritmos se llaman de esta forma por su parecido en funcionamiento al proceso de enfriamiento metalrgico: cuando se enfra un metal fundido
99
UNMSM
suficientemente despacio, tiende a solidificarse en una estructura de mnima energa (equilibrio trmico); segn va disminuyendo la temperatura, las molculas del metal tienen menor probabilidad de moverse de su nivel energtico. La probabilidad de movimiento de una molcula de su estado viene dada por la funcin de Boltzmann P( E ) = e
E / kT
, que depende de la
Los algoritmos de enfriamiento lento simulado tienen algunas ventajas con respecto a otras tcnicas de optimizacin global. De acuerdo con Elmohamed [20] entre las ventajas de estos algoritmos se pueden citar:
Su capacidad para ofrecer soluciones razonablemente buenas a la mayora de los problemas, aunque hay una cierta dependencia de la planificacin del enfriamiento y los movimientos que se realicen.
La facilidad con la que se puede combinar este tipo de algoritmos con otras tcnicas heursticas como los sistemas expertos, los algoritmos genticos, las redes neuronales, etc., consiguiendo sistemas hbridos que pueden resultar de gran potencia en la resolucin de problemas muy complejos.
Por otra parte, tambin se pueden citar algunos aspectos que pueden limitar su utilizacin:
Se necesita elegir con mucho cuidado los movimientos que se realizan, as como los parmetros que se van a utilizar para tratarlo, como por ejemplo la tasa de enfriamiento.
Una ejecucin del problema puede requerir mucho tiempo de clculo. Puede que sea necesario realizar muchas ejecuciones para encontrar una solucin satisfactoria.
Dependiendo de los parmetros elegidos, las soluciones que se van encontrando pueden ser poco estables, saltando mucho de unas a
100
UNMSM
Facultad de Ingeniera de Sistemas e Informtica otras sin encontrar una solucin buena con la rapidez suficiente lo que obliga a retocar los parmetros con las distintas ejecuciones.
f ( s ' ) > f ( s0 )
No Depende de la t actual
n < P ( E )
Si
s0 = s
No Se termino la bsqueda en la vecindad (Numero repeticiones)
t = (t )
Si No Solucin: Mejor s 0 encontrada Condicin de Parada alcanzada
Figura 3.18. Diagrama de Flujo del Algoritmo de Recocido Simulado En este diagrama se pueden diferenciar dos tipos de elementos que permiten afinar el algoritmo para que la ejecucin del mismo sea la ms eficaz de acuerdo con el problema que se desea resolver:
101
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Elementos genricos. Son elementos que no tienen una dependencia directa del problema, aunque hay que afinarlos para el problema concreto que se desea resolver. Temperatura inicial: t 0 Proceso de enfriamiento: Nmero de repeticiones. Condicin de parada.
(t )
Elementos dependientes de problema. Son los elementos que definen de forma directa el problema que se est resolviendo. Definen un modelo del problema y la estructura del espacio de soluciones para el mismo.
La temperatura inicial define el momento en el que se inicia el proceso de enfriamiento. Esta temperatura inicial debe ser
suficientemente alta para permitir el libre cambio de soluciones vecinas y, sobre todo, que la solucin final sea independiente de la solucin inicial. Una regla prctica que se le suele poner a la temperatura inicial es que debe tener un valor tal que la proporcin inicial de vecinos aceptados (tanto de mejora como de no mejora) tenga un alto valor (90% - 95%). Es decir, inicialmente todos los vecinos se aceptan con una probabilidad cercana a 1. Lgicamente hay que elegir esta temperatura con cuidado porque si se elige una temperatura inicial demasiado alta se perder tiempo realizando muchos movimientos que se aceptan siempre, lo que no resulta de mucho inters pues no se est persiguiendo ningn valor concreto.
102
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Por otra parte, si se elige una temperatura inicial demasiado baja el proceso se mueve poco desde la solucin inicial por lo que se puede quedar atrapado desde un inicio en una regin desde la que slo se pueda llegar a un ptimo local, por lo que se perder la posibilidad de explorar otras regiones donde se encuentre alguno de los ptimos globales del sistema.
El proceso de enfriamiento es el mecanismo por el que la temperatura va tendiendo a 0. Es decir, la probabilidad de aceptacin de soluciones peores tiende a 0. El proceso de enfriamiento, por tanto, determina cmo se modifica la temperatura durante la ejecucin del algoritmo. Hay dos modelos bsicos que se pueden utilizar para el proceso de enfriamiento. En el primero podramos ir enfriando muy lentamente con cada iteracin de manera que en un nmero de pasos extremadamente alto la temperatura tienda a 0, utilizar un proceso de enfriamiento ms rpido, pero antes de aplicar un cambio en la temperatura hay que dejar que el sistema llegue a un estado estacionario, es decir, un estado en el que se estabilice la solucin. Algunos de los algoritmos de enfriamiento utilizados son los siguientes: Descensos constantes de temperaturas. Descenso exponencial: t k +1 = t k (0,8 < < 0,99) Criterio de Boltzmann: t k = t 0 /(1 + log(k )) Esquema de Cauchy: t k = t 0 /(1 + k )
Hay que intentar durante el proceso de enfriamiento que haya una alta aceptacin al principio (de forma que se pueda realizar un proceso de exploracin inicial en el espacio de bsqueda) e ir reduciendo esta aceptacin hacia el final (de forma que se fomente el proceso de explotacin de vecindad para llegar a una solucin lo mejor posible). El nmero de repeticiones del bucle interno nos va a dar el nmero de vecinos que se visitan antes de reducir la temperatura del
103
UNMSM
Facultad de Ingeniera de Sistemas e Informtica sistema. Es proceso debe ser dinmico, de forma que se aumente el nmero de repeticiones segn se reduce la temperatura. De esta forma se conseguir explotar la vecindad hacia el final del proceso. Un mecanismo habitual para conseguirlo es repetir el bucle hasta que se cumpla una de las siguientes condiciones:
Se aceptan un cierto nmero de soluciones. Durante las primeras fases del proceso se aceptarn muchas soluciones mientras que en las ltimas fases se aceptarn muy pocas. De esta forma segn se desarrolla el algoritmo cada vez se analizan ms vecinos.
Se han visitado un cierto nmero de vecinos. De esta forma el bucle interno termina en algn momento, si se da el caso que se aceptan muy pocos vecinos, o ninguno, de acuerdo con la condicin anterior.
Para que se pueda explorar con cierta completitud todos los vecinos el nmero de repeticiones debe ser del orden del tamao de la vecindad. La condicin de parada nos indica cuando damos por terminado el algoritmo de clculo. Hay que tener en cuenta que al reducirse la temperatura, la probabilidad de aceptar soluciones peores tiende a 0. As mismo, la probabilidad de encontrar soluciones mejores tambin tiende a 0. En este sentido las condiciones para terminar el algoritmo deberan tener en cuenta que ya se han realizado un determinado nmero de iteraciones sin mejorar la solucin. La idea es evitar seguir insistiendo reiteradamente en la vecindad de una solucin para la que ya se lleva tiempo intentado explotar. La definicin del modelo del problema determinar la estructura del espacio de soluciones y, por tanto, la forma en que se va a poder recorrer, los algoritmos que se pueden utilizar para crear soluciones, etc.
104
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Resulta de gran importancia que el modelo elegido para crear el modelo del problema disponga, por comodidad algortmica, de algunas propiedades como: el espacio de soluciones no genere soluciones degeneradas, no permita la generacin de soluciones imposibles, la estructura del espacio de costos no sea excesivamente escarpado o llano, etc. Lgicamente para cada problema hay que estudiar de forma diferenciada cmo generar este espacio de soluciones, en relacin con la facilidad para generar una vecindad y el clculo de la funcin de coste asociada a una determinada solucin. Dada una solucin, hay que poder conseguir una nueva solucin mediante un pequeo cambio en la solucin original. Adems la forma de generar una vecindad nos debe poder asegurar que a partir de una solucin cualquiera se debe poder llegar a cualquier otra ya sea directa o indirectamente. Esta caracterstica es vital para dar validez al proceso de convergencia del algoritmo. Asimismo, la vecindad de una solucin dada debera ser suficientemente pequea como para poder realizar una bsqueda en pocas iteraciones, como suficientemente grande para generar mejoras sustanciales en pocos movimientos. Desde el punto de vista computacional la generacin de un vecino debera ser rpida, de forma que se puedan calcular un mayor nmero de vecinos por unidad de tiempo. As mismo, sera muy apropiado que el vecino generado siempre sea una solucin factible, lo que puede resultar complicado. Si no es factible conseguir vecinos factibles, se puede permitir que durante el proceso del algoritmo se generen temporal. La funcin de costo mide la bondad de una solucin y est asociada a todos los elementos de dicha solucin. La funcin de costo debe ser rpida de calcular al generar una solucin de vecindad, creando un clculo incremental que considere solamente los cambios que genera la vecindad. De esta forma se podrn calcular ms soluciones por unidad de tiempo. De hecho, el clculo de la funcin de coste soluciones imposibles, pero stas se penalicen suficientemente como para que no se elijan ms que de forma
105
UNMSM
Facultad de Ingeniera de Sistemas e Informtica suele ser uno de los aspectos ms costosos en tiempo de cmputo del algoritmo. Asimismo hay que evitar generar una topografa muy plana o muy abrupta. Si la topografa es muy plana, al generar vecinos el coste no variar para muchos de ellos, no permitiendo diferenciar soluciones. En el caso contrario, si la topografa es muy abrupta, la diferencia de coste entre una solucin y un vecino de la misma ser demasiado grande no permitiendo guiar el proceso de convergencia hacia una solucin ptima. La solucin inicial, en general es cualquier solucin vlida del problema. Al ser un problema de optimizacin combinatoria, el modelo permite expresar una solucin como una combinacin de partes del mismo. De esta forma, la solucin inicial ms sencilla resulta de elegir una combinacin aleatoria de elementos de problema que conformen una solucin con la estructura del modelo elegido. Otra alternativa es utilizar un proceso doble. En primer lugar se emplea algn tipo de heurstica que nos permita generar una solucin razonablemente buena, mejor que utilizar una solucin estrictamente aleatoria.
M nxn
mij = 1
si
el examen i entra en conflicto con el examen j con relacin a los candidatos y 0 en otro caso. La solucin es representada por
si el
106
UNMSM
f ( x ) = i f i ( x )
i =1
es el peso para esta restriccin y h el nmero de restricciones. El peso de la restriccin va de acuerdo a su importancia. Para la generacin de la solucin inicial usan un proceso que la crea con la menor cantidad de conflictos posibles para agilizar el proceso de bsqueda, como en la funcin objetivo se definen todas las restricciones no es necesario partir con una solucin factible.
(t ) = at , a < 1
Pero tambin como fines de prueba y comparacin utiliza otra funcin la cual demora ms en enfriar la temperatura.
(t ) = t /(1 + at ), a < 1
En cuanto a los movimientos en la vecindad de cada solucin usa dos mtodos para su generacin:
Cambiando el tiempo del examen aleatoriamente de la siguiente forma: Seleccionamos un examen al azar Buscamos otro horario al azar Asignamos el horario al examen
107
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Cambiando el horario mediante intercambio de dos horarios aleatorios: Seleccionar dos exmenes Seleccionar un horario Remplazamos el horario del primer examen por el horario encontrado Remplazar los horarios del primer examen con el segundo
Cabe destacar que este segundo mtodos genera una vecindad mayor al primer mtodo. Como conclusiones al trabajo es que al probar descubrieron que los resultados alcanzaron alta desempeo tanto en tiempo y cumplimiento de las restricciones. Adems se mostr que el enfriamiento geomtrico y el segundo mtodo para generar una solucin vecina son los mejores para este problema.
108
UNMSM
Captulo 4 : Aporte Terico En este captulo se presentarn los fundamentos necesarios que darn solucin al problema de generacin de horarios a travs de la aplicacin de los algoritmos genticos, as mismo delimitaremos de manera explcita el nuevo conocimiento del objeto de estudio.
4.1.
Introduccin
En este captulo se pretende mostrar, en primer lugar, la justificacin del uso de los algoritmos genticos para resolver los problemas de timetabling. Se comenzar con una evaluacin subjetiva en base a una serie de criterios que una heurstica debe garantizar para ser considerada como buena, y luego se presentarn dos evaluaciones ms cuantificables para comparar los algoritmos genticos con otros mtodos de optimizacin. La primera de estas evaluaciones pretende evaluar, bajo tiempos iguales de procesamiento, la calidad de las soluciones que se obtienen y la segunda evaluacin muestra el tiempo requerido por los diferentes mtodos para encontrar una solucin factible al problema.
109
UNMSM
La segunda parte del captulo nos describe la implementacin modificada del Algoritmo Gentico que es usada para solucionar nuestro problema de timetabling. Se presentar un estudio por cada elemento del algoritmo, los cuales se han definido en un captulo anterior, explicando el mtodo seleccionado y el por qu de su uso.
Un punto importante, que se debe observar, es el uso de una variacin del mtodo divide y vencers, el cual se usar para mejorar el funcionamiento de la heurstica. A travs de esto se mostrar que el problema de asignacin de recursos a cada una de las clases se puede solucionar en tres fases: primero, asignando docentes, luego asignando los horarios o periodos y por ltimo asignando las aulas. Esto es posible slo si se toman en cuenta restricciones que estn relacionadas a cada fase y que son indispensables a su correspondiente fase anterior; por ejemplo, cualquier requisito acerca de las aulas tales como la cantidad mxima o que una clase necesita un aula con ciertas caractersticas se puede traducir a restricciones sobre los horarios, tal que despus de asignar stos, las aulas se pueden asignar sin ningn problema. 4.2. Evaluacin y Seleccin del Algoritmo
Para realizar la implementacin de la solucin, primero se hizo un estudio de los diferentes algoritmos con los cuales se podra dar solucin al problema, por lo que se procedi a realizar una comparacin entre las diferentes alternativas detalladas en el captulo anterior para sustentar nuestra eleccin.
4.2.1. Cuadro comparativo de Metaheursticas En este punto se realizar la comparacin entre las metaheursticas vistas, segn deseables [30]: las buenas propiedades de cada una de stas. Primero una pequea definicin de cada una de estas caractersticas
Simplicidad, ya que una metaheurstica debe estar basada en un principio sencillo y claro que la haga fcil de comprender,
Independencia, puesto que no puede depender del marco del agente tecnolgico en el que se vaya a desarrollar.
110
metaheurstica deben derivarse de forma natural de los principios que la inspiran. Efectividad, ya que los algoritmos particulares que se produzcan a partir de las metaheursticas deben proporcionar soluciones ptimas muy cercanas a las ptimas, es decir, de alta calidad en algn sentido propio que cada usuario deber especificar, y que podr depender de cada problema concreto. Eficacia, en el sentido de fallar slo en ocasiones muy raras ante casos prcticos del mundo real. Eficiencia, como una caracterstica, ms que deseable, exigible en trminos de recursos, es decir, de tiempo de ejecucin, de espacio de memoria y, en definitiva, de costos de desarrollo. Generalidad, de forma que se pueda utilizar provechosamente en una gama de situaciones y problemas tan amplia como sea posible. Adaptabilidad, para que pueda adecuarse a los diferentes contextos de aplicacin y a los distintos casos que se consideran. Robustez, ya que no puede ser muy sensible a pequeas alteraciones del modelo contexto de aplicacin. Interactividad, para que el decisor pueda mejorarla a partir de su experiencia y conocimientos. Diversidad, para que se permita al usuario elegir entre las distintas soluciones alternativas que proporcione la metaheurstica. Autonoma, para facilitar su funcionamiento automtico global, al menos en alguna de las facetas que la caractericen. Aqu mostraremos la comparacin de los diferentes mtodos para luego escoger entre uno de ellos. La calificacin colocada a cada uno de ellos viene dada por la siguiente tabla:
111
UNMSM
Tabla 4.1. Puntuaciones para calificar las caractersticas de las metaheursticas Una vez definidos estos puntajes, procedemos a realizar la respectiva comparacin:
Caracterstica Simplicidad Independencia Coherencia Efectividad Eficacia Eficiencia Generalidad Adaptabilidad Robustez Interactividad Diversidad Autonoma Puntaje Final
Recocido Simulado 0.75 1 1 0.75 0.5 0.5 1 0.75 0.75 0.75 0.5 1 9.25
Por la tabla observamos que los Algoritmos Genticos tienen una ventaja sobre el resto de meta heursticas.
112
UNMSM
4.2.2. Anlisis de tiempo y calidad de solucin Una vez realizada la comparacin cualitativa entre los diferentes mtodos, nos toca realizar una comparacin cuantificable de acuerdo a la calidad de la solucin. Dado que los resultados de las mediciones del tiempo de trmino de procesamiento para cada mtodo son diferentes, la evaluacin, solamente, del valor final de cada solucin no sera suficiente. Una alternativa es observar el comportamiento del tiempo de operacin del algoritmo tal como lo muestra la imagen a continuacin.
(Errores)
SA: Recocido simulado TS: Bsqueda Tab GA: Algoritmos Genticos ACS: Sistema de colonia de hormigas
Pero segn Zahra Naji Azimi [32], una de las estrategias que se puede adoptar es el uso de comparaciones dinmicas de los algoritmos en diferentes puntos, para ver el estado de sus soluciones en tiempos de procesamientos semejantes.
Segn el trabajo de Zahra, quien realiza las pruebas para el problema de timetabling de exmenes, se obtuvo las siguientes mediciones.
113
UNMSM
SA: Recocido simulado TS: Bsqueda Tab GA: Algoritmos Genticos ACS: Sistema de colonia de hormigas
Tabla 4.3. Medicin de soluciones en intervalos de tiempo En esta tabla, el smbolo asterisco indica cul metaheurstica tiene el mnimo valor despus de cada iteracin. La mejor solucin de cada metaheurstica en el mismo tiempo y la que obtuvo la mejor reduccin de costo est en negrita. La columna a la derecha de cada celda contiene la diferencia relativa con respecto a la mejor solucin en el mismo tiempo.
Diferencia =
Como resultado de estas mediciones se observa que los Algoritmos Genticos obtuvieron una buena posicin con respecto a los dems, slo fue superado por el Sistema de Colonia de Hormigas, seguido
114
UNMSM
Facultad de Ingeniera de Sistemas e Informtica por la Bsqueda Tab y el Recocido Simulado en relacin a la bsqueda de la mejor solucin en el mismo tiempo.
SA 3.3%
TS 26.6%
GA 26.6%
ACS 43.3%
Tabla 4.4. Habilidad de las meta heursticas de encontrar la mejor solucin Los valores mostrados fueron calculados a travs de la siguiente frmula:
porcentaje =
El efecto de las cuatro metaheursticas con relacin a la solucin inicial es diferente, lo cual se prueba al realizar el clculo de la tasa de reduccin para cada uno de los mtodos. Los Algoritmos Genticos poseen un costo de reduccin bajo de la poblacin pues mantienen ms amplio el espacio de soluciones, permitiendo as no caer fcilmente en ptimos locales.
SA
TS
GA
ACS 20%
Tabla 4.5. Habilidad de las metaheursticas de producir un mximo costo de reduccin 4.2.3. Comparacin de tiempos En cuanto a la comparacin de tiempos que demoran en converger cada uno de los mtodos hacia una buena solucin, tenemos el trabajo realizado por Silvia Casado Yusta y Joaqun Pacheco Bonrostro [26]. En dicho trabajo se prueban diferentes metaheursticas bajo caractersticas comunes, realizando la medicin del tiempo en el cual se hallaba la mejor solucin por cada algoritmo
115
UNMSM
Facultad de Ingeniera de Sistemas e Informtica o si se alcanzaba la condicin de parada, obteniendo los siguientes resultados.
GRASP: Algoritmo GRASP VNS: Bsqueda en entorno de variables TS: Recocido simulado AG: Algoritmos Genticos AM: Algoritmos Memticos BT: Bsqueda Tab
Tabla 4.6. Comparacin de tiempos para alcanzar una adecuada solucin De la Tabla 4.6 se obtienen los siguientes resultados: Se observa cmo la estrategia que nos permite obtener los mejores resultados en un tiempo de computacin corto es Bsqueda Tab. Pero tambin dan buenos resultados el Algoritmo Memtico y el Algoritmo Gentico y en menor medida el Algoritmo GRASP. En cuanto a Recocido Simulado y Bsqueda en Entornos Variables se obtienen buenos resultados rpidamente, pero no muestran capacidad de mejorarlos posteriormente. Los Algoritmos Genticos y Memtico dan soluciones bastante cercanas al ptimo que Bsqueda Tab, adems emplean un tiempo de computacin mucho mayor que el resto de las estrategias para alcanzar estas soluciones. Llama la atencin especialmente el tiempo de computacin empleado por el Algoritmo Memtico (8606,87 segundos en alcanzar la mejor solucin). De lo evaluado se podra considerar a los algoritmos genticos como buena opcin para dar solucin al problema de timetabling, si bien tiene varios puntos a favor comparado con otras heursticas al
116
UNMSM
Facultad de Ingeniera de Sistemas e Informtica momento de resolver problemas de timeabling, tambin podemos ver que posee desventajas que trataremos de eliminar con su respectiva adaptacin a nuestro problema.
4.3.
Tomando en cuenta las bases tericas mostradas en los captulos 2 y 3, la estructura del problema observado en el capitulo 1 y considerando los motivos por los cuales se seleccion los Algoritmos Genticos, la parte de este captulo tiene como objetivo disear un algoritmo que trate con eficacia y eficiencia el problema. Las modificaciones que se realicen al algoritmo se tratarn en los siguientes puntos. 4.3.1. Unidad de asignacin Podramos interpretar el problema de timetabling como el problema de asignar un conjunto de recursos a un elemento en particular, como por ejemplo la asignacin de docentes, de horarios y aulas a un curso especfico en su representacin ms sencilla. En nuestro caso el elemento al cual le vamos a asignar los recursos (docentes, horarios y aulas) es la clase; la cual se define como la combinacin de un curso, el tipo de ste, la cantidad de horas a dictar y el grupo. CURSO TIPO DE CURSO HORAS DE DICTADO GRUPO
Figura 4.2. Estructura de la unidad de asignacin (clase) Una vez definido esto, nuestro algoritmo se encargar de asignar un docente, un horario y un aula determinada a cada una de las clases, los cuales son necesarios para llevarla a cabo. El proceso que generar el universo de clases, que servirn de elementos de entrada al algoritmo, ser un procedimiento lineal. Este tomar en cuenta los tipos de curso (teora, prctica y laboratorio), la cantidad de horas de dictado por cada tipo, los grupos que se aperturen para el semestre en curso y la siguiente restriccin obligatoria:
117
UNMSM
Facultad de Ingeniera de Sistemas e Informtica ROG7. Un curso debe cumplir con una cantidad de horas semanales requeridas. Segn sea el caso si el nmero de horas acadmicas es par se asignar dos horas diarias hasta cubrir la totalidad, sino se asignar un da de tres horas y el resto de dos horas. A cada uno de estos grupos de horas se les llamar bloques.
Definiendo de este modo la unidad a la cual se asignar los recursos y asegurando que el algoritmo asignar recursos a todas las clases sin excepcin con la finalidad de generar un horario factible, entonces se tendrn cumplidas de antemano la restriccin obligatoria anterior as como la siguiente: ROG8. Las horas de un bloque para un determinado curso en un mismo da deben de ser consecutivas adems de ser asignados a un mismo docente y aula
Esto nos permitir ahorrar tiempo computacional debido a que se evitar la evaluacin del cumplimiento de estas restricciones, y adems se podr simplificar la implementacin del algoritmo. Mediante un ejemplo sencillo veremos la generacin de las clases y su correspondiente estructura: Consideremos el curso de Algortmica I, el cual tiene 3 tipos definidos y se le aperturarn 3 grupos en el presente semestre, adems en la siguiente tabla tenemos las horas semanales de dictado por cada tipo definido para el curso:
Horas de Dictado 5 3 4
Tabla 4.7. Horas de Dictado de Algortmica I Ahora tomaremos en cuenta lo expresado en la restriccin ROG7 : Para el curso de Algortmica I de tipo teora se tiene asociado una cantidad de horas de dictado impar, por lo tanto se tendra una clase de teora de tres horas y otra de dos. Por consiguiente el total de clases generadas seran:
118
UNMSM
Curso Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I Algortmica I
Tipo Teora Teora Practica Laboratorio Laboratorio Teora Teora Practica Laboratorio Laboratorio Teora Teora Practica Laboratorio Laboratorio
Horas 3 2 3 2 2 2 3 3 2 2 2 3 3 2 2
Grupo 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3
Tabla 4.8. Clases generadas para el curso de Algortmica I 4.3.2. Separacin en Sub-Fases En este punto veremos cmo el problema, que como ya hemos mencionado anteriormente corresponde a la asignacin de recursos (docentes, aulas, horarios) a las clases, ser simplificado debido a que no se asignarn todos en un mismo momento. Dicha asignacin se realizar uno a uno a travs de diferentes fases delimitndose el espacio de soluciones cada vez que se van asignando dichos recursos. A continuacin definimos 3 fases segn los recursos a asignar:
Fase 1: Asignacin de docentes a las clases. Fase 2: Asignacin de horarios a las clases. Fase 3: Asignacin de aulas a las clases.
119
UNMSM
Clase
Docente
Clase
Horario
Clase
Aula
A continuacin veremos con ms detalle cada una de las fases y la forma como stas interactan: La primera fase asigna los docentes a las clases, tomando en cuenta que todas las restricciones obligatorias correspondientes al docente y al curso se cumplan. La solucin resultante pasar a la segunda fase, la cual se encargar de asignar diversos horarios a las clases cerciorndose de que se cumplan las restricciones relacionadas a los periodos de tiempo, cursos y docentes; adems se debe cerciorar que cada horario no tenga ms
asignaciones que aulas disponibles, dado de que si esto no se verifica entonces no existira solucin posible para la siguiente fase. La tercera fase asigna aulas a las clases, las cuales ya poseen horarios y docentes asignados como resultado de la primera y segunda fase. Puesto que existe un mayor nmero de restricciones implicadas con los horarios, resulta mejor considerar esta fase en segundo lugar debido a que controlaremos las restricciones de los docentes con respecto a los horarios que no se pudieron controlar en la primera fase. Y no se ha considerado como ltima fase debido a que no hay restricciones en el uso de las aulas con respecto a los horarios considerados.
120
UNMSM
En la fase uno encontramos restricciones que estn relacionadas con la preferencia de dictado de cursos por parte de los docentes y la disponibilidad de stos. En la fase dos, referida a los horarios, hay restricciones tales como la determinacin de la facultad a programar algunos cursos solamente por la maana por la tarde, la no posibilidad de programarlos en ciertas horas, entre otras. En la fase tres podemos manejar restricciones relacionadas a la necesidad de ciertas clases por hacer uso de aulas especficas. Esto puede ser ejemplificado con la programacin de aulas para las clases de laboratorio de ciertos cursos. Sin embargo, debemos observar que hay relativamente pocas restricciones referidas a las asignaciones de las aulas porque el nmero de aulas en la facultad es grande. De hecho, la asignacin de aulas a las clases que tienen ya horarios asignados es una tarea de menor complejidad comparada a la de asignar horarios a las clases, igualmente ocurre con la primera fase correspondiente a la asignacin de docentes la cual tambin es de menor complejidad.
Ahora veremos la justificacin de separar el problema en fases. Si quisiramos atacar el problema en una sola fase implicara validar todas las restricciones obligatorias por la asignacin de horarios, docentes y aulas a las clases, tendramos entonces restricciones obligatorias tales como que no se debe asignar dos o ms clases en el mismo horario y aula, asignar a un docente a ms de una clase en el mismo horario. Puesto que un algoritmo gentico es una tcnica metaheurstica, esto es absolutamente posible a lo largo del curso de su evolucin. Dado que penalizamos tal situacin, los algoritmos genticos se esfuerzan eventualmente a quitar tales
asignaciones, pero esto est a expensas de, posiblemente, cientos de iteraciones para encontrar la solucin factible. Para ilustrar esta idea supongamos que la asignacin del docente y horario ya estn definidos y ocurriese un conflicto de dos clases en un mismo horario y aula, simplemente deberamos cambiar el aula de clases a otra aula con el mismo horario; esto es cierto especialmente para esas clases que no tienen preferencia alguna de lugar. Este cambio es siempre posible, y se hace a menudo, siempre y cuando el nmero de las clases asignadas a un horario no exceda el nmero de las aulas disponibles en ese horario. Lo mismo ocurre con los docentes, podemos cambiar el horario asignado a otro horario con el mismo docente siempre y cuando los horarios disponibles para el docente no sean sobrepasados.
121
UNMSM
Actualmente, el nmero de aulas disponibles es el mismo en cualquier horario, no cambia con respecto al tiempo, en otras palabras las aulas se encuentran disponibles en su totalidad para todos los horarios considerados; mientras que para el caso de los docentes y su disponibilidad, stos son considerados datos ms voltiles y complejos. Por lo tanto, podemos ahorrar centenares de iteraciones adicionales de heurstica, separando el problema en fases. La simplificacin y la solucin del problema, dividindolo en estas tres fases fomentan el hallazgo de soluciones de una manera ms rpida, puesto que la combinacin de los conflictos de los docentes, de los horarios y de las aulas no se considera simultneamente, sino en diversas fases. 4.3.3. Representacin del problema
Dado que hemos mencionado la existencia de tres fases diferentes para dar solucin al problema tendremos que definir tres cromosomas, uno para cada fase. Cada uno de los cromosomas tendr una cantidad de genes igual al nmero de clases y el valor de estos genes (alelos) ser igual al recurso asignado a la clase. Una ilustracin spera de un cromosoma es como sigue:
Clase 1 Recurso 2
Clase 2 Recurso 20
Clase 3 Recurso m
Clase N Recurso 9
Figura 4.4. Representacin vectorial del cromosoma Es importante observar que los tres cromosomas son iguales a nivel de estructura, pero aquello que los diferenciar ser el significado que tengan los alelos (valores de los genes) en cada fase; es decir, los alfabetos usados en cada una de las fases sern distintos.
122
UNMSM
La eleccin del tipo de codificacin de las soluciones influye en los tipos de operadores que se pueden utilizar, as que este proceso debe ser realizado cuidadosamente tratando que se refleje en la medida de lo posible la naturaleza del problema.
Como ya se ha mostrado tericamente existe una codificacin directa y una codificacin indirecta, siendo sta ltima la ms comn. En la codificacin indirecta se traza la gama de valores posibles en una dimensin ms simple, a menudo un espacio binario. La representacin binaria tiene ventajas de cmputo y de programacin debido a que presenta una estructura ms simple; sin embargo, cuando tratamos casos ms complejos es difcil tratarlo a travs de una codificacin indirecta debido a la complejidad de cmputo que implicara tener que traducir cada representacin. Para nuestro caso, notamos que la utilizacin de una representacin directa, debido a su facilidad de evaluacin, permite el diseo de un sistema ms complejo tanto en sus condiciones y sus objetivos. Es por ello que para nuestro modelo consideraremos una codificacin directa en lugar de una codificacin indirecta. Ahora que ya establecimos la estructura y la codificacin a utilizar, pasaremos a mostrar el alfabeto que se emplear, en base a los requisitos particulares, en cada una de las fases: En la fase uno, el alfabeto constar de enteros que representarn a cada docente, los cuales sern asignados a cada una de las clases en el semestre actual. Con esto tendremos un alfabeto especfico asociado a cada clase a la cual le vayamos asignar un docente. Para las fases dos y tres se usar la misma forma de representacin tanto para los horarios como para las aulas a asignar a cada clase del semestre actual. De esta manera logramos que el valor que vaya a tomar cada gen no se encuentre fuera del dominio establecido para cada recurso, ya que con una representacin binaria podramos obtener un conjunto de valores que no sean correctos y que no correspondan al rango de valores de los recursos. Por ejemplo, tenemos un conjunto de 20 docentes cuyo alfabeto estar definido desde el valor 1 al 20 y si para ello usamos una combinacin binaria
123
UNMSM
para representar dichos valores, entonces podramos obtener valores que se encuentren fuera de este rango. Tambin puede suceder que a las clases no se les pueda asignar ciertas aulas o ciertos horarios o ciertos docentes por algn motivo, entonces nosotros podemos quitar esas combinaciones del alfabeto correspondiente. Por ejemplo, en caso que queramos asignar un docente a una clase, deberamos primero seleccionar al docente entre los que ya estn definidos; pero imaginemos que slo dos de ellos tienen preferencia para el dictado de dicha clase, entonces si quitamos ciertos valores del alfabeto evitaramos que se asigne un docente que no tenga preferencia por dicha clase. Esta clase de codificacin dura protege al modelo contra la violacin de restricciones obligatorias, ahorrando de esta manera recursos computacionales y minimizando el tiempo. Bajo este criterio es imposible que los segmentos del cromosoma tomen valores fuera del espacio factible de soluciones. En nuestro problema timetabling, esto significa que si un docente desea ensear solamente en los horarios de la maana, el algoritmo gentico nunca le asignar una clase de la tarde en toda su poblacin, desde la primera iteracin hasta la ltima. La probabilidad de que no se cumpla esta restriccin es nula; sin embargo, esto tambin hace que al sistema le resulte difcil encontrar una solucin, puesto que se ocupar de generar los diversos espacios de alfabetos que estarn asociados a las clases en cada una de sus fases.
Una vez detallada la conceptualizacin de nuestra idea veamos las restricciones que se emplearn en cada una de las fases, las cuales limitarn el uso de alfabetos en los diferentes genes de la poblacin y a su vez no tendrn que ser tomadas en cuenta en la evaluacin de la solucin. En la fase uno (docente - clase), acotar la lista de docentes que puedan dictar una clase determinada, nos permitir dejar de lado la evaluacin de las siguientes restricciones:
124
UNMSM
Facultad de Ingeniera de Sistemas e Informtica ROE6. Pueden existir asignaciones previas de docentes a un determinado periodo y curso ROE7. Los cursos son clasificados en los turnos de maana, tarde y noche segn el semestre al que pertenecen ROE5. Pueden existir asignaciones previas de cursos a un determinado periodo y aula
En la fase dos (horario - clase), anlogamente a lo indicado en la fase uno, los horarios en los que se pueda dictar una clase, nos permitir dejar de lado la evaluacin de las siguientes restricciones:
ROE7. Los cursos son clasificados en los turnos de maana, tarde y noche segn el semestre al que pertenecen
Y por ltimo en la fase tres (aula - clase), la limitacin de las aulas en las que se pueda dictar una clase, nos permitir dejar de lado la evaluacin de las siguientes restricciones:
ROE2. Las clases de teora y prctica deben de asignarse a aulas de tipo no laboratorio.
4.3.5. Inicializacin de la poblacin La primera etapa en un Algoritmo Gentico es la generacin de la poblacin inicial, que como ya se mencion se suele realizar de manera aleatoria. Aqu se darn valores a todos los genes de los N cromosomas, donde N representa el tamao de la poblacin inicial, es decir, la cantidad de soluciones que se considerarn en cada etapa.
125
UNMSM
Como en nuestro caso se abordar el problema en tres fases diferentes teniendo para cada una de stas un algoritmo gentico asociado, el cual se encargar de la asignacin de un recurso en particular (docentes, horarios y aulas) a las clases, necesitaremos entonces tambin tres fases de inicializacin.
Con respecto a la estructura del cromosoma, en nuestro caso estar determinada por un arreglo de enteros para cada una de las tres fases consideradas. Una primera apreciacin podra considerar la asignacin, a cada ndice del arreglo, de valores aleatorios dentro del conjunto de los enteros, desde 1 a un lmite superior que vendra a ser el nmero total del recurso segn la fase. Por ejemplo consideremos que deseamos inicializar diez clases con docentes y contamos con una plana de veinte docentes, entonces tendremos un arreglo de longitud diez donde cada ndice del arreglo corresponder a una clase, y el arreglo como sabemos representar al cromosoma. Adems codificaremos cada docente del uno al veinte de manera consecutiva. Por lo tanto la inicializacin comenzara seleccionando un valor aleatorio entre uno y veinte para asignarlo al ndice 0 del arreglo, luego escogeramos otro valor aleatorio en el mismo rango y lo asignaramos al valor del ndice 1, y as sucesivamente hasta completar el cromosoma con valores y posteriormente formar todos los cromosomas de la poblacin inicial. Con esto tendramos la poblacin lista para comenzar a ejecutar el algoritmo, sin embargo vemos ciertas deficiencias en este mtodo. Imaginemos que queremos asignar un docente a la clase de Algortmica I y segn el mtodo de inicializacin descrito, deberamos entonces asignarle aleatoriamente un docente entre los veinte ya definidos, Resulta que slo tres de ellos tienen preferencia para el dictado de Algortmica I, entonces podra suceder que se asigne en la poblacin inicial un docente que no tenga preferencia por el curso. Las opciones para el manejo de este error seran: Desecharlas, asignndoles una baja aptitud en el momento de la evaluacin, lo cual implicara su desaparicin en trminos estadsticos al cabo de unas pocas generaciones junto a la prdida de informacin valiosa que pudieran contener; o Repararlas, lo cual aparece como una tarea costosa pues habr de ser realizada en una gran cantidad de ocasiones a lo
126
UNMSM
largo del proceso evolutivo. Ninguna de las alternativas parece ptima en s misma. La opcin que proponemos consiste en evitar la generacin de este tipo de individuos no factibles. Este problema podra evitarse si al momento de generar la poblacin inicial no se tomarn en cuenta ciertos recursos que por las restricciones previamente nombradas, sera imposible que se use para una determinada clase. Usando el mismo ejemplo anterior para la clase de Algortmica I debera asignarse un docente aleatorio pero no del conjunto total de veinte docentes sino solamente de los tres posibles que pueden dictar dicho curso. Con esto estamos generando una poblacin inicial que de antemano ya cumple ciertas restricciones, lo cual aliviar la tarea del mtodo que evaluar las soluciones, ya que no sern tomados en cuenta durante la evaluacin. Dado que si los cromosomas iniciales no consideran estos valores, las poblaciones subsecuentes generadas nunca los tendrn presentes, con ello se pretende ahorrar tiempo en la ejecucin del algoritmo. Esta solucin tiene la ventaja aadida de permitir eliminar directamente soluciones de muy mala calidad sin necesidad de evaluarlas. Dado que la estructura del cromosoma es igual en cada fase, esto es, un arreglo de longitud igual al nmero de clases a las cuales se les va asignar un recurso, el mtodo utilizado (mostrado en el ejemplo anterior) para la inicializacin de la poblacin ser el mismo para cada una de las fases. Lo que variar por cada fase, aparte del recurso en particular, sern los alfabetos generados para cada gen de los cromosomas; esto se realizar a travs de un procedimiento lineal que acotar dichos alfabetos. El hacer uso de un alfabeto en particular para cada gen del cromosoma, en cualquiera de las tres fases, nos permitir en gran medida ahorrar la evaluacin de un gran nmero de restricciones, dado que las soluciones iniciales elaboradas no presentarn la infraccin de estas restricciones. Con lo cual podramos considerar sta como una mejor solucin que simplemente el hecho de asignar valores aleatorios.
Otro aspecto a tener en cuenta, es la posibilidad de introducir en la poblacin inicial soluciones de buena calidad, por ejemplo, procedentes de la experiencia acumulada en procesos anteriores. Esta forma de introducir
127
UNMSM
conocimiento especfico es muy til pues permite al algoritmo contar con informacin valiosa inicialmente. No obstante debe ser realizado con cuidado, pues sembrar la poblacin inicial con soluciones no aleatorias puede alterar el proceso evolutivo al dirigir la bsqueda hacia un determinado espacio.
4.3.6. Funcin de evaluacin y tratamientos de las restricciones Como se pudo notar, la evaluacin es la unin entre el Algoritmo Gentico y el mundo externo. La evaluacin se realiza a travs de una funcin que representa de forma adecuada el problema y tiene como objetivo suministrar una medida de aptitud a cada individuo de la poblacin actual. Para nuestro problema necesitaremos una funcin de evaluacin durante las fases, las cuales considerarn las restricciones relacionadas con el recurso a asignar.
El modelo de evaluacin de restricciones tendr la estructura que se indicar a continuacin. La funcin de evaluacin tiene en cuenta el cumplimiento de las restricciones a travs de una expresin ponderada de las mismas de acuerdo a:
n i =1
m j =1
f eval = wo . xi + wd . y j
Donde x1..xn son las aptitudes calculadas de cada restriccin obligatoria asociada a la fase y
Adems wo y wd son los pesos o penalidades de las restricciones obligatorias y deseables respectivamente, cumplindose que:
wo + wd = 1
Dado que, una solucin es considerada factible cuando se tiene como condicin necesaria y suficiente que se debe verificar el cumplimiento de todas las restricciones obligatorias, sera razonable considerar que wo >>
wd .
128
UNMSM
De esta forma, una baja aptitud en el cumplimiento de las restricciones obligatorias penaliza de forma importante al individuo considerado.
Luego, las aptitudes calculadas de cada restriccin xi sern inversamente proporcionales al nmero de ocurrencias de la restriccin obligatoria en el individuo a evaluar:
f eval = xi
i =1
Ahora veremos las restricciones que sern tomadas en cuenta en cada fase para su respectiva evaluacin en este problema. Para la fase uno consideraremos las siguientes restricciones a evaluar:
ROE1. Un docente debe de impartir un nmero determinado de horas de dictado como mximo y como mnimo segn su categora
Adems se agregar una serie de restricciones para garantizar que exista una solucin factible para la siguiente fase del problema; las cuales sern: que no se sobrepase la disponibilidad mxima por curso de cada docente, que por lo menos exista una solucin en la cual las clases de un mismo curso y grupo pero de diferentes tipos no se dicten el mismo da, y que por lo menos exista una solucin en la cual los
129
UNMSM
Facultad de Ingeniera de Sistemas e Informtica cursos de un mismo semestre y grupo no se crucen debido a sus horarios de dictado.
Para la fase dos se considerarn las siguientes restricciones, las cuales pueden involucrar tanto a los horarios como a los docentes, dado que stos ltimos ya se encuentran asignados a la clase en la fase anterior:
ROE4. No deben coincidir los horarios de los cursos que corresponden a un mismo semestre y grupo.
Adems se agrega una restriccin ms para garantizar que exista una solucin factible para la siguiente fase del problema, sta sera que no se asigne ms clases en un mismo horario que el total de aulas disponibles para ste en la siguiente fase.
Para la fase tres se consideran las siguientes restricciones, las cuales pueden involucrar tanto a los horarios, a los docentes y a las aulas, dado que los dos primeros recursos ya se encuentran asignados a la clase en la fase anterior:
ROG9. Los cursos no deben de solaparse entre ellos, ni en duracin ni ubicacin fsica, una vez seleccionada la hora de inicio de stos y el aula correspondiente.
4.3.7. El proceso de seleccin El proceso de seleccin en los algoritmos genticos selecciona individuos para la reproduccin. La seleccin est basada en la aptitud de los individuos: Individuos ms aptos tienen mayor probabilidad de ser escogidos para la reproduccin. Para nuestro caso en particular usaremos los mismos mtodos de seleccin para las tres diferentes fases.
130
UNMSM
Uno de los problemas ms comunes en un algoritmo gentico es tener un sper-individuo al inicio de las iteraciones. Este sper-individuo tendr una proporcin equitativa a su aptitud para reproducirse, eliminando totalmente a los otros individuos y clonndose as en cada generacin; haciendo de esta manera que el algoritmo gentico converja prematuramente, tal vez en una solucin no tan cercana a la ptima. Pero tampoco podemos dejar de proporcionar a los individuos ms fuertes una mayor cantidad ocasiones de reproduccin, de lo contrario reduciremos al algoritmo gentico a una bsqueda puramente al azar. Hay varios mtodos para solucionar este problema y dos procedimientos de uso muy frecuente, que sern tomados en cuenta para nuestra implementacin. 4.3.7.1. Escalamiento de la aptitud
Antes del proceso de seleccin, los valores de la aptitud se pueden escalar en nmeros de un rango ms estrecho para hacer que las diferencias relativas lleguen a ser ms pequeas mientras que se mantienen las mismas posiciones. El resultado es que los sperindividuos tendrn mayor opcin de reproducirse que otros individuos, pero no estarn dominando la poblacin como lo haran sin un escalamiento de la aptitud. No escalaremos arbitrariamente los valores de la aptitud, la idea es asegurarnos que por lo menos un individuo medio antes del escalamiento permanezca siendo tal despus del proceso de escalar. Un escalamiento simple pero bueno es el lineal: f' = a + b*f, donde el valor de la aptitud escalado es f' con a y b como operadores del escalamiento. Para definir la escala adecuada a nuestro problema se escogi la fase dos (asignacin de horarios a las clases), como la fase representativa para este proceso. Se realizaron las pruebas respectivas y se obtuvo como resultado que no es conveniente realizar el escalamiento de la funcin de aptitud. Dichas pruebas se encuentran descritas en el punto 6.3.1.1 del captulo 6 denominado Pruebas y Resultados.
131
UNMSM
La seleccin de torneo es de desarrollo mucho ms reciente en los algoritmos genticos, e intenta tratar el problema de la convergencia prematura que se da debido a la existencia de los sper-individuos. Despus de calcular los valores de las aptitudes, se selecciona un nmero de individuos aleatoriamente para un torneo. El individuo con la aptitud ms alta en el torneo se selecciona para ser el padre. Cuando el nmero de individuos que se escoge para el torneo es ms grande, es ms probable la seleccin de las mejores soluciones; es decir, hay un mayor elitismo. Pero es relativamente ms fcil que algunos individuos no muy aptos sean seleccionados en comparacin con la seleccin de la rueda de ruleta descrita en los captulos anteriores; esto es porque aunque exista un individuo dominante, ste no ser seleccionado para la reproduccin, si primero no es seleccionado a participar en el torneo. Por supuesto, ganara cualquier torneo, pero todava habran torneos en los cuales no podra ser seleccionado, por lo tanto, es importante saber que para el torneo se seleccionan a los participantes aleatoriamente sin predisposicin. Al mismo tiempo, este proceso de seleccin minimiza la presencia de individuos muy dbiles, ya que es muy poco probable que ganen cualquier torneo; es por ello que la posibilidad de que la poblacin est integrada solamente de individuos dbiles es casi inexistente. Resumiendo, la seleccin del torneo protege la diversidad de la poblacin disminuyendo la opcin de reproduccin de los sper-individuos, y a su vez mantiene baja la de los individuos muy dbiles. Tiene el efecto combinado del elitismo, porque descarta a individuos dbiles, y diversificacin, puesto que no se permite a los sper-individuos dominar. Este mtodo se relaciona al proceso evolutivo de una manera ms aproximada, porque la supervivencia depende de la competencia entre pocos individuos ms que de toda la poblacin. Tambin, la naturaleza no mata al ms dbil de los individuos, sino hace que los individuos ms fuertes gobiernen sobre los otros. En este sentido, la reproduccin de un sper-individuo no es conveniente, porque la poca diversidad puede matar fcilmente una poblacin.
132
UNMSM
Para comprobar que este mtodo se comporta mejor en nuestro problema, se realizaron las pruebas respectivas y los resultados que se obtuvieron estn descritos en el punto 6.3.1.2 del captulo 6. Una vez optado por el mtodo de torneo como solucin para nuestro problema, ahora debemos identificar el tamao del torneo. Para lo cual tambin se han realizado varias pruebas que estn descritas en el punto 6.3.1.3 del captulo 6, dando al final como resultado que el valor dos es el mejor tamao que se adecua a nuestro problema. 4.3.8. Criterio de Trmino Para la implementacin de la solucin se considerarn tres criterios de parada; cualquiera de los tres que se cumpla primero har que el proceso del algoritmo culmine: 1. El primer criterio verificar si se ha alcanzado el nmero mximo de generaciones establecido, lo que evitar que se caiga en bsquedas demasiado largas y en las que tal vez no se alcance nunca una solucin ptima. 2. El segundo criterio, es un trmino de parada por haber encontrado una solucin factible al problema. 3. El tercer criterio detectar si todos los individuos de la poblacin convergen en un ptimo local; es decir, si todos los individuos tienen en un determinado momento la misma aptitud. Las tres fases consideradas tomarn en cuenta estos tres criterios, mas el primer criterio que corresponde al nmero de generaciones ser uno distinto para cada fase, mientras que el segundo y tercer criterio sern los mismos para las tres fases. El segundo criterio de parada es alcanzado cuando la funcin de evaluacin toma el valor de 1, tal como se demostrar a continuacin.
133
UNMSM
f eval = xi
i =1
Y xi el resultado de:
Para determinar cul es el mejor operador de emparejamiento y cul es el porcentaje de ocurrencia de dicho operador, se efectuaron un conjunto de pruebas que se encuentran detalladas en el punto 6.3.2.1 y 6.3.2.1.1 del captulo 6. El resultado de dichas pruebas indica que el mejor es el operador de emparejamiento uniforme.
134
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 4.3.9.2. Operador de mutacin El empleo de un gran nmero de generaciones, independientemente del tamao de la poblacin inicial, puede derivar en el estancamiento del algoritmo dentro de un ptimo local (una solucin que slo satisface ciertas restricciones del problema). Para evitar este estancamiento utilizamos la mutacin, la cual nos garantiza una mayor variedad de individuos y nos permite explorar mejor el espacio de soluciones posibles. La mutacin se puede realizar de varias maneras, pero dado que hacemos uso de un alfabeto no-contiguo de nmeros enteros fijos, nos vemos en la necesidad de utilizar un operador modificado de la mutacin para los requisitos particulares del problema. El operador de mutacin debe modificar un valor por otro al azar, pero para nuestro caso de asignacin de recursos a las clases se debe considerar que no se debe asignar cualquier valor a una clase en particular. Por ejemplo, para la fase uno que corresponde a la asignacin de docentes a las clases, si tenemos que nuestra clase es Algortmica I y el alfabeto est limitado por solamente tres docentes que ensean dicho curso, entonces la asignacin al azar se debe realizar considerando esos tres docentes (valores que pueden asignarse a dicha clase). Esto es solucionado de la siguiente manera: Primero se debe tener conocimiento del alfabeto permitido para la clase, el cual est contenido en un arreglo. Luego se escoge un nmero aleatorio para que represente un ndice del arreglo, y finalmente se asigna a la clase el contenido del arreglo que se encuentra en el ndice anteriormente seleccionado. Esto sera como sigue:
Valor = alfabeto [Int(Rand( )*(Longitud del alfabeto( )-1))] , donde Rand ( ): es una funcin que devuelve valores entre 0 y 1. Este es un proceso muy lento, pero afortunadamente, la mutacin se da raramente. Igual que en la naturaleza, la mutacin es absolutamente rara. Adems la mutacin permitir que aparezcan
135
UNMSM
Facultad de Ingeniera de Sistemas e Informtica nuevas caractersticas inexistentes en generaciones anteriores. Como es una alteracin aleatoria, no es posible garantizar que sea buena. En caso que sea positivo permanecer en las siguientes generaciones, caso contrario, ser eliminada por el proceso de seleccin. Para esto se debe definir un porcentaje de ocurrencia del operador de mutacin, que nos permita llegar a encontrar una solucin factible, es por esta razn que se han realizado un conjunto de pruebas cuyo resultado determina que el mejor es el de 1%. Dichas pruebas se encuentran detalladas en el punto 6.3.2.2.1 del captulo 6.
4.3.10. Reinsercin y Elitismo Cada vez que se aplican los operadores genticos tenemos como resultado un nmero de nuevos individuos (los hijos), los cuales se deben integrar de alguna manera a la poblacin para formar la siguiente generacin. Esta operacin de reinsercin es mejor realizarla tomando en cuenta a los padres y a los hijos que son generados a partir de los primeros, ya que as podemos tener un mayor espacio de bsqueda de los mejores individuos, lo cual no pasara si solamente consideramos a los individuos hijos. Para demostrar esto se realizaron las respectivas pruebas que estn descritas en el punto 6.3.3.1 del captulo 6.
Otro concepto usado para la reinsercin de cromosomas de la poblacin en la siguiente generacin, es el elitismo. Este consiste en conservar un nmero X de mejores individuos quitar un nmero X de malos individuos. Realmente, quitar a los malos individuos es igual que retener los individuos N-X mejores; por lo tanto, ambas son variaciones del elitismo. El concepto de elitismo es asegurarse de no tener un retroceso evolutivo. El elitismo es una idea aceptable, y de hecho, los sistemas pequeos que requieren un nmero relativamente pequeo de iteraciones, se comportan bien con elitismo. Sin embargo, cuando la complejidad del sistema crece al igual que el nmero de iteraciones, el elitismo da una preferencia indebida hacia los mejores individuos, tal que obstaculiza a la exploracin de nuevas soluciones. Esto poda conducir a una convergencia peligrosa a una convergencia cercana a puntos no ptimos. Los experimentos tambin lo demuestran y se encuentran descritos en el punto 6.3.3.2 del captulo 6.
136
UNMSM
Captulo 5: Diseo de la Solucin En este captulo se describir el diseo de la solucin en detalle desde el modelado del negocio, la vista de casos de uso, vista lgica, vista de componentes y vista de despliegue. Incluyndose adems diagramas de actividades, las especificaciones de los casos de uso, diagramas de secuencia, diagrama de clases, modelo de datos, la arquitectura del software y los prototipos de la solucin.
5.1.
El modelo del negocio nos permite entender cmo funciona el negocio que se desea automatizar para garantizar que el software desarrollado va a cumplir con su propsito; es por esto, que se debe hacer un estudio en el dominio del negocio para determinar los elementos que intervienen en los procesos del mismo.
Con esa finalidad debemos describir el procedimiento que se sigue para la elaboracin de los horarios acadmicos semestrales en la facultad. Este proceso se realiza en cada uno de los ciclos acadmicos semestrales, habiendo tres ciclos por cada ao acadmico. Un punto importante para el proceso de elaboracin de horarios es la recopilacin de la informacin de los cursos a dictar en el semestre,
137
UNMSM
la plana de docentes y las aulas disponibles para el periodo a considerar; que son los recursos principales para el cumplimiento de este proceso. En la facultad hay actualmente dos Escuelas Acadmicas Profesionales, la de Ingeniera de Sistemas y la de Ingeniera de Software, esta ltima de reciente creacin. Cada Escuela define un Plan de Estudios el cual engloba los cursos de cada especialidad e indirectamente definen el perfil del egresado de cada una de ellas. Los planes de estudios deben ser aprobados por el Consejo de Facultad y son sometidos a revisin cada cierta cantidad de aos. Esto explica la existencia actualmente en la facultad de dos Planes de Estudios el de 1997 y el establecido para el 2002. El presente trabajo se refiere a la elaboracin de horarios para el Plan de Estudios 2002. Un plan de estudios consta de cursos que pertenecen a semestres acadmicos, que van del primero al dcimo, y adems incluye los cursos electivos. En cada ciclo acadmico se puede tener uno ms planes acadmicos activos.
Con respecto a los docentes, stos pueden dictar un conjunto de cursos de acuerdo a su mbito de enseanza y a su preferencia, y a su vez poseen una disponibilidad horaria que puede variar en cada ciclo acadmico. Esta informacin es recopilada por el Departamento Acadmico, quien unos meses antes del inicio de cada ciclo acadmico se encarga de enviar un formato para que pueda ser llenado por cada uno de los docentes. stos deben cumplir una cierta cantidad de horas de enseanza de acuerdo a la categora a la que pertenecen; por ello el nmero de horas disponibles debe oscilar en un determinado rango para una adecuada asignacin de docentes a las clases. Con respecto a las aulas, stas poseen un horario disponible total en la semana de lunes a sbado; a excepcin de algunas aulas que slo se encuentran disponibles hasta una determinada hora, ya que son utilizadas por la Unidad de Post Grado. A partir de la informacin de los cursos, el siguiente paso es determinar la cantidad de grupos por curso que se deben aperturar en el ciclo acadmico actual; esto es calculado en base a la demanda de alumnos que se van a matricular en dichos cursos. Para determinar la cantidad de grupos a ser aperturados, se considera la informacin histrica de los ciclos acadmicos de aos anteriores y la informacin que se obtiene del Sistema nico de Matrcula donde se indica la cantidad de
138
UNMSM
alumnos que aprueban o desaprueban cada uno de los cursos, y que incluye tambin informacin sobre los que son pre-requisitos para los cursos considerados en el semestre actual. Al obtenerse toda la informacin necesaria, la Direccin de Escuela puede iniciar el proceso de elaboracin de horarios acadmicos, el cual puede demorar de tres a cuatro das y es realizada por un nmero de dos personas.
Una vez detallado cada uno de los procedimientos que se debe seguir para elaborar los horarios acadmicos, podemos determinar los procesos del negocio y sus respectivos trabajadores de negocio. Existen varios procesos tales como: La recopilacin de los datos de los docentes es realizada por el trabajador del negocio, en este caso, la secretaria del Departamento Acadmico. El establecimiento de la disponibilidad de horarios para cada una de las aulas es determinada por la Direccin de Escuela en coordinacin con la Unidad de Post Grado. La proyeccin de grupos por curso que se deben aperturar en el ciclo acadmico actual es realizada tambin por el Director de Escuela. Todos estos procesos son establecidos para la adecuada asignacin de docentes, horarios y aulas a cada una de las clases del ciclo actual. Los horarios acadmicos semestrales son finalmente elaborados por el Director de Escuela y luego son enviados al Departamento Acadmico para verificar las asignaciones de horas de dictado de cada uno de los docentes; y de esta manera saber si los docentes cumplen con sus horas de enseanza de acuerdo a la categora a la que pertenecen. Tambin son enviados a la Direccin de Escuela para dar su respectiva conformidad. Una vez revisada y aprobada esta informacin es comunicada al Director de Escuela para que pueda ser transmitida al Consejo de Facultad quien se encarga de aprobarlo. Esta aprobacin es comunicada a la Direccin de Escuela para finalmente publicar dichos horarios y de esta manera el alumnado pueda dar inicio a su proceso de matrcula. Es preciso sealar que el proceso de proyeccin de grupos aperturados para cada uno de los cursos no ser considerado debido a que el alcance del presente trabajo est referido principalmente a la asignacin de docentes, horarios y aulas a cada una de las clases del ciclo acadmico actual.
139
UNMSM
En la figura que se muestra a continuacin podemos observar los procesos del negocio:
Director de Escuela
Figura 5.1. Diagrama de Casos de Uso del Negocio 5.1.1. Diagramas de Actividades Para expresar en orden las tareas que se realizan en el proceso de generacin de horarios acadmicos, vamos a hacer uso de los diagramas de actividades; de esta manera podremos comprender el flujo de trabajo para un posterior anlisis. A continuacin presentamos los diagramas de actividades de cada uno de los casos de uso del negocio mostrados anteriormente.
140
UNMSM
Docente
Inicio
Fin
Director de Escuela
Inicio
Fin
141
UNMSM
Director de Escuela
Inicio
Reservar aulas
Fin
Director de Escuela
Inicio
Fin
142
UNMSM
J e fe Dpto Acadmico
Inicio
Fin
Inicio
Fin
143
El anlisis se realiza con el fin de obtener una visin inicial de las necesidades que debern ser satisfechas; las cuales nos servirn de base para el diseo.
5.2.1. Diagrama de Casos de Uso El diagrama de casos de uso que mostramos a continuacin permite establecer los distintos requisitos funcionales que se esperan de la aplicacin que se va a desarrollar y la forma cmo se relaciona con su entorno.
Ingresar al Sistema
144
UNMSM
Facultad de Ingeniera de Sistemas e Informtica El diagrama muestra un conjunto de casos de uso, actores y sus relaciones. Cada caso de uso denota un requisito funcional que debe presentar el sistema, cuya descripcin explica el comportamiento del sistema al afrontar una tarea de negocio; un actor representa un rol que alguien algo podra desempear, y por ltimo la relacin que existe entre un actor y un caso de uso denota la participacin de dicho actor en el respectivo caso de uso.
5.2.2. Especificaciones de Casos de Uso y Diagramas de Secuencia Las especificaciones de casos de uso nos permitirn expresar las necesidades de los usuarios del sistema por ser mecanismos eficientes de comunicacin. En seguida pasaremos a detallar los pasos necesarios para cumplir con cada caso de uso; a su vez mostraremos los diagramas de secuencia que nos ayudar a mostrar los objetos que se encuentran en la especificacin y la secuencia de mensajes intercambiados entre los objetos para llevar a cabo la funcionalidad descrita. 5.2.2.1. Caso de Uso Ingresar al Sistema 1. INGRESAR AL SISTEMA 1.1. Descripcin El caso de uso comienza cuando el Administrador decide ingresar al sistema a travs de un usuario y contrasea que son debidamente validados por el sistema. El caso de uso termina cuando se ha permitido al Administrador poder ingresar al sistema. 1.2. Actor (es) Administrador, Operador. 1.3. Caso de Uso Asociado No aplica. 2. PRECONDICIONES No aplica.
145
UNMSM
3.1.1. El Administrador selecciona ingresar al sistema. 3.1.2. El sistema muestra la pantalla Identificacin del
usuario, solicitando un nombre de usuario y una contrasea.
3.1.3. El Administrador ingresa su usuario y contrasea. 3.1.4. El Administrador selecciona la opcin Aceptar. Ver
flujo alternativo 3.3.1.
3.1.6. El sistema muestra la pantalla Men Principal. 3.1.7. El caso de uso termina.
3.2. Sub Flujos No aplica. 3.3. Flujos alternativos 3.3.1. En el paso 3.1.4 del flujo bsico. Si el Administrador selecciona la opcin Cancelar. 1. El sistema cierra la pantalla Identificacin del usuario. 2. El caso de uso termina. 3.3.2. En el paso 3.1.5 del flujo bsico. Si el Administrador no ingresa un usuario. 1. El sistema detecta que no ha ingresado el usuario y muestra un mensaje de validacin. 2. El Administrador selecciona la opcin Aceptar. 3. El sistema cierra el mensaje. 4. Contina en el paso 3.1.2 del flujo bsico. Si el Administrador ingresa un usuario no identificado. 1. El sistema valida que el usuario ingresado es desconocido validacin. 2. El Administrador selecciona la opcin Aceptar. 3. Contina en el paso 3.1.2 del flujo bsico. y muestra un mensaje de
146
UNMSM
Facultad de Ingeniera de Sistemas e Informtica Si el Administrador no ingresa una contrasea. 1. El sistema detecta que no ha ingresado una contrasea y muestra un mensaje de validacin. 2. El Administrador selecciona la opcin Aceptar. 3. El sistema cierra el mensaje. 4. Contina en el paso 3.1.2 del flujo bsico. Si el Administrador ingresa una contrasea
incorrecta. 1. El sistema valida que la contrasea ingresada es incorrecta y muestra un mensaje de validacin. 2. El Administrador selecciona la opcin Aceptar. 3. Contina en el paso 3.1.2 del flujo bsico. 4. POSCONDICIONES El Administrador ingresa correctamente al mdulo de Generacin de Horarios Acadmicos Semestrales.
: Administrador
: Identificacin de Usuario
: Men Principal
: CI Generacin Horario
: CN Generacin Horario
: Usuario
147
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 5.2.2.2. Caso de Uso Cargar Informacin de Horas Acadmicas 1. CARGAR INFORMACIN DE HORAS ACADMICAS 1.1. Descripcin El caso de uso comienza cuando el Administrador decide ingresar la informacin de las horas acadmicas en que los que se puede realizar el dictado de las clases. El proceso empieza cuando se seleccionan los horarios para el dictado de los cursos durante la semana. El caso de uso termina cuando se guarda la informacin correspondiente a los horarios. 1.2. Actor (es) Administrador. 1.3. Caso de Uso Asociado No aplica. 2. PRECONDICIONES No aplica. 3. FLUJO DE EVENTOS 3.1. Flujo bsico 3.1.1. El Administrador selecciona la opcin Cargar Informacin del men Procesos y luego la opcin Horarios. Ver flujo alternativo 3.3.1. 3.1.2. 3.1.3. El sistema muestra la pantalla Cargar Informacin de Horarios. El sistema muestra los horarios seleccionados correspondientes a todos los das de la semana. 3.1.4. El Administrador quita la seleccin de los horarios en los cuales no se puede realizar el dictado de clases. 3.1.5. 3.1.6. El sistema muestra marcados los horarios seleccionados. El Administrador selecciona la opcin Guardar. Ver flujo alternativo 3.3.2.
148
UNMSM 3.1.7.
Facultad de Ingeniera de Sistemas e Informtica El sistema graba la informacin asociada a los horarios y muestra un mensaje de informacin. 3.1.8. 3.1.9. El Administrador acepta el mensaje mostrado. El Administrador selecciona la opcin Salir. Horarios. 3.1.11. El caso de uso termina. 3.2. Sub Flujos No aplica. 3.3. Flujos alternativos 3.3.1. En el paso 3.1.1 del flujo bsico. Si el Administrador verifica que el ciclo acadmico mostrado no corresponde al actual. 1. El Administrador selecciona el criterio correspondiente a ciclo acadmico. 2. El sistema muestra la lista de ciclos
acadmicos. 3. El Administrador selecciona el ciclo acadmico actual. 4. El sistema muestra el ciclo acadmico seleccionado. 5. Contina en el paso 3.1.1 del flujo bsico. 3.3.2. En el paso 3.1.6 del flujo bsico. Si el Administrador selecciona la opcin Cancelar. 1. Contina en el paso 3.1.3 del flujo bsico. Si el Administrador selecciona la opcin Salir. 1. Contina en el paso 3.1.10 del flujo bsico. Si el Administrador decide seleccionar los horarios desmarcados. 1. El Administrador selecciona los horarios en los cuales se puede realizar el dictado de clases. 2. El sistema muestra marcados los horarios seleccionados. 3. Contina en el paso 3.1.6 del flujo bsico.
149
UNMSM 4. POSCONDICIONES
La Informacin de los horarios de la semana, en que se realiza el dictado de clases, est cargada en el sistema.
: Administrador
: Men Principal
: CI Generacin Horario
: CN Generacin Horario
: Periodo
3: Mostrar
13: Salir
15: Cerrar
150
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 5.2.2.3. Caso de Uso Cargar Informacin de Cursos 1. CARGAR INFORMACIN DE CURSOS 1.1. Descripcin El caso de uso comienza cuando el Administrador decide cargar la informacin de los cursos. El proceso empieza cuando se carga la informacin desde un archivo en formato excel a la base de datos, y al trmino del proceso se notifica al usuario que la carga fue satisfactoria. Adems debe ingresar los tipos de dictado asociados a cada curso, as como tambin las horas de dictado para cada uno de los tipos de cursos. El caso de uso termina cuando se guarda la informacin correspondiente a cada uno de los cursos. 1.2. Actor (es) Administrador. 1.3. Caso de Uso Asociado No aplica. 2. PRECONDICIONES No aplica. 3. FLUJO DE EVENTOS 3.1. Flujo bsico 3.1.1. El Administrador selecciona la opcin Cargar Informacin del men Procesos y luego la opcin Cursos. Ver flujo alternativo 3.3.1. 3.1.2. El sistema muestra la pantalla Cargar Informacin de Cursos. 3.1.3. 3.1.4. 3.1.5. 3.1.6. 3.1.7. El Administrador selecciona el plan de estudios actual. El sistema muestra el plan de estudios seleccionado. El Administrador selecciona la opcin Buscar. El sistema muestra un listado de directorios. El Administrador selecciona el archivo que contiene el listado de cursos.
151
UNMSM 3.1.8.
Facultad de Ingeniera de Sistemas e Informtica El sistema muestra la ruta completa de la ubicacin del archivo de cursos. 3.1.9. El Administrador selecciona la opcin Cargar. cursos y muestra un mensaje de informacin. 3.1.11. El Administrador acepta el mensaje mostrado. 3.1.12. El sistema muestra la lista de cursos. 3.1.13. El Administrador selecciona cada curso para establecer los tipos y las horas de dictado correspondiente a cada uno de ellos. 3.1.14. El sistema muestra el nombre del curso, el semestre al que pertenece, la cantidad de grupos aperturados y la cantidad posible de alumnos a matricularse; as como los datos parametrizables correspondientes al curso. 3.1.15. El Administrador selecciona la opcin Crear. 3.1.16. El sistema habilita los datos parametrizables correspondientes al curso. 3.1.17. El Administrador selecciona un determinado tipo de clasificacin e ingresa la cantidad de horas de dictado asociada. 3.1.18. El Administrador selecciona el turno en que puede ser dictado el curso. Ver flujo alternativo 3.3.2. 3.1.19. El sistema muestra los datos ingresados. 3.1.20. El Administrador selecciona la opcin Guardar.Ver flujo alternativo 3.3.3. 3.1.21. El sistema graba la informacin asociada al curso y muestra un mensaje de informacin. 3.1.22. El Administrador acepta el mensaje mostrado. 3.1.23. El Administrador selecciona la opcin Salir. 3.1.24. El sistema cierra la pantalla Cargar Informacin de Cursos. 3.1.25. El caso de uso termina. 3.1.10. El sistema graba la informacin del listado de
152
3.2.1. Modificar datos del curso Si el Administrador decide modificar los valores de los datos parametrizables de un curso. 1. El Administrador selecciona un determinado curso. 2. El sistema muestra los valores de los datos parametrizables del curso seleccionado y habilita la opcin Guardar. 3. El Administrador realiza las modificaciones respectivas. 4. El Administrador selecciona la opcin Guardar. Ver flujo alternativo 3.3.3. 5. El sistema graba la informacin asociada al curso y muestra un mensaje de informacin. 6. El Administrador acepta el mensaje mostrado. 7. Contina en el paso 3.1.23 del flujo bsico. 3.2.2. Eliminar datos del curso Si el Administrador decide eliminar los valores de los datos parametrizables de un curso. 1. El Administrador selecciona un determinado curso. 2. El sistema muestra los valores de los datos parametrizables del curso seleccionado y habilita la opcin Guardar. 3. El Administrador selecciona la opcin Eliminar. 4. El sistema muestra un mensaje de confirmacin. 5. El Administrador confirma el mensaje mostrado. Ver flujo alternativo 3.3.4. 6. El sistema elimina los valores asociados al curso y muestra un mensaje de informacin. 7. El Administrador acepta el mensaje mostrado. 8. Contina en el paso 3.1.23 del flujo bsico.
153
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 3.3. Flujos alternativos 3.3.1. En el paso 3.1.1 del flujo bsico. Si el Administrador verifica que el ciclo acadmico mostrado no corresponde al actual. 1. El Administrador selecciona el criterio correspondiente a ciclo acadmico. 2. El sistema muestra la lista de ciclos acadmicos. 3. El Administrador selecciona el ciclo acadmico actual. 4. El sistema muestra el ciclo acadmico seleccionado. 5. Contina en el paso 3.1.1 del flujo bsico. 3.3.2. En el paso 3.1.18 del flujo bsico. Si el Administrador decide realizar una asignacin previa de un horario al curso. 1. El Administrador selecciona el horario especfico que va ser asignado al curso. 2. El sistema muestra marcados los horarios seleccionados. 3. Contina en el paso 3.1.20 del flujo bsico. 3.3.3. En el paso 3.1.20 del flujo bsico y en el paso 3.2.14 del sub flujo Modificar datos del curso. Si el Administrador selecciona la opcin Cancelar. 1. Contina en el paso 3.1.12 del flujo bsico. 3.3.4. En el paso 3.2.2-5 del sub flujo Eliminar datos del curso. Si el Administrador no confirma el mensaje para eliminar los datos asociados al curso. 1. El sistema cierra el mensaje. 2. Contina en el paso 3.1.12 del flujo bsico. 4. POSCONDICIONES La Informacin de los cursos est cargada en el sistema.
154
UNMSM
: Men Principal : : Cargar Informacin : CI Generacin : CN Generacin: Plan Acadmico: Curso : Configuracin Horario Horario Administrador Cursos Curso 1: Seleccionar Cargar Informacin de Cursos 2: Mostrar opcin seleccionada 3: Obtener datos 4: Mostrar 5: Seleccionar el plan acadmico actual 6: Mostrar plan acadmico 7: Seleccionar bsqueda de archivo 8: Mostrar bsqueda de directorios 9: Mostrar lista de directorios 10: Seleccionar ruta del archivo
11: Mostrar ruta 12: Cargar informacin del archivo 13: Cargar lista de cursos 14: Cargar lista de cursos 15: Grabar datos 16: Mostrar mensaje 17: Aceptar mensaje 18: Verificar mensaje aceptado 19: Cerrar Mensaje 20: Obtener lista de cursos 21: Obtener listado 22: Mostrar lista de cursos 23: Seleccionar curso 24: Mostrar curso seleccionado 25: Obtener datos del curso 26: Obtener datos 27: Obtener datos 28: Obtener datos 29: Mostrar datos 30: Crear valores complementarios
31: Habilita datos parametrizables 32: Ingresar tipo, horas de dictado y turno 33: Muestra los datos ingresados 34: Guardar informacin del curso 35: Grabar datos del curso 36: Grabar datos del curso 37: Obtener datos 38: Grabar datos 39: Grabar datos 40: Mostrar mensaje 41: Aceptar mensaje 42: Cerrar mensaje 43: Salir 44: Finalizar Carga de Informacin
45: Cerrar
155
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 5.2.2.4. Caso de Uso Cargar Informacin de Docentes 1. CARGAR INFORMACIN DE DOCENTES 1.1. Descripcin El caso de uso comienza cuando el Operador decide cargar la informacin de los docentes. El proceso empieza cuando se carga la informacin desde un archivo en formato excel a la base de datos, y al trmino del proceso se notifica al usuario que la carga fue satisfactoria. Adems debe ingresar la disponibilidad de horario y los cursos de preferencia de cada docente. El caso de uso termina cuando se guarda la informacin correspondiente a cada uno de los docentes. 1.2. Actor (es) Administrador. 1.3. Caso de Uso Asociado No aplica. 2. PRECONDICIONES La Informacin correspondiente a los cursos debe existir en el sistema, al igual que la informacin de horarios en los que se puede realizar el dictado de clases. 3. FLUJO DE EVENTOS 3.1. Flujo bsico 3.1.1. El Administrador selecciona la opcin Cargar Informacin del men Procesos y luego la opcin Docentes. Ver flujo alternativo 3.3.1. 3.1.2. 3.1.3. 3.1.4. 3.1.5. 3.1.6. El sistema muestra la pantalla Cargar Informacin de Docentes. El Administrador selecciona la opcin Buscar. El sistema muestra un listado de directorios. El Administrador selecciona el archivo que contiene el listado de docentes. El sistema muestra la ruta completa de la ubicacin del archivo de docentes.
156
Facultad de Ingeniera de Sistemas e Informtica El Administrador selecciona la opcin Cargar. El sistema graba la informacin del listado de docentes y muestra un mensaje de informacin. El Administrador acepta el mensaje mostrado. Administrador selecciona un docente 3.1.10. El sistema muestra la lista de docentes. 3.1.11. El
determinado para establecer su disponibilidad horaria y los cursos de su preferencia. 3.1.12. El sistema muestra el nombre y la categora del docente, as como los datos parametrizables correspondientes al docente. 3.1.13. El Administrador selecciona los horarios disponibles del docente. 3.1.14. El sistema muestra marcados los horarios seleccionados. 3.1.15. El Administrador selecciona los cursos de
preferencia del docente. 3.1.16. El sistema muestra en una lista los cursos seleccionados. 3.1.17. El Administrador selecciona la opcin Guardar. Ver flujo alternativo 3.3.2. 3.1.18. El sistema graba la informacin asociada al docente y muestra un mensaje de informacin. 3.1.19. El Administrador acepta el mensaje mostrado. 3.1.20. El Administrador selecciona la opcin Salir. 3.1.21. El sistema cierra la pantalla Cargar Informacin de Docentes. 3.1.22. El caso de uso termina. 3.2. Sub Flujos 3.2.1 Modificar datos del docente Si el Administrador decide modificar los valores de los datos parametrizables de un docente. 1. El Administrador selecciona un determinado docente.
157
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 2. El sistema muestra los valores de los datos parametrizables del docente seleccionado y habilita la opcin Guardar. 3. El Administrador respectivas. 4. El Administrador selecciona la opcin Guardar. Ver flujo alternativo 3.3.3. 5. El sistema graba la informacin asociada al docente y muestra un mensaje de informacin. 6. El Administrador acepta el mensaje mostrado. 7. Contina en el paso 3.1.20 del flujo bsico. 3.2.2 Eliminar datos del docente Si el Administrador decide eliminar los valores de los datos parametrizables de un docente. 1. El Administrador selecciona un determinado docente. 2. El sistema muestra los valores de los datos parametrizables del docente seleccionado y habilita la opcin Guardar. 3. El Administrador selecciona la opcin Eliminar. 4. El sistema muestra un mensaje de confirmacin. 5. El Administrador confirma el mensaje mostrado. Ver flujo alternativo 3.3.4. 6. El sistema elimina los valores asociados al docente y muestra un mensaje de informacin. 7. El Administrador acepta el mensaje mostrado. 8. Contina en el paso 3.1.20 del flujo bsico. 3.3. Flujos alternativos 3.3.1 En el paso 3.1.1 del flujo bsico. Si el Administrador verifica que el ciclo acadmico mostrado no corresponde al actual. 1. El Administrador selecciona el criterio correspondiente a ciclo acadmico. 2. El sistema muestra la lista de ciclos realiza las modificaciones
acadmicos.
158
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 3. El Administrador selecciona el ciclo acadmico actual. 4. El sistema muestra el ciclo acadmico seleccionado. 5. Contina en el paso 3.1.1 del flujo bsico. 3.3.2 En el paso 3.1.17 del flujo bsico. Si el Administrador selecciona la opcin Cancelar. 1. Contina en el paso 3.1.10 del flujo bsico. Si el Administrador selecciona la opcin Salir. 1. Contina en el paso 3.1.21 del flujo bsico. Si el Administrador decide realizar una asignacin previa de un curso al docente. 1. El Administrador selecciona el curso especfico que va ser asignado al docente. 2. El sistema muestra en una lista el curso seleccionado. 3. Contina en el paso 3.1.17 del flujo bsico. 3.3.3 En el paso 3.2.1-4 del sub flujo Modificar datos del docente. Si el Administrador selecciona la opcin Cancelar. 1. Contina en el paso 3.1.10 del flujo bsico. Si el Administrador selecciona la opcin Salir. 1. Contina en el paso 3.1.21 del flujo bsico. 3.3.4 En el paso 3.2.2-5 del sub flujo Eliminar datos del docente. Si el Administrador no confirma el mensaje para eliminar los datos asociados al docente. 1. El sistema cierra el mensaje. 2. Contina en el paso 3.1.10 del flujo bsico. 4. POSCONDICIONES La Informacin de los docentes est cargada en el sistema.
159
UNMSM
: Operador
: Men Principal
: CI Generacin Horario
: CN Generacin Horario
: Docente
: Disponibilidad Docente
: Preferencia
1: Seleccionar Cargar Informacin de Docentes 2: Mostrar opcin seleccionada 3: Mostrar 4: Seleccionar bsqueda de archivo 5: Mostrar bsqueda de directorios 6: Mostrar lista de directorios 7: Seleccionar ruta del archivo 8: Mostrar ruta 9: Cargar informacin del archivo 10: Cargar lista de docentes 11: Cargar lista de docentes 12: Grabar datos 13: Mostrar mensaje 14: Aceptar mensaje 15: Verificar mensaje aceptado 16: Cerrar mensaje 17: Obtener lista de docentes 18: Obtener listado 19: Mostrar lista de docentes 20: Seleccionar docente 21: Mostrar docente seleccionado 22: Obtener datos del docente 23: Obtener datos 24: Obtener datos 25: Obtener datos 26: Mostrar datos 27: Crear valores complementarios 28: Habilitar datos parametrizables 29: Seleccionar disponibilidad horaria 30: Mostrar horarios seleccionados 31: Seleccionar cursos de preferencia y agregar 32: Agregar a la lista de preferencia 33: Guardar informacin del docente 34: Grabar datos del docente 35: Grabar datos del docente 36: Grabar datos 37: Grabar datos 38: Mostrar mensaje 39: Aceptar mensaje 40: Cerrar mensaje 41: Salir 42: Finalizar Carga de Informacin 43: Cerrar
160
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 5.2.2.5. Caso de Uso Cargar Informacin de Aulas 1. CARGAR INFORMACIN DE AULAS 1.1. Descripcin El caso de uso comienza cuando el Administrador decide cargar la informacin de las aulas. El proceso empieza cuando se carga la informacin desde un archivo en formato excel a la base de datos, y al trmino del proceso se notifica al usuario que la carga fue satisfactoria. Adems debe ingresar los horarios disponibles durante la semana de cada aula. El caso de uso termina cuando se guarda la informacin correspondiente a cada una de las aulas. 1.2. Actor (es) Administrador. 1.3. Caso de Uso Asociado No aplica. 2. PRECONDICIONES No aplica. 3. FLUJO DE EVENTOS 3.1. Flujo bsico 3.1.1. El Administrador selecciona la opcin Cargar Informacin del men Procesos y luego la opcin Aulas. Ver flujo alternativo 3.3.1. 3.1.2. 3.1.3. 3.1.4. 3.1.5. 3.1.6. 3.1.7. 3.1.8. El sistema muestra la pantalla Cargar Informacin de Aulas. El Administrador selecciona la opcin Buscar. El sistema muestra un listado de directorios. El Administrador selecciona el archivo que contiene el listado de aulas. El sistema muestra la ruta completa de la ubicacin del archivo de aulas. El Administrador selecciona la opcin Cargar. El sistema graba la informacin del listado de aulas y muestra un mensaje de informacin.
161
UNMSM 3.1.9.
3.1.10. El sistema muestra la lista de aulas. 3.1.11. El Administrador selecciona un aula determinado para establecer su disponibilidad a lo largo de la semana. 3.1.12. El sistema muestra el nombre, el tipo y la capacidad del aula, as como los datos parametrizables correspondientes al aula. 3.1.13. El sistema muestra seleccionados los horarios hbiles correspondientes a los das de la semana. 3.1.14. El Administrador quita la seleccin de las horas en las cuales el aula no est disponible. 3.1.15. El sistema muestra marcados los horarios disponibles del aula. 3.1.16. El Administrador selecciona la opcin Guardar. Ver flujo alternativo 3.3.2. 3.1.17. El sistema graba la informacin asociada al aula y muestra un mensaje de informacin. 3.1.18. El Administrador acepta el mensaje mostrado. 3.1.19. El Administrador selecciona la opcin Salir. 3.1.20. El sistema cierra la pantalla Cargar Informacin de Aulas. 3.1.21. El caso de uso termina. 3.2. Sub Flujos 3.2.1 Modificar datos del aula Si el Administrador decide modificar los valores de los datos parametrizables de un aula. 1. El Administrador selecciona una determinada aula. 2. El sistema muestra los valores de los datos parametrizables del aula seleccionada y habilita la opcin Guardar. 3. El Administrador respectivas. realiza las modificaciones
162
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 4. El Administrador selecciona la opcin Guardar. Ver flujo alternativo 3.3.2. 5. El sistema graba la informacin asociada al aula y muestra un mensaje de informacin. 6. El Administrador acepta el mensaje mostrado. 7. Contina en el paso 3.1.19 del flujo bsico.
3.2.2
Eliminar datos del aula Si el Administrador decide eliminar los valores de los datos parametrizables de un aula. 1. El Administrador selecciona una determinada aula. 2. El sistema muestra los valores de los datos parametrizables del aula seleccionada y habilita la opcin Guardar. 3. El Administrador selecciona la opcin Eliminar. 4. El sistema muestra un mensaje de confirmacin. 5. El Administrador confirma el mensaje mostrado. Ver flujo alternativo 3.3.3. 6. El sistema elimina los valores asociados al docente y muestra un mensaje de informacin. 7. El Administrador acepta el mensaje mostrado. 8. Contina en el paso 3.1.19 del flujo bsico.
3.3. Flujos alternativos 3.3.1 En el paso 3.1.1 del flujo bsico. Si el Administrador verifica que el ciclo acadmico mostrado no corresponde al actual. 1. El 2. El Administrador sistema selecciona la lista el de criterio ciclos correspondiente a ciclo acadmico. muestra acadmicos. 3. El Administrador selecciona el ciclo acadmico actual. 4. El sistema muestra el ciclo acadmico
seleccionado.
163
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 5. Contina en el paso 3.1.1 del flujo bsico. 3.3.2 En el paso 3.1.16 del flujo bsico y en el paso 3.2.14 del sub flujo Modificar datos del aula. Si el Administrador selecciona la opcin Cancelar. 1. Contina en el paso 3.1.10 del flujo bsico. Si el Administrador selecciona la opcin Salir. 1. Contina en el paso 3.1.20 del flujo bsico. Si el Administrador decide seleccionar los horarios hbiles desmarcados. 1. El Administrador selecciona las horas en las cuales el aula est disponible. 2. El sistema muestra marcados los horarios seleccionados. 3. Contina en el paso 3.1.16 del flujo bsico. 3.3.3 En el paso 3.2.2-5 del sub flujo Eliminar datos del aula. Si el Administrador no confirma el mensaje para eliminar los datos asociados al aula. 1. El sistema cierra el mensaje. 2. Contina en el paso 3.1.10 del flujo bsico. 4. POSCONDICIONES La Informacin de disponibilidad de las aulas est cargada en el sistema.
164
UNMSM
: : Men Principal : Cargar Informacin Aula : CI Generacin Administrador Horario 1: Seleccionar Cargar Informacin de Aulas 2: Mostrar opcin seleccionada 3: Mostrar 4: Seleccionar bsqueda de archivo 5: Mostrar bsqueda de directorios 6: Mostrar lista de directorios 7: Seleccionar ruta del archivo 8: Mostrar ruta 9: Cargar informacin del archivo 10: Cargar lista de aulas
: CN Generacin Horario
: Aula
11: Cargar lista de aulas 12: Grabar datos 13: Mostrar mensaje 14: Aceptar mensaje 15: Verificar mensaje aceptado 16: Cerrar mensaje 17: Obtener lista de aulas 18: Obtener listado 19: Mostrar lista de aulas 20: Seleccionar aula 21: Mostrar aula seleccionada 22: Obtener datos del aula 23: Obtener datos 24: Obtener datos 25: Mostrar datos 26: Crear valores complementarios 27: Habilitar datos parametrizables 28: Quitar seleccin de periodos no disponibles 29: Mostrar periodos seleccionados 30: Guardar informacin del aula 31: Grabar informacin del aula 32: Grabar informacin del aula 33: Grabar datos 34: Mostrar mensaje 35: Aceptar mensaje 36: Cerrar mensaje 37: Salir 38: Finalizar Carga de Informacin 39: Cerrar
165
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 5.2.2.6. Caso de Uso Configurar Valores de Parmetros 1. CONFIGURAR VALORES DE PARMETROS 1.1. Descripcin El caso de uso comienza cuando el Administrador decide configurar los valores de los parmetros necesarios para el funcionamiento del algoritmo gentico. El proceso empieza cuando se ingresan los valores de cada uno de los parmetros de configuracin. El caso de uso termina cuando se guarda la informacin correspondiente a cada uno de los parmetros. 1.2. Actor (es) Administrador. 1.3. Caso de Uso Asociado No aplica. 2. PRECONDICIONES No aplica. 3. FLUJO DE EVENTOS 3.1. Flujo bsico 3.1.1. 3.1.2. 3.1.3. El Administrador selecciona la opcin Configurar Valores de Parmetros del men Procesos. El sistema muestra la pantalla Configurar Valores de Parmetros. El Administrador ingresa los valores para cada parmetro de la configuracin, los cuales son el tamao de la poblacin y el nmero de
generaciones. 3.1.4. 3.1.5. 3.1.6. 3.1.7. El sistema muestra los valores ingresados. El Administrador selecciona la opcin Guardar. Ver flujo alternativo 3.3.1. El sistema valida los valores ingresados. Ver flujo alternativo 3.3.2. El sistema graba la informacin asociada a los parmetros y muestra un mensaje de informacin.
166
Facultad de Ingeniera de Sistemas e Informtica El Administrador acepta el mensaje mostrado. El Administrador selecciona la opcin Salir. Parmetros. 3.1.11. El caso de uso termina. 3.2. Sub Flujos No aplica. 3.3. Flujos alternativos 3.3.1 En el paso 3.1.1 del flujo bsico. Si el Administrador selecciona la opcin Cancelar. 1. Contina en el paso 3.1.2 del flujo bsico. Si el Administrador selecciona la opcin Salir. 1. Contina en el paso 3.1.10 del flujo bsico. 3.3.2 En el paso 3.1.6 del flujo bsico. Si el Administrador no ingresa un tamao para la poblacin. 1. El sistema detecta que no ha ingresado el tamao de la poblacin y muestra un mensaje de validacin. 2. El Administrador selecciona la opcin Aceptar. 3. El sistema cierra el mensaje. 4. Contina en el paso 3.1.3 del flujo bsico. Si el Administrador ingresa un tamao para la poblacin no vlido. 1. El sistema valida que el tamao de la poblacin es incorrecto y muestra un mensaje de validacin. 2. El Administrador selecciona la opcin Aceptar. 3. Contina en el paso 3.1.3 del flujo bsico. Si el Administrador no ingresa un nmero de generaciones. 1. El sistema detecta que no ha ingresado el nmero de generaciones y muestra un mensaje de validacin.
167
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 2. El Administrador selecciona la opcin Aceptar. 3. El sistema cierra el mensaje. 4. Contina en el paso 3.1.3 del flujo bsico. Si el Administrador sistema ingresa que un el nmero nmero de de generaciones no vlido. 1. El valida
generaciones es incorrecto y muestra un mensaje de validacin. 2. El Administrador selecciona la opcin Aceptar. 3. Contina en el paso 3.1.3 del flujo bsico. 4. POSCONDICIONES La Informacin de cada uno de los valores de configuracin est cargada en el sistema.
: Administrador
: Men Principal
: CI Generacin Horario
1: Seleccionar Configurar Valores de Parmetros 2: Mostrar opcin seleccionada 3: Mostrar 4: Ingresar valores de parmetros 5: Mostrar los valores ingresados 6: Guardar informacin de los parmetros 7: Grabar datos de parmetros 8: Grabar datos de parmetros 9: Grabar datos 10: Mostrar mensaje 11: Aceptar mensaje 12: Cerrar mensaje 13: Salir 14: Finalizar Configuracin 15: Cerrar
168
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 5.2.2.7. Caso de Uso Generar Horario Acadmico 1. GENERAR HORARIO ACADMICO 1.1. Descripcin El caso de uso comienza cuando el Administrador decide generar los horarios acadmicos semestrales. El proceso empieza cuando se ejecuta el algoritmo gentico para que se proceda a generar los horarios de los cursos de cada uno de los semestres del ciclo actual. El caso de uso termina cuando se muestra la informacin correspondiente a los cursos, docentes, horarios y aulas relacionados entre s que formarn un horario acadmico para cada uno de los semestres. 1.2. Actor (es) Administrador. 1.3. Caso de Uso Asociado No aplica. 2. PRECONDICIONES No aplica. 3. FLUJO DE EVENTOS 3.1. Flujo bsico 3.1.1. 3.1.2. 3.1.3. El Administrador selecciona la opcin Generar Horario Acadmico del men Procesos. El sistema muestra la pantalla Generar Horario Acadmico. El Administrador selecciona la opcin Generar. Ver flujo alternativo 3.3.1. 3.1.4. 3.1.5. El sistema ejecuta el procedimiento del algoritmo gentico. El sistema muestra los horarios acadmicos para cada uno de los semestres y habilita la opcin Guardar.
169
UNMSM 3.1.6.
Facultad de Ingeniera de Sistemas e Informtica El Administrador visualiza los horarios acadmicos generados y selecciona la opcin Guardar. Ver flujo alternativo 3.3.1. 3.1.7. 3.1.8. 3.1.9. El sistema graba los horarios acadmicos y muestra un mensaje de informacin. El Administrador acepta el mensaje mostrado. El Administrador selecciona la opcin Salir. Acadmico. 3.1.11. El caso de uso termina. 3.2. Sub Flujos No aplica. 3.3. Flujos alternativos 3.3.1 En los pasos 3.1.3 y 3.1.6 del flujo bsico. Si el Administrador selecciona la opcin Cancelar. 1. Contina en el paso 3.1.2 del flujo bsico. Si el Administrador selecciona la opcin Salir. 1. Contina en el paso 3.1.10 del flujo bsico. 4. POSCONDICIONES La Informacin de los horarios acadmicos semestrales est almacenada en el sistema.
170
UNMSM
: Dictado Curso : Disponibilidad : Preferencia: Disponibilidad: Semestre: Parmetro : Curso Tipo : Docente : Aula : Clase : Men Principal: Generar Horario : CI Generacin : CN Generacin : Periodo : Docente Horario Aula Acadmico Horario Administrador 1: Seleccionar Generar Horario Acadmico 2: Mostrar opcin seleccionada 3: Mostrar 4: Generar horarios acadmicos 5: Generar horarios acadmicos 6: Ejecutar generacin de horarios 7: Obtener datos 8: Obtener datos 9: Obtener datos 10: Obtener datos 11: Grabar datos 12: Obtener datos 13: Obtener datos 14: Obtener datos 15: Obtener datos 16: Obtener datos
17: Generar horarios 18: Mostrar horarios acadmicos semestrales 19: Guardar horarios acadmicos semestrales 20: Grabar horarios acadmicos 21: Grabar horarios acadmicos 22: Grabar datos 23: Mostrar mensaje 24: Aceptar mensaje
25: Cerrar mensaje 26: Salir 27: Finalizar Generacin Horarios 28: Cerrar
5.3.
Diagrama de Clases
Con este diagrama describiremos la estructura del sistema mostrando para ello las clases, los atributos y las relaciones que existen entre ellos. Cada clase posee propiedades atributos y un conjunto de operaciones. A continuacin
presentaremos las clases, sus propiedades y las relaciones entre dichas clases.
171
UNMSM
Plan Acadmico
(from Clases Entidades)
Semestre
(from Clases Entidades)
IDPLAN
Configuracin Curso
(from Clases Entidades)
HORAS
Preferencia
(from Clases Entidades)
ASIGNACION ESTADO
Aula Tipo
(from Clases Entidades)
Aula
(from Clases Entidades)
ESTADO
Ciclo
(from Clases Entidades)
Dictado Curso
(from Clases Entidades)
Docente
(from Clases Entidades)
ASIGNACION ESTADO
Usuario
(from Clases Entidades)
ESTADO
Parmetro
(from Clases Entidades)
ESTADO
Figura 5.16. Diagrama de clases y sus relaciones Entre las entidades mostradas tenemos las siguientes: Ciclo: Un ciclo acadmico corresponde a un rango de meses en un ao para la cual se destina la enseanza a los alumnos. Cada ao consta de tres ciclos acadmicos, que inicia en el ciclo cero y termina en el ciclo dos.
172
UNMSM
Semestre: Un semestre acadmico corresponde a la divisin en periodos que se realiza para cumplir con la enseanza de todos los cursos acadmicos que establece la carrera profesional. Son diez el nmero de semestres acadmicos. Cada semestre est conformado por un conjunto de cursos, los cuales se encuentran debidamente agrupados.
Plan de Estudios: Un plan de estudios est conformado por todos los cursos que determina la carrera profesional. Periodo: El periodo corresponde a cada hora acadmica que existe en una semana. Curso: Es la unidad educativa correspondiente a una materia que
Tipo: Corresponde a una forma de clasificacin y pueden ser teora, prctica y laboratorio. Curso Tipo: Se refiere a la correspondencia existente entre curso y tipo anteriormente definidos. Un curso puede estar asociado a uno ms tipos; tales como curso 1 de tipo A y tipo B, curso 2 de tipo A, curso 3 de tipo B, etc. Configuracin Curso: Se establece la cantidad de grupos que se van a aperturar por cada curso y el nmero de personas que pueden matricularse por grupo aperturado. Dictado Curso: Indica los periodos en que puede realizarse el dictado de un determinado curso. Puede no existir una asignacin fija de un periodo para un curso especfico. Docente: Persona que realiza el proceso de enseanza de cursos en la facultad.
Categora: Es la forma en que se clasifican los docentes, segn la cantidad de horas de enseanza y la modalidad de tipo de docente.
173
UNMSM
Preferencia: Representa la relacin existente entre cursos y docentes, ya que un docente tiende a dictar uno ms cursos segn su mbito de enseanza. Disponibilidad Docente: Representa la relacin existente entre periodos y docentes. Un docente tiene una disponibilidad laboral en la cual puede realizar el dictado de clases. Aula: Cada uno de los ambientes de la facultad en los cuales se realiza el dictado de los cursos tanto de los tres tipos establecidos. Aula Tipo: Se refiere a la correspondencia existente entre aula y tipo. Cada aula est asociada a un tipo, el cual determina las condiciones que pueda tener el aula para realizar el dictado de las clases. As tenemos el aula 101 de tipo teora, el aula 301 de tipo laboratorio, etc.
Disponibilidad Aula: Representa la relacin existente entre periodos y aulas. Un aula tiene una disponibilidad a la semana en la cual se puede realizar el dictado de clases. Usuario: Se refiere a los datos de la persona que puede acceder al sistema considerndole ciertos privilegios de accesibilidad. Parmetro: Se establece una configuracin inicial para la ejecucin del proceso de generacin de horarios acadmicos semestrales; tales como tamao de la poblacin, nmero de generaciones, etc. 5.4. Modelo de Datos
El modelo de datos que vamos a establecer corresponde a un esquema conceptual que nos permitir representar los datos que se pretenden almacenar en la base datos. Se muestran las entidades con sus respectivos atributos, adems de poseer una clave que le permite identificarse de manera nica; a su vez se muestran las conexiones entre dichas entidades.
174
UNMSM
La arquitectura del software que se plantea nos proporcionar un marco de referencia para una posterior implementacin de la solucin. El diseo de la arquitectura se realizar en base a los objetivos y restricciones del sistema. La arquitectura mostrada a continuacin representa a los componentes
involucrados en la solucin, y se divide en niveles para facilitar su respetiva comprensin y separar sus funcionalidades.
175
UNMSM
NIVEL DE PRESENTACIN
Base de Datos
Figura 5.18. Arquitectura del Sistema Esta arquitectura presenta los siguientes niveles: el nivel de presentacin, de negocio y de persistencia. El nivel de presentacin est compuesto por los componentes de UI, que son las interfaces grficas que permiten al usuario interactuar con el sistema; y los componentes de proceso de UI que permiten una adecuada administracin de las interfaces. o El nivel de negocio est compuesto por los componentes de negocio, que es la capa que presenta toda la lgica del negocio que se est implementando. o El nivel de persistencia est compuesto por los componentes de acceso a datos que permiten interactuar con las entidades para obtener la informacin de la base de datos. Adems paralelo a todos estos niveles tenemos las entidades que resultan ser el enlace entre cada una de las capas, y adems la seguridad de los datos en todos los niveles.
5.5.1. Restricciones no funcionales Se han identificado algunos requerimientos no funcionales que definen las metas y restricciones arquitectnicas:
176
UNMSM
Facultad de Ingeniera de Sistemas e Informtica El lenguaje de programacin a emplearse para el desarrollo de la aplicacin ser el lenguaje Java. Es un lenguaje orientado a objetos, los cuales son elementos bsicos para modelar los datos sobre los que trabajar nuestra solucin. El servidor de Base de Datos que se va a utilizar es MySQL 5.1.41. Es un gestor para base de datos relacionales cuyo objetivo es velocidad al realizar las operaciones y robustez al asegurar una integridad completa de los datos. La herramienta de desarrollo es NetBeans 6.5
5.6.
Vista de Componentes
A travs de la vista de componentes podemos describir los componentes que constituyen el sistema y sus dependencias. Cada componente representar un elemento fsico que est incluido en la construccin de la aplicacin; mientras que las relaciones establecidas nos indicarn que un componente utiliza los servicios ofrecidos por otro componente.
GUI Generacin Horarios Controlador de Acceso a Datos Gestor Base Datos MySQL
Figura 5.19. Diagrama de Componentes En este diagrama, podemos observar que cada uno de los componentes son partes modulares, desplegables y reutilizables del sistema. Entre ellos tenemos: El componente GUI Generacin de Horarios (Interfaz Grfica de Usuario de Generacin de Horarios) que est formada por todos las interfaces grficas, el componente Controlador UI Generacin Horarios (Controlador de Interfaz de Usuario de Generacin de Horarios), el componente Controlador de Negocio de
177
UNMSM
Generacin de Horarios, el componente Controlador de Acceso a Datos, el componente Gestor de Base de Datos, el componente JGAP y el componente Grfico. En esta parte vamos a detallar el componente JGAP para conocer sus respectivas funcionalidades que ayudan al sistema en la generacin de horarios acadmicos. JGAP son las iniciales de Java Genetic Algorithms Package, es un paquete de Programacin Gentica y Algoritmos Genticos escrito en Java. Proporciona los mecanismos bsicos de gentica que puede ser fcilmente utilizado para aplicar los principios evolutivos a la solucin de problemas. JGAP fue diseado para ser muy fcil de usar, es decir, est listo para usarse; mientras que tambin est diseado para ser altamente modular, de forma que se pueda fcilmente personalizar los operadores genticos y otros sub-componentes. A continuacin mostraremos la lista de paquetes de JGAP, y para mayor detalle ver el apndice 4:
La vista de despliegue nos permite determinar en donde se ejecutan los componentes del software anteriormente descritos. De esta manera podemos
178
UNMSM
establecer la disposicin fsica de los nodos que son parte del sistema, es decir, vamos a modelar la topologa del hardware donde se va a ejecutar el sistema.
Figura 5.21. Diagrama de Despliegue El diagrama de despliegue mostrado representa la arquitectura fsica de la solucin, en el cual se pueden observar 3 nodos: Impresora, Estacin Cliente y Servidor de Base de Datos. 5.8. Prototipos de la Solucin
Para establecer el diseo de las pantallas prototipo de la solucin se utilizar la informacin reunida en el anlisis, con la ayuda de ste se podr determinar cmo construir una interfaz grfica de usuario que satisfaga sus necesidades y a su vez lograr que la aplicacin sea flexible, coherente, eficiente y sencilla de utilizar. El objetivo de esta seccin es especificar cada formato individual de la interfaz de las pantallas del sistema. En la definicin de cada pantalla se considerarn aquellos aspectos que son importantes para el diseo y construccin del sistema.
5.8.1. Ventana de Ingreso al Sistema Esta pantalla hace referencia al Caso de Uso Ingresar al Sistema, a travs del cual el usuario ingresar los datos necesarios para poder ingresar al sistema.
179
UNMSM
Figura 5.22. Prototipo del Caso de Uso Ingresar al Sistema Luego de haber ingresado los datos del usuario, se mostrar la pantalla principal del sistema con un men de opciones, por medio del cual el usuario podr interactuar con el sistema.
La siguiente pantalla hace referencia al Men Principal del Sistema, a travs del cual el usuario podr visualizar las tareas que puede realizar de acuerdo a su perfil establecido.
180
UNMSM
5.8.2. Ventana de Carga de Informacin de Horarios Esta pantalla hace referencia al Caso de Uso Cargar Informacin de Horarios, a travs del cual el usuario ingresar los periodos en que se puede realizar el dictado de clases a la semana.
Figura 5.24. Prototipo del Caso de Uso Cargar Informacin de Horarios 5.8.3. Ventana de Carga de Informacin de Cursos La pantalla hace referencia al Caso de Uso Cargar Informacin de Cursos, a travs del cual el usuario ingresar los cursos que pertenecen a un plan de estudios y el horario en que pueden ser dictados dichos cursos. Adems se detallar la cantidad de horas que se dicta por cada uno de los tipos relacionados al curso.
181
UNMSM
5.8.4. Ventana de Carga de Informacin de Docentes La pantalla hace referencia al Caso de Uso Cargar Informacin de Docentes, a travs del cual el usuario ingresar la lista de docentes, incluyendo los cursos que dictan y su disponibilidad horaria.
182
UNMSM
Figura 5.26. Prototipo del Caso de Uso Cargar Informacin de Docentes 5.8.5. Ventana de Carga de Informacin de Aulas La pantalla hace referencia al Caso de Uso Cargar Informacin de Aulas, a travs del cual el usuario ingresar la lista de aulas, incluyendo el tipo de aula, la capacidad y su disponibilidad durante la semana.
183
UNMSM
Figura 5.27. Prototipo del Caso de Uso Cargar Informacin de Aulas 5.8.6. Ventana de Configuracin de Valores de Parmetros La pantalla hace referencia al Caso de Uso Configurar Valores de Parmetros, a travs del cual el usuario ingresar el tamao de la poblacin y el nmero de generaciones que son los parmetros para dar inicio al proceso de generacin de horarios de clases.
184
UNMSM
5.8.7. Ventana de Generacin de Horario Acadmico La pantalla hace referencia al Caso de Uso Generar Horario Acadmico, a travs del cual el usuario generar el horario acadmico de cada uno de los semestres, con la configuracin de parmetros establecida y los datos ingresados sobre los docentes, las horas acadmicas y las aulas.
185
UNMSM
Captulo 6 : Pruebas y Resultados En este captulo se mostrarn las pruebas que se realizaron para determinar la seleccin de un mtodo entre diversos mtodos de operadores genticos; as como tambin escoger una serie de parmetros de configuracin que permitirn al algoritmo gentico poder dar inicio a la bsqueda de una solucin ptima. Adems se presentarn los resultados que fundamentan nuestro anlisis para la seleccin de las mejores opciones, de tal manera que pueda darse solucin al problema de generacin de horarios de clases. 6.1. Introduccin
Como objetivo del presente trabajo se propuso encontrar una solucin aproximada, a travs de algoritmos genticos, al problema de generacin de horarios para la Escuela Acadmica Profesional de Ingeniera de Sistemas e Informtica de la Facultad de Ingeniera de Sistemas e Informtica de la Universidad Nacional Mayor de San Marcos.
Ahora que ya hemos implementado el algoritmo, el siguiente paso ser proceder con su respectiva evaluacin. Esta evaluacin se realizar en dos partes:
186
UNMSM
1. La primera, constar en encontrar los mejores mtodos para cada etapa del algoritmo. Como ya vimos en el captulo dos, el algoritmo gentico presenta etapas tales como seleccin, emparejamiento, mutacin y reinsercin; por lo tanto debemos identificar el mejor mtodo que nos permite realizar adecuadamente el correspondiente proceso en cada una de dichas etapas.
2. La segunda, se enfocar a encontrar la mejor configuracin para cada mtodo que se haya seleccionado en la primera parte, de tal manera que dicha configuracin nos aporte una mejor performance y mejores resultados para nuestro problema. 6.2. Casos de Anlisis
Contaremos con dos casos de anlisis diferentes para esta seccin, ambos se basarn en la informacin proporcionada que corresponde al ciclo 2009-I de la Escuela Acadmica Profesional de Ingeniera de Sistemas e Informtica, la cual fue elaborada manualmente por el personal responsable. Los casos de anlisis sern descritos a continuacin: 1. El primer caso de anlisis, tomar en cuenta el 30% de la informacin necesaria para realizar la generacin de horarios del ciclo acadmico en cuestin. Este porcentaje de la informacin corresponde a cursos que son dictados hasta el tercer semestre.
Se cuenta con un total de 18 cursos, con los respectivos rangos de periodos en los cuales podran ser dictados.
Se cuenta con 45 docentes de diferentes categoras, con sus respectivas disponibilidades y preferencia de dictado.
2. El segundo caso de anlisis, tomar en cuenta el 70% de la informacin necesaria para realizar la generacin de horarios del ciclo acadmico en cuestin. Este porcentaje de la informacin corresponde a cursos que son dictados hasta el sptimo semestre.
187
UNMSM
Se cuenta con un total de 42 cursos, con los respectivos rangos de periodos en los cuales podran ser dictados.
Se cuenta con 76 docentes de diferentes categoras, con sus respectivas disponibilidades y preferencia de dictado.
3. El tercer caso de anlisis, tomar en cuenta el 100% de la informacin necesaria para realizar la generacin de horarios del ciclo acadmico en cuestin. A continuacin detallamos los recursos tomados en cuenta para este caso:
Se cuenta con un total de 67 cursos, con los respectivos rangos de periodos en los cuales podran ser dictados.
Se cuenta con 101 docentes de diferentes categoras, con sus respectivas disponibilidades y preferencia de dictado.
Los dos primeros casos de anlisis sern empleados en la seccin siguiente que corresponde al Esquema de Pruebas. Cada caso ser utilizado en puntos distintos de dicha seccin. El ltimo caso ser para mostrar un horario completo desarrollado ntegramente por nuestro algoritmo. 6.3. Esquema de Pruebas
Para medir el desempeo del algoritmo gentico en base a sus diferentes variaciones, como por ejemplo usar un tipo de operador u otro, utilizaremos tres tipos de mediciones diferentes: El nmero de generaciones. Se medir la cantidad de generaciones promedio que se necesita para lograr una solucin ptima. La frecuencia de xito. Se identificar la frecuencia con la cual se obtienen resultados satisfactorios en las diferentes ejecuciones del algoritmo.
188
UNMSM
La cantidad de veces que se ejecutar el algoritmo para calcular el promedio de nmero de generaciones, la frecuencia de xito resultante y el nmero promedio de individuos diferentes ser de 40. Los dos casos de anlisis descritos en la seccin anterior denominada Casos de Anlisis, sern empleados en los puntos siguientes de esta seccin. El primer caso de anlisis se usar en los puntos 6.3.1, 6.3.2 y 6.3.3; mientras que para el punto 6.3.4 se usar el segundo caso de anlisis. Otro punto importante es saber que para los puntos 6.3.1, 6.3.2 y 6.3.3 se utilizar como fase representativa a la segunda ya que, como se mencion anteriormente, es la que presenta un mayor grado de complejidad. Los resultados obtenidos de estas pruebas sern empleados para las dems fases. Y para el punto 6.3.4 se realizarn pruebas individuales para cada una de las fases.
A continuacin se dar inicio a la primera parte de la evaluacin que se encargar de encontrar los mejores mtodos de cada etapa del algoritmo. Empezaremos con el proceso de seleccin, luego seguiremos con cada uno de los operadores genticos, y por ltimo, con el proceso de reinsercin. 6.3.1. Pruebas sobre el proceso de seleccin En esta parte veremos las pruebas realizadas para escoger el mtodo de seleccin ms apropiado para nuestro problema; adems de ver si es conveniente no escalar las aptitudes resultantes de los cromosomas antes de que sean evaluadas en el proceso de seleccin. 6.3.1.1. Prueba de escalamiento de la aptitud Segn lo visto en el captulo 4, se podra dar el caso que la aparicin de un sper-individuo nos haga llegar a ptimos locales, impidiendo al algoritmo poder avanzar. Para evitar esto se plante usar el mtodo de escalamiento de la aptitud para disminuir la diferencia relativa de aptitudes entre individuos y as disminuir la probabilidad de que aparezcan sper-individuos.
189
UNMSM
Facultad de Ingeniera de Sistemas e Informtica En este escenario pasaremos a probar el escalamiento lineal que se expresa mediante la formula: f' = a + b*f continuacin: usando los valores a
Tabla 6.1. Valores para realizar el escalamiento de la aptitud En la Figura 6.1, se muestra el nmero de generaciones que necesita el algoritmo para obtener una solucin ptima, de acuerdo al uso de diferentes valores de escalamiento. Se puede observar que los valores de escalamiento a = 0.2, b = 0.8 y a = 0, b = 1 (lo cual implica que realmente no se escala la aptitud original) dan resultados iguales, lo cual nos obliga a usar el segundo criterio de evaluacin que definimos.
190
UNMSM
Escala vs Generacin
83 82 Generaciones 81 80 79 78 77 76 1 0 0.9 0.1 0.8 0.2 0.7 0.3 0.6 0.4 0.5 0.5 0.4 0.6 0.3 0.7 0.2 0.8 0.1 0.9 78 80 79 79 78 80 80 82 81 80
Escala(a,b)
Figura 6.1. Nmero de generaciones vs. Escalamiento de la aptitud utilizado La Figura 6.2 muestra la frecuencia de xito en encontrar una solucin ptima al problema, mostrndonos claramente que la escala a = 0 y b = 1 posee un valor del 95% superando al resto de escalas.
Frecuencia
1 0
0.9 0.1
0.8 0.2
0.7 0.3
0.6 0.4
0.5 0.5
0.4 0.6
0.3 0.7
0.2 0.8
0.1 0.9
Escala(a,b)
Figura 6.2. Frecuencia de xito vs. Escalamiento de la aptitud utilizado La interpretacin de tener como mejor resultado a la escala a = 0 y b= 1 es que no se debera de escalar la aptitud original del individuo, y esto se da debido a que la forma de penalizar la aparicin de errores por la que se ha optado no permite que la diferencia relativa entre todos los individuos de la poblacin sea grande, como para admitir la aparicin de sper-individuos que acaparen dicha poblacin.
191
UNMSM
Para comprobar cul mtodo de seleccin se comporta mejor para nuestro problema, se compararon dos de los ms populares, el de ruleta y el de torneo, los cuales fueron mencionados en el capitulo 2. Obtenindose los siguientes resultados que son mostrados en la Figura 6.3.
Figura 6.3. Nmero de generaciones vs. Mtodo de seleccin utilizado Como se puede observar el uso del mtodo de torneo supera ampliamente al mtodo de ruleta, ya que este ltimo necesita un nmero mayor de generaciones para encontrar una solucin factible al problema. 6.3.1.3. Prueba sobre el tamao del torneo
Otro punto importante es calcular el tamao del torneo que vamos a usar, dado que ste afecta directamente al desempeo del algoritmo. En la Figura 6.4 vemos que se ha realizado pruebas con diferentes tamaos de torneo, y a simple vista pareciera que a mayor tamao de torneo el algoritmo encuentra una solucin de manera mas rpida. Pero si contrastamos estos resultados con la Figura 6.5 en la cual se muestra la frecuencia de xito para cada tamao de torneo, se puede llegar a otra conclusin.
192
UNMSM
Figura 6.5. Frecuencia de xito vs. Tamao de torneo utilizado Usando la informacin de ambas grficas escogemos el tamao de torneo ms adecuado que es el de valor dos; dado que los otros, a pesar de llegar a una solucin en un nmero menor de generaciones, presentan una frecuencia mucho menor para alcanzar soluciones factibles. 6.3.2. Pruebas sobre los operadores genticos
En esta parte veremos las pruebas realizadas para escoger el mejor operador de emparejamiento y el mejor operador de mutacin que sean adecuados para nuestro problema, as como el porcentaje necesario para que los respectivos operadores seleccionados tengan un mejor desempeo.
193
UNMSM
Para escoger el operador de emparejamiento ms adecuado, se realizaron pruebas con cuatro mtodos: emparejamiento de un punto, de dos puntos, doble y uniforme. Para todos estos cruzamientos, se toman parejas de individuos y, con una probabilidad, se decide si se emparejan no, de acuerdo al tipo de emparejamiento que se est realizando. Si se decide no emparejar dos individuos, stos pasan directamente a formar parte del conjunto de hijos. A continuacin describiremos, en forma resumida, el proceso de los mtodos de emparejamiento que vamos a emplear en la evaluacin:
En el emparejamiento simple de un punto, es seleccionado un punto aleatoriamente a travs de la longitud del cromosoma y aparir de el se efecta el cambio del material gentico.
Para el emparejamiento de dos puntos se sigue el mismo procedimiento del emparejamiento de un punto, pero en lugar de escoger un punto son seleccionados dos puntos aleatorios en los cromosomas.
El emparejamiento doble es bsicamente el mismo proceso que el de emparejamiento simple de un punto, excepto que es repetido; esto significa que dos bloques son elegidos aleatoriamente y dos cruzamientos son llevados a cabo.
El ltimo mtodo utilizado fue el de emparejamiento uniforme. En este mtodo, cada gen del individuo descendiente tiene la misma probabilidad de provenir de alguno de los dos individuos padres, esto significa que cada gen es elegido aleatoriamente de un gen padre.
Dado que inicialmente restringimos un alfabeto para cada gen del cromosoma, el emparejamiento no generar soluciones fuera de este dominio; debido a que los operadores considerados no cambian la posicin de los genes, sino que recombinan stos manteniendo la posicin original que tenan en los padres. Tras realizar las pruebas con los mtodos mencionados se lleg a la conclusin: Si los mtodos son comparados segn el nmero de
194
UNMSM
Facultad de Ingeniera de Sistemas e Informtica generaciones que se emplea para encontrar una solucin factible, y a su vez se considera la frecuencia de xito en alcanzar dicha solucin, entonces se tiene como mejor operador para nuestro problema al Emparejamiento Uniforme (Figura 6.6 y Figura 6.7).
Metodo Cruce vs Numero Generaciones
90 Numero Generaciones 80 70 60 50 40 30 20 10 0 Dos puntos Un punto Metodo Cruce Uniforme Doble 77 82
77
76
Frecuencia Exito
Figura 6.7. Frecuencia de xito vs. Mtodo de emparejamiento utilizado Como observacin aparte, podemos indicar que el emparejamiento uniforme presenta un poder de destruccin mucho mayor que el emparejamiento de un punto y de dos puntos; esto quiere decir que, el emparejamiento uniforme no conserva la estructura de los cromosomas padres como lo hace el emparejamiento de un punto y dos puntos, que son los que preservan en mayor medida la estructura de los cromosomas padres. Por ejemplo, el individuo hijo
195
UNMSM
Facultad de Ingeniera de Sistemas e Informtica originado a travs del emparejamiento uniforme podra estar formado, de manera alternada, por un gen del padre 1 y otro gen del padre 2, con lo cual podemos ver que la estructura original de los cromosomas padres no se ve reflejada en el cromosoma hijo. Pero si se aplicara un emparejamiento de un punto se obtendra un individuo cuya estructura de su cromosoma sera la primera parte del padre 1 y la otra parte del padre 2, con lo cual se puede notar que las estructuras originales de los padres no se ha visto afectada en gran magnitud. La utilizacin del emparejamiento uniforme debe ser, por lo tanto, tomada con cuidado en problemas donde la variedad de individuos en la poblacin sea media baja; adems debe estar presente en un ambiente elitista, que garantice la permanencia de los mejores individuos para futuras generaciones. Precisamente esta descripcin se adecua a nuestro problema, dado que el uso de alfabetos que restringen el valor de los genes del cromosoma limita, en cierto modo, la diversidad de individuos dentro de la poblacin. 6.3.2.1.1. Prueba de porcentajes de emparejamiento El objetivo de esta prueba es conocer el efecto que tiene el operador gentico de emparejamiento sobre el funcionamiento del algoritmo, lo cual se lograr modificando el porcentaje de ocurrencia de dicho operador. Los porcentajes con los cuales se realizar la evaluacin se muestran en la siguiente tabla:
196
UNMSM
Facultad de Ingeniera de Sistemas e Informtica En la Figura 6.8 se muestra el comportamiento del algoritmo frente al cambio de porcentajes de emparejamiento. Notndose que el 90% de ocurrencia de emparejamiento logra encontrar, con un menor nmero de generaciones, la solucin al problema.
80
79
80
Figura 6.8. Nmero de generaciones vs. Porcentaje de emparejamiento 6.3.2.2. Prueba sobre el mtodo de mutacin
Como se mencion en el captulo 4, el operador de mutacin ya ha sido seleccionado; debido a que slo uno se acopla a la manera en que trabaja nuestro algoritmo gentico, por lo que se limitar a calcular el porcentaje de mutacin adecuado. 6.3.2.2.1. Prueba de porcentaje de mutacin Esta prueba tiene como objetivo medir el efecto de aplicar diferentes porcentajes de mutacin sobre el algoritmo gentico. Los porcentajes se muestran en la siguiente tabla:
197
UNMSM
Tabla 6.3. Porcentaje de ocurrencia del operador de mutacin Para cada uno de dichos porcentajes se realizaron las pruebas correspondientes, obtenindose como resultado que el porcentaje de mutacin que ofrece encontrar la solucin, en un nmero menor de generaciones, es de 0.1%, seguido del 1% (Figura 6.9). Pero si observamos la Figura 6.10 nos percatamos que el porcentaje de 0.1% slo posee un 20% de frecuencia de xito, siendo considerado un valor bajo; por lo cual escogemos como porcentaje de mutacin al de 1%, que garantiza una frecuencia mayor al momento de encontrar una solucin ptima.
198
UNMSM
Figura 6.10. Frecuencia de xito vs. Porcentaje de mutacin 6.3.3. Prueba sobre el proceso de reinsercin En esta seccin probaremos cul mtodo de reinsercin de los individuos para la siguiente generacin es la mejor, as como determinar si el uso del elitismo puede no mejorar el desempeo del algoritmo.
6.3.3.1. Prueba sobre el mtodo de reinsercin La operacin de reinsercin se puede realizar de diversas formas, pero pusimos a prueba slo los dos mtodos que vamos a explicar a continuacin:
La manera ms simple es eliminar a toda la poblacin anterior y substituirla por la nueva poblacin, aqu preservamos solamente los hijos para la siguiente generacin.
El otro mtodo es escoger los mejores cromosomas entre el conjunto de padres e hijos para formar la siguiente generacin.
199
UNMSM
Figura 6.12. Frecuencia de xito vs. Mtodo de reinsercin utilizado Comparando ambos mtodos de reinsercin, segn las Figuras 6.11 y 6.12, se observa que cuando se consideran los padres e hijos para la reinmersin, el nmero de generaciones disminuye y adems tiene una frecuencia de xito menor al mtodo que toma en cuenta slo los hijos; por lo tanto, escogemos el primer mtodo que resulta ser ms fiable para encontrar una solucin factible. 6.3.3.2. Prueba sobre el uso del elitismo En este experimento se evaluar si se debe utilizar no el elitismo, para determinar si al usarlo se obtienen mejores resultados con respecto a no hacer uso de l. Para este caso consideraremos
200
UNMSM
Facultad de Ingeniera de Sistemas e Informtica mantener nicamente la mejor solucin de la poblacin actual para trasladarla a la siguiente generacin, siendo solamente dicha solucin la que se preserve antes de que se realice el proceso de emparejamiento. Con esto podemos asegurar que si los operadores genticos no logran generan cromosomas con aptitudes superiores a las aptitudes de la poblacin actual, por lo menos se tendr la seguridad de conservar el cromosoma con la mejor aptitud que pueda existir en dicha poblacin. A partir de las pruebas podemos deducir que al preservar la mejor solucin para la siguiente generacin, el nmero de generaciones empleado para encontrar una solucin ptima al problema es menor que si no la preservamos (Figura 6.13).
Figura 6.13. Nmero de generaciones vs. Elitismo 6.3.4. Prueba de parmetros de configuracin En esta seccin evaluaremos los valores que deben tomar algunos parmetros de configuracin, tales como el nmero de individuos que formarn la poblacin y el nmero de generaciones que debe ejecutar el algoritmo. De esta evaluacin se determinar cul es el mejor valor para cada uno de dichos parmetros de configuracin, y de esa manera poder encontrar una solucin factible al problema.
201
UNMSM
Facultad de Ingeniera de Sistemas e Informtica 6.3.4.1. Prueba de nmero de individuos El objetivo de esta prueba es encontrar el nmero de individuos adecuado para cada una de las fases de nuestro algoritmo, con el fin de evitar que ste converja rpidamente en un ptimo local; ya sea por tener una poblacin demasiado pequea que no aporte mucha diversidad a la solucin, tener una demasiado grande que consuma muchos recursos computacionales que hacen que el algoritmo avance lentamente. La Figura 6.14 muestra que para la fase uno el mejor nmero de individuos de la poblacin inicial, para aportar una buena diversidad, es de 3200, ya que la diversidad de la poblacin no es muy grande ni muy pequea. La frecuencia de xito, para hallar una solucin ptima, de ese tamao de poblacin es la ms adecuada, ya que aparir de este tamao de poblacin esta no vara en mejorar la frecuencia.
Individuos diferentes
40.0% | 15.0%
10.0%
200
400
800
1600
3200
6400
Tamao poblacin
Figura 6.14. Frecuencia de xito vs. Tamao de la poblacin inicial - Fase uno Para la fase dos, se puede notar que el nmero de individuos de la poblacin es mayor que la fase anterior (6400 individuos). Esto es debido a que se necesita una mayor diversidad de la poblacin para encontrar una solucin porque, como sabemos, presenta un mayor nmero de restricciones. En la Figura 6.15 se muestra la frecuencia de xito que posee cada uno dichos tamaos.
202
UNMSM
Individuos diferentes
5.0% 200
400
800
1600
3200
6400
Tamao poblacin
Figura 6.15. Frecuencia de xito vs. Tamao de la poblacin inicial - Fase dos Para la fase tres, el nmero de individuos de la poblacin es intermedio entre las dos fases anteriores, es decir, mayor que la fase uno y menor que la fase dos. (Figura 6.16)
Individuos diferentes
35.0% 20.0%
250
500
1000
2000
4000
8000
Tamao poblacin
Figura 6.16. Frecuencia de xito vs. Tamao de la poblacin inicial - Fase tres 6.3.4.2. Prueba de nmero de generaciones En este punto determinaremos el nmero de generaciones promedio que tardan el algoritmo en cada una de las fases para encontrar una solucin. De esta manera se puede averiguar cul ser el mximo nmero de generaciones adecuado para cada una de dichas fases.
203
UNMSM
Para realizar esta prueba se emple un nmero elevado de generaciones como lmite, con la finalidad de visualizar el comportamiento del algoritmo al tratar de encontrar no una solucin ptima de converger prematuramente en un ptimo local. Los resultados obtenidos para cada una de las fases se muestran a continuacin:
Numero Generaciones
305 253
Fase 1
Fase 2 Fase
Fase 3
Figura 6.17. Nmero de generaciones vs. Fase Como vemos en la Figura 6.20 la fase dos es la que necesita un mayor nmero de generaciones para encontrar una solucin, debido a su elevada complejidad, mientras que la fase tres es relegada al segundo lugar y la primera al ltimo. 6.4. Horario de Clases
Como resultado de la informacin de entrada, expresada en el caso de anlisis nmero tres, se logr generar el horario de clases que se muestra a continuacin:
Da VI LU JU JU LU VI
Hora 18 16 11 12 14 14
Dur. 2 2 2 2 2 2
Docente HERRERA PONTE, ARON ELAS HERRERA PONTE, ARON ELAS VERA POMALAZA, Virginia DAMASO RIOS, Mara Rosa HERRERA PONTE, ARON ELAS VSQUEZ PARAGULLA, JULIO
204
UNMSM 3 3 3 4 4 4 5 5 5 T P L T P L T P L MI SA JU LU JU MI MA JU SA SA VI LU 9 18 12 18 14 11 16 16 17 11 14 18 2 2 2 2 2 2 2 2 2
Facultad de Ingeniera de Sistemas e Informtica VSQUEZ PARAGULLA, JULIO VIVANCO MUOZ, PERCY ELAS MUOZ CASILDO, Nehil Indalecio MUOZ CASILDO, Nehil Indalecio SALINAS AZAA, Gilberto Anbal MOTA ALVA, Lzaro Flori MUOZ CASILDO, Nehil Indalecio MUOZ CASILDO, Nehil Indalecio RUIZ DE LA CRUZ MELO, Carlos Augusto 2 RUIZ DE LA CRUZ MELO, Carlos Augusto 2 VIVANCO MUOZ, PERCY ELAS 2 CUBA MORA, JULIO 107 107 307 103 108 306 108 103 306 207 109 306
Da VI JU MI VI VI MA MA SA SA JU
Hora 14 18 9 10 15 15 12 13 14 9
Dur. 3 2 3 2 3 2 3 2 3 2
Docente VALLALODIT FACIO BENITO CARNAHUACA TICSE GREGORIO VALLALODIT FACIO BENITO VALLALODIT FACIO BENITO CARNAHUACA TICSE GREGORIO VALLALODIT FACIO BENITO VALLALODIT FACIO BENITO VALLALODIT FACIO BENITO CARNAHUACA TICSE GREGORIO VALLALODIT FACIO BENITO
Aula 202 203 204 105 205 205 109 106 202 207
Da LU SA LU MA MI VI JU MI MI MA
Hora 8 12 11 15 16 13 18 9 11 18
Dur. 3 2 3 2 3 2 3 2 3 2
Docente ROJAS CAUTI SAL ROJAS CAUTI SAL ROJAS CAUTI SAL ROJAS CAUTI SAL ROJAS CAUTI SAL ROJAS CAUTI SAL ROJAS CAUTI SAL ROJAS CAUTI SAL ROJAS CAUTI SAL ROJAS CAUTI SAL
Aula 103 102 206 206 203 201 208 101 107 206
Hora 8 15 17 18 18
Dur. 3 2 3 2 3
Docente CASTRO LEN, Gloria Helena TRUJILLO TREJO, John Ledgard TRUJILLO TREJO, John Ledgard CASTRO LEN, Gloria Helena CASTRO LEN, Gloria Helena
205
UNMSM 3 4 4 5 5 L T L T L SA MI MA MI JU 9 16 17 18 11 2 3 2 3 2
Facultad de Ingeniera de Sistemas e Informtica DAMASO RIOS, Mara Rosa DAMASO RIOS, Mara Rosa TRUJILLO TREJO, John Ledgard TRUJILLO TREJO, John Ledgard CASTRO LEN, Gloria Helena 305 202 303 208 302
Da LU SA MA LU MA
Hora 12 10 9 8 12
Dur. 3 3 3 3 3
Docente MOLINA NEYRA, Csar Alberto MOLINA NEYRA, Csar Alberto MOLINA NEYRA, Csar Alberto MOLINA NEYRA, Csar Alberto MOLINA NEYRA, Csar Alberto
Dur. 3 3 3 3 3
Docente RIVERA BENAVIIDES JOSE RIVERA BENAVIIDES JOSE RIVERA BENAVIIDES JOSE RIVERA BENAVIIDES JOSE RIVERA BENAVIIDES JOSE
Da VI JU MI LU JU SA JU SA MA
Hora 15 10 12 11 17 11 18 14 9
Dur. 2 2 2 2 2 2 2 2 2
Docente HERRERA PONTE, ARON ELAS VIVANCO MUOZ, PERCY ELAS VERA POMALAZA, Virginia VSQUEZ PARAGULLA, JULIO RUIZ DE LA CRUZ MELO, Carlos Augusto CUBA MORA, JULIO SALINAS AZAA, Gilberto Anbal CUBA MORA, JULIO MUOZ CASILDO, Nehil Indalecio
Aula 107 205 301 201 204 305 209 207 307
Da MI MA LU MA MI JU
Hora 9 14 8 12 17 9
Dur. 3 2 3 2 3 2
Docente GLVEZ PREZ HUMBERTO GLVEZ PREZ HUMBERTO GLVEZ PREZ HUMBERTO GLVEZ PREZ HUMBERTO GLVEZ PREZ HUMBERTO LUNA VALDEZ JUAN
206
UNMSM MATEMATICA BASICA II Grupo Tipo Da Hora 1 T VI 12 1 P LU 16 2 T MI 9 2 P SA 17 3 T LU 18 3 P VI 14 FISICA GENERAL Grupo Tipo 1 T 1 P 1 L 2 T 2 P 2 L 3 T 3 P 3 L
Dur. 3 2 3 2 3 2
Docente GAVILN GONZALES MARUJA GAVILN GONZALES MARUJA GAVILN GONZALES MARUJA MARTINEZ ALIAGA YOVER GAVILN GONZALES MARUJA MARTINEZ ALIAGA YOVER
Da MA MI JU JU LU VI MA SA MI
Hora 10 18 14 15 14 12 16 16 11
Dur. 2 2 2 2 2 2 2 2 2
Docente ALARCON VELAZCO PABLO CALVO CHIA MARTIN CALVO CHIA MARTIN ALARCON VELAZCO PABLO CALVO CHIA MARTIN CALVO CHIA MARTIN ALARCON VELAZCO PABLO CALVO CHIA MARTIN CALVO CHIA MARTIN
Aula 103 201 304 105 201 302 203 204 303
ESTRUCTURA DE DATOS Grupo Tipo Da 1 T SA 1 P LU 2 T LU 2 P MA 3 T SA 3 P JU ECONOMIA Grupo Tipo 1 T 2 T ALGORITMICA III Grupo Tipo 1 T 1 P 1 L 2 T 2 P 2 L 3 T 3 P 3 L
Hora 18 11 16 14 9 15
Dur. 3 2 3 2 3 2
Docente HERRERA PONTE, ARON ELAS SALINAS AZAA, Gilberto Anbal SALINAS AZAA, Gilberto Anbal DEL PINO RODRGUEZ, Luz CORTEZ VASQUEZ, Augusto DEL PINO RODRGUEZ, Luz
Da JU VI
Hora 18 10
Da SA VI MA LU VI SA MI SA LU
Hora 16 8 17 11 13 17 12 14 17
Dur. 2 2 2 2 2 2 2 2 2
Docente CHVEZ SOTO, Jorge CORTEZ VASQUEZ, Augusto HERRERA PONTE, ARON ELAS CORTEZ VASQUEZ, Augusto CHVEZ SOTO, Jorge CORTEZ VASQUEZ, Augusto CORTEZ VASQUEZ, Augusto CHVEZ SOTO, Jorge CHVEZ SOTO, Jorge
Aula 104 108 305 108 206 303 102 204 302
207
UNMSM MATEMATICA DISCRETA Grupo Tipo Da Hora 1 T MI 18 1 P VI 18 2 T MI 15 2 P JU 16 ESTADISTICA I Grupo Tipo 1 T 1 P 2 T 2 P 3 T 3 P DISEO GRAFICO Grupo Tipo 1 T 1 L 2 T 2 L 3 T 3 L
Dur. 3 2 3 2
Docente QUINTO PAZCE, Daniel Alfonso QUINTO PAZCE, Daniel Alfonso QUINTO PAZCE, Daniel Alfonso QUINTO PAZCE, Daniel Alfonso
Da JU LU LU MA JU SA
Hora 18 15 18 14 14 16
Dur. 3 2 3 2 3 2
Docente ZACARIAS DIAZ MARIA ZACARIAS DIAZ MARIA ZACARIAS DIAZ MARIA VEGA RENGIFO LIDA ZACARIAS DIAZ MARIA ZACARIAS DIAZ MARIA
Da LU SA SA JU SA JU
Hora 18 12 10 14 8 17
Dur. 2 2 2 2 2 2
Docente TRUJILLO TREJO, John Ledgard SOLARI CARBAJAL, GABRIEL SOLARI CARBAJAL, GABRIEL TRUJILLO TREJO, John Ledgard SOLARI CARBAJAL, GABRIEL TRUJILLO TREJO, John Ledgard
ELECTROMAGNETISMO Grupo Tipo Da 1 T MI 1 L MA 2 T MA 2 L JU ORGANIZACIN Y ADMINISTRACION Grupo Tipo Da 1 T JU 2 T MI 3 T MA TECNICAS DE MODELAMIENTO Grupo Tipo Da 1 T JU 1 L MA 2 T JU 2 L VI
Hora 12 13 17 11
Dur. 2 2 2 2
Docente SALAZAR DE PAZ LUIS VILCAPOMA LAZARO LUIS VILCAPOMA LAZARO LUIS SALAZAR DE PAZ LUIS
Hora 15 9 8
Dur. 3 3 3
Docente DE LA CRUZ VLEZ DE VILLA, Percy DE LA CRUZ VLEZ DE VILLA, Percy DE LA CRUZ VLEZ DE VILLA, Percy
Hora 15 18 18 10
Dur. 3 2 3 2
Docente LUZA MONTERO, Csar LUZA MONTERO, Csar LUZA MONTERO, Csar ALCNTARA LOAYZA, Csar Augusto
208
UNMSM COMPUTACION GRAFICA Grupo Tipo Da Hora 1 T LU 11 1 L SA 10 2 T MA 9 2 L JU 14 3 T JU 17 3 L LU 18 ECUACIONES DIFERENCIALES Grupo Tipo Da 1 T MA 1 P VI 2 T MA 2 P VI 3 T VI 3 P SA ESTADISTICA II Grupo Tipo 1 T 1 P 2 T 2 P CIRCUITOS DIGITALES Grupo Tipo 1 T 1 P 1 L 2 T 2 P 2 L
Dur. 3 2 3 2 3 2
Docente BUSTAMANTE OLIVERA, Vctor Hugo BUSTAMANTE OLIVERA, Vctor Hugo BUSTAMANTE OLIVERA, Vctor Hugo BUSTAMANTE OLIVERA, Vctor Hugo BUSTAMANTE OLIVERA, Vctor Hugo BUSTAMANTE OLIVERA, Vctor Hugo
Hora 8 12 16 18 9 8
Dur. 3 2 3 2 3 2
Docente ACUA MONTAEZ WALTER VILLANUEVA YAYA AMELIA ACUA MONTAEZ WALTER VILLANUEVA YAYA AMELIA VILLANUEVA YAYA AMELIA VILLANUEVA YAYA AMELIA
Da VI MI SA JU
Hora 9 15 11 9
Dur. 3 2 3 2
Docente MIRANDA ROBLES MARY MIRANDA ROBLES MARY CANALES DEL MAR MANUEL MIRANDA ROBLES MARY
Da MI LU JU MA MI VI
Hora 12 9 9 14 15 14
Dur. 2 2 2 2 2 2
Docente FERMN PREZ, Flix Armando FERMN PREZ, Flix Armando SUMOSO HUAMAN, ANGEL ORLANDO MORI TORRES, SANTIAGO GARDIL MORI TORRES, SANTIAGO GARDIL SUMOSO HUAMAN, ANGEL ORLANDO
Da SA MI MI SA
Hora 13 12 15 9
Dur. 3 2 3 2
Docente GALINDO HUAYLLANI, Jos Luis CHVEZ SOTO, Jorge DEL PINO RODRGUEZ, Luz LPEZ VILLANUEVA, Pablo Edwin
209
UNMSM 3 T 3 L LU SA 11 11
Facultad de Ingeniera de Sistemas e Informtica 3 CHVEZ SOTO, Jorge 2 GALINDO HUAYLLANI, Jos Luis 203 307
INVESTIGACION OPERATIVA Grupo Tipo Da 1 T LU 1 P MI 2 T SA 2 P VI METODOS NUMERICOS Grupo Tipo 1 T 1 P 2 T 2 P SISTEMAS DIGITALES Grupo Tipo 1 T 1 P 1 L 2 T 2 P 2 L
Hora 18 15 18 11
Dur. 3 2 3 2
Docente VALVERDE AYALA, Melva DELGADILLO AVILA, Rosa Sumactika CHVEZ SOTO, Jorge CHVEZ SOTO, Jorge
Da VI JU VI MI
Hora 8 14 16 12
Dur. 2 2 2 2
Docente QUINTO PAZCE, Daniel Alfonso QUINTO PAZCE, Daniel Alfonso QUINTO PAZCE, Daniel Alfonso QUINTO PAZCE, Daniel Alfonso
Da VI JU MA MI LU MA
Hora 18 17 18 18 16 15
Dur. 2 2 2 2 2 2
Docente MORI TORRES, SANTIAGO GARDIL SUMOSO HUAMAN ANGEL ORLANDO MORI TORRES, SANTIAGO GARDIL MORI TORRES, SANTIAGO GARDIL SUMOSO HUAMAN, ANGEL ORLANDO SUMOSO HUAMAN, ANGEL ORLANDO
Hora 11 16 14 13 13 14
Dur. 2 2 2
Docente CORTEZ VASQUEZ, Augusto CORTEZ VASQUEZ, Augusto RUIZ DE LA CRUZ MELO, Carlos Augusto 2 CORTEZ VASQUEZ, Augusto 2 RUIZ DE LA CRUZ MELO, Carlos Augusto 2 RUIZ DE LA CRUZ MELO, Carlos Augusto
Hora 9 9 16 10
Dur. 2 2 2 2
Docente OSPINO EDERY JOSE OSPINO EDERY JOSE OSPINO EDERY JOSE OSPINO EDERY JOSE
210
Facultad de Ingeniera de Sistemas e Informtica 2 OSPINO EDERY JOSE 2 OSPINO EDERY JOSE 209 104
Da MA VI VI LU
Hora 19 9 16 12
Dur. 3 2 3 2
Docente CORAL YGNACIO, Marco Antonio DIAZ MUANTE, Jorge Ral DIAZ MUANTE, Jorge Ral DIAZ MUANTE, Jorge Ral
Da JU MI JU SA
Hora 11 15 14 13
Dur. 3 2 3 2
Docente CORAL YGNACIO, Marco Antonio CORAL YGNACIO, Marco Antonio CORAL YGNACIO, Marco Antonio CORAL YGNACIO, Marco Antonio
Hora 8 9 9 17 21 10
Dur. 2 2 2 2 2 2
Docente VALVERDE AYALA, Melva VALVERDE AYALA, Melva VALVERDE AYALA, Melva VALVERDE AYALA, Melva SOLARI CARBAJAL, GABRIEL VALVERDE AYALA, Melva
Dur. 2 2 2 2 2 2
Docente MOLINA NEYRA, Csar Alberto CARRASCO OR?, Nilo Eloy CARRASCO OR?, Nilo Eloy ARMAS CALDERN, Ral ARMAS CALDERN, Ral ARMAS CALDERN, Ral
Hora 13 21 9 16
Dur. 2 2 2 2
Docente GONZALES SUAREZ, Juan Carlos MAC DOWALL REINOS, Erwin GONZALES SUAREZ, Juan Carlos CONTRERAS FLORES, Walter Pedro
211
Da Hora SA 13 JU VI SA LU VI Da JU SA SA VI 19 14 18 13 20 Hora 19 13 20 19
Dur. Docente 2 MAMANI RODRGUEZ, Zoraida Emperatriz 2 MAMANI RODRGUEZ, Zoraida Emperatriz 2 CORAL YGNACIO, Marco Antonio 2 ALARCN LOAYZA, Luis 2 VEGA HUERTA, Hugo Froilan 2 LA SERNA PALOMINO, Nora Dur. 3 2 3 2 Docente MAC DOWALL REINOS, Erwin MOLINA NEYRA, Cesar Alberto MAC DOWALL REINOS, Erwin MAC DOWALL REINOS, Erwin
Aula 109 102 204 208 204 105 Aula 101 304 203 306
Da VI LU VI SA
Hora 12 12 10 9
Dur. 3 2 3 2
Docente ALCNTARA LOAYZA, Csar Augusto YAEZ DURAN, Carlos Enrique YAEZ DURAN, Carlos Enrique CORAL YGNACIO, Marco Antonio
DISEO DE INTERFACES DE USUARIO Grupo Tipo Da Hora Dur. 1 T LU 9 3 1 P MI 8 2 2 T JU 12 3 2 P MI 11 2 INTELIGENCIA ARTIFICIAL Grupo Tipo Da Hora 1 T MA 11 1 L JU 15 2 T VI 15 2 L JU 9 MODELOS Y SIMULACION Grupo Tipo Da Hora 1 T MI 20 1 P LU 19 1 L SA 8 2 T MI 19 2 P VI 21 2 L JU 21
Docente DIAZ MUANTE, Jorge Ral DIAZ MUANTE, Jorge Ral YAEZ DURAN, Carlos Enrique YAEZ DURAN, Carlos Enrique
Dur. 3 2 3 2
Docente VERA POMALAZA, Virginia MAURICIO SNCHEZ, David Santos MAURICIO SNCHEZ, David Santos VEGA HUERTA, Hugo Froilan
Dur. 2 2 2 2 2 2
Docente RIVAS PEA, Marcos SOLARI CARBAJAL, GABRIEL RIVAS PEA, Marcos SOLARI CARBAJAL, GABRIEL SOLARI CARBAJAL, GABRIEL SOLARI CARBAJAL, GABRIEL
212
UNMSM
Hora 8 16 13 20
Dur. 3 2 3 2
Docente PIEDRA ISUSQUI, Jos PIEDRA ISUSQUI, Jos LPEZ VILLANUEVA, Pablo Edwin PIEDRA ISUSQUI, Jos
Dur. 2 2 2 2 2 2
Docente GUERRA GUERRA, Jorge GUERRA GUERRA, Jorge GUERRA GUERRA, Jorge GUERRA GUERRA, Jorge GUERRA GUERRA, Jorge GUERRA GUERRA, Jorge
Hora 19 21 10 20 17 18
Dur. 2 2 2 2 2 2
Docente LPEZ VILLANUEVA, Pablo Edwin LPEZ VILLANUEVA, Pablo Edwin BUSTAMANTE OLIVERA, Vctor Hugo LPEZ VILLANUEVA, Pablo Edwin LPEZ VILLANUEVA, Pablo Edwin BUSTAMANTE OLIVERA, Vctor Hugo
METODOLOGIA PARA LA ELABORACION DE TESIS Grupo Tipo Da Hora Dur. Docente 1 T MI 11 3 ROMN CONCHA, Norberto Ulises 1 L JU 13 2 ROMN CONCHA, Norberto Ulises TALLER DE PROYECTOS Grupo Tipo 1 T 1 L
Da Hora JU 19 VI 21
Dur. 2 2 2 2
Docente FERMN PREZ, Flix Armando FERMN PREZ, Flix Armando FERMN PREZ, Flix Armando FERMN PREZ, Flix Armando
213
PLANAMIENTO DE RECURSOS EMPRESARIALES Grupo Tipo Da Hora Dur. Docente 1 T SA 8 2 GALINDO HUAYLLANI, Jos? Luis DATAWAREHOUSE Grupo Tipo Da 1 P VI 1 L MA
Aula 109
Hora 19 19
Dur. Docente 2 PANTOJA COLLANTES, Jorge Santiago 2 PANTOJA COLLANTES, Jorge Santiago
AUDITORIA Y SEGURIDAD INFORMATICA Grupo Tipo Da Hora Dur. Docente 1 T LU 15 3 PANTOJA COLLANTES, Jorge Santiago 2 T MI 19 3 PANTOJA COLLANTES, Jorge Santiago INGENIERIA DE NEGOCIOS Grupo Tipo Da 1 T JU 2 T MA MARKETING Grupo Tipo 1 T 2 T 3 T
Hora 19 19
Dur. Docente 2 GALINDO HUAYLLANI, Jos Luis 2 GALINDO HUAYLLANI, Jos Luis
Da SA LU MI
Hora 20 21 19
Dur. 2 2 2
Docente VEGA HUERTA, Hugo Froilan VEGA HUERTA, Hugo Froilan VEGA HUERTA, Hugo Froilan
DERECHO INFORMATICO Grupo Tipo Da Hora 1 T VI 21 2 T JU 20 PROYECTO DE TESIS I Grupo Tipo Da Hora 1 T MI 20
Aula 204
FORMULACION Y EVALUACION DE PROYECTOS Grupo Tipo Da Hora Dur. Docente 1 T JU 17 2 ORTEGA LOAYZA, DANIEL 1 P VI 19 2 OSORIO BELTRN, Norberto Antonio
214
UNMSM 2 T 2 P MI VI 15 15
Facultad de Ingeniera de Sistemas e Informtica 2 OSORIO BELTRN, Norberto Antonio 2 OSORIO BELTRN, Norberto Antonio 201 103
SISTEMAS INTELIGENTES Grupo Tipo Da Hora 1 T MI 16 COMERCIO ELECTRONICO Grupo Tipo Da Hora 1 T SA 16 REDES NEURONALES Grupo Tipo 1 T
Aula 209
Aula 108
Da Hora LU 18
Aula 102
Hora 17 19 15 17
Dur. 2 2 2 2
Docente BUSTOS DAZ, Silverio BUSTOS DAZ, Silverio BUSTOS DAZ, Silverio BUSTOS DAZ, Silverio
GESTION DE PROYECTOS INFORMATICOS Grupo Tipo Da Hora Dur. Docente 1 T VI 21 2 LEN FERNNDEZ, Cayo Vctor 1 P JU 17 2 PREZ QUINTANILLA, Jos? Antonio 2 T LU 18 2 OSORIO BELTRN, Norberto Antonio 2 P VI 18 2 PREZ QUINTANILLA, Jos? Antonio PROYECTO DE TESIS II Grupo Tipo Da 1 T MA 2 T MA
Hora 17 20
SEMINARIO DE LA REALIDAD PERUANA Grupo Tipo Da Hora Dur. Docente 1 T LU 20 2 MOLINA SALAS, ROMEL 2 T MI 19 2 MOLINA SALAS, ROMEL
215
UNMSM
GESTION DE CONOCIMIENTOS Grupo Tipo Da Hora 1 T MI 16 LIDERAZGO EMPRESARIAL Grupo Tipo Da Hora 1 T LU 15
Aula 109
Aula 204
216
UNMSM
Captulo 7 : Conclusiones y Recomendaciones En esta seccin detallaremos las conclusiones que se derivaron de este trabajo, as como las respectivas recomendaciones para posibles trabajos futuros. 7.1. Conclusiones
La Facultad de Ingeniera de Sistemas e Informtica de la UNMSM no utiliza herramientas computacionales para generar los horarios de clase, los cuales manejan un alto grado de complejidad durante su elaboracin. Es por esto que se plante disear una herramienta basada en algoritmos genticos, que permita cubrir las necesidades existentes y en cuyo proceso de investigacin se lleg a las conclusiones que se presentan a continuacin: 1. Se construy un algoritmo que automatiza el proceso puntual de la generacin de horarios de clases y que permite encontrar soluciones buenas y/o consideradas aceptables dentro del margen de error definido y las restricciones planteadas. Con lo cual se deduce que el objetivo general de esta investigacin, que es encontrar una solucin mediante el uso de algoritmos genticos al
217
UNMSM
problema de asignacin de docentes, periodos y aulas a los cursos, se ha cumplido a cabalidad. 2. Otra conclusin, desprendida del proceso de investigacin, est relacionada con la divisin del problema en distintas fases. Inicialmente no se pudo apreciar el impacto total de su aplicacin sobre el problema, pero una vez concluida la investigacin se observ lo siguiente: 2.1. La divisin por fases permite reducir el tiempo de procesamiento y el uso de recursos; debido a que en la medida que se van encontrando soluciones en cada fase, las cuales resultan ser informacin de entrada de la fase subsecuente, el espacio de soluciones se va acotando cada vez ms. La aplicacin de la tcnica divide y vencers result de gran ayuda al momento de tratar de resolver el problema a partir de la solucin de subproblemas. Otro logro conseguido gracias a la divisin en fases fue la simplicidad obtenida en la implementacin del algoritmo, debido a que las restricciones relacionadas a los docentes, periodos y aulas fueron tomadas en cuenta de manera separada unas de otras, de acuerdo al recurso asociado a cada fase. 2.2. Se pudo observar una debilidad en el mtodo. Pues tal vez al momento de acotar el espacio de soluciones mediante la generacin de una solucin parcial por parte de una fase anterior, se perdan ciertas soluciones factibles que ya no podran ser exploradas por las fases subsecuentes y en la cual podra estar la solucin que estemos buscando. Para solucionar esto se plante maximizar la diversidad de individuos dentro de la poblacin, de tal manera que nuestra poblacin se encuentre lo ms distribuido posible dentro del espacio de bsqueda acotado donde el algoritmo pueda desplazarse. Esto significa hacer que los individuos sean lo ms diferentes posibles en la poblacin sin interferir con los procesos de evolucin normal.
218
Entre las recomendaciones y mejoras a realizar, una vez terminada la investigacin, se tiene lo siguiente: 1. Combinar el algoritmo gentico con otra metaheurstica para mejorar el tiempo de generacin y calidad de la solucin. Por ejemplo, la funcin que se encarga de calcular la aptitud de cada individuo de la poblacin en las diferentes fases podra ser remplazada por una red neuronal, la cual se encargara de realizar dicho clculo. Con lo cual se dotara a este nuevo algoritmo hbrido una caracterstica de aprendizaje adicional a una bsqueda guiada. A su vez podra utilizarse una heurstica de bsqueda, tal como un algoritmo voraz, que se encargue de generar la poblacin inicial con cierto grado de pre-procesamiento y que por ende sea mejor que simplemente inicializar la poblacin de manera aleatoria. 2. La segunda recomendacin es implementar el sistema segn el diseo planteado en el presente trabajo e implantarlo en la Facultad de Ingeniera de Sistemas e Informtica de la UNMSM para su respectivo uso. 3. Implementar un servicio Web con este algoritmo, de tal manera que no sea usado solamente por la facultad sino tambin abrir la posibilidad de brindar este servicio a otras facultades y/o instituciones que lo requieran. Otra ventaja de implementar el servicio sera que se estara destinando la carga del procesamiento a un servidor dedicado para liberar al cliente de dicha tarea. 4. Una vez establecido el procesamiento del algoritmo en un servidor, podr ser organizado sobre una arquitectura de procesamiento distribuida. En este punto se presentan varias opciones, una es armar una arquitectura de computacin paralela (computacin grid) ya que proporciona una gran cantidad de recursos segn se necesite, claro que este modelo sera independiente al algoritmo y tendra que realizarse un trabajo previo para implementar esta arquitectura. Otra opcin ms ligada a la implementacin de la solucin sera elaborar un modelo de procesamiento maestro-esclavo, donde un servidor maestro controle el proceso evolutivo, concentre la
219
UNMSM
informacin resultante y asigne carga de trabajo a sus servidores esclavos. Dicha carga de trabajo podra ser la evaluacin de una parte de los individuos de la poblacin, dado que esto es lo que ms tiempo toma en procesar. 5. Otra mejora, ya no tanto basndonos en el algoritmo ni en la arquitectura sobre la cual podra implementarse, estara relacionada con las
caractersticas del posible software, de tal manera que pueda ser ms configurable y extensible. Extensible, en cuanto a su uso para otras realidades similares y a su vez poder generar horarios no solamente para una facultad sino tal vez para toda la universidad en una sola ejecucin del algoritmo. Con la finalidad de hacer que el software sea ms configurable, se recomienda permitir a los futuros usuarios poder escoger entre todas las restricciones que maneja el sistema y decidir cules se acoplan a su realidad o problema especfico.
6. Aumentar el potencial del software al momento de la generacin de horarios a travs de su integracin con la informacin contenida en el Sistema nico de Matricula de la UNMSM, con la cual se podra calcular de manera automtica la cantidad de grupos que se deberan aperturar para los diferentes cursos de manera automtica o por lo menos sugerirlos para su aprobacin. 7. Normar los tiempos de entrega sobre la disponibilidad laboral de los docentes as como sus preferencias de dictado. Esto permitir brindar al alumnado horarios de manera oportuna y con informacin ms confiable y precisa. 8. Normar el uso del software que vaya a ser implementado para evitar que factores externos al proceso normal de generacin de horarios pudieran invalidar el uso de los horarios generados por dicho sistema.
220
UNMSM
Bibliografa
Libros 1 2 3 4 5 6 Dawkins R. (1976). The Selfish Gene. USA, New York:Oxford University Press Daz, Adenso (1996). Optimizacin heurstica y redes neuronales. Espaa: Editorial Paraninfo Fogel, David B (1995). Evolutionary Computation: Toward a New Philosophy of Machine Intelligence. USA :IEEE Press Garey, Michael R. (1979). Computers and intractability. A guide to the Theory of NP- Completeness. USA:Bell Telephone Laboratories Gil Londoo, Natyhelem (2006). Algoritmos Genticos. Medelln Gil Tallavo, Marcos y Antonio Martnez, Amads (2006). Algoritmo basado en Tab Search para el Problema de Asignacin de Horarios de Clases. Departamento de Computacin Facultad de Ciencias y Tecnologa Universidad de Carabobo Valencia, Estado Carabobo, Venezuela Glover, F. y Laguna, M. (1993). Tab Search. Modern Heuristic Techniques for Combinatorial Problems, USA: C. Reeves, ed. Blackwell Scientific Publishing Goldberg, D. y Voessne, S (1999). Optimizing global-local search hybrids". In GECCO99: Proceedings of the Genetic and Evolutionary Computation Conference. p 220-228 Goldberg, David E. (1989). "Genetic Algorithms in Search, Optimization, and Machine Learning", Addison-Wesley Publishing Company Johnsonbaugh, Richard (1999). Matemticas Discretas. Cuarta Edicin, Prentice Hall Kaufmann, A. y Faure, R. (1977). "Invitacin a la Investigacin de Operaciones", Segunda Edicin, Mxico: CECSA Koza, John R. (1992).Genetic Programming. On the Programming of Computers by Means of Natural Selection. USA: The MIT Press. Krasnogor, N. y Smith, J. (2005) A Tutorial for Competent Memetic Algorithms: Model, Taxonomy and Design Issues. IEEE Transactions on Evolutionary Computation. Leiserson, C. Rivest, R. y Stein, C. Cormen, T. (2001). Introduction to algorithms. USA:The MIT Press McGrawHill Lpez Ceballo, Paulina Danae (2000). El Mtodo de bsqueda Tab para la programacin de horarios .Mxico: Editorial Universidad de Sonora Macas, E. A. (2004). Algoritmos de Bsqueda Local de GRASP para Solucin de 3-SAT. p. 219-225 Merz, P. y Freisleben, B.(1999) A comparison of memetic algorithms, tab search, and ant colonies for the quadratic assignment problem. In Proceedings of the 1999 International Congress of Evolutionary Computation (CEC 99), Washington DC, USA Michalewicz, Zbigniew (1996). Genetic algorithms + data structures = evolution programs. Alemania: Editorial Springer Moscazo, P. (1989). On evolution, search, optimization, genetic algorithms and martial arts: Towards memetic algorithms. California Institute of Technology, Pasadena, California, USA, Tech. Rep. Caltech Concurrent Computation Program, Reporte 826 Saleh M.A, Elmohamed y Fox, Geoffrey (1998) A comparison of Annealing Techniques for Academic Course Scheduling. Practice and Theory of Automated Timetabling II, Selected Papers from the 2nd International Conference, PATAT'97 Vzquez Espi, Mariano(1994) . Recocido simulado: un nuevo algoritmo para la optimizacin de estructuras. Madrid Whitley, Darrell (1997). A genetic algorithm tutorial. Holanda: Editorial Springer
7 8 9 10 11 12 13 14 15 16 17
18 19
20
21 22
221
UNMSM Revistas
23 Larrosa, J. y Meseguer (2003). Restricciones blandas: modelos y algoritmos. Revista Iberoamericana de Inteligencia Artificial, Volumen Otoo/2003, Numero 20, p.69-81 24 Alkan, Alpay y zcan,Ender (2003). Memetic Algorithms for Timetabling. Evolutionary Computation, 2003. CEC '03. The 2003 Congress on, Volumen 3, p 1796-1802 25 Berretta R,Cotta C, y Moscato P.(2003) Enhancing the performance of memetic algorithms by using a matching-based recombination algorithm: Results on the number partitioning problem. In M. Resende and J. Pinho de Sousa, editors, Metaheuristics: Computer Decision Making. Kluwer Academic Publishers, Boston MA 26 Casado Yusta, Silvia y Pacheco Bonrostro, Joaqun (2003). Estudio Comparativo de diferentes estrategias meta heursticas para la resolucin del Labor Scheduling Problem. Estudios de Economa Aplicada, Volumen Diciembre/2003, Numero 21, p 537-554 27 Franco Baquero, John Fredy, Eliana Mirledy Toro Ocampo y Ramn Alfonso Gallego Rendn (2008). Course timetabling problem resolved using Tabu Search. Ingeniera y Desarrollo N 24. 28 Glover, F (1989). Tab search - part I. ORSA Journal on Computing, Volumen Verano/2003,Numero 3 29 Kirkpatrick S., Gelatt C.D. y Vecchi M.P, (1983) Optimization by Simulated Annealing". Science, Volumen 220, Numero 4598 30 Melin, B., Moreno Prez, J.A., Moreno Vega, J.M. (2003): Meta heursticas: Una visin global. Revista Iberoamericana de Inteligencia Artificial 19, 2, 7-28 31 Mushi, A. R. (2007). Simulated Annealing Algorithm for the Examinations Timetabling Problem. African Journal of Science and Technology (AJST) Science and Engineering Series Volumen. 8, Numero. 2, p. 24 - 32 32 Naji Azimi,Zahra (2004). Comparison of metaheuristic algorithms for examination timetabling problem. J. Appl. Math. & Computing Vol. 16(2004), No. 1 - 2, pp. 337 - 354 Fuentes Electrnicas 33 Algoritmos genticos y computacin evolutiva. Abril 2004 (Referido 01/10/2009). Disponible en URL: http://the-geek.org/docs/algen/ 34 Algoritmo voraz. Julio 2006 (Referido 01/12/2009). Disponible en URL:http://es.wikipedia.org/wiki/Algoritmo_voraz 35 Inteligencia artificial. Octubre 2009 (Referido 06/11/2009). Disponible en URL:http://es.wikipedia.org/wiki/Inteligencia_artificial 36 Java Docs. Octubre 2009 (Referido 15/12/2009). Disponible en URL:http://jgap.sourceforge.net/javadoc/3.4.4/ 37 Matriz (matemtica). Septiembre 2009 (Referido 01/11/2009). Disponible en URL:http://http://es.wikipedia.org/wiki/Matriz_(matem%C3%A1tica) 38 Programacin Lineal. Octubre 2007 (Referido 01/12/2009). Disponible en URL:http://es.wikipedia.org/wiki/Programaci%C3%B3n_lineal 39 Red neuronal artificial. Agosto 2008 (Referido 10/11/2009). Disponible en URL:http://es.wikipedia.org/wiki/Red_neuronal_artificial Octubre 2007 (Referido 01/10/2009). Disponible en 40 Timetable. URL:http://en.wikipedia.org/wiki/Timetable 41 Vector (informtica). Diciembre 2008 (Referido 01/11/2009). Disponible en URL:http://es.wikipedia.org/wiki/Matriz_(programaci%C3%B3n) 42 Vuelta Atrs. Febrero 2006 (Referido 20/11/2009). Disponible en URL:http://es.wikipedia.org/wiki/Vuelta_Atr%C3%A1s
222
UNMSM
Timetabling.- es una lista organizada, por lo general establecida en forma de cuadro, con informacin sobre una serie de eventos organizados: en particular, el momento en que se ha previsto que estos eventos tendrn lugar.[34]
Curso.- Conjunto de temas relacionados que se ofrecen como parte de la currcula de una carrera profesional.
Programacin Lineal.- es un procedimiento o algoritmo matemtico mediante el cual se resuelve un problema indeterminado, formulado a travs de ecuaciones lineales, optimizando la funcin objetivo, tambin lineal. Consiste en optimizar (minimizar o maximizar) una funcin lineal, que denominaremos funcin objetivo, de tal forma que las variables de dicha funcin estn sujetas a una serie de restricciones que expresamos mediante un sistema de inecuaciones lineales.[35]
Programacin entera.- Programacin entera es programacin lineal con la restriccin adicional de que los valores de las variables de decisin sean enteros.
223
UNMSM
Matriz.- En programacin, una matriz o vector es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz.[36] En matemticas, una matriz es una tabla de nmeros consistente en cantidades abstractas que pueden sumarse y multiplicarse. Las matrices se utilizan para describir sistemas de ecuaciones lineales, realizar un seguimiento de los coeficientes de una aplicacin lineal y registrar los datos que dependen de varios parmetros. [37]
Redes neuronales artificiales.- Las redes de neuronas artificiales son un paradigma de aprendizaje y procesamiento automtico inspirado en la forma en que funciona el sistema nervioso de los animales. Se trata de un sistema de interconexin de neuronas en una red que colabora para producir un estmulo de salida. En inteligencia artificial es frecuente referirse a ellas como redes de neuronas o redes neuronales. [38]
Inteligencia Artificial.- Se denomina inteligencia artificial a la rama de la ciencia informtica dedicada al desarrollo de agentes racionales no vivos.. la inteligencia artificial es la disciplina que se encarga de construir procesos que al ser ejecutados sobre una arquitectura fsica producen acciones o resultados que maximizan una medida de rendimiento determinada, basndose en la secuencia de entradas percibidas y en el conocimiento almacenado en tal arquitectura.[39]
Backtracking.- En su forma bsica, la idea de backtracking se asemeja a un recorrido en profundidad dentro de un grafo dirigido. El grafo en cuestin suele ser un rbol, o por lo menos no contiene ciclos. Sea cual sea su estructura, existe slo implcitamente. El objetivo del recorrido es encontrar soluciones para algn problema. Esto se consigue construyendo soluciones parciales a medida que progresa el recorrido; estas soluciones parciales limitan las regiones en las que se puede encontrar una solucin completa. El recorrido tiene xito si, procediendo de esta forma, se puede definir por completo una solucin. En este caso el algoritmo puede bien detenerse (si lo nico que se necesita es una solucin del problema) o bien seguir buscando soluciones alternativas (si deseamos examinarlas todas). Por otra parte, el recorrido no tiene xito si en alguna etapa la solucin parcial construida hasta el momento no se puede completar. En tal caso, el recorrido vuelve
224
UNMSM
atrs exactamente igual que en un recorrido en profundidad, eliminando sobre la marcha los elementos que se hubieran aadido en cada fase. Cuando vuelve a un nodo que tiene uno o ms vecinos sin explorar, prosigue el recorrido de una solucin. [40]
Algoritmo greedy o algoritmo voraz.- Un algoritmo voraz (tambin conocido como vido o devorador) es aquel que, para resolver un determinado problema, sigue una meta heurstica consistente en elegir la opcin ptima en cada paso local con la esperanza de llegar a una solucin general ptima. Este esquema algortmico es el que menos dificultades plantea a la hora de disear y comprobar su funcionamiento. Normalmente se aplica a los problemas de optimizacin. [41]
225
UNMSM
226
Semestre I
Semestre X
CONJUNTO DE DATOS
se agrupan en
L = TIPOS DE CURSOS
Teora
Prctica
se clasifican en G = GRUPOS
se clasifican en
Grupo 1
Grupo 2
Lunes 5 3
se dictan
Sbado
Prctica
Laboratorio
6 horas (Algortmica I)
50 alumnos (Algortmica I)
se matriculan dictan
Periodo 1 Periodo 6
Algortmica I 1 0 0
Base de Datos 0 1 1
Luis Alarcn 1 0 0
Csar Alcntara 0 1 0
Periodo 1 Periodo 12
Algortmica I 1 0 0
Base de Datos 0 1 0
Algortmica I 1 0 0 0
Base de Datos 0 1 1 0
Luis Alarcn 0 1 0 0
Csar Alcntara 0 0 1 1
Luis Alarcn 0 0 0 1 1 1
Csar Alcntara 0 0 0 0 0 0
227
UNMSM
Para el desarrollo de la solucin se utiliza la versin 3.4.4, siendo hasta este momento la ltima versin de JGAP. A continuacin mostramos el conjunto de paquetes que lo conforman:
Cada uno de estos paquetes contiene interfaces, clases y excepciones que estn referidos a la programacin de algoritmos genticos, por ello detallaremos una descripcin y el contenido de cada uno de dichos paquetes. [42] A continuacin mostramos el conjunto de paquetes que lo conforman:
org.jgap.data: Relacionado a la persistencia del estado de los objetos JGAP (genotipo, cromosomas)
Interfaces Clases IDataCreators,IDataElement,IDataElementList DataElement,DataElementList,DataElementsDocument,DataTreeBuilder, DocumentBuilderBase
228
ConfigException,MetaConfigException
229
UNMSM
org.jgap.event: Contiene clases e interfaces relacionados con la generacin y manejo de eventos JGAP.
Interfaces Clases GeneticEventListener, IEventManager EventManager, GeneticEvent
IPopulationCreator, IProgramCreator, IUniqueCommand Clases BaseGPChromosome, GPFitnessFunction, MathCommand Excepciones CommandGene.COMMAND_TYPE, IComplexCommand.Complexity CommandDynamicArity, GPPopulationConverter, CommandGene, GPProblem, CrossMethod, GPProgramBase,
230
UNMSM
CauchyRandomGenerator
ChainOfSelectors,
ChromosomePool, CompositeGene , CrossoverOperator , DefaultCloneHandler , DefaultCompareToHandler , DefaultConfiguration , DefaultCrossoverRateCalculator, DefaultInitializer, DefaultMutationRateCalculator,DoubleGene, FittestPopulationMerger, FixedBinaryGene,GABreeder, GaussianMutationOperator , GaussianRandomGenerator, GreedyCrossover , IntegerGene , InversionOperator , JGAPFactory , MapGene, MutationOperator , NumberGene , Pool , RangedSwappingMutationOperator, SetGene , StandardPostSelector, StockRandomGenerator, StringGene, SwappingMutationOperator, ThresholdSelector, TournamentSelector, TwoWayMutationOperator, WeightedRouletteSelector
231
UNMSM
org.jgap.xml: Escritura / Lectura de los estados de objetos JGAP (genotipo, cromosomas, etc) a / de
documentos XML. Clases Excepciones XMLDocumentBuilder , XMLManager GeneCreationException , ImproperXMLException
232