Modelo de un Algoritmo Genético con Selección Discriminatoria de Individuos bajo un Esquema de Ponderación de Probabilidades de Mutación Victor Manuel Arroyo Apaza Orientador: Dr. Yván Jesús Túpac Valdivia Tesis profesional presentada al Programa Profesional de Ingenierı́a Informática como parte de los requisitos para obtener el Tı́tulo Profesional de Ingeniero Informático. UCSP - Universidad Católica San Pablo Diciembre de 2013 A Dios, por todo lo que me ha dado, a mi madre por el apoyo incondicional brindado todos estos años, a mi familia y a todos los profesores por sus enseñanzas. Agradecimientos En primer lugar deseo agradecer a Dios por haberme guiado a lo largo de estos cinco años de estudio. Agradezco a mi madre por el apoyo y esfuerzo brindado para forjarme como un profesional. Agradezco a la familia Valencia Fernández-Dávila por todos estos años de apoyo incondicional. Agradezco a la universidad, mi alma matter, por haberme cobijado y brindado la formación que ahora me permitirá ayudar a construir una mejor sociedad. Agradezco de forma muy especial a mi asesor Dr. Yván Túpac por haberme guiado en la elaboración de esta tesis. Deseo agradecer de forma especial a mis docentes: Ernesto Cuadros, Dennis Barrios, Alex Cuadros, Luis Diaz Basurco, Juan Carlos Gutierrez porque fueron ejemplos que deseo seguir en mi vida profesional. Deseo agradecer al personal administrativo de la universidad: Gabriela Valencia y Gonzalo Villegas. Muchas gracias por la atención brindada y porque siempre estuvieron dispuestos a ayudarnos. Abreviaturas AG Algoritmo Genético AGs Algoritmos Genéticos ES Estrategias de Selección SDI Selección Discriminatoria de Individuos ST Selección por Torneo SR Selección de Ruleta SS Selección Sexual SBR Selección Basada en Ranking MPs Matriz de Preferencias EPPM Esquema de Ponderación de Probabilidades de Mutación AMSG Arquitectura Master-Slave Global 4 Resumen Un Algoritmo Genético (AG) posee varios operadores genéticos que pueden ser modificados para mejorar su rendimiento. Estos operadores incluyen a la selección, cruzamiento y mutación. La selección es una de las operaciones más importantes en el AG. Este trabajo de investigación presenta un modelo de AG que implementa un operador de selección al que se le denominará Selección Discriminatoria de Individuos (SDI), que se inspira en la discriminación de clases que existe en la sociedad, es decir los mejores se reproducen con los mejores y los peores con los peores.. La estructura de este operador toma como base el operador de Selección Sexual (SS) ya existente. El modelo evolutivo incluye un Esquema de Ponderación de Probabilidades de Mutación (EPPM) para la asignación de probabilidades de mutación en la población. Para verificar la calidad de la evolución de los operadores propuestos se realizaron dos casos de uso: solucionar el problema de mejora de calidad en horarios de trabajo y cuatro funciones Benchmarking. Los experimentos realizados dieron resultados que muestran una caracterı́stica exploratoria para el operador de SDI, mejorando el tiempo de convergencia conforme el tamaño de la población se incrementa. Abstract A Genetic Algorithm (GA) has several operators which may be modified to improve its performance. These operators include selection, crossover and mutation. Selection is one of the most important operations in the GA. This research presents a model of GA that implements a selection operator called Discriminatory Selection of Individual (DSI), which is inspired by discrimination between classes that exists in society, the best individuals reproduce with the best and the worst with the worst. The structure of this operator builds on an existing operator called Sexual Selection (SS). The evolutionary model includes a Weighted Scheme of Mutation Rates (WSMR) for assigning probabilities of mutation in the population. To verify the quality of the evolution of the proposed operators two use cases were performed: solve the problem of quality improvement in working schedules and four Benchmarking functions. The experiments gave results showing a exploratory feature for DSI operator, improving convergence time as the size of the population increases. Índice general 1. Introducción 14 1.1. Motivación y Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2. Estado del Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.4. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.4.1. Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.5. Organización de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2. Conceptos Previos 19 2.1. Algoritmo Genético . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.1. Codificación de Problemas . . . . . . . . . . . . . . . . . . . . . . . 21 2.1.2. Función de Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2. Operadores Genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.1. Operadores de Cruzamiento . . . . . . . . . . . . . . . . . . . . . . 22 2.2.2. Operadores de Mutación . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2.3. Operadores de Selección . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3. Consideraciones Finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3. Propuesta 32 3.1. Esquema de Ponderación de Probabilidades de Mutación . . . . . . . . . . 33 3.2. Selección Descriminatoria de Individuos . . . . . . . . . . . . . . . . . . . . 35 7 ÍNDICE GENERAL 4. Casos de Estudio, Pruebas y Resultados 38 4.1. Caso de Estudio 1: Funciones Benchmarking . . . . . . . . . . . . . . . . . 38 4.1.1. Definición del Individuo . . . . . . . . . . . . . . . . . . . . . . . . 39 4.1.2. Operador de Cruzamiento . . . . . . . . . . . . . . . . . . . . . . . 39 4.1.3. Operador de Mutación . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.1.4. Parámetros del Modelo . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.1.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados . . . . . . 49 4.2.1. Definición de Individuo . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.2.2. Operador de Cruzamiento . . . . . . . . . . . . . . . . . . . . . . . 52 4.2.3. Operador de Mutación . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2.4. Matriz de Preferencias . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.2.5. Función de Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.2.6. Parámetros del Modelo . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.2.7. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5. Conclusiones y Trabajos Futuros 61 5.1. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.2. Trabajos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Bibliografı́a Ingenierı́a Informática - UCSP 64 8 Índice de cuadros 3.1. Ejemplo del cálculo de las probabilidades de mutación por clase donde n : 16 y P M I : 0,1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1. Parámetros Caso 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.2. Comparativo del número de generaciones que los operadores de Selección necesitaron para converger en la función Schwegel. . . . . . . . . . . . . . . 49 4.3. Parámetros Caso 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9 Índice de figuras 1.1. Ciclo básico de un Algoritmo Genético . . . . . . . . . . . . . . . . . . . . 14 2.1. Esquema básico de un Algoritmo Genético. . . . . . . . . . . . . . . . . . . 20 2.2. Individuo Genético Binario. . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3. Cruce de 1 punto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.4. Cruce de 2 puntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.5. Cruce Uniforme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.6. Reemplazo Aleatorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.7. Mutación para Representación de Orden. . . . . . . . . . . . . . . . . . . . 25 2.8. Ejemplo de la Selección de Ruleta. . . . . . . . . . . . . . . . . . . . . . . 26 2.9. Ejemplo de la Selección por Torneo. . . . . . . . . . . . . . . . . . . . . . . 27 2.10. Ejemplo de la probabilidad de elección de acuerdo al fitness. . . . . . . . . 28 2.11. Ejemplo de la probabilidad de elección de acuerdo al ranking. . . . . . . . 28 2.12. Separación de la población en hembras y machos. . . . . . . . . . . . . . . 30 2.13. Selección de hembra no emparejada y selección de un macho. . . . . . . . . 30 2.14. Proceso es repetido hasta que todas las hembras hayan sido apareadas. . . 30 3.1. Esquema de un Algoritmo Genético con el operador propuesto. . . . . . . . 32 3.2. Esquema de los pasos del operador propuesto. . . . . . . . . . . . . . . . . 33 3.3. Separación de la población en dos clases. . . . . . . . . . . . . . . . . . . . 35 3.4. Definir la probabilidad de mutación para cada clase. . . . . . . . . . . . . . 36 10 ÍNDICE DE FIGURAS 3.5. Diferenciación de machos y hembras en cada clase. . . . . . . . . . . . . . 36 3.6. Emparejamiento y producción de descendencia. . . . . . . . . . . . . . . . 36 4.1. Ejemplo básico del Individuo. . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2. Cruce Uniforme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3. Reemplazo Aleatorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.4. Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Step. . . . . . . . . . . . . . . . . . . . . . . . 41 4.5. Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Step. . . . . . . . . . . . . . . . . . . . . . . 42 4.6. Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Step. . . . . . . . . . . . . . . . . . . . . . . 42 4.7. Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Step. . . . . . . . . . . . . . . . . . . . . . . 43 4.8. Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Sphere. . . . . . . . . . . . . . . . . . . . . . . 43 4.9. Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Sphere. . . . . . . . . . . . . . . . . . . . . . 44 4.10. Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Sphere. . . . . . . . . . . . . . . . . . . . . . 44 4.11. Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Sphere. . . . . . . . . . . . . . . . . . . . . . 45 4.12. Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Rosenbrock. . . . . . . . . . . . . . . . . . . . 45 4.13. Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Rosenbrock. . . . . . . . . . . . . . . . . . . 46 4.14. Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Rosenbrock. . . . . . . . . . . . . . . . . . . 46 4.15. Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Rosenbrock. . . . . . . . . . . . . . . . . . . 47 4.16. Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Schwefel. . . . . . . . . . . . . . . . . . . . . . 47 Ingenierı́a Informática - UCSP 11 ÍNDICE DE FIGURAS 4.17. Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Schwefel. . . . . . . . . . . . . . . . . . . . . 48 4.18. Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Schwefel. . . . . . . . . . . . . . . . . . . . . 48 4.19. Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Schwefel. . . . . . . . . . . . . . . . . . . . . 49 4.20. Ejemplo tı́pico y básico de un horario de empleados. . . . . . . . . . . . . . 50 4.21. Ejemplo básico de un Horario Estático en 2 periodos de tiempo. . . . . . . 50 4.22. Ejemplo básico de un Horario Dinámico en 2 periodos de tiempo donde los casilleros sombreados indican la variación entre periodo 1 y periodo 2. . . . 51 4.23. Esquema básico del Individuo. . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.24. Selección de dos columnas aleatoriamente. . . . . . . . . . . . . . . . . . . 53 4.25. Exchange selected columns. . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.26. Selección mitad menos significativa. . . . . . . . . . . . . . . . . . . . . . . 54 4.27. Mutación de turnos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.28. Ejemplo básico de una Matriz de Preferencias. . . . . . . . . . . . . . . . . 55 4.29. Ejemplo básico de un Horario y su respectiva Matriz de Preferencias. . . . 56 4.30. Valores obtenidos después de multiplicar posición por posición. . . . . . . . 56 4.31. Comparación entre Operadores de Selección. . . . . . . . . . . . . . . . . . 57 4.32. Comparación entre Probabilidades de Cruzamiento y Mutación. . . . . . . 58 4.33. Comparación entre diferente número de Indidivuos en una Población . . . 58 4.34. Comparación entre Operadores de Cruzamiento y Mutación . . . . . . . . 59 4.35. Comparación entre diferentes tamaños de clase . . . . . . . . . . . . . . . . 60 4.36. Optimización de la Calidad de un Horario. . . . . . . . . . . . . . . . . . . 60 Ingenierı́a Informática - UCSP 12 Lista de algoritmos 1. 2. 3. 4. 5. 6. Algoritmo Genético Básico . . . . . . . . . . . . . . . Pseudocódigo Selección de Ruleta . . . . . . . . . . . Pseudocódigo Selección por Torneo . . . . . . . . . . Pseudocódigo Selección Basada en Ranking . . . . . . Pseudocódigo Selección Sexual . . . . . . . . . . . . . Pseudocódigo Selección Descriminatoria de Individuos 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 26 27 29 31 37 Capı́tulo 1 Introducción Los Algoritmos Genéticos (AGs) son métodos de optimización [Goldberg, 1989] basados en el paradigma Neo-Darwiniano [Tuttle, 1989], como la vida biológica en nuestro mundo que envuelve los mecanismos de reproducción, mutación, competición y selección natural. En la naturaleza los individuos de una población compiten entre sı́ en la búsqueda de recursos tales como comida, agua y refugio. Incluso los miembros de una misma especie compiten a menudo en la búsqueda de un compañero para producir descendencia. Aquellos individuos que tienen más éxito en sobrevivir y en atraer compañeros tienen mayor probabilidad de generar un gran número de descendientes. Por el contrario, individuos poco dotados producirán un menor número de descendientes. Esto significa que los genes de los individuos mejor adaptados se propagarán en sucesivas generaciones hacia un número de individuos creciente. La combinación de buenas caracterı́sticas provenientes de diferentes ancestros, puede a veces producir descendientes superindividuos, cuya adaptación es mucho mayor que la de cualquiera de sus ancestros. De esta manera, las especies evolucionan logrando unas caracterı́sticas cada vez mejor adaptadas al entorno en el que viven. La Figura 1.1 muestra el ciclo básico evolucionario de un Algoritmo Genético (AG) con sus respectivos operadores. Figura 1.1: Ciclo básico de un Algoritmo Genético El poder de los AGs proviene del hecho de que se trata de una técnica robusta, y pueden tratar con éxito una gran variedad de problemas provenientes de diferentes áreas, 14 CAPÍTULO 1. Introducción incluyendo aquellos en los que otros métodos encuentran dificultades. Si bien no se garantiza que el AG encuentre la solución óptima del problema al final de las iteraciones, existe evidencia empı́rica de que se encuentran soluciones de un nivel aceptable, en un tiempo competitivo con el resto de algoritmos de optimización combinatoria y además en la literatura se encuentra un análisis matemático que muestra la convergencia al óptimo global para modelos con codificaciones binarias cuando se emplea elitismo [Rudolph, 1994]. Los AGs están compuestos generalmente de dos procesos. El primer proceso es la selección de individuos para la producción de la siguiente generación y el segundo proceso es la manipulación de los individuos seleccionados para conformar la siguiente generación mediante las técnicas de cruzamiento y mutación. El mecanismo de selección determina cuáles son los individuos seleccionados para la reproducción. El principio más importante de la estrategia de selección es mientras mejor sea el individuo, mayor es su probabilidad de ser padre [Razali and Geraghty, 2011]. El mecanismo de selección reduce el área de búsqueda dentro de la población descartando soluciones pobres, el mecanismo de selección debe dar la oportunidad a todos los individuos ya sean buenos o malos de que puedan reproducirse. Es importante encontrar un equilibrio donde las soluciones pobres deben tener la oportunidad de ir a la siguiente generación, y las buenas soluciones pasen a la siguiente generación con más frecuencia que las soluciones pobres. El mecanismo de selección debe ser elegido de tal manera que la convergencia a la solución óptima global esté garantizada. Durante el desarrollo de los AGs, muchas estrategias de selección han sido propuestas y utilizadas tales como: Selección de Ruleta (SR), Selección por Torneo (ST) [Michalewicz, 1996], Selección Basada en Ranking (SBR) o algunas selecciones aplicadas en estrategias evolucionarias [Geyer et al., 1999]. Recientemente, la Selección Sexual (SS) ha sido propuesta para proveer una clara separación entre exploración y explotación sin la inconveniencia del ajuste de parámetros [Goh et al., 2003]. 1.1. Motivación y Contexto En lo que se respecta a los métodos de selección, en la literatura se compara los métodos de selección con mejor rendimiento [Razali and Geraghty, 2011]. Se determina que el operador de ST obtiene un mejor rendimiento en cuanto a la calidad de la solución en comparación con la SR y la SBR. Adicionalmente se concluye que la ST es superior a la SR y SBR en problemas de menor complejidad ya que se vuelve susceptible a la convergencia prematura conforme la complejidad del problema se incrementa. Las comparaciones entre los operadores de selección que se han realizado ayudan a comprender la relación del fitness y la convergencia. Se concluye que la ST supera a la SBR en términos de mantener la presión constante hacia la convergencia. En las investigaciones sobre los AGs para encontrar soluciones de problemas de distintas complejidades y de distintas áreas, generalmente se proponen operadores genéticos de cruzamiento y mutación, además de la función de evaluación. Debido a que estos operadores se centran en explorar el espacio de búsqueda, nace la necesidad de definir un nuevo operador de selección que ayude a explotar mejor el espacio de búsqueda, es decir, de utilizar todas las soluciones independientemente de su Ingenierı́a Informática - UCSP 15 1.2. Estado del Arte calidad. Debido a que el rendimiento de un AG es evaluada en términos de convergencia y el número de generaciones necesarias para hallar el óptimo global, este nuevo operador debe tener una convergencia uniforme, descartando la convergencia prematura ası́ la rapidez en alcanzar el óptimo global. 1.2. Estado del Arte Varias investigaciones han estudiado el rendimiento de los AGs usando diferentes estrategias de selección. El rendimiento de los AGs es usualmente evaluada en términos de convergencia y número de generaciones hasta alcanzar el óptimo global. En el trabajo de investigación de [Jadaan et al., 2008] se comparan los resutados de los operadores de SR y SBR usando varias funciones de optimización matemática y determinó que la SBR superó a la SR en cuanto al menor uso de generaciones para hallar la solución óptima. Observó que la SBR es más estable y más rápida que la SR. Por otro lado, [Zhong et al., 2005] compara la SR con la ST, con siete funciones de prueba y concluyó que el algoritmo con la ST es más eficiente en la convergencia que la SR. En el trabajo de investigación de [Goh et al., 2003] se propone un operador de selección denominado SS, el cual se inspira en el concepto de selección sexual propuesto por Darwin, y compara este operador con diferentes métodos de selección. Se concluye con que el operador de selección propuesto tiene un rendimiento ya sea igual o mejor que la SR. El nuevo esquema también tuvo un mejor rendimiento en comparación con la ST. En el trabajo de investigación de [Cheng et al., 2012] se propone un operador de Selección Bisexual, en donde se propone dividir la población de individuos en hembras y machos. Esta propuesta tiende a modificar las preferencias de emparejamiento de los machos y hembras al punto de que puedan elegir reproducirse con alguien de su mismo género. Esto debido a que a veces en la población generada no habrá un número equitativo de machos y hembras. Finalmente, en el trabajo de investigación de [Razali and Geraghty, 2011] se presenta la comparación del rendimiento del AG al resolver el problema del vendedor viajero utilizando diferentes mecanismos de selección. Se concluye en el trabajo que la ST obtiene un mejor rendimiento en cuanto a la calidad de la solución en comparación con la SR y la SBR. Se determina también que la ST es superior a la SR y SBR en problemas pequeños porque se vuelve susceptible a la convergencia prematura conforme el tamaño del problema se incrementa. Los trabajos de investigación mencionados se han realizado para comprender la relación del fitness y la convergencia. Se concluyó que la ST supera a la SBR en términos de mantener la presión constante hacia la convergencia. El operador propuesto se basa en la estructura del operador de SS [Goh et al., 2003]. Los operadores de selección a utilizar Ingenierı́a Informática - UCSP 16 CAPÍTULO 1. Introducción para comparar la propuesta serán los usados en los distintos trabajos de investigación, los cuales son: ST, SR, SBR y la SS. 1.3. Planteamiento del Problema Generalmente, los operadores de cruzamiento y la mutación exploran el espacio de búsqueda, mientras que la selección reduce el área de búsqueda dentro de la población descartando soluciones pobres. Sin embargo, los peores individuos no deben ser descartados y deben tener algunas posibilidades de ser seleccionados, ya que pueden dar lugar a material genético útil. Un parámetro crı́tico en el AG es la presión de selección, que es el proceso de selección que selecciona a los individuos más aptos para la reproducción. Si la presión de selección es demasiada baja, entonces la tasa de convergencia hacia la solución óptima será demasiada lenta. Si la presión de selección es demasiada alta, es probable que el AG se quede atrapado en un óptimo local debido a la falta de diversidad en la población [Oladele and Sadiku, 2013]. Una buena técnica de búsqueda debe encontrar un buen equilibrio entre la exploración y la explotación con el fin de encontrar un óptimo global [Beasley et al., 1993]. Por lo tanto, es importante encontrar un equilibrio entre la exploración (es decir, soluciones pobres deben tener la oportunidad de ir a la siguiente generación) y explotación (es decir, las buenas soluciones pasan a la siguiente generación con más frecuencia que las soluciones pobres) dentro del mecanismo de la selección. Cada estrategia de selección utilizada en el proceso de un AG afectará significativamente el rendimiento del algoritmo de una forma diferente. El mecanismo de selección debe ser elegido de tal manera que la convergencia a la solución óptima global esté garantizada. Además el proceso de selección debido a que es el proceso más costoso de un AG debe poseer una caracterı́stica que lo haga paralelizable para ası́ reducir considerablemente el tiempo y costo de procesamiento. 1.4. Objetivos El objetivo principal de esta investigación es proponer y evaluar un nuevo operador de selección basado en la Selección Sexual para un Algoritmo Genético (AG) el cual adicionalmente implementa un esquema de probabilidades de mutación. 1.4.1. Objetivos Especı́ficos Los objetivos especı́ficos de esta investigación son: Modelar un nuevo operador de selección. Modelar un esquema de probabilidades de mutación. Ingenierı́a Informática - UCSP 17 1.5. Organización de la Tesis Probar el Algoritmo Genético (AG) con el nuevo operador en un problema de mejora de calidad de horario de trabajo implementando una estructura adicional. Probar el Algoritmo Genético (AG) en optimización numérica con Funciones Benchmark. 1.5. Organización de la Tesis Este trabajo de investigación se organiza de la siguiente manera: El Capı́tulo 2 presenta los conceptos previos sobre AGs y Estrategias de Selección (ES). El Capı́tulo 3 contiene una descripción de la propuesta del nuevo operador de selección El Capı́tulo 4 define los casos de uso a utilizar con sus respectivos experimentos. Finalmente, en el capı́tulo 5 se mencionan las conclusiones, limitaciones y trabajos futuros correspondientes a este trabajo de investigación. Ingenierı́a Informática - UCSP 18 Capı́tulo 2 Conceptos Previos En este capı́tulo se especifican conceptos que son necesarios para la realización de la propuesta, primeramente se definen a los AGs, seguido de los operadores de selección existentes. 2.1. Algoritmo Genético Los AGs son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. Están basados en el proceso genético de los organismos vivos [Holland, 1975]. A lo largo de las generaciones, las poblaciones evolucionan en la naturaleza acorde con los principios de la selección natural y la supervivencia de los más fuertes, los AGs son capaces de ir creando soluciones para problemas del mundo real. La evolución de dichas soluciones hacia valores óptimos del problema depende en buena medida de una adecuada codificación de las mismas. Más formalmente, y siguiendo la definición dada por Goldberg, ”Los Algoritmos Genéticos son algoritmos de búsqueda basados en la mecánica de selección natural y de la genética natural. Combinan la supervivencia del más apto entre estructuras de secuencias con un intercambio de información estructurado, aunque aleatorizado, para constituir ası́ un algoritmo de búsqueda que tenga algo de las genialidades de las búsquedas humanas” [Goldberg, 1989]. Los AGs usan una analogı́a directa con el comportamiento natural. Trabajan con una población de individuos, cada uno de los cuales representa una solución factible a un problema dado. Luego el AG evalúa cada candidata de acuerdo con la función de aptitud. En un acervo de candidatas generadas aleatoriamente, por supuesto, la mayorı́a no funcionarán en absoluto, y serán eliminadas. Sin embargo, por puro azar, unas pocas pueden ser prometedoras, aunque sólo sea actividad débil e imperfecta, hacia la solución del problema [Marczyk, 2004]. En la naturaleza esto equivaldrı́a al grado de efectividad de un organismo para competir por unos determinados recursos. Cuanto mayor sea la adaptación de 19 2.1. Algoritmo Genético un individuo al problema, mayor será la probabilidad de que el mismo sea seleccionado para reproducirse, cruzando su material genético con otro individuo seleccionado de igual forma. En la Figura 2.1 se muestra el modelo básico del AG. Evaluación de la descendencia Individuo x1 x2 x3 x4 f (◦) genotipo 100100 010010 010110 000001 fitness 1296 324 484 1 Selección de Progenitores Evolución Cruce Nueva población de descendientes Reproducción Mutación Figura 2.1: Esquema básico de un Algoritmo Genético. Durante la ejecución del algoritmo, los padres deben ser seleccionados para la reproducción, a continuación dichos padres seleccionados se cruzarán generando dos hijos, sobre cada uno de los cuales actuará un operador de mutación. El resultado de la combinación de las anteriores funciones será un conjunto de individuos, los cuales en la evolución del AG formarán parte de la siguiente población. A continuación se muestra un pseudocódigo de un AG básico. Algoritmo 1 Algoritmo Genético Básico generar una población inicial evaluación de fitness de cada individuo mientras condición de fin = falso hacer para tamaño población / 2 hacer seleccionar dos individuos de la anterior generación para cruzamiento cruzar los dos individuos obteniendo dos descendientes mutar los dos individuos descendientes evaluar fitness de los dos individuos descendientes insertar los dos descendientes en la nueva generación fin para si población ha convergido entonces Terminado := TRUE fin si fin mientras Ingenierı́a Informática - UCSP 20 CAPÍTULO 2. Conceptos Previos 2.1.1. Codificación de Problemas Cualquier solución potencial a un problema puede ser presentada dando valores a una serie de parámetros. El conjunto de todos los parámetros (genes en la terminologı́a de AGs) se codifica en una cadena de valores denominada cromosoma. El conjunto de los parámetros representado por un cromosoma particular recibe el nombre de genotipo. El genotipo contiene la información necesaria para la construcción del organismo, es decir, la solución real al problema, denominada fenotipo. Por ejemplo, en términos biológicos, la información genética contenida en el ADN de un individuo serı́a el genotipo, mientras que la expresión de ese ADN (el propio individuo) serı́a el fenotipo. Desde los primeros trabajos de [Holland, 1975] la codificación suele hacerse mediante valores binarios. Se asigna un determinado número de bits a cada parámetro y se realiza una discretización de la variable representada por cada gen. El número de bits asignados dependerá del grado de ajuste que se desee alcanzar. Evidentemente no todos los parámetros tienen que estar codificados con el mismo número de bits. Cada uno de los bits pertenecientes a un gen suele recibir el nombre de alelo. La Figura 2.2 muestra un ejemplo de un individuo binario que codifica 3 parámetros. Figura 2.2: Individuo Genético Binario. Sin embargo, también pueden existir representaciones que codifiquen directamente cada parámetro con un valor entero, real o en punto flotante. A pesar de que se acusa a estas representaciones de degradar el paralelismo implı́cito de las representaciones binarias, permiten el desarrollo de operadores genéticos más especı́ficos al campo de aplicación del AG [Gestal, 2010]. 2.1.2. Función de Evaluación Para el correcto funcionamiento de un AG se debe de poseer un método que indique si los individuos de la población representan o no buenas soluciones al problema planteado. Por lo tanto para cada tipo de problema que se desee resolver se deberá derivar a un nuevo método, al igual que ocurrirá con la propia codificación de los individuos. De esto se encarga la función de evaluación, que establece una medida numérica de la bondad de una solución. Esta medida recibe el nombre de ajuste. En la naturaleza el ajuste (o fitness) de un individuo puede considerarse como la Ingenierı́a Informática - UCSP 21 2.2. Operadores Genéticos probabilidad de que ese individuo sobreviva hasta la edad de reproducción y se reproduzca. Esta probabilidad deberá estar ponderada con el número de descendientes. Evidentemente no es lo mismo una probabilidad de reproducción del 0.25 en una población de un par de cientos de individuos que esa misma probabilidad en una población de varios millones. En el mundo de los AGs se empleará esta medición para controlar la aplicación de los operadores genéticos. Es decir, permitirá controlar el número de selecciones, cruces, copias y mutaciones llevadas a cabo. 2.2. Operadores Genéticos Para el paso de una generación a la siguiente se aplican una serie de operadores genéticos. A continuación se definen a los operadores de cruzamiento, mutación y selección. 2.2.1. Operadores de Cruzamiento Un operador genético de cruzamiento es un operador empleado para la recombinación para producir la descendencia que se insertará en la siguiente generación. Su importancia para la transición entre generaciones es elevada puesto que las tasas de cruce con las que se suele trabajar rondan el 90 % . La idea principal del cruce se basa en que, si se toman dos individuos correctamente adaptados al medio y se obtiene una descendencia que comparta genes de ambos, existe la posibilidad de que los genes heredados sean precisamente los causantes de la bondad de los padres. Al compartir las caracterı́sticas buenas de dos individuos, la descendencia, o al menos parte de ella, deberı́a tener una bondad mayor que cada uno de los padres por separado. Existen multitud de operadores de cruce. Sin embargo los más empleados son los que se detallarán a continuación: Cruce de 1 punto Es la más sencilla de las técnicas de cruce. Una vez seleccionados dos individuos se cortan sus cromosomas por un punto seleccionado aleatoriamente para generar dos segmentos diferenciados en cada uno de ellos: la cabeza y la cola. Se intercambian las colas entre los dos individuos para generar los nuevos descendientes. De esta manera ambos descendientes heredan información genética de los padres, tal y como puede verse en la Figura 2.3. Ingenierı́a Informática - UCSP 22 CAPÍTULO 2. Conceptos Previos Figura 2.3: Cruce de 1 punto. Cruce de 2 puntos Se trata de una generalización del cruce de 1 punto. En vez de cortar por un único punto los cromosomas de los padres como en el caso anterior se realizan dos cortes. Deberá tenerse en cuenta que ninguno de estos puntos de corte coincida con el extremo de los cromosomas para garantizar que se originen tres segmentos. Para generar la descendencia se escoge el segmento central de uno de los padres y los segmentos laterales del otro padre. (Véase Figura 2.4) Figura 2.4: Cruce de 2 puntos. Cruce Uniforme Consiste en la generación aleatoria de una máscara de cruce con valores binarios [Gestal, 2010]. Si en una de las posiciones de la máscara hay un 1, el gen situado en esa posición en uno de los descendientes se copia del primer padre. Si por el contrario hay un 0 en gel se copia del segundo padre. Para producir el segundo descendiente se intercambian los papeles de los padres, o bien se intercambia la interpretación de los unos y ceros de la máscara de cruce tal como se puede apreciar en la Figura 2.5. Ingenierı́a Informática - UCSP 23 2.2. Operadores Genéticos Figura 2.5: Cruce Uniforme. 2.2.2. Operadores de Mutación Un operador genético de mutación permite alcanzar cualquier parte del espacio de búsqueda de un individuo. La mutación de un individuo provoca que alguno de sus genes, generalmente uno sólo, varı́e su valor de forma aleatoria. Aunque se pueden seleccionar los individuos directamente de la población actual y mutarlos antes de introducirlos en la nueva población, la mutación se suele utilizar de manera conjunta con el operador de cruce. La probabilidad de mutación es muy baja, generalmente menor al 1 %. Esto se debe sobre todo a que los individuos suelen tener un fitness menor después de mutados. Sin embargo se realizan mutaciones para garantizar que ningún punto del espacio de búsqueda tenga una probabilidad nula de ser examinado. Existen multitud de operadores de mutación. Sin embargo los más empleados son los que se detallarán a continuación: Reemplazo Aleatorio Este consiste en variar aleatoriamente un gen de un cromosoma. Si se trabaja con codificaciones binarias consistir simplemente en negar un bit. (Véase la Figura 2.6) Ingenierı́a Informática - UCSP 24 CAPÍTULO 2. Conceptos Previos Figura 2.6: Reemplazo Aleatorio. Mutación para Representación de Orden Consiste en la selección aleatoria de dos puntos en el cromosoma. Estos dos puntos seleccionados se intercambian en el cromosoma generando un nuevo individuo como se muestra en la Figura 2.7. Figura 2.7: Mutación para Representación de Orden. 2.2.3. Operadores de Selección Los operadores de selección serán los encargados de escoger qué individuos van a disponer de oportunidades de reproducirse y cuáles no. Puesto que se trata de imitar lo que ocurre en la naturaleza, se ha de otorgar un mayor número de oportunidades de reproducción a los individuos más aptos. Por lo tanto la selección de un individuo estará relacionada con su valor de ajuste. No se debe sin embargo eliminar por completo las opciones de reproducción de los individuos menos aptos, pues en pocas generaciones la población se volverı́a homogénea. Se debe dar una posibilidad de reproducirse a los individuos menos aptos ya que estos pueden incluir material genético útil en el proceso de reproducción. A continuación se detallará los operadores de selección mayormente utilizados ası́ como del operador de SS. Selección de Ruleta Propuesto por DeJong, también conocida como Selección proporcional a la función de desempeño, es posiblemente el método más utilizado desde los orı́genes de los AGs [Blickle and Thiele, 1995]. A cada uno de los individuos de la población se le asigna una Ingenierı́a Informática - UCSP 25 2.2. Operadores Genéticos parte proporcional a su ajuste de una ruleta, de tal forma que la suma de todos los porcentajes sea la unidad. Los mejores individuos recibirán una porción de la ruleta mayor que la recibida por los peores. Generalmente la población está ordenada en base al ajuste por lo que las porciones más grandes se encuentran al inicio de la ruleta. Para seleccionar un individuo basta con generar un número aleatorio del intervalo [0..1] y devolver el individuo situado en esa posición de la ruleta. Sea N el número de individuos existentes y fi el desempeño del i-ésimo individuo. La probabilidad asociada a su selección está dada por: fi pi = PN j=1 fj (2.1) Esta posición se suele obtener recorriendo los individuos de la población y acumulando sus proporciones de ruleta hasta que la suma exceda el valor obtenido. (Véase Figura 2.8) Figura 2.8: Ejemplo de la Selección de Ruleta. A continuación se muestra el pseudocódigo del procedimiento del operador de SR. Algoritmo 2 Pseudocódigo Selección de Ruleta Generar el valor de n con un valor de 0 mientras tamaño de la población >n hacer Generar el número aleatorio r Calcular el fitness acumulado, fitness total (Pt ), y la suma del fitness proporcional (SUM) si SUM <r entonces Seleccionar el primer cromosoma, de otra manera, seleccionar el i-ésimo cromosoma fin si Incrementar el valor de n en una unidad fin mientras Devolver los cromosomas con valores de fitness proporcionales al tamaño de la sección de la ruleta seleccionada Ingenierı́a Informática - UCSP 26 CAPÍTULO 2. Conceptos Previos Selección por Torneo Esta selección se efectúa mediante un torneo (comparación) entre un pequeño subconjunto de individuos elegidos al azar desde la población. Los beneficios de este tipo de selección son la velocidad de aplicación (dado que no es necesario evaluar ni comparar la totalidad de la población) y la capacidad de prevenir, en cierto grado, la convergencia prematura. La principal desventaja es la necesidad de establecer el parámetro correspondiente al tamaño del subconjunto [Goldberg, 1989]. Variando el número de individuos que participan en cada torneo se puede modificar la presión de selección. Cuando participan muchos individuos en cada torneo, la presión de selección es elevada y los peores individuos apenas tienen oportunidades de reproducción. Un caso particular es el elitismo global. Se trata de un torneo en el que participan todos los individuos de la población con lo cual la selección se vuelve totalmente determinı́stica. Cuando el tamaño del torneo es reducido, la presión de selección disminuye y los peores individuos tienen más oportunidades de ser seleccionados. En la Figura 2.9 se observa el ejemplo básico de una ST: Figura 2.9: Ejemplo de la Selección por Torneo. A continuación se muestra el pseudocódigo del procedimiento del operador de ST. Algoritmo 3 Pseudocódigo Selección por Torneo Definir tamaño del subconjunto Calcular el fitness acumulado, fitness total (Pi ) mientras tamaño del subconjunto >0 hacer Elegir concursante fin mientras Ordenar los concursante de acuerdo a su fitness y elegir el ganador del torneo Devolver el cromosoma ganador del torneo Ingenierı́a Informática - UCSP 27 2.2. Operadores Genéticos Selección Basada en Ranking Esta selección se efectúa mediante la ordenación de la población de acuerdo a su fitness y entonces las probabilidades de selección se asignan de acuerdo a su ranking. La SBR puede evitar la convergencia prematura pero puede ser computacionalmente costosa por la necesidad de ordenar la población. La probabilidad asociada a su selección está dada por: Rankingi = 2 − SP + (2.(SP − 1) ∗ (P os − 1) ) (n − 1) donde : 1,0 < SP ≤ 2,0 (2.2) Se considera a n como el número de individuos en la población, a Pos como la posición de un individuo en la población y la SP como la presión de selección. En las Figuras 2.10 y 2.11 se observa como la probabilidad de elección varı́a con la SBR, evitando que existan super individuos. Figura 2.10: Ejemplo de la probabilidad de elección de acuerdo al fitness. Figura 2.11: Ejemplo de la probabilidad de elección de acuerdo al ranking. A continuación se muestra el pseudocódigo del procedimiento del operador de SBR. Ingenierı́a Informática - UCSP 28 CAPÍTULO 2. Conceptos Previos Algoritmo 4 Pseudocódigo Selección Basada en Ranking Generar el valor de n con un valor de 0 mientras tamaño de la población >n hacer Generar el número aleatorio r Ordenar población de acuerdo a su ranking Asignar los valores de fitness a los individuos de acuerdo a su ranking Calcular el fitness acumulado, fitness total (Pt ), y la suma del fitness proporcional (SUM) si SUM <r entonces Seleccionar el primer cromosoma, de otra manera, seleccionar el i-ésimo cromosoma fin si Incrementar el valor de n en una unidad fin mientras Devolver los cromosomas con valores de fitness proporcionales al tamaño de la sección de la ruleta seleccionada Selección Sexual El esquema de Selección Sexual [Goh et al., 2003] se inspira en el concepto de selección sexual propuesto por Darwin que sugiere que la elección de pareja opera a través de la elección femenina. Esta implementación consta de 5 etapas principalmente: 1. Separar la generación actual en machos y hembras. 2. Seleccionar una hembra no emparejada. 3. Seleccionar un macho a emparejar. 4. Emparejar la hembra y macho para producir descendencia. 5. Vuelva al paso 2 hasta que todas las hembras hayan copulado. Este diseño asegura que todas las hembras se llegan a reproducir independientemente de su aptitud y su objetivo es facilitar la exploración del espacio de búsqueda. Por el otro lado, el sesgo hacia los machos explota el conocimiento de que la estructura del cromosoma del individuo es mejor. En las Figuras 2.12, 2.13 y 2.14 se detalla en forma gráfica la SS. Ingenierı́a Informática - UCSP 29 2.2. Operadores Genéticos Figura 2.12: Separación de la población en hembras y machos. Figura 2.13: Selección de hembra no emparejada y selección de un macho. Figura 2.14: Proceso es repetido hasta que todas las hembras hayan sido apareadas. A continuación se muestra el pseudocódigo del procedimiento del operador de SS. Ingenierı́a Informática - UCSP 30 CAPÍTULO 2. Conceptos Previos Algoritmo 5 Pseudocódigo Selección Sexual Separar la población en machos y hembras de acuerdo a su fitness Generar el valor n con valor de tamaño de la población / 2 Calcular el fitness acumulado, fitness total (Pt ) mientras n >0 hacer Seleccionar hembra no emparejada Seleccionar macho para emparejar de acuerdo a su fitness Decrementar el valor de n en una unidad fin mientras Devolver las parejas formadas por los inviduos de acuerdo al proceso de selección 2.3. Consideraciones Finales Luego de la especificación de los conceptos previos de esta sección se procederá a especificar la propuesta que se basa claramente en la utilización de un AG con un operador de selección basándose en la estructura de la Selección Sexual[Goh et al., 2003], además del uso de un esquema de probabilidades de mutación que ayudará a explorar mejor el espacio de búsqueda. Los operadores de cruzamiento y mutación se basan en los operadores utilizados en estas investigaciones. Ingenierı́a Informática - UCSP 31 Capı́tulo 3 Propuesta En este capı́tulo se detalla la propuesta del nuevo modelo del AG incluyendo el operador de selección propuesto ası́ como el esquema de ponderación de probabilidades de mutación. La propuesta se basa en la necesidad de un nuevo operador de selección que explore el espacio de búsqueda de un problema, con la caracterı́stica de que utilice todas las soluciones, ya sean buenas o malas. Este nuevo operador debe tener una convergencia uniforme, descartando la convergencia prematura además de alcanzar el óptimo global en un menor número de generaciones. En la Figura 3.1 se muestra el modelo básico del AG donde se resalta la parte que modifica la propuesta, la cual es el operador de selección. Además, en la Figura 3.2 se muestran los pasos que componen este operador de selección. Evaluación de la descendencia f (◦) Individuo x1 x2 x3 x4 genotipo 100100 010010 010110 000001 Evolución fitness 1296 324 484 1 Modelo de Selección Propuesto Cruce Nueva población de descendientes Reproducción Mutación Figura 3.1: Esquema de un Algoritmo Genético con el operador propuesto. 32 CAPÍTULO 3. Propuesta Figura 3.2: Esquema de los pasos del operador propuesto. Adicionalmente al operador de selección, se propone un esquema de probabilidades de mutación que será utilizado por el operador para asignar las probabilidades de mutación a sus diversas clases. Los puntos contenidos en este capı́tulo son los siguientes: 1. Esquema de Ponderación de Probabilidades de Mutación 2. Operador de Selección Discriminatoria de Individuos 3.1. Esquema de Ponderación de Probabilidades de Mutación Debido a que el operador de selección propuesto divide la población en clases dependiendo de su aptitud, se agrega un esquema donde las probabilidades de mutación en la población varı́an dependiendo a que clase pertenecen los individuos. La clase más alta posee una probabilidad base inicial de mutación mientras que las demás clases van aumentando su probabilidad en incrementos constantes de tal forma que la última clase tiene Ingenierı́a Informática - UCSP 33 3.1. Esquema de Ponderación de Probabilidades de Mutación una probabilidad de mutación de 1. Este aumento de probabilidad se calcula utilizando la Ecuación 3.1. k= donde: 1 − P M0 (n − 1) (3.1) n: es el número de clases. P M0 : es la probabilidad inicial de mutación. k: es el incremento de probabilidad por cada clase. En el Cuadro 3.1 se muestra un ejemplo de la variación de las probabilidad de mutación al aplicar la Ecuación 3.1 con una probabilidad inicial de 0.10 y un número de 16 clases. El valor de k es de 0.06. Clase Probabilidad 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0.10 0.16 0.22 0.28 0.34 0.40 0.46 0.52 0.58 0.64 0.70 0.76 0.82 0.88 0.94 1.00 Cuadro 3.1: Ejemplo del cálculo de las probabilidades de mutación por clase donde n : 16 y P M I : 0,1. Con este esquema se garantiza que las clases más bajas tengan la oportunidad de generar descendientes con buen fitness, es decir, la alta probabilidad de mutación ayuda a explorar el espacio de búsqueda y no solo centrarse en los individuos que pertenecen a las clases más altas. Este esquema elimina la dependencia entre clases al realizar operaciones, un problema en los operadores de selección clásicos. Al eliminar esta dependencia ayuda a que el AG pueda ser paralelizable. Ingenierı́a Informática - UCSP 34 CAPÍTULO 3. Propuesta 3.2. Selección Descriminatoria de Individuos Debido a que surge la necesidad de explotar todos los elementos del espacio de búsqueda, este operador utiliza el Esquema de Ponderación de Probabilidades de Mutación (EPPM) para asignar probabilidades de mutación a todos los individuos. Al asignar diferentes probabilidades de mutación a las distintas clases generadas, se garantiza que los individuos pobres tengan la posibilidad de generar un descendiente bueno. Este operador de selección divide la población en clases de acuerdo a su fitness. Juntando a los mejores individuos con los mejores individuos y a los peores individuos con los peores individuos. Con la separación de la población en clases, se elimina la dependencia entre clases. Al eliminar esta dependencia el algoritmo puede ser implementado en un contexto paralelo. Adicionalmente, este operador se basa en la estructura del operador de selección sexual [Goh et al., 2003]. La Selección Discriminatoria de Individuos (SDI) se compone principalmente en los siguientes pasos: 1. Separar población en clases de acuerdo a su aptitud. 2. Definir probabilidad de mutación para cada clase utilizando el EPPM. 3. En cada clase diferenciar las hembras y los machos. 4. Seleccionar una hembra no emparejada y un macho de la misma clase para emparejar. 5. Emparejar la hembra y macho para producir descendencia. 6. Vuelva al paso 2 hasta que todas las hembras se hayan reproducido. A continuación se mostrará un ejemplo gráfico de la SDI ilustrado en las Figuras 3.3, 3.4, 3.5 y 3.6. Figura 3.3: Separación de la población en dos clases. Ingenierı́a Informática - UCSP 35 3.2. Selección Descriminatoria de Individuos Figura 3.4: Definir la probabilidad de mutación para cada clase. Figura 3.5: Diferenciación de machos y hembras en cada clase. Figura 3.6: Emparejamiento y producción de descendencia. A continuación se muestra el pseudocódigo del procedimiento del operador de SSI! (SSI!). Ingenierı́a Informática - UCSP 36 CAPÍTULO 3. Propuesta Algoritmo 6 Pseudocódigo Selección Descriminatoria de Individuos Ordenar la población de acuerdo a su aptitud Generar el valor del tamaño de clase Separar la población en clases de acuerdo a su aptitud mientras cantidad de clases >0 hacer Definir probabilidad de mutación para cada clase Separar los individuos de la clase en machos y hembras de acuerdo a su fitness Calcular el fitness acumulado, fitness total (Pt ) por cada clase Generar el valor n con valor de tamaño de la clase / 2 fin mientras mientras n >0 hacer Seleccionar hembra no emparejada Seleccionar macho para emparejar de acuerdo a su fitness Decrementar el valor de n en una unidad fin mientras Devolver las parejas formadas por los inviduos de acuerdo al proceso de selección Este operador de selección permitirá dividir la población en clases de acuerdo a su aptitud, lo que permitirı́a emparejar a los mejores con los mejores y peores con los peores, cada clase tiene su propia probabilidad de mutar que es más baja en las mejores clases y se incrementa conforme se clasifican los demás individuos. Además permitirı́a utilizar paralelismo para disminuir el costo de cálculo de soluciones. Ingenierı́a Informática - UCSP 37 Capı́tulo 4 Casos de Estudio, Pruebas y Resultados Con la propuesta ya definida en el capı́tulo anterior se procede a realizar los experimentos y análisis de los resultados obtenidos. Para las pruebas se tendrán dos casos de uso, los cuales se detallan a continuación: 4.1. Caso de Estudio 1: Funciones Benchmarking Para la obtención de resultados de este caso de estudio se utilizan 4 funciones Benchmarking. Digalakis [Digalakis and Margaritis, 2002] resume un conjunto de funciones Benchmarking. En este conjunto, se seleccionan cuatro funciones, para llevar a cabo el estudio propuesto, las cuales se mencionan a continuación: Función Step : es la representante de la problemática de las superficies planas, las cuáles son obstáculos para los algoritmos de optimización debido a que no dan información acerca de que dirección es favorable para realizar la búsqueda. Su óptimo global es 0. f1 = n X |xi | donde : −5, 12 ≤ xi ≤ 5, 12 (4.1) i=1 Función Sphere : función parabólica, convexa lisa, unimodal, simétrica, y cuya convergencia para el óptimo global se consigue fácilmente. Su óptimo global es 0. f2 = n X x2i donde : −5, 12 ≤ xi ≤ 5, 12 i=1 38 (4.2) CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados Función Rosenbrock: considerada de alto nivel de dificultad. Es una función no convexa usada para realizar pruebas de rendimiento para algoritmos de optimización definida por Howard H. Rosenbrock en 1960 [Rosenbrock, 1960]. Su óptimo global es 0. f3 = 100(x21 − x2 )2 + (1 − x1 )2 donde : −2, 048 ≤ xi ≤ 2, 048 (4.3) Función Schwefel: es una función multimodal compleja, es decir, tiene varios óptimos locales y solo un óptimo global. Su óptimo global es 837.966. f4 = n X q (−xi sin( |xi |)) donde : −500 ≤ xi ≤ 500 (4.4) i=1 Este subconjunto de funciones contiene caracterı́sticas importantes que sirven para resolver problemas de optimización, tales como: suavidad, unimodalidad, multimodalidad, una superficie plana, y también muchos óptimos locales [Broglio Carvalho et al., 2011]. 4.1.1. Definición del Individuo Dado que se trabaja con valores enteros, el individuo se representa como un arreglo binario. (Véase Figura 4.1) Figura 4.1: Ejemplo básico del Individuo. 4.1.2. Operador de Cruzamiento El operador de cruzamiento a utilizar según [Digalakis and Margaritis, 2002] es el cruzamiento uniforme que consiste en la generación aleatoria de una máscara de cruce con valores binarios [Gestal, 2010]. Si en una de las posiciones de la máscara hay un 1, el gen situado en esa posición en uno de los descendientes se copia del primer padre. Si por el contrario hay un 0 el gen se copia del segundo padre. Para producir el segundo descendiente se intercambian los papeles de los padres, o bien se intercambia la interpretación de los unos y ceros de la máscara de cruce tal como se puede apreciar en la Figura 4.2. Ingenierı́a Informática - UCSP 39 4.1. Caso de Estudio 1: Funciones Benchmarking Figura 4.2: Cruce Uniforme. 4.1.3. Operador de Mutación El operador de mutación a utilizar según [Digalakis and Margaritis, 2002] es el reemplazo aleatorio el cual consiste en variar aleatoriamente un gen de un cromosoma, como el individuo es un arreglo de bits se modifica el 1 por el 0 o viceversa. (Véase Figura 4.3) Figura 4.3: Reemplazo Aleatorio. 4.1.4. Parámetros del Modelo Para resolver este problema tomaremos en cuenta los parámetros detallados en el Cuadro 4.1. Se consideran las probabilidades de cruzamiento y mutación dadas por [Srinivas and Patnaik, 1994]. En los resultados el parámetro que varı́a es el tamaño de la población, debido a que es el único parámetro que afecta los resultados de los experimentos. La utilización de estos valores como parámetros son especificados por [Digalakis and Margaritis, 2002]. Ingenierı́a Informática - UCSP 40 CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados Parámetro Valor Tamaño de población 20, 100, 200, 400 Probabilidad de cruzamiento 0.65 Probabilidad inicial de mutación 0.008 Cuadro 4.1: Parámetros Caso 1. 4.1.5. Resultados Primeramente se muestran los resultados obtenidos al evaluar la función Step con los diferentes tamaños de población. En la Figura 4.4 se observa que si bien la SDI no es la más rápida en converger a su óptimo global, posee una curva bien definida. Hay que considerar que para este experimento se utilizó un valor entero de 5000 al que se le restaba el resultado hallado por el AG, esto se realizó solo con el objetivo de visualizar la curva generada. En la Figura 4.5 se observa una convergencia más rápida por parte de los operadores de selección utilizados. En la Figura 4.6 se muestra que la curva de la SDI junto con la ST, la cual venı́a siendo el operador que convergı́a más rápido, convergen antes que los demás operadores. Finalmente se observa que en la Figura 4.7 la SDI converge más rápido a su óptimo global que los demás operadores mostrando una curva bien definida. Figura 4.4: Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Step. Ingenierı́a Informática - UCSP 41 4.1. Caso de Estudio 1: Funciones Benchmarking Figura 4.5: Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Step. Figura 4.6: Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Step. Ingenierı́a Informática - UCSP 42 CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados Figura 4.7: Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Step. A continuación se muestran los resultados obtenidos al evaluar la función Sphere. En la Figura 4.8 se observa que la curva del operador de SS converge más rápido que los demás operadores siendo seguida del operador de SDI. En la Figura 4.9 se observa que la curva del operador de ST converge más rápido que los demás operadores. Finalmente se muestra en las Figura 4.10 y 4.11 que el operador de SDI converge más rápido que los demás operadores. Figura 4.8: Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Sphere. Ingenierı́a Informática - UCSP 43 4.1. Caso de Estudio 1: Funciones Benchmarking Figura 4.9: Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Sphere. Figura 4.10: Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Sphere. Ingenierı́a Informática - UCSP 44 CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados Figura 4.11: Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Sphere. Los resultados obtenidos al ejecutar la función de Rosenbrock con los diferentes tamaños de población se muestran a continuación. En la Figura 4.12 se observa que la convergencia de la SDI es menor a los demás operadores de selección exceptuando al operador de SR. En la Figura 4.13 se observa que la convergencia del operador de SDI es mejor que los demás operadores de selección ası́ como también alcanza su óptimo global en menos generaciones que los demás operadores. En la Figura 4.14 también se observa una más rápida convergencia hacia su óptimo global. En la Figura 4.15 se observa que la convergencia del operador de SDI es más rápido de los demás operadores de selección y se reafirma el hecho de que el operador halla el óptimo global en menos generaciones. Figura 4.12: Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Rosenbrock. Ingenierı́a Informática - UCSP 45 4.1. Caso de Estudio 1: Funciones Benchmarking Figura 4.13: Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Rosenbrock. Figura 4.14: Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Rosenbrock. Ingenierı́a Informática - UCSP 46 CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados Figura 4.15: Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Rosenbrock. A continuación se muestran los resultados obtenidos al probar la función Schwefel, la cual es una función multimodal. En la Figura 4.16 se observa que los únicos operadores que generan una curva definida que converge al óptimo global son la SS y la SDI, esto debido a que esta función posee varios óptimos locales. En las Figuras 4.17, 4.18 y 4.19 se muestra que la mayorı́a de operadores excepto la SR poseen curvas definidas hacia el óptimo global. Figura 4.16: Comparación entre Operadores de Selección con una Población de 20 Individuos al evaluar la Función Schwefel. Ingenierı́a Informática - UCSP 47 4.1. Caso de Estudio 1: Funciones Benchmarking Figura 4.17: Comparación entre Operadores de Selección con una Población de 100 Individuos al evaluar la Función Schwefel. Figura 4.18: Comparación entre Operadores de Selección con una Población de 200 Individuos al evaluar la Función Schwefel. Ingenierı́a Informática - UCSP 48 CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados Figura 4.19: Comparación entre Operadores de Selección con una Población de 400 Individuos al evaluar la Función Schwefel. Si bien no es posible identificar a simple vista que operador es el que converge primero al óptimo global, en el Cuadro 4.2 se muestra la cantidad de generaciones que emplea cada operador en converger al óptimo global. Operador de Selección Selección Selección Selección Selección Selección por Torneo de Ruleta Sexual Basada en Ranking Discriminatoria de Individuos Generación de convergencia 400 Ind 200 Ind 100 Ind 356 418 327 333 241 510 574 391 551 275 535 – 562 567 421 Cuadro 4.2: Comparativo del número de generaciones que los operadores de Selección necesitaron para converger en la función Schwegel. Se observa que con esta función multimodal la SR no llega a converger, por otro lado se muestra que la SDI converge más rápido que los demás operadores. 4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados Un problema adicional abarcado en este trabajo de investigación es la mejora de calidad de un horario de trabajo cuyo tema es abarcado en varios trabajos de investigación Ingenierı́a Informática - UCSP 49 4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados utilizando diferentes formas de nombrarlo. Los términos más utilizados son: workforce scheduling, manpower scheduling, staff scheduling, employee timetabling, crew scheduling [Morz and Nysret, 2004]. La asignación de un horario de trabajo a los empleados consiste en adjudicar a los empleados turnos de trabajo en un periodo previamente definido. En la Figura 4.20 se muestra un ejemplo de un horario básico utilizado generalmente por diversas empresas e instituciones, en este ejemplo el periodo es de 7 dı́as. Figura 4.20: Ejemplo tı́pico y básico de un horario de empleados. Existen básicamente dos tipos de horarios de trabajo: a) los horarios estáticos, los cuales no varı́an en los diferentes periodos de tiempo y b) los horarios dinámicos que sı́ varı́an en cada periodo de tiempo. A continuación en las Figuras 4.21 y 4.22 se muestran dos ejemplos básicos de horarios dinámicos y estáticos cuyo periodo es de 7 dı́as. Figura 4.21: Ejemplo básico de un Horario Estático en 2 periodos de tiempo. Ingenierı́a Informática - UCSP 50 CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados Figura 4.22: Ejemplo básico de un Horario Dinámico en 2 periodos de tiempo donde los casilleros sombreados indican la variación entre periodo 1 y periodo 2. En este caso de uso se considerará el horario dinámico ya que se pretende mejorar la productividad de los empleados y, al mismo tiempo, tener un mejor impacto de satisfacción y salud de los empleados. Para la obtención de resultados en este caso de uso se va a tomar un caso de la vida real, los horarios de salvavidas de Wilderness Resort, localizado en Wisconsin Dells, USA, cuyo horario de salvavidas es generado manualmente por 2 personas encargadas que toman en un tiempo de 4 dı́as calendarios. Este horario tiene un promedio de 50 salvavidas divididos en 2 turnos. Siendo el trabajo de salvavidas muy crı́tico debido a que un pequeño descuido puede ocasionar la muerte de alguna persona, los salvavidas deben encontrarse en su mejor capacidad de respuesta lo cual puede ser afectada por varios motivos como: Trabajo adicional en altas horas de la noche. Conflictos personales. Variación del ritmo circadiano. Dı́as seguidos de trabajo. Para lo cual es importante encontrar un horario que pueda mejorar la productividad y eficiencia de los salvavidas. A continuación se definen los individuos, operadores genéticos y se propone una estructura llamada Matriz de Preferencias (MPs) para solucionar este problema. Ingenierı́a Informática - UCSP 51 4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados 4.2.1. Definición de Individuo La definición del individuo del AG se basa en el individuo utilizado para resolver el Problem A: curriculum-based course timetabling [Abdullah and Turabieh, 2012]. El individuo es una matriz d × e, donde d es el número de dı́as y e es el número de empleados disponibles (Véase Figura 4.23). Los valores de esta matriz son los periodos en que está compuesto un dı́a de trabajo, en el individuo se está considerando dos periodos: am y pm. Figura 4.23: Esquema básico del Individuo. En el AG se genera una población de x individuos, donde cada individuo representa una posible solución al problema propuesto. 4.2.2. Operador de Cruzamiento El operador de cruzamiento propuesto basado en el operador propuesto en el trabajo de [Abdullah and Turabieh, 2012], consisten en elegir aleatoriamente dos columnas distintas de nuestros individuos para cruzar e intercambiarlas como se muestra en las Figuras 4.24 y 4.25. Ingenierı́a Informática - UCSP 52 CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados Figura 4.24: Selección de dos columnas aleatoriamente. En este ejemplo se ha seleccionado aleatoriamente la columna 2 y la columna 5. Figura 4.25: Exchange selected columns. Ingenierı́a Informática - UCSP 53 4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados Cabe destacar que el operador de cruzamiento podrı́a generar un individuo que sea incorrecto, lo que podrı́a ocasionar inconsistencias en el algoritmo. Para solucionar este problema se utilizará una función de comprobación de individuos, la cual evaluará el descendiente con la MPs. Y en caso el individuo sea incorrecto se tomará al padre del individuo, caso contrario el descendiente será elegido. 4.2.3. Operador de Mutación El operador de mutación propuesto consiste en seleccionar la mitad menos significativa del individuo y aplicar la mutación de los turnos como se muestran en las Figuras 4.26 y 4.27. Figura 4.26: Selección mitad menos significativa. Figura 4.27: Mutación de turnos. Se procede a mutar los turnos de la columna elegida, es decir si el elemento es am se procede a cambiarlo por pm y viceversa, se podrá mutar un individuo solo si la MPs tiene un valor diferente a 0 en esa posición. 4.2.4. Matriz de Preferencias Para la generación de la población de los AGs generalmente se realiza mediante la generación aleatoria sin seguir un patrón de probabilidades. Debido a esta falta de especificación es que se propone una MPs (Véase Figura 4.28) en el AG para la generación de la población inicial y cálculo de aptitud. Ingenierı́a Informática - UCSP 54 CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados Figura 4.28: Ejemplo básico de una Matriz de Preferencias. En la matriz definida por cada dı́a se agrega la cantidad de turnos por dı́a, en este caso cada dı́a tiene dos turnos. Una de las particularidades de esta matriz es que los valores de cada columna deben de sumar 1. Si un elemento de la columna varı́a, la diferencia del valor actual con el anterior se reparte entre los demás elementos de la columna, ya sea para agregar o disminuir el valor de los demás elementos. Si un empleado no puede trabajar en un turno especificado el valor para esa posición en la MPs serı́a de 0. Esta matriz ayudará a generar una población inicial con mayor aptitud, por ende con una mejor calidad de individuos. Cabe resaltar que esta estructura se basa en el modelo probabilı́stico al utilizar esta MPs, por lo cual los individuos no serán parecidos ni se estará forzando una generación estandar de individuos. Los valores de esta matriz varı́an de acuerdo a valores de eficiencia, penalidades por parte del empleado, etc. Estos valores influyen para que esta matriz tenga elementos dinámicos, lo que permitirı́a una mayor aleatoriedad de los individuos a generarse en la población inicial. Al modificar un elemento de la MPs los valores de la columna son afectados, de esta forma se recalcula la MPs para seguir cumpliendo la condición de que los elementos de una columna deben sumar 1. Para evitar el hecho de que un elemento pueda ser elegido varias veces, se normalizará cada columna de la MPs. 4.2.5. Función de Evaluación El cálculo de fitness del individuo se hará en base a la Ecuación 4.5 utilizando valores de la MPs. f (x) = n X n X M (i, j) ∗ I(i, j) (4.5) i=1 j=1 Ingenierı́a Informática - UCSP 55 4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados donde: f (x): es la función de evaluación. M : es la Matriz de Probabilidades. I: es el Individuo. i, j: son las posiciones en la Matriz de Probabilidades y la matriz del Individuo. Como previamente se ha definido, la MPs tiene una probabilidad por cada turno posible de cada empleado. Entonces para calcular el fitness en función de la MPs se multiplicará cada posición de la MPs con la posición del individuo, es decir si en el individuo la posición de turno está seleccionada, el valor a multiplicar serı́a 1, caso contrario 0. En las Figuras 4.29 y 4.30 se muestra un ejemplo básico de cálculo de fitness con la MPs. Figura 4.29: Ejemplo básico de un Horario y su respectiva Matriz de Preferencias. Figura 4.30: Valores obtenidos después de multiplicar posición por posición. Con los valores obtenidos después de la operación de evaluación del fitness se procede a sumar estos valores con lo que se obtendrı́a el valor del fitness de 7.88. Ingenierı́a Informática - UCSP 56 CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados 4.2.6. Parámetros del Modelo Para resolver este problema tomaremos en cuenta los parámetros detallados en el Cuadro 4.3. Parámetro Valor Tamaño de población Probabilidad de cruzamiento Probabilidad inicial de mutación Tamaño de clase 448 0.7 0.1 4 Cuadro 4.3: Parámetros Caso 2. 4.2.7. Resultados Es interesante verificar el desempeño de este operador de SDI en el AG, a continuación en la Figura 4.31 se muestra la comparación de los operadores de selección. Figura 4.31: Comparación entre Operadores de Selección. Analizando la Figura 4.31 para los distintos operadores de selección se observa que el operador de selección propuesto tiene una curva mejor definida en comparación a los demás operadores de selección, aunque no presente la misma rapidez de convergencia, mostrando una caracterı́stica exploratoria. La curva definida se da por el equilibrio entre exploración y explotación de las posibles soluciones. En la Figura 4.32 se observa la evaluación de Ingenierı́a Informática - UCSP 57 4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados las distintas probabilidades de cruzamiento y mutación para los operadores evolutivos propuestos. Figura 4.32: Comparación entre Probabilidades de Cruzamiento y Mutación. Las probabilidades óptimas de cruzamiento y mutación según [Srinivas and Patnaik, 1994] son de 0.65 y 0.008, en la Figura 4.32 se observa que las probabilidad 0.7 y 0.1 son más óptimas para este caso de uso. Debido a que el operador de SDI separa en clases a la población de individuos, se realizaron pruebas con diferentes cantidades de población para hallar la mejor y utilizarla como parámetro del algoritmo (Véase Figura 4.33). Figura 4.33: Comparación entre diferente número de Indidivuos en una Población Se observa que conforme el número de individuos aumenta, tiende a encontrar una mejor solución a nuestro problema hasta que llega al máximo de 448, después de este núIngenierı́a Informática - UCSP 58 CAPÍTULO 4. Casos de Estudio, Pruebas y Resultados mero de individuos el máximo tiende a disminuir. Como parte de ese objetivo especı́fico tambien se propone un operador de cruzamiento y mutación adecuado para nuestro operador de selección propuesto. En la Figura 4.34 se observa la evaluación de los distintos operadores de cruzamiento y mutación para encontrar el más apropiado para la propuesta. Figura 4.34: Comparación entre Operadores de Cruzamiento y Mutación En la Figura 4.35 se observan los resultados al modificar el tamaño de las clases en nuestro algoritmo. Se observa que mientras el tamaño de la clase sea mayor, menor será su eficiencia al momento de converger en la solución de nuestro caso de uso. Ingenierı́a Informática - UCSP 59 4.2. Caso de Estudio 2: Mejora de Calidad en Horarios de Empleados Figura 4.35: Comparación entre diferentes tamaños de clase A continuación en la Figura 4.36 se muestra la evolución de la calidad del horario generado conforme las generaciones son ejecutadas. Figura 4.36: Optimización de la Calidad de un Horario. Ingenierı́a Informática - UCSP 60 Capı́tulo 5 Conclusiones y Trabajos Futuros Se modeló un nuevo operador de selección denominado operador de SDI, el cual está basado en un EPPM. Adicionalmente se probó el nuevo operador con cuatro funciones Benchmarking y un problema de mejora de calidad en los horarios de trabajo. Analizando los resultados obtenidos, se comprueba que : El operador de SDI propuesto en este trabajo de investigación genera una curva definida independientemente del tamaño de la población. Por los resultados obtenidos, se observa que este operador de SDI no converge más rápido que los demás operadores en una población pequeña por lo que muestra una caracterı́stica exploratoria. Al incrementar el tamaño de la población. el operador de SDI tiende a mejorar considerablemente su eficiencia en cuanto a convergencia y el número de generaciones a ejecutar para encontrar la solución al problema atacado. El operador de SDI muestra una curva de convergencia uniforme, es decir no tiene el problema de la convergencia prematura. El esquema de ponderación propuesto para la mutación en este algoritmo ayuda a que se explore nuevas soluciones a costa de los individuos menos aptos, este esquema ayuda a explorar en el espacio de búsqueda cuando el tamaño de la población sea pequeña. Si bien no existe otro modelo que utilice una estructura que almacene valores de productividad o probabilidades para comparar los resultados de la calidad del horario obtenido, se observa que la propuesta obtiene un horario que mejora la calidad de acuerdo a la MPs. 61 5.1. Limitaciones 5.1. Limitaciones Las probabilidades y operadores de cruzamiento y mutación utilizados en este trabajo no siempre serán los más óptimos, esto varı́a según el problema a resolver. Si bien, conforme aumenta el tamaño de población el rendimiento del operador de SDI mejora. Cuando el espacio de búsqueda de un problema es pequeño, el operador de SDI no muestra una mejora significativa en comparación con los operadores de selección existentes. 5.2. Trabajos futuros En base a la propuesta del AG con el operador SDI y el EPPM que se propone en este trabajo de investigación. Para poder ser implementado en un contexto paralelo al quitar la dependencia entre las clases de la población, un trabajo futuro es la implementación de este algoritmo en un contexto masivamente paralelo (GPU) utilizando una Arquitectura Master-Slave Global (AMSG). Ingenierı́a Informática - UCSP 62 Bibliografı́a [Abdullah and Turabieh, 2012] Abdullah, S. and Turabieh, H. (2012). On the use of multi neighbourhood structures within a tabu-based memetic approach to university timetabling problems. Information Sciences, 191:146–168. [Beasley et al., 1993] Beasley, D., Bull, D. R., and Martin, R. R. (1993). An overview of genetic algorithms: Part 1, fundamentals. [Blickle and Thiele, 1995] Blickle, T. and Thiele, L. (1995). A comparison of selection schemes used in genetic algorithms. Technical report, Gloriastrasse 35, CH-8092 Zurich: Swiss Federal Institute of Technology (ETH) Zurich, Computer Engineering and Communications Networks Lab (TIK. [Broglio Carvalho et al., 2011] Broglio Carvalho, D., Nunes Bittencourt, J. C., and D’Martin Maia, T. (2011). The simple genetic algorithm performance: A comparative study on the operators combination. In INFOCOMP 2011, The First International Conference on Advanced Communications and Computation, pages 20–24. [Cheng et al., 2012] Cheng, R., Yao, M., Xue, X., and Shen, B. (2012). Bisexual evolution: A novel bisexual evolutionary framework based on the fisher’s runaway process. In Evolutionary Computation (CEC), 2012 IEEE Congress on, pages 1–8. [Digalakis and Margaritis, 2002] Digalakis, J. G. and Margaritis, K. G. (2002). On benchmarking functions for genetic algorithms. International Journal of Computer Mathematics, 79(4):403–416. [Gestal, 2010] Gestal, M. (2010). Introducción a los algoritmos genéticos. [Geyer et al., 1999] Geyer, H., Ulbig, P., and Schulz, S. (1999). Use of evolutionary algorithms for the calculation of group contribution parameters in order to predict thermodynamic properties: Part 2: Encapsulated evolution strategies. Computers and Chemical Engineering, 23(7):955 – 973. [Goh et al., 2003] Goh, K. S., Lim, A., and Rodrigues, B. (2003). Sexual selection for genetic algorithms. Artificial Intelligence Review, 19(2):123–152. [Goldberg, 1989] Goldberg, D. E. (1989). Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1st edition. 63 BIBLIOGRAFÍA [Grobner and Wilke, 2001] Grobner, M. and Wilke, P. (2001). Optimizing employee schedule by a hibrid genetic algorithm. Applications of Evolutionary Computing. Lecture Notes in Computer Science (2001), pages 463–472. [Holland, 1975] Holland, J. H. (1975). Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor, Michigan, first edition. [Jadaan et al., 2008] Jadaan, O. A., Rajamani, L., and Rao, C. R. (2008). www.jatit.org improved selection operator for ga. [Marczyk, 2004] Marczyk, A. (2004). Genetic algorithms and evolutionary computation. [Michalewicz, 1996] Michalewicz, Z. (1996). Genetic algorithms + data structures = evolution programs (3rd ed.). Springer-Verlag, London, UK, UK. [Montana et al., 1998] Montana, D., Brinn, M., Moore, S., and Bidwell, G. (1998). Genetic algorithms for complex, real-time scheduling. In Systems, Man, and Cybernetics. IEEE International Conference on (1998), pages 2213–2218. [Morz and Nysret, 2004] Morz, M. and Nysret, M. (2004). Genetic algorithm for rotating workforce scheduling problem. In Computational Cybernetics, 2004. ICCC 2004. Second IEEE International Conference (ICCC 2004), pages 121–126. [Oladele and Sadiku, 2013] Oladele, R. O. and Sadiku, J. S. (2013). Article: Genetic algorithm performance with different selection methods in solving multi-objective network design problem. International Journal of Computer Applications, 70(12):5–9. Published by Foundation of Computer Science, New York, USA. [Razali and Geraghty, 2011] Razali, N. M. and Geraghty, J. (2011). Article: Genetic algorithm performance with different selection strategies in solving tsp. International Journal of Computer ApplicationsProceedings of The World Congress on Engineering 2011, 2:1134–1139. [Rosenbrock, 1960] Rosenbrock, H. H. (1960). An automatic method for finding the greatest or least value of a function. [Rudolph, 1994] Rudolph, G. (1994). Convergence analysis of canonical genetic algorithms. Neural Networks, IEEE Transactions on, 5(1):96–101. [Srinivas and Patnaik, 1994] Srinivas, M. and Patnaik, L. M. (1994). Adaptive probabilities of crossover and mutation in genetic algorithms. IEEE Transactions on Systems, Man and Cybernetics (1994). [Tuttle, 1989] Tuttle, R. H. (1989). Arguments on evolution. a paleontologist’s perspective. American Journal of Physical Anthropology, 80(3):405–406. [Zhong et al., 2005] Zhong, J., Hu, X., Gu, M., and Zhang, J. (2005). Comparison of performance between different selection strategies on simple genetic algorithms. In Computational Intelligence for Modelling, Control and Automation, 2005 and International Conference on Intelligent Agents, Web Technologies and Internet Commerce, International Conference on, volume 2, pages 1115–1121. Ingenierı́a Informática - UCSP 64