Download Modelo heur´ıstico de afinación de parámetros sobre
Document related concepts
no text concepts found
Transcript
Modelo heurı́stico de afinación de parámetros sobre algoritmos evolutivos aplicados a problemas de optimización numérica con restricciones. Por: Francisco Daniel Hernández Rodrı́guez Tesis presentada para obtener el grado de: Maestro en redes y sistemas integrados Asesor: Dr. Efrén Mezura Montes. Laboratorio Nacional de Informática Avanzada, LANIA. Xalapa, Veracruz. 2012 i Maestrı́a en Redes y Sistemas Integrados Francisco Daniel Hernández Rodrı́guez Aprobado por: Sinodales: Laboratorio Nacional de Informática Avanzada, LANIA. Xalapa, Veracruz. 2012 iii Resumen En este trabajo de tesis se describe el desarrollo de un meta-algoritmo evolutivo afinador de parámetros de algoritmos evolutivos. Su objetivo consiste en mejorar el rendimiento de los algoritmos evolutivos mediante una definición automática de un conjunto especı́fico de valores en sus parámetros de entrada. Las pruebas se realizan sobre un conjunto de funciones de optimización conocidas, cuyos resultados son comparados contra resultados de la literatura especializada, y ası́ poder conocer el efecto entre el comportamiento de los algoritmos con parámetros seleccionados empı́ricamente y los afinados de forma automática. Cabe mencionar que el algoritmo afinador al igual que los algoritmos evolutivos, implementa componentes evolutivos para su funcionamiento, es decir, el algoritmo afinador de parámetros también es un algoritmo evolutivo. Ya que utiliza un enfoque basado en la evolución natural para afinar los parámetros de entrada de un conjunto de algoritmos evolutivos, los cuales son utilizados como elementos de entrada por el afinador, trabajando por ende en un nivel lógico más bajo. La implementación del algoritmo afinador automatiza la definición de parámetros de algoritmos evolutivos, los cuales en repetidas ocasiones mejoran los resultados originales, reduciendo drásticamente los recursos que necesita para su ejecución. iv v Agradecimientos A mis padres Blanca y Clemente, por su incansable e inmensa paciencia, por creer en mı́, en muchas ocasiones más que yo mismo, por apoyarme incondicionalmente y ser mi principal motivación. A mi abuelita Mercedes por apoyarme financieramente y ofrecerme palabras de aliento. Sin su apoyo no hubiera sido posible cumplir mi sueño. A mis compañeros del programa de maestrı́a: Alejandro, Ángel, Oscar Leal, Oscar Navarro, Joaquı́n, Daniel Méndez, Carlos, Samuel y Jorge, porque he aprendido mucho de cada uno de ellos, agradezco su amistad y el compartir buenos recuerdos. A mis amigos Alberto y Guadalupe por todo lo que he aprendido de ellos, por su apoyo en momentos difı́ciles, por nuestras aventuras y los buenos tiempos. Al Dr. Efrén Mezura Montes porque a pesar de su saturada agenda, siempre encontró un espacio para atenderme y resolver mis dudas, por guiarme siempre tan eficazmente. A todos los catedráticos que me dieron clase por todo el conocimiento que me transmitieron, por hacerme un mejor profesional. Al Laboratorio Nacional de Informática Avanzada, por abrirme las puertas y permitirme formar parte de esta gran institución. A las personas que trabajaron previamente en esta temática de investigación, basándome en su conocimiento entré en un área de trabajo fascinante. vi Índice general Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi Capı́tulos 1. Introducción . . . . . . . . . . . . 1.1. Planteamiento del problema . 1.2. Objetivos del trabajo de tesis 1.2.1. Objetivo general . . . . 1.2.2. Objetivos especı́ficos . 1.3. Resumen de capı́tulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 7 7 7 8 2. Optimización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. Introducción a la programación matemática . . . . . . . . . . . 2.2. Clasificación y enfoques de optimización . . . . . . . . . . . . . 9 9 13 3. Algoritmos evolutivos . . . . . . . . . . . 3.1. Componentes de algoritmos evolutivos 3.1.1. Representación de soluciones . . 3.1.2. Reproducción de individuos . . 3.1.3. Selección de soluciones . . . . . 3.2. Paradigmas de implementación . . . . 3.2.1. Algoritmos genéticos . . . . . . 3.2.2. Programación evolutiva . . . . . 3.2.3. Estrategia evolutiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 20 20 22 24 26 26 28 29 4. Afinación de parámetros . . . . . . . . . . . . . . . . . . 4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1. Costo de configurar parámetros . . . . . . . . . 4.1.2. Introducción al control de parámetros de EA . . 4.1.3. Definición de un afinador de parámetros . . . . 4.2. Clasificación de los métodos de afinación de parámetros 4.3. Métodos de afinación implementados . . . . . . . . . . 4.4. Robustez como medida de calidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 32 34 35 37 38 39 40 5. Algoritmos evolutivos implementados . . . . 5.1. Evolución diferencial (DE/rand/1/bin) . . . 5.1.1. Inicialización del algoritmo . . . . . 5.1.2. Mutación de los individuos . . . . . 5.1.3. Selección y eliminación de individuos 5.1.4. Manejo de restricciones . . . . . . . . 5.2. Evolución diferencial (DE/best/1/bin) . . . 5.3. Estrategia evolutiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 43 44 44 45 47 48 49 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1. Selección de individuos . . . . . . . . 5.3.2. Mutación . . . . . . . . . . . . . . . . 5.3.3. Recombinación . . . . . . . . . . . . . 5.3.4. Manejo de restricciones . . . . . . . . 5.4. Colonia artificial de abejas . . . . . . . . . . . 5.4.1. Selección de fuentes de alimento . . . 5.4.2. Mutación . . . . . . . . . . . . . . . . 5.4.3. Mecanismo de reemplazo . . . . . . . 5.4.4. Manejo de restricciones . . . . . . . . 5.5. Resultados experimentales . . . . . . . . . . . 5.5.1. Resultados de funciones CEC 2006 . . 5.5.2. Comparación de resultados contra referencia (Benchmark) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . el . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . entorno . . . . . 6. Algoritmo propuesto de afinación de parámetros . . 6.1. Afinación de parámetros en APEA . . . . . . . . . . 6.2. Definición de la propuesta . . . . . . . . . . . . . . . 6.2.1. Inicialización del algoritmo . . . . . . . . . . . 6.2.2. Mutación de los individuos . . . . . . . . . . . 6.2.3. Selección de los sobrevivientes . . . . . . . . . 6.2.4. Manejo de restricciones . . . . . . . . . . . . . 6.3. Resultados experimentales . . . . . . . . . . . . . . . 6.3.1. Tablas de comparación de resultados afinados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . de . . . 51 52 52 53 53 56 58 59 59 59 60 . . . . . . . . . 71 72 75 80 82 83 84 85 90 . . . . . . . . . . . . . . . . . . 65 7. Comentarios finales . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 7.2. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Anexos A. Gráficas de dispersión: resultados originales vs afinados . . . 106 B. Gráficas de dispersión: comparación entre EAs afinados . . . 128 Lista de referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 viii Índice de cuadros 1. 2. 3. Aplicaciones de los algoritmos genéticos. . . . . . . . . . . . . . Aplicaciones de programación evolutiva. . . . . . . . . . . . . . Aplicaciones de EE. . . . . . . . . . . . . . . . . . . . . . . . . 28 29 30 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Parámetros de evolución diferencial. . . . . . . Parámetros de estrategia evolutiva. . . . . . . . Parámetros de Colonia Artificial de Abejas. . . Resultados originales CEC2006: g01-g05. . . . . Resultados originales CEC2006: g06-g10. . . . . Resultados originales CEC2006: g11-g15. . . . . Resultados originales CEC2006: g16-g20. . . . . Resultados originales CEC2006: g21-g24. . . . . Comparación de resultados CEC2006: g01-g06. Comparación de resultados CEC2006: g07-g12. Comparación de resultados CEC2006: g13-g18. Comparación de resultados CEC2006: g19-g24. Prueba Wilcoxon para los EA sobre CEC 2006. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 50 56 61 62 63 64 65 66 66 66 66 68 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Parámetros en APEA. . . . . . . . . . . . . . . . . . . . Conjuntos de parámetros afinados para EDB. . . . . . . Conjuntos de parámetros afinados para EDR. . . . . . . Conjuntos de parámetros afinados para ES. . . . . . . . Conjuntos de parámetros afinados para ABC. . . . . . . Valores promedio de parámetros afinados de los EA. . . Resultados afinados CEC2006: g01-g05. . . . . . . . . . . Resultados afinados CEC2006: g06-g10. . . . . . . . . . . Resultados afinados CEC2006: g11-g15. . . . . . . . . . . Resultados afinados CEC2006: g16-g20. . . . . . . . . . . Resultados afinados CEC2006: g21-g24. . . . . . . . . . . Comparación de resultados afinados CEC2006: g01-g04. . Comparación de resultados afinados CEC2006: g05-g08. . Comparación de resultados afinados CEC2006: g09-g12. . Comparación de resultados afinados CEC2006: g13-g16. . Comparación de resultados afinados CEC2006: g17-g20. . Comparación de resultados afinados CEC2006: g21-g24. . Prueba Wilcoxon para los EA afinados. . . . . . . . . . . Mejores resultados alcanzados por los EA afinados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 . 86 . 87 . 88 . 89 . 90 . 91 . 92 . 93 . 94 . 95 . 96 . 96 . 97 . 97 . 98 . 98 . 99 . 101 ix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Índice de figuras 1. 2. Modelo de un espacio de búsqueda. . . . . . . . . . . . . . . . . . Ejemplo de espacio de búsqueda abstracto con restricciones. . . . . 3. 4. 5. una 6. Ejemplo de principio de dualidad. . . . . . . . . . . . . . . . Espacio de búsqueda con óptimos locales. . . . . . . . . . . . Espacio de soluciones para un problema de dos variables y restricción de igualdad. . . . . . . . . . . . . . . . . . . . . Representación geométrica de programación no lineal . . . . . . . . . . . 16 16 7. 8. 9. 10. Ejemplo del proceso evolutivo. . . . . . . . Analogı́a de representación de un individuo. Ejemplo de cruza en un punto. . . . . . . . Ejemplo de cruza punto a punto. . . . . . . . . . . . . . 18 21 23 23 11. 12. 13. 14. Parámetros usados en algoritmos evolutivos. . . . . Representación en capas del contexto de un algoritmo Objetivos de configuración de parámetros. . . . . . . Estructura lógica de un afinador de parámetros. . . . . . . . . . . . . . . . . . . . . . . . . . . 32 33 36 37 15. 16. 17. 18. 19. 20. 21. Representación de los individuos. . . . . Creación del vector mutante de DE. . . . Recombinación en evolución diferencial. . Selección para (µ + λ)-ES. . . . . . . . . Selección para (µ, λ)-ES. . . . . . . . . . Entorno de la colonia artificial de abejas. Selección por sub-torneos binarios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 45 46 51 51 55 57 22. 23. 24. 25. 26. Estructura del afinador de parámetros propuesto. . . . . . . . . Representación de los individuos en APEA. . . . . . . . . . . . Arreglo tridimensional de parámetros optimizados en el afinador. Archivo de texto con los nombres de los algoritmos evolutivos. . Archivo de texto de información de variables objeto. . . . . . . . . . . . . . . . . 71 76 78 80 81 A.1. Comparación de CEC2006, G01. . Comparación de CEC2006, G02. . Comparación de CEC2006, G03. . Comparación de CEC2006, G04. . A.2. A.3. A.4. . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . x . . . . . . . . . . . . . . . . . . . . . . vs . . vs . . vs . . vs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . evolutivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . 2 4 11 12 106 107 108 109 A.5. A.6. A.7. A.8. A.9. A.10. A.11. A.12. A.13. A.14. A.15. A.16. A.17. A.18. A.19. A.20. A.21. A.22. B.1. B.2. B.3. B.4. B.5. Comparación de CEC2006, G05. . Comparación de CEC2006, G06. . Comparación de CEC2006, G07. . Comparación de CEC2006, G08. . Comparación de CEC2006, G09. . Comparación de CEC2006, G10. . Comparación de CEC2006, G11. . Comparación de CEC2006, G12. . Comparación de CEC2006, G13. . Comparación de CEC2006, G14. . Comparación de CEC2006, G15. . Comparación de CEC2006, G16. . Comparación de CEC2006, G17. . Comparación de CEC2006, G18. . Comparación de CEC2006, G19. . Comparación de CEC2006, G21. . Comparación de CEC2006, G23. . Comparación de CEC2006, G24. . Comparación Comparación Comparación Comparación Comparación resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . resultados originales . . . . . . . . . . . . . general, general, general, general, general, función función función función función CEC CEC CEC CEC CEC xi 2006, 2006, 2006, 2006, 2006, vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . vs . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . afinados, función . . . . . . . . . . . g01. . . g02. . . g03. . . . g04. . . g05. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 128 129 129 130 B.6. B.7. B.8. B.9. B.10. B.11. B.12. B.13. B.14. B.15. B.16. B.17. B.18. B.19. B.20. B.21. B.22. Comparación Comparación Comparación Comparación Comparación Comparación Comparación Comparación Comparación Comparación Comparación Comparación Comparación Comparación Comparación Comparación Comparación general, general, general, general, general, general, general, general, general, general, general, general, general, general, general, general, general, función función función función función función función función función función función función función función función función función CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC CEC xii 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, g06. . . . . . . . g07. . . . . . . . g08. . . . . . . . g09. . . . . . . . g10. . . . . . . . g11. . . . . . . . g12. . . . . . . . g13. . . . . . . . g14. . . . . . . . g15. . . . . . . . . g16. . . . . . . . g17. . . . . . . . g18. . . . . . . . g19. . . . . . . . g21. . . . . . . . g23. . . . . . . . g24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 131 131 132 132 133 133 134 134 135 135 136 136 137 137 138 138 CAPÍTULO 1 Introducción La computación evolutiva se ha convertido en un área de gran interés, debido a que ha demostrado mediante sus aplicaciones, que puede encontrar soluciones bastante competitivas sobre problemas de optimización [1–4]. Las técnicas de evolución en la naturaleza se han aplicado a problemas donde se pretende obtener los mejores resultados y donde las caracterı́sticas de los estos mismos problemas los hacen demasiado extensos o complejos para resolver con métodos tradicionales, ejemplos de éstos se pueden encontrar en [5] y [6]. Este enfoque de computación no es nuevo, sin embargo ha ganado mucho terreno, entre otras cosas por que en numerosos casos ha probado estar a la altura de la misma inteligencia humana sobre problemas altamente complejos o flexibles, encontrando soluciones similares a problemáticas de la vida real. Por lo tanto, no sorprende encontrar un incremento importante en la investigación e implementaciones de algoritmos evolutivos, por su capacidad de obtener buenos resultados y en algunas ocasiones alcanzar la calidad de las soluciones basadas en la experiencia humana. Con el incremento de aplicaciones y conocimiento, es muy común enfrentarse con la necesidad de resolver problemas con una gran cantidad de variantes, por ende, un gran número de posibles soluciones. Los algoritmos evolutivos están inspirados en la naturaleza (bio-inspirados) porque trabajan imitando los procesos de evolución biológica natural como estrategia de solución de problemas, en este caso, utilizada para buscar la mejor solución entre un conjunto finito predeterminado de posibles soluciones. Los algoritmos bio-inspirados utilizan técnicas de optimización y búsquedas de soluciones basadas en la selección natural y genética, solucionando problemas no lineales que involucran muchas variables sobre problemas complejos. El conjunto de posibles soluciones es expuesto iterativamente a diferentes subprocesos como el de reproducción, mutación y sobrevivencia de los más aptos, con el objetivo final de seleccionar estocásticamente el camino que deben tomar a través del tiempo [7]. El objetivo primario de este tipo de algoritmos es recorrer un conjunto de propiedades modeladas en un espacio de soluciones, para encontrar aquella solución óptima global. Uno de los principales problemas, consiste en búsquedas sobre 1 Capı́tulo 1. Introducción LANIA espacios demasiado extensos o quizá demasiado complejos por el conjunto de caracterı́sticas que comparten. En cualquiera de los casos obtener la mejor solución resulta altamente complejo. La Figura 1 muestra un ejemplo gráfico abstracto de un espacio de búsqueda de soluciones. Figura 1: Modelo de un espacio de búsqueda. Los algoritmos evolutivos están inspirados en la naturaleza (bio-inspirados) porque trabajan imitando los procesos de evolución biológica natural como estrategia de solución de problemas, en este caso, utilizada para buscar la mejor solución entre un conjunto finito predeterminado. Utilizan técnicas de optimización y búsquedas de soluciones basadas en la selección natural y genética, solucionando problemas no lineales que involucran muchas variables sobre problemas complejos. El conjunto de posibles soluciones es expuesto iterativamente a diferentes subprocesos como el de reproducción, mutación y sobrevivencia de los más aptos, con el objetivo final de seleccionar estocásticamente el camino que deben tomar a través del tiempo [7]. Los individuos representan soluciones, proyectando mediante sus propiedades información de la función objetivo, por lo tanto, toda solución encontrada consiste en la inclusión de uno o más objetivos, los cuales se obtienen del procesamiento de un conjunto de variables. En este trabajo se considera la optimización de un objetivo, sin embargo, se puede obtener una buena introducción a la optimización multi-objetivo en [8–10]. Después de haber establecido la complejidad de traducir la problemática en un espacio de soluciones, ası́ como la dificultad tanto de representar las soluciones mediante individuos como de recorrer el espacio de búsqueda, la siguiente problemática radica en asegurar que los algoritmos pueden ejecutarse correctamente. Cada algoritmo tiene un conjunto de valores que le indican el tamaño de la población, número de generaciones, ası́ como parámetros referentes 2 Capı́tulo 1. Introducción LANIA al subproceso de selección de los individuos más fuertes. Una correcta definición de los parámetros de entrada puede marcar la diferencia en los resultados obtenidos [11], puesto que marcan la forma en que exploran el espacio de soluciones. Si esto es tan importante, surgen algunos cuestionamientos, por ejemplo, ¿Cuál es el tamaño de la población necesario?, ¿Qué rango de parentesco deben tener los individuos resultado de la reproducción?, ¿Cómo seleccionar los individuos que deben sobrevivir a las siguientes generaciones?. Resolver este tipo de cuestiones puede ser visto como un subproblema de optimización en que la mayorı́a de los diseñadores de algoritmos bio-inspirados tienden a invertir una gran cantidad de tiempo [12]. 1.1. Planteamiento del problema Este trabajo consiste en desarrollar un algoritmo de afinación de parámetros de entrada en otras heurı́sticas aplicadas a problemas de optimización numérica. El algoritmo de afinación se considerará un algoritmo de alto nivel, mientras que los algoritmos a configurar pueden ser vistos como algoritmos de bajo nivel, estos últimos resuelven problemas de optimización numérica, los cuales a su vez pueden ser generalizados como el problema de programación no lineal, que se define, sin perdida de generalidad, como: Encontrar x que minimiza: f (x) (1.1.1) gi (x) ≤ 0, i = 1, ..., m hj (x) = 0, j = 1, ..., p (1.1.2) (1.1.3) sujeta a ¡ ~ ∈ Rn , X ~ es un vector de n variables de decisión x = donde x ∈ X T [x1 , x2 , ..., xn ] y cada xi = 1, ..., n está acotada por limites inferiores y superiores Li ≤ xi ≤ Ui , los cuales definen el espacio de búsqueda S. F es el conjunto de todas las soluciones que satisfacen las restricciones 1.1.2 y 1.1.3 del problema y se le llama zona factible, siendo claro que F ⊂ S, m es el número de restricciones de desigualdad y p es el número de restricciones de igualdad. Las restricciones y la función objetivo pueden ser lineales y/o no lineales. Esta información se encuentra 3 Capı́tulo 1. Introducción LANIA detallada en [13]. Definición 1.1.1. Las variables de decisión son las variables xi y componen la función de evaluación f (~x) cuya evaluación genera el valor de calidad de un individuo dentro de la población. Definición 1.1.2. Aptitud es el nombre del valor con el cual se mide la calidad de un individuo, usualmente es el resultado de la aplicación de la función de evaluación. Resumiendo la notación encontrada en la definición de PNL (Programación no lineal), se tiene lo siguiente: xi representa una variable de decisión considerada en el modelo, mientras ~ representa a un vector de variables objeto (al conjunto de variables que X que conforman una solución) f representa la función objetivo, la cual es la función compuesta por las variables objeto que queremos maximizar o minimizar. gi y hi representan las funciones de restricción, las cuales definen igualdades ~ deben satisfacer. o desigualdades que los valores de X Figura 2: Ejemplo de espacio de búsqueda abstracto con restricciones. 4 Capı́tulo 1. Introducción LANIA La Figura 2 muestra un ejemplo gráfico abstracto, el cual representa los elementos que conforman la definición de problema de optimización no lineal definido anteriormente. En esta imagen se puede apreciar un conjunto de cı́rculos en un espacio de búsqueda (fondo blanco). Cada cı́rculo hace referencia a un subconjunto de soluciones, se dice que una solución dentro de un cı́rculo satisface sus requerimientos, de esta manera, se entiende que cada restricción mantiene un conjunto propio de requerimientos. Ası́ pues, optimización consiste en encontrar la mejor solución dentro del espacio de búsqueda que cumple con los requerimientos de todas las restricciones previamente definidas. Para este caso, el subconjunto de soluciones factibles F se encuentra en la intersección de todas las restricciones. En este trabajo se pretende encontrar una solución meta-heurı́stica que utilice información de las instancias de algoritmos evolutivos (información no relacionada con su implementación), y que en base a su manipulación a un nivel más alto, devuelva aquella configuración de parámetros que minimice la cantidad de tiempo y recursos necesarios para mantener la calidad de los resultados originales, obtenidos por la máxima cantidad permitida de evaluaciones. En la primera parte se realiza el análisis de cuatro algoritmos evolutivos: Colonia Artificial de Abejas (ABC), Evolución Diferencial Rand (EDR), Evolución Diferencial Best (EDB) y la Estrategia Evolutiva (µ, λ) (ES−(µ, λ)). En este punto se pretende obtener resultados sobre las funciones de evaluación presentadas en el congreso de computación evolutiva (IEEE CEC) del 2006. Los resultados de las funciones se obtienen bajo la restricción de un número lı́mite de evaluaciones de individuos, el cual, al inicio es el máximo con el que comúnmente se han evaluado estas heurı́sticas (500,000). Los resultados obtenidos de los algoritmos evolutivos serán comparados contra los oficiales del congreso CEC 2006 [14], por lo tanto, la información de esta referencia será tomada como el entorno de pruebas de comparación, referido desde ahora como “BenchMark”. El estudio de los resultados de la primera sección, permitirá visualizar de forma rápida la calidad de todas las instancias implementadas, con el objetivo de clasificarlos en forma descendente del mejor al peor algoritmo. La idea de jerarquı́zarlos radı́ca en obtener una medida de comparación entre los mismos y conocer la evolución de sus resultados después de ser afinados. La segunda parte presenta, en base a la información introductoria, una descripción detallada de los procesos de un algoritmo evolutivo que logra afinar o configurar los parámetros de las heurı́sticas de la sección anterior. El resultado 5 Capı́tulo 1. Introducción LANIA del algoritmo será una configuración de parámetros que se considera óptima para cada heurı́stica y válida para todas las funciones de bajo nivel evaluadas. La aplicación de una configuración óptima de parámetros considera mantener la calidad de los resultados de la primer sección, en muchos casos mejorarlos, pero con una cantidad de evaluaciones menor. Lo anterior permite que los algoritmos tengan un comportamiento más ágil sobre un entorno complejo donde es necesario analizar mucha información y encontrar soluciones en poco tiempo. Una configuración en los valores de los parámetros que resulta en una reducción de sus valores implica una cantidad menor de evaluaciones, mientras que una cantidad reducida de evaluaciones permite ahorrar tiempo de ejecución y recursos computacionales. Se debe tomar en cuenta que el objetivo consiste en disminuir el número de evaluaciones a realizar por el algoritmo evolutivo dependiendo de las caracterı́sticas de cada problema de optimización y de cada EA, sin perder calidad en sus resultados. Cuando se devuelve un conjunto de valores para los parámetros de un EA que cumplen con estas caracterı́sticas, se dice que se han configurado los parámetros del EA. Este enfoque resulta de la experimentación de trabajar con algoritmos evolutivos y funciones de evaluación complejas, siempre se tiene que tomar en cuenta la gran cantidad de tiempo que estas pueden requerir para ejecutarse, se genera esta propuesta de afinador de parámetros de EA’s, sugiriendo que una buena configuración de sus parámetros puede redefinir los resultados de cualquier algoritmo de búsqueda. Es importante recordar que los algoritmos evolutivos pretenden resolver un conjunto de funciones de optimización numérica, mientras que el algoritmo afinador toma los valores de parámetros de estos algoritmos evolutivos para optimizarlos. En otras palabras, El algoritmo afinador utiliza los algoritmos evolutivos como entrada, mientras que los algoritmos evolutivos intentar resolver problemas de optimización especı́ficos. Si los algoritmos evolutivos forman parte del afinador, podemos decir que los algoritmos evolutivos trabajan en un nivel bajo y el afinador trabaja sobre el dominio de los parámetros de los algoritmos evolutivos (EA, por sus siglas en inglés) a un nivel superior. Para evitar ambigüedad de referencia a los métodos, se hará referencia a los algoritmos de bajo nivel como algoritmos evolutivos, mientras que al algoritmo evolutivo de afinación de parámetros como algoritmo afinador. 6 Capı́tulo 1. Introducción 1.2. LANIA Objetivos del trabajo de tesis Los objetivos se han definido como un objetivo general y especı́ficos que se delimitan de la siguiente forma: 1.2.1. Objetivo general Diseñar, desarrollar e implementar un algoritmo meta-heurı́stico de afinación de parámetros de algoritmos evolutivos. 1.2.2. Objetivos especı́ficos Implementar un algoritmo que devuelva un conjunto de instancias de algoritmos evolutivos con resultados competentes, con la capacidad de comunicarse de manera uniforme con diferentes instancias de EA, teniendo la posibilidad de implementarse con diferentes EA’s por usuarios con poco conocimiento técnico acerca de los problemas de optimización a resolver. Realizar una comparación entre los resultados obtenidos de la ejecución de los EA con un número de evaluaciones igual a 5×105 (resultados originales), contra los obtenidos con la ejecución de EA afinados. Lograr configuraciones de parámetros que permitan reducir la cantidad de esfuerzo computacional requerido para obtener resultados, mientras que los parámetros mejorados mantienen la bondad de la calidad con respecto a los originales. Comparar los resultados obtenidos contra los reportados en la literatura especializada. Los resultados derivados de la implementación del algoritmo afinador deben ser cercanos a los resultados del entorno de pruebas adoptado para la implementación de los algoritmos evolutivos. Describir diferentes caracterı́sticas del algoritmo afinador, tal como su aplicabilidad sobre un conjunto de funciones de evaluación, calidad y robustez de sus resultados. Aportar conocimiento en la afinación de parámetros sobre algoritmos evolutivos. 7 Capı́tulo 1. Introducción 1.3. LANIA Resumen de capı́tulos Para proporcionar una vista general de esta tesis, se describe brevemente el contenido de cada capı́tulo de la siguiente manera: Capı́tulo 2. Presenta un resumen del contexto y definición del problema de optimización numérica. Capı́tulo 3. Introduce los conceptos que manejan los algoritmos evolutivos, ası́ como las ventajas y desventajas que presentan sobre los algoritmos tradicionales. Capı́tulo 4. Muestra una recopilación de información sobre los problemas relacionados con el afinamiento de parámetros. Capı́tulo 5. Describe los métodos de desarrollo utilizados para la implementación de los algoritmos evolutivos, los cuales son: Evolución Diferencial Rand (EDR), Evolución Diferencial Best (EDB), Estrategia Evolutiva (µ, λ), Colonia Artificial de Abejas (ABC), los cuales se comparan contra los resultados reportados en la literatura especializada para el congreso de computación evolutiva CEC 2006. Capı́tulo 6. Expone el desarrollo e implementación del algoritmo principal dedicado al afinamiento de parámetros de los algoritmos evolutivos implementados, resultando en la comprobación del buen funcionamiento del método desarrollado. Capı́tulo 7. Presenta de forma resumida las conclusiones de la implementación y análisis de los resultados obtenidos del algoritmo afinador de parámetros, ası́ como el trabajo futuro que el autor considera importante. Anexo A. Presenta un conjunto de gráficas de comparación de resultados de los cuatro algoritmos evolutivos. La comparación se realiza con todas las funciones de optimización, tomando en cuenta los valores obtenidos antes y después de afinar sus parámetros. Anexo B. Presenta un conjunto de gráficas de comparación que muestra la dispersión de los resultados de las cuatro instancias de algoritmos evolutivos afinados. Cada gráfica muestra la comparación de los cuatro algoritmos evolutivos con los resultados obtenidos para una función CEC 2006 especı́fica. 8 CAPÍTULO 2 Optimización “La gente optimiza. Los inversionistas buscan crear conjuntos de herramientas que puedan evitar un riesgo excesivo, mientras obtienen rangos altos en ganancia. Los manufactureros buscan la máxima eficiencia en el diseño y operación de sus procesos de producción. Los ingenieros ajustan sus parámetros para optimizar el rendimiento de sus diseños. La naturaleza optimiza, los sistemas fı́sicos tienden a establecer el mı́nimo de energı́a, las moléculas en un sistema quı́mico solado reaccionan entre si, hasta la energı́a potencial de sus electrones se vuelve mı́nima, los rayos de luz siguen rutas que minimizan el tiempo de su recorrido” [15]. La optimización se encuentra en todas las áreas del conocimiento, existen problemas con diferentes caracterı́sticas, ası́ como nuevas herramientas para lograr mejores resultados, por muchos aspectos es considerada un área abierta a la investigación [16]. Este capı́tulo pretende dar una idea introductoria básica y breve sobre el contexto de la optimización matemática, también llamada programación matemática o simplemente optimización. Es importante conocer este tema, ya que es la base de la optimización con restricciones, optimización numérica y algoritmos evolutivos [17, 18]. 2.1. Introducción a la programación matemática Las técnicas de optimización han sido utilizadas para resolver un conjunto amplio de problemas, tales como: definición de caminos óptimos para vehı́culos espaciales, problemas de diseño aeronáuticos, diseño de componentes mecánicos, diseño de turbinas-enfriadores, diseño de material eléctrico, diseño de redes eléctricas o hidráulicas, optimización de horarios, optimización de procesos quı́micos, entre otros [13]. Definición 2.1.1. Optimización trata de calcular o determinar el valor mı́nimo o el valor máximo de la función compuesta por un conjunto de variables. Se entiende también por el acto de obtener el mejor resultado posible dadas ciertas circunstancias [19]. 9 Capı́tulo 2. Optimización LANIA Las caracterı́sticas de un problema, son todas aquellas variables o factores no conocidos que intervienen en el desarrollo de una solución. El objetivo principal de un procedimiento de optimización, consiste en encontrar valores para las variables, de tal manera que optimicen el objetivo (el valor devuelto), tomando en cuenta que en muchas ocasiones los valores pueden estar restringidos. Definición 2.1.2. Se conoce como función objetivo a una definición que representa formalmente lo que se quiere optimizar, comúnmente f : X 7−→ Y, donde Y ⊆ R. El proceso de representar el valor de la función objetivo, las variables y sus restricciones para un problema especı́fico se conoce como modelado de la problemática [20, 21]. De esta manera, desarrollar un modelo apropiado es el primer paso del camino (quizá el más importante) del proceso de optimización [15]. Dependiendo de la calidad, resultará la factibilidad, no simplemente de obtener buenos resultados, sino de por lo menos tratar adecuadamente el problema. Después de que se logra modelar el problema tratado, existe la posibilidad de usar el algoritmo para encontrar una solución, teniendo en cuenta que la decisión de implementar algún método radica en las caracterı́sticas observadas, ası́ como en el criterio del usuario interesado, de tal manera, en este paso se debe escoger un algoritmo, entre un conjunto disponible que sea adecuado a la situación actual, esperando (usualmente basado en la experiencia) que esta decisión sea la correcta. Hasta este punto, tomando en cuenta métodos de optimización tradicionales como métodos matemáticos o métodos de búsqueda exhaustivos, se puede decir que optimizar es una tarea bastante compleja, debido a que se necesitan conocimientos profundos tanto del contexto del problema, ası́ como de técnicas complejas de búsqueda de soluciones, para de esta manera definir una la solución apropiada al problema en cuestión. 10 Capı́tulo 2. Optimización LANIA Figura 3: Ejemplo de principio de dualidad. La Figura 3, la cual representa el principio de dualidad en optimización, muestra una representación gráfica arbitraria, supone que el eje que contiene los valores de x, representa en cada punto un vector de variables de decisión del modelo, mientras que el eje Y, representa el valor f (x) resultado del vector coincidente en el plano cartesiano. La optimización intenta obtener aquella solución que se considera mejor entre todas las demás, ya sea al minimizar o maximizar el valor encontrado por la evaluación. Con fines prácticos, en la Figura 3 se puede identificar el principio de dualidad indicando que el mı́nimo de una función f (x) es igual al valor negativo del máximo −f (x) o que el mı́nimo y máximo globales son contrarios en el plano cartesiano. [19]. Dependiendo de las caracterı́sticas del espacio de soluciones, surgen diferentes restricciones que brindan una configuración particular del problema. El esfuerzo de la optimización se concentra en el estudio e implementación de metodologı́as diversas, con el objetivo de conseguir los mejores resultados sobre diferentes instancias de los problemas analizados. Existen muchos problemas que surgen en el estudio de soluciones de optimización, ası́ como también muchas propuestas de solución, sin embargo, se propone que todas estas soluciones se dirigen al resultado por medio de la convergencia [22]. Considérese por ejemplo el proceso automático de creación de una pieza mecánica compuesta por diferentes elementos. La solución deseada puede consistir en encontrar una sucesión de actividades que utilizan en cada paso los mejores 11 Capı́tulo 2. Optimización LANIA recursos para producir una pieza de buena calidad, al menor precio (los componentes de la pieza) y empleando la menor cantidad de tiempo en su fabricación. Lo que se intenta resaltar es que si existe un conjunto de soluciones para el problema planteado, donde la idea es escoger aquella solución con una mejor calidad (representada por un valor), entonces existirán soluciones que pueden aparentar ser la que se busca (pero no lo son), por lo que se hace necesario encontrar una manera de discriminarlas y seleccionar la mejor de ellas. Este tipo de soluciones aparentemente buenas se llaman “óptimos locales”. ~ de una función objetivo f , es un Definición 2.1.3. Un mı́nimo local xi ∈ X elemento de entrada dentro de un vecindario V , donde f (xi ) ≤ f (x) para todos los vecinos conocidos por x ∈ V . ~ de una función objetivo f , es un Definición 2.1.4. Un mı́nimo global xi ∈ X ~ donde X ~ ∈ R. elemento de entrada con f (xi ) ≤ f (x) ∀ x ∈ X, Figura 4: Espacio de búsqueda con óptimos locales. La Figura 4 [23] muestra un ejemplo de espacio de búsqueda donde existen soluciones óptimas locales, viéndolo de esta forma se puede hacer la analogı́a de un espacio de soluciones con un terreno fı́sico. Con esta perspectiva, el proceso de optimización es utilizado como una forma eficiente de encontrar el punto de la superficie más alta (o baja) del terreno previamente desconocido, tomando 12 Capı́tulo 2. Optimización LANIA en consideración sólo información parcial relativa al sub-espacio de búsqueda analizado en determinado momento, tomando en cuenta también que un terreno puede ser inmensamente grande. 2.2. Clasificación y enfoques de optimización En este capı́tulo, se considera importante presentar cuatro aspectos de entre otros existentes, los cuales ayudan a comprender el proceso de optimización [24]. Lo relevante de estos aspectos radica en que al definirlos se puede conseguir una clasificación acerca de los tipos de optimización y generar un conocimiento especı́fico sobre el proceso de optimización enfocado en la propuesta de trabajo final, manteniendo un panorama general alrededor del mismo. Se encuentran otros ejemplos interesantes de clasificación en [13] y [22]. La primera clasificación toma en cuenta el tipo de valores que representan a las variables, ası́ como las estructuras manipuladas para la representación de las variables definidas. Optimización numérica: Se busca un conjunto de valores para las variables del problema, donde las variables pertenecen a un dominio de valores exactos contables (números enteros, decimales, etc) de manera que al sustituirse en la función objetivo se maximice o minimice el valor de esta función. Un ejemplo de este problema puede ser el diseño de una pieza mecánica, donde se buscan valores óptimos de sus dimensiones para minimizar su costo de fabricación. [25]. Optimización combinatoria: Se busca encontrar el ordenamiento de un conjunto de elementos de manera que se maximice o minimice el valor de la función objetivo. Un ejemplo de este tipo de problemas es el del agente viajero, que debe recorrer un conjunto de ciudades, pasando por ellas sólo una vez, de manera que regrese a su punto de salida y se minimice el costo del viaje. [26, 27]. Otra clasificación se basa en el alcance del espacio de búsqueda representado en el modelo. En esta clasificación se toma en cuenta el tamaño del espacio de búsqueda, derivado del tipo de variables que lo componen. Optimización discreta: Su principal caracterı́stica consiste en trabajar con variables numerables, es decir, que el conjunto de posibles valores para cada variable, dentro del espacio de soluciones es finito y se puede contar, un ejemplo de esto es la programación que ocupa valores enteros [28]. 13 Capı́tulo 2. Optimización LANIA Optimización continua: A diferencia de la anterior, toma conjuntos de valores no contables o infinitos (números reales). A pesar de la dificultad que implica buscar en un dominio infinito, los valores reales suponen la facilidad de adecuarse con exactitud a las funciones de los métodos y algoritmos de búsqueda [29]. Otra clasificación pertinente consiste en las bases con las que se modela el espacio de soluciones, especı́ficamente trata de los valores permitidos por las variables a considerar. Optimización sin restricciones: Se refiere al caso de optimización, donde no existen restricciones, el valor que toman las variables en cada momento del proceso es el resultado de escoger un valor dentro del dominio especificado, tomando en cuenta la premisa de la falta de restricciones para encontrar la solución final [15, 30]. Optimización con restricciones: Al contrario de la anterior, en este tipo de procedimientos, los posibles valores de las variables de la solución final, se encuentran limitados por un conjunto de restricciones predefinidas, tales como restricciones de igualdad o desigualdad (se explican adelante), que afectan completamente la definición del método de solución, ası́ como los resultados a obtener [31, 32]. La última clasificación presentada se refiere al conocimiento “a priori” que el método de búsqueda tiene sobre el espacio de soluciones, siendo el motivo principal en el desarrollo de su actividad. Optimización estocástica: El algoritmo de búsqueda no conoce información sobre el modelo de la problemática, por lo cual puede actuar por medio del aprendizaje y experiencia obtenida por la interacción con su entorno [33]. Optimización determinista: Se da cuando se tiene cierto conocimiento del contexto o se tienen modelos derivados basados en experiencia, en este caso se actúa mediante probabilidades que dan cierto rango de seguridad, aunque también consideran porcentajes de error [15]. Definición 2.2.1. Es importante explicar que las caracterı́sticas de los problemas abordados en este trabajo se refieren a optimización con restricciones, valores continuos y técnicas de optimización numérica, que en conjunto se relacionan al paradigma de optimización con el nombre de “Programación no lineal”. En el siguiente apartado se exponen algunos métodos de solución de problemas de programación no lineal que se han utilizado para encontrar soluciones dentro del paradı́gma de programación no lineal: 14 Capı́tulo 2. Optimización LANIA Métodos clásicos: Este tipo de algoritmos de búsqueda se centran en la obtención del mejor resultado, teniendo como ventaja una garantı́a de que siempre va a devolver la solución óptima global. Este tipo de métodos son la primera opción a tomar en cuenta al tratar de resolver los problemas de optimización citados [34, 35]. Métodos heurı́sticos: Se centran en buscar de forma inteligente sobre el espacio muestral, al seleccionar una muestra del mismo, apostando que dentro de ésta, se encuentra la solución óptima global [36, 37]. Métodos hiper-heurı́sticos: Conservan todas las bondades de los métodos heurı́sticos y meta-heurı́sticos, añadiendo la posibilidad de combinarlos y obtener mejores resultados [38, 39]. Definición 2.2.2. Una heurı́stica es el componente de un algoritmo de búsqueda que utiliza información dinámica local para formular su decisión sobre cual será la siguiente opción a evaluar y como debe ser generado el siguiente individuo de la población. La Figura 5 muestra un ejemplo abstracto de optimización con dos variables de decisión x1, x2 y una restricción de igualdad c1 , representadas en un plano cartesiano. Se puede observar que los contornos circulares referencı́an los valores de las variables de desición dentro del problema acotados por la función f , que toma como argumentos a estas variables f (x1, x2). La lı́nea que corta los circulos representa la restricción, cualquier solución aceptable debe estar dentro de esta lı́nea. Un punto dentro del plano representa un valor especı́fico de f . De forma empı́rica se puede decir que el optimo global se encuentra dentro del punto más cercano al centro de los cı́rculos que intersecte la lı́nea de la restricción de igualdad, de tal manera que el valor de la solución f (x1, x2) sea el mejor (máximo o mı́nimo) de entre el total de posibles soluciones. 15 Capı́tulo 2. Optimización LANIA Figura 5: Espacio de soluciones para un problema de dos variables y una restricción de igualdad. La Figura 6 muestra una representación válida de la definición de PNL, donde se puede apreciar que la solución está acotada por las restricciones c1 y c2 , la primera restricción es una restricción de igualdad, de tal manera que la solución debe pasar por esta lı́nea, sumado a eso, existe una restricción de desigualdad que delimita el espacio de soluciones factible hacia adentro del espacio interior formado por la lı́nea semi-circular, de esta manera, la solución encontrada es aquel punto que respeta las restricciones y se encuentra situada más cerca del centro del contorno más pequeño. Es necesario notar el cambio registrado en la solución final cuando se agrega una restricción de desigualdad con respecto a las soluciones con la restricción de igualdad y sobre el espacio de búsqueda sin restricciones. Figura 6: Representación geométrica de programación no lineal 16 CAPÍTULO 3 Algoritmos evolutivos Los algoritmos evolutivos imitan procesos que suceden en la evolución natural de las especies. La idea general de este tipo de técnicas consiste en mantener durante un periodo definido de tiempo, una población de individuos sometida a una presión ambiental a través de una selección natural o sobrevivencia del más apto con un incremento constante en la calidad de los individuos. Este proceso es repetitivo, por lo cual, al final del proceso de evolución, entre los sobrevivientes se encuentran aquellos con las mejores caracterı́sticas o considerados más fuertes. Yao brinda más detalle en [40]. Puede resultar sorprendente que una de las áreas con mayor demanda en la investigación actual, se base en conceptos tan antiguos como la evolución de las especies, propuesta por Charles Darwin [41, 42] en su libro “El origen de las especies”, donde se pueden identificar principios de selección natural y sobrevivencia del más apto como métricas de la evolución natural [43, 44], algunos de estos principios son: Los individuos de las especies poseen gran fertilidad, por lo que producen descendencia con probabilidad de crecer hasta la adultez. Bajo la ausencia de influencias externas (como desastres naturales), el tamaño de la población de las especies tiende a permanecer constante. Sin la ocurrencia de influencias externas, las fuentes de alimento son limitadas pero estables a través del tiempo. Dado que los individuos cuentan con recursos limitados, se asegura una competencia por la sobrevivencia. En la reproducción de las especies, no existen individuos iguales. Algunas variaciones entre los individuos afectarán su aptitud y por lo tanto, su capacidad de sobrevivencia. Una buena fracción de esas variaciones no es hereditaria. Los individuos con menor aptitud son menos propensos a reproducirse, mientras que lo más aptos tienen una mayor probabilidad de sobrevivir y producir descendientes. La descendencia de los sobrevivientes conservará rasgos de sus padres. 17 Capı́tulo 3. Algoritmos evolutivos LANIA La computación evolutiva se basa en el neo-Darwinismo [45], que al mismo tiempo tiene sus raı́ces en la teorı́a de Darwin, los conceptos de selección de Weissman [46, 47] y de genética de Mendel [47]. Esta teorı́a asegura que la historia de la vida (evolución) está determinada solo por unos cuantos procesos estadı́sticos que actúan sobre las especies [48]. Los procesos son simples y se definen brevemente de la siguiente forma: Reproducción: Corresponde a una forma de crear nuevos individuos que tienen como origen la población actual. Se comprende de forma implı́cita que en un momento dado, existen dos poblaciones, una población u y una población u0 . El número de individuos en la población derivada puede ser mayor que la inicial. Mutación: Genera modificaciones muy pequeñas en la composición de los individuos de la población, logrando la diversificación de los mismos. Competencia: Es un mecanismo de comparación entre los individuos de la población, el objetivo es medir la aptitud de un conjunto de ellos. Selección: Permite conocer los individuos mejor adaptados al ambiente, con el objetivo de mantenerlos o darles prioridad sobre los débiles. En la mayorı́a de las implementaciones los individuos más fuertes son los únicos que sobreviven. Repetición: Es un procedimiento usualmente implı́cito, solo es necesario recordar que los cuatro subprocesos anteriores se repiten un determinado número de iteraciones. Figura 7: Ejemplo del proceso evolutivo. 18 Capı́tulo 3. Algoritmos evolutivos LANIA La Figura 7 muestra la conjunción de los elementos presentados con un enfoque de implementación hacia la computación. Al principio es necesario crear una población inicial la cual mediante su representación computacional, tiene la capacidad de incluir todas las caracterı́sticas encontradas en el contexto de la problemática a solucionar y que después de pasar a través de los subprocesos en el desarrollo de la evolución, deriven una solución única, satisfactoria con respecto a sus limitantes de espacio de búsqueda y restricciones. Definición 3.0.3. Una población dentro del contexto de cómputo evolutivo representa el conjunto de soluciones del problema que se está tratando en ese momento. Se dice población puesto que cada solución representa un individuo, el cual va sufriendo cambios considerados como mejoras (evolución). Cada individuo evoluciona constantemente hasta el fin de las generaciones. Se selecciona un subconjunto (µ0 ) de la población general (µ) para modificarlo con operadores de mutación. Los elementos compiten entre si tomando en cuenta el porcentaje de calidad individual. El concepto “selección ambiental” se diferencı́a de “selección de individuos” en el sentido de que la primera puede elegir entre una población formada por µ ∩ µ0 , mientras que la segunda sólo selecciona los mejores entre los que son considerados padres [49]. Los mejores individuos son seleccionados forman la población de la siguente generación, se considera completa una iteración, recordando que la evolución se puede ver de forma simple como un conjunto de repeticiones de esta secuencia de pasos. Es necesario identificar, que cuando se cumple el criterio de parada, el mejor individuo en la población corresponde a la solución final. Si el criterio de parada no ha sido alcanzado, comienza una nueva iteración. Definición 3.0.4. El criterio de parada dentro de un algoritmo iterativo representa la condición que indica el momento en que la ejecución del algoritmo debe detenerse. Usualmente se realiza por un número determinado de iteraciones, por la obtención de un valor buscado o por la detección de la falta de modificación en este valor, entre otras. Definición 3.0.5. Una generación dentro de un algoritmo evolutivo corresponde a una iteración del proceso de búsqueda, a su vez, una iteración se cumple cuando los componentes del proceso evolutivo se completan secuencialmente para un conjunto de individuos. La idea es que el proceso de evolución sea repetitivo. En la Figura 7, la cual representa un problema de programación no lineal, el inicio de todo el proceso está determinado por las flechas verticales y las repeticiones por las flechas en forma circular. Al inicio de una iteración (generación) 19 Capı́tulo 3. Algoritmos evolutivos LANIA la selección de padres puede tomar en cuenta los individuos recién inicializados o los mejores individuos de la generación anterior. El Algoritmo 1 muestra un criterio técnico para mostrar el funcionamiento de un algoritmo evolutivo. Algoritmo 1: Algoritmo evolutivo base g←0 P ob ← crearPoblacion() inicializarPoblacion() evaluarPoblacion() while criterioTerminacion() do subP ob ← seleccionarIndividuos(Pob) P ob0 ← reproducirIndividuos(subPob) P ob ← compararIndividuos(subP ob, P ob0 ) g=g+1 end Devolver la mejor solución 3.1. Componentes de algoritmos evolutivos Esta sección presenta una descripción con mayor detalle de los actores y procedimientos que actúan en todas las implementaciones de algoritmos evolutivos. 3.1.1. Representación de soluciones La representación de los individuos se toma de la teorı́a de la genética, la cual dice que los organismos pueden ser definidos por dos conceptos: genotipo y fenotipo. El genotipo corresponde a su composición interna y el fenotipo a sus caracterı́sticas externas. En otras palabras, el primero de ellos cubre la composición “fı́sica” en que se representan los individuos, haciendo énfasis en la teorı́a de la genética, mientras que el segundo expone el procedimiento de darle un significado a los individuos artificiales existentes y dotarlos con “presencia” dentro de la población [45, 50, 51]. Genotipo en cómputo evolutivo: Recordando que la teorı́a de la computación evolutiva tiene origen en la genética, la representación de los individuos en un espacio de soluciones trata de imitar la información genética que manejan los cromosomas en la cromatina [52]. En este punto, un cromosoma es usualmente implementado como una estructura de datos unidimensional. Los valores de los espacios de la estructura se comparan con la información almacenada por los genes, para los diferentes marcadores genéticos (locus). Cada alelo representa información de una variable objeto, logrando encapsular las caracterı́sticas genéticas del individuo. 20 Capı́tulo 3. Algoritmos evolutivos LANIA Figura 8: Analogı́a de representación de un individuo. En la Figura 8, se observa el ejemplo de un cromosoma. En cómputo evolutivo, este ejemplo se visualiza como la representación del conjunto de variables de decisión de un individuo. Los genes del ADN son vistos como los valores de cada variable xi , mientras que la interpretación del significado ~ |x∈X ~ será visto como el fenotipo. genético f (x) del conjunto X Fenotipo en cómputo evolutivo: El fenotipo representa la decodificación de la información genética del individuo. En un caso simple, se puede resumir al fenotipo como el conjunto de caracterı́sticas que definen la apariencia y conducta de los elementos en la población. Resulta pertinente resaltar la dependencia que existe entre el fenotipo y el genotipo, ası́ como la variación que puede tener su percepción con respecto al entorno de los individuos. La conjunción entre genotipo y fenotipo hace referencia a la calidad de las caracterı́sticas que un individuo tiene. La interpretación “visual” de la información en los genes se proyecta mediante el fenotipo, que al mismo tiempo le da un valor único a cada solución dentro del proceso evolutivo. Si se toma en cuenta al fenotipo como una representación “visual” del genotipo, dentro de un proceso de búsqueda basado en la evolución el fenotipo engloba las caracterı́sticas que se perciben del individuo en el medio ambiente, lo cual permite que cada individuo sea considerado como una opción de solución final. Se puede decir que el fenotipo de un individuo se expresa directamente como su valor de aptitud (fitness) dentro del proceso de búsqueda del algoritmo evolutivo, ya que el valor fitness es utilizado para medir la calidad de la solución y determinar su comportamiento. 21 Capı́tulo 3. Algoritmos evolutivos LANIA El valor fitness de un individuo es igual al resultado de su evaluación, por lo tanto, basado en un individuo ui , su ecuación representativa es la siguiente: f itness(ui ) = f (ui ) Siendo f itness la función objetivo cuando no se toman en cuenta restricciones dentro del problema a solucionar (la inclusión de restricciones se tratará más adelante). La función a evaluar por los individuos se representa formalmente como: f : Rn ← R 3.1.2. Reproducción de individuos La operación de reproducción consiste en generar nuevos individuos a partir de un conjunto previo. El objetivo de la reproducción es diversificar las posibles soluciones al problema tratado, para que de esta manera puedan competir, sobrevivan los mejor adaptados y se dé un proceso de evolución (claramente elitista). Se presentan dos tipos de reproducción. Cruza: Durante esta fase se cruzan o mezclan los individuos seleccionados en la fase anterior. Los genes de los dos padres se mezclan entre sı́ para dar lugar a diferentes hijos. Existen diversos métodos de cruza, pero los más utilizados son los siguientes: • Cruza basada en un punto: los dos individuos seleccionados para jugar el papel de padres son recombinados por medio de la selección de un punto de corte, para posteriormente intercambiar las secciones que se encuentran a la derecha de dicho punto. Es decir, los genes del padre1 a la izquierda del punto de corte forman parte del hijo1 y los situados a la derecha formaran parte del hijo2, mientras que con el padre2 sucederá lo contrario [53]. La Figura 9 muestra un ejemplo de este tipo de cruza. • Cruza punto a punto: este tipo de cruza es similar al anterior pero realizándose para cada gen de los padres. Por tanto, en esta cruza los genes pares del padre1 formarán parte del hijo1 y los genes impares formarán parte del hijo2, mientras que para el padre2 sucederá lo contrario [54]. La Figura 10 muestra un ejemplo de este proceso. • Cruze multipunto: en este tipo de cruza se selecciona aleatoriamente la cantidad de puntos que se van a utilizar. De esta manera, similar a los ejemplos presentados en las Figuras 9 y 10, se irán intercambiando los genes en los padres para formar los dos nuevos hijos. • Cruzas especı́ficas de codificaciones no binarias: además de los anteriores, otros tipos de operadores de cruza [55, 56]: 22 Capı́tulo 3. Algoritmos evolutivos LANIA ◦ Media: el gen “mutado” que pasa a la siguiente generación toma el valor promedio de los genes de los padres. ◦ Media geométrica: cada gen de la descendencia toma como valor la raı́z cuadrada del producto de los genes de los padres. Figura 9: Ejemplo de cruza en un punto. Figura 10: Ejemplo de cruza punto a punto. Mutación: Es un operador que trabaja al agregar un pequeño elemento de aleatoriedad a los individuos de la población. Si bien se admite que el operador de cruza es el responsable de efectuar la búsqueda a lo largo del espacio de posibles soluciones, el operador de mutación es el responsable del aumento o reducción del espacio de búsqueda dentro del algoritmo genético y del fomento de la variabilidad genética de los individuos de la población [51]. Es posible encontrar ejemplos del proceso de mutación en las páginas 44, 52 y 58, los cuales serán explicados en el capı́tulo 5. 23 Capı́tulo 3. Algoritmos evolutivos LANIA Existen varios métodos para aplicar la mutación a los individuos de una población, pero el más común es el de mutar un porcentaje de los genes totales de la población. Este porcentaje de genes a mutar se puede seleccionar de dos maneras, de forma fija, especificando el mismo porcentaje de mutación a todas las generaciones del algoritmo y de forma variable, es decir, modificando el porcentaje de mutación de una generación a otra, por ejemplo reduciéndolo. De esta manera, se consigue hacer una búsqueda más amplia y global al principio e ir reduciéndola en las siguientes generaciones. Definición 3.1.1. La convergencia es una medida de comportamiento de los individuos de la población. Se sabe que cada individuo evoluciona, eso quiere decir que va modificando sus caracterı́sticas y al mismo tiempo, el algoritmo de búsqueda va “caminando” sobre el espacio de búsqueda. Se dice que una población converge, cuando los cambios en los individuos dejan de ser importantes, o cuando la búsqueda ya no camina. El criterio de parada se alcanza por diversas razones, una puede ser que el total de iteraciones se haya completado, que las soluciones de los individuos sean suficientemente buenas para el problema tratado o cuando se considera que la población ha convergido. En un algoritmo genético se entiende que una población ha convergido cuando la mayorı́a de los individuos ha dejado de sufrir importantes cambios en la información de sus genes a través del proceso evolutivo [57]. 3.1.3. Selección de soluciones Debido a las diferentes versiones de selección de individuos y la gran cantidad de información sobre los mismos, en este apartado, se presenta una explicación breve de cada técnica, seguida de su algoritmo general [58]. Selección determinista: Este tipo de selección devuelve los n mejores elementos de la población, se considera que el orden es ascendente, por lo que en el proceso la selección se realiza de forma simple de acuerdo a la calidad de las soluciones. El algoritmo 2 muestra el pseudocódigo para esta técnica. 24 Capı́tulo 3. Algoritmos evolutivos LANIA Algoritmo 2: Algoritmo de selección determinista Entrada: Población seleccion ← listaVacia pob ← ordenarLista() for i ← 1 to n do seleccion ← agregarIndividuo(pob[i]) end Selección proporcional: El algoritmo 3 muestra un ejemplo de este tipo de selección. En este método la probabilidad de un individuo de ser seleccionado es proporcional a su valor de aptitud (usualmente hablando de un proceso de maximización), siendo comparado contra el de los demás individuos de la población [59]. El valor de probabilidad de elección se define mediante la siguiente fórmula: P (p1) = f (x) P|pob| i=1 f (x) Un ejemplo de implementación de esta técnica se llama “selección por el método de la ruleta” [54]. Algoritmo 3: Algoritmo de selección proporcional listaProb ← listaVacia for i ← 1 to tamanoP oblacion do totalProb ← totalProb + P (x)pobi end for i ← 1 to tamanoP oblacion do listaProb[i] ← P (f (x)pobi )/totalP rob end 25 Capı́tulo 3. Algoritmos evolutivos LANIA Selección por torneo: El algoritmo 4 muestra un ejemplo de este tipo de selección. En la selección por torneo, se escogen n invidiuos de la población total para ser comparados entre ellos mismos, en cada enfrentamiento, el ganador se considera como seleccionado, otra versión podrı́a seleccionar a los m individuos con mayor cantidad de enfrentamientos. Algoritmo 4: Algoritmo de selección por torneo Require: P oblacion seleccion ← listaV acia k : Numero de enfrentamientos por ronda del torneo while i ≤ tamanoSeleccion do a ← rand(indviduosP oblacion) while j ← 1 to k do if temp ← rand(individuosP oblacion) 6= a then mejor ← obtenerGanador(a, temp) end if end while seleccion[i] ← mejor end while 3.2. Paradigmas de implementación En este apartado se realiza una descripción breve de los paradigmas actuales de computación evolutiva. El objetivo principal de la exposición de esta información consiste en diferenciar los esfuerzos realizados en esta área. 3.2.1. Algoritmos genéticos De acuerdo con [60], una definición válida de algoritmos genéticos puede ser la siguiente: “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 de forma aleatoria, para constituir ası́ un algoritmo de búsqueda que tenga algo de las genialidades de las búsquedas realizadas por los humanos”. 26 Capı́tulo 3. Algoritmos evolutivos LANIA Estos algoritmos heredan las caracterı́sticas de trabajar con una población de individuos, los cuales representan posibles soluciones al problema tratado. Cada individuo está asociado, de acuerdo a sus caracterı́sticas a un valor de bondad y un conjunto de generaciones de evolución. Los algoritmos genéticos trabajan a nivel del genotipo [61], por lo cual implementan operadores de cruza y mutación. Algoritmo 5: Algoritmo genético general. g←0 InicializarPoblacion() while !criterioTerminacion() do while población temporal no llena do Seleccionar padres Cruzar padres con probabilidad Pm if Se ha producido el cruce then Mutar descendiente con probabilidad Pd Evaluar descendientes Añadir descendientes a la población temporal else Añadir los padres a la poblacióestos contornosn temporal end end g←g+1 Actualizar poblacion con los mejores individuos de temporal end Como se puede observar en el Algoritmo 5, una generación se compone por la aplicación de los operadores de reproducción a la población actual, los elementos mutados son almacenados en un subconjunto de individuos temporales (población temporal), la cual es representada por un arreglo de individuos vacı́o en cada iteración general, la aplicación de estos operadores y la comparación de los individuos cruzados generan una descendencia del mismo tamaño del número de padres (cruza sexual), donde usualmente dos padres generan dos hijos. Si dentro de una generación no se reproducen los individuos, estos mismo individuos (los padres) sobrevivirán a la siguiente generación sin sufrir algún cambio. 27 Capı́tulo 3. Algoritmos evolutivos LANIA Algunas aplicaciones de los algoritmos genéticos se listan en el Cuadro 1. Cuadro 1: Aplicaciones de los algoritmos genéticos. Aplicaciones Medicina [62–64] Minerı́a de datos [65, 66] Comunicaciones [67, 68] Ingenierı́a eléctrica [69, 70] Economı́a 3.2.2. Referencias [71] Programación evolutiva Su principal diferencia radica en que trabaja a nivel del fenotipo, evolucionando la población a nivel de especies. La programación evolutiva descarta por completo mecanismos sobre el genoma, esto quiere decir que no existen operaciones de cruza. El principal objetivo de la programación evolutiva es maximizar la aptitud de un conjunto de soluciones candidatas, haciendo énfasis en la herencia después de aplicar operadores de mutación [72]. El algoritmo básico de la programación evolutiva, mostrado en el Algoritmo 6, consiste en los siguientes pasos: Generar aleatoriamente una población inicial Aplicar operadores de mutación Calcular la aptitud de cada hijo, usando un proceso de selección mediante torneo para determinar cuales serán las soluciones que se retendrán. Algoritmo 6: Algoritmo genérico de programación evolutiva. InicializarPoblacion(Pob) evaluarPoblacion(Pob) while !criterioTerminacion() do offspring ← mutarPoblacion(Pob) evaluarPoblacion(offspring) Pob ← Seleccionar por torneo los mejores individuos end 28 Capı́tulo 3. Algoritmos evolutivos LANIA Algunas aplicaciones de la programación evolutiva se listan en el Cuadro 2. Cuadro 2: Aplicaciones de programación evolutiva. Aplicaciones Aprendizaje máquina [73] Comportamiento video juegos [74, 75] Quı́mica [76–78] Ingenierı́a eléctrica [79, 80] Minerı́a de datos 3.2.3. Referencias [81] Estrategia evolutiva En esta sección se presenta una descripción muy breve de la estrategia evolutiva, mientras que en el Capı́tulo 5 se describe nuevamente con mayor detalle, ya que el trabajo realizado en esta tesis utiliza una instancia de esta técnica para formular los resultados. Las Estrategias Evolutivas fueron desarrolladas en 1964 en Alemania para resolver problemas hidrodinámicos de alto grado de complejidad por un grupo de estudiantes de ingenierı́a encabezado por Ingo Rechenberg. La versión original (1+1)-EE usaba un solo padre y con él se generaba un solo hijo, este hijo se mantenı́a si era mejor que el padre o de lo contrario se eliminaba (a este tipo de selección se le llama extintiva porque los peores individuos tienen una probabilidad cero de ser seleccionados). Rechenberg introdujo el concepto de población, al proponer una estrategia evolutiva llamada (λ +1)-EE, en la cual hay λ padres y se genera un solo hijo, que puede reemplazar al peor padre de la población (selección extintiva). Schwefel introdujo el uso de múltiples hijos en las estrategias similares denominadas como: (µ + λ)-EE. Una definición básica del algoritmo de estrategia evolutiva se muestra en el Algoritmo 7. 29 Capı́tulo 3. Algoritmos evolutivos LANIA Algoritmo 7: Pasos genéricos de estrategia evolutiva. inicializarPoblacion(Pob) evaluarPoblacion(Pob) while !criterioTerminacion() do offspring ← cruzarPoblacion(Pob) mutarPoblacion(offspring) evaluarPoblacion(offspring) Pob ← Seleccionar mejores individuos end Existen dos formas de seleccionar los individuos considerados como mejores en cada generación: En el primer caso, los µ mejores individuos sobreviven. En el segundo caso, sólo los µ mejores hijos de la siguiente generación sobreviven. Los operadores de recombinación de las Estrategias Evolutivas pueden ser: Sexuales: el operador actúa sobre 2 individuos elegidos aleatoriamente de la población de padres. Panmı́ticos: se elige un solo padre al azar, el cual se mantiene fijo mientras se elige al azar un segundo padre (diferente del primero) para cada componente del conjunto de individuos a recombinar. Algunos ejemplos de áreas de aplicación de EE se muestran en el Cuadro 3. Cuadro 3: Aplicaciones de EE. Aplicaciones Referencias Minerı́a de datos [82] Calendarización [83] Optimización combinatoria [84–86] Geometrı́a y fı́sica [87, 88] Procesamiento de imágenes [89–91] 30 CAPÍTULO 4 Afinación de parámetros “La implementación de algoritmos de afinación de parámetros devuelve recompensas muy grandes, los esfuerzos son moderados y las ganancias en el comportamiento de los algoritmos puede ser muy significativas” [92]. Utilizando afinadores no sólo se obtienen configuraciones superiores de parámetros, sino también mucha información acerca de la relación entre parámetros y rendimiento, la cual puede ser utilizada para obtener un conocimiento más profundo del algoritmo en cuestión. Cuando se diseña un algoritmo evolutivo nuevo, usualmente se compara contra un conjunto de problemas de prueba documentados en la literatura. Uno de los mayores problemas para realizar esta comparación, ası́ como el estudio del algoritmo nuevo es la necesidad de generar una gran cantidad de resultados diferentes para sacar estadı́sticas de los mismos. Trabajar bajo estas condiciones durante una experimentación competitiva resulta complejo como se explica con detalle en [93]. La ejecución de un algoritmo evolutivo se basa en la selección de los componentes internos que lo hacen funcionar (selección, mutación, recombinación, sobrevivencia) [94, 95]. La idea general consiste en delegar al EA el trabajo de representación y búsqueda de soluciones del problema a tratar, mientras que el usuario se ocupa de delimitar algunos parámetros necesarios para su funcionamiento, asignar valores de forma empı́rica, lo cual resulta complejo y poco efectivo, de esta manera surge la necesidad de un proceso de selección de parámetros adecuado. La configuración de un algoritmo se define como el hecho de asignar a todos sus parámetros un valor especı́fico dentro de su dominio. Además, se percibe que establecer configuraciones para diferentes algoritmos es un proceso realmente complejo si se toma en cuenta que no generan resultados iguales, aún cuando se apliquen al mismo problema, ya que la elección de diferentes valores en los parámetros de entrada implica diferentes niveles de bondad en las soluciones, es importante saber como afinar los valores de los parámetros para que devuelvan los mejores resultados. 31 Capı́tulo 4. Afinación de parámetros LANIA Figura 11: Parámetros usados en algoritmos evolutivos. El análisis de parámetros-resultados es una actividad bastante difı́cil de realizar, ya que en la mayorı́a de los casos no existe un modelo formal para realizar experimentos sobre heurı́sticas. Hasta el momento, la definición de los valores iniciales se hace mediante pruebas estadı́sticas, consenso de resultados, propuestas de la literatura especializada o en algunos casos por la experiencia del investigador. Se debe considerar que algunas implican la dedicación de mucho tiempo o tienden a ser subjetivas [93]. En este apartado se expone teorı́a sobre el estado actual de los métodos de afinación de parámetros, clasificación de las soluciones implementadas, ası́ como algunos ejemplos documentados en la literatura especializada. 4.1. Introducción De acuerdo con Maturana, Lardeux y Saubion [96], la implementación de un algoritmo evolutivo se compone de dos fases: la primera se relaciona con su diseño, donde los componentes del mismo son definidos (ver Figura 7 del Capı́tulo 3). La segunda fase se relaciona con la correcta ejecución del EA, lo que provoca el ajuste de su comportamiento a lo largo de su ejecución. Las dos fases implican una toma de decisiones que puede realizarse de forma paramétrica. Un concepto importante en la literatura de EA es el de instancia. Se dice que se tiene la instancia de un EA cuando se han definido las caracterı́sticas de todos sus componentes internos, ası́ como los valores de parámetros tomando en cuenta los lı́mites de sus dominios (la Figura 11, ejemplifica representaciones de parámetros). La selección de estos componentes y valores se traducen en decisiones y sub-problemas de optimización. Si la decisión de instanciar componentes de EA se consideran paramétricas, se pueden identificar dos tipos de parámetros, los cuales se describen brevemente de la siguiente forma: 32 Capı́tulo 4. Afinación de parámetros LANIA Parámetros cualitativos: Representan la selección de los componentes del EA, por ejemplo, el tipo de recombinación y el operador de mutación entre los disponibles. Parámetros cuantitativos: Representados usualmente con valores numéricos, definen aspectos como el tamaño de la población, número de individuos en la descendencia, rangos de mutación, generaciones, etc. Dentro de esta categorı́a es necesario notar que existe un subconjunto de parámetros que establecen la estructura del algoritmo, tal como el tamaño de la población, mientras que existe otro subconjunto de parámetros que indican el comportamiento de los operadores seleccionados, tal como el rango de mutación. Figura 12: Representación en capas del contexto de un algoritmo evolutivo. 33 Capı́tulo 4. Afinación de parámetros LANIA La Figura 12, resume la información del capı́tulo discutida hasta el momento, representa la conjunción de definiciones de parámetros y componentes como la representación de una instancia de algoritmo evolutivo, la cual se aplica a la problemática tratada. El hecho de que los rectángulos estén sobrepuestos hace referencia a que la implementación de los algoritmos evolutivos depende de la problemática y que la calidad de las soluciones encontradas depende de la implementación de la instancia del algoritmo evolutivo sobre el modelo del problema actual. Existen diferentes motivos por los cuales se puede implementar un algoritmo afinador de parámetros, algunos de ellos son [92]: Para obtener la instancia de un algoritmo evolutivo con alto rendimiento, dada una forma o conjunto de formas de medir el comportamiento. Para obtener la instancia de un algoritmo evolutivo, robusta a cambios en la especificación del problema a tratar. Para determinar la robustez de un algoritmo a cambios en la definición de sus parámetros. Para aprender la relación entre los parámetros y el comportamiento de un algoritmo evolutivo. Minimizar los recursos que requiere un algoritmo evolutivo para devolver buenos resultados. El objetivo de este trabajo. Entre otras implementaciones importantes de afinadores de parámetros se puede encontrar al afinador meta-GA [97], el método REVAC [98], los cuales trabajan sobre parámetros numéricos. Otros trabajos importantes son ANOVA [99] y racing [100], lo cuales presumen ser aplicables tanto a parámetros cualitativos como cuantitativos. 4.1.1. Costo de configurar parámetros Desde el punto de vista de un algoritmo de afinación de parámetros, el costo de realizar una búsqueda sobre un espacio de soluciones es bastante alto. Es muy difı́cil definir una unidad de medida puesto que se trabaja con algoritmos evolutivos complejos que requieren diferentes niveles de recursos computacionales. Aparte de la complejidad de la implementación del algoritmo de búsqueda, otro factor importante se refiere a las propiedades del problema que se esté evaluando, la conjunción de estas variables resulta en esfuerzos demandantes para cada función [101]. 34 Capı́tulo 4. Afinación de parámetros LANIA En general, el esfuerzo total puede ser expresado mediante el producto AxBxC, donde las constantes tienen los siguientes significados A: Números de vectores de parámetros evaluados por el afinador. B: Número de pruebas realizadas a cada parámetro para definir su utilidad. C: Número de funciones objetivo evaluadas para devolver los resultados. Si se está hablando de un afinador, entonces se refiere a la cantidad de funciones que el algoritmo evolutivo debe resolver para que pueda obtener una instancia generalista. 4.1.2. Introducción al control de parámetros de EA Hasta el momento existen dos enfoques para asignar buenos parámetros a algoritmos [102–104], afinación de parámetros y control de parámetros, los cuales se definen de la siguiente forma [105]: Afinación de parámetros: Se aplican técnicas para definir una buena configuración de parámetros antes de la ejecución del algoritmo evolutivo. En este caso, los valores asignados a los parámetros se mantienen fijos a lo largo de la ejecución. Control de parámetros: Se aplican técnicas para definir la configuración de los parámetros durante la ejecución del algoritmo evolutivo. En este caso los valores cambian de acuerdo al comportamiento del algoritmo, comienza con una configuración inicial de parámetros y van cambiando de acuerdo a su aptitud a través del tiempo. Un método muy recordado de control de parámetros es la regla usada por el algoritmo de estrategia evolutiva, donde, dependiendo de un valor de probabilidad de éxito en la aptitud de un individuo y un umbral de tolerancia, el rango de mutación es incrementado o decrementado, con lo cual se consigue redefinir dinámicamente los procesos genéticos de la evolución de los individuos [104, 106, 107]. Otros trabajos proponen técnicas para encontrar relaciones entre los parámetros y los resultados obtenidos [108], identificando patrones y generando modelos estadı́sticos o matemáticos internos. 35 Capı́tulo 4. Afinación de parámetros LANIA Figura 13: Objetivos de configuración de parámetros. La Figura 13 muestra una breve clasificación de los enfoques de asignación de parámetros, la descripción detallada de los métodos de control de parámetros se puede encontrar en el trabajo de Eiben, Hinterding y Michalewicz [105]. Sobre las categorı́as de control de parámetros mostradas en la figura, se describe lo siguiente [97]. Control determinista: Esta clasificación de métodos modifica los valores de los parámetros de acuerdo a alguna métrica estadı́stica pre-establecida. La principal caracterı́stica de estas implementaciones consiste en la modificación de los parámetros sin haber obtenido información de la utilidad de los vectores o cualquier información relacionada con la búsqueda. Un ejemplo de esto es generar alteraciones después de un periodo de tiempo o cantidad de ejecuciones establecidas. Control adaptativo: Este método tiene lugar cuando se toma en cuenta cierta forma de retroalimentación del proceso de búsqueda y se utiliza su información para determinar la dirección o magnitud del cambio en los parámetros. Control auto-adaptativo: Este método implementa la idea de la evolución de las soluciones. Los parámetros son adaptados y codificados como cromosomas y son sometidos a procesos de mutación y recombinación. Los mejores valores conducen a mejores individuos, los cuales tienen mayores posibilidades de sobrevivir y generar descendencia. El reto principal del diseño y configuración de algoritmos evolutivos consiste en saber que la definición de valores para el conjunto de parámetros de entrada de los algoritmos influye en gran medida en su desempeño. Debido a esta problemática, se dice que el diseño de algoritmos, los cuales resuelven problemas de optimización, se convierte en un problema de optimización independiente [109]. 36 Capı́tulo 4. Afinación de parámetros LANIA Ya que la afinación de parámetros tiene las caracterı́sticas de un problema clásico de optimización, uno de los enfoques para resolverlo consiste en aplicar un algoritmo evolutivo. En este caso el algoritmo afinador se convierte en una metaheurı́stica, que hereda las propiedades de las implementaciones actuales, tales como una población con individuos como soluciones, generaciones y parámetros propios del método de búsqueda implementado [101, 108]. Algo que vale la pena considerar, es que el uso de una meta-heurı́stica para configurar instancias de algoritmos evolutivos, implica que la meta-heurı́stica herede todas las bondades de los algoritmos evolutivos, lo cual le proporciona una gran capacidad para obtener un buen resultado, sin embargo, mientras esto sucede, el algoritmo afinador también hereda todas dificultades de los EAs, tal como la necesidad de configuración de sus parámetros. 4.1.3. Definición de un afinador de parámetros Dentro del ámbito de la afinación de parámetros de [92], se puede visualizar el proceso de afinación de parámetros con la siguiente imagen. Figura 14: Estructura lógica de un afinador de parámetros. La Figura 14 muestra una implementación tı́pica de un algoritmo afinador, donde la solución final consiste en resolver dos problemas de optimización independientes. El primer problema se genera entre la capa de aplicación y la capa del algoritmo, la primera hace referencia al problema que se intenta solucionar, mientras que la segunda capa representa el algoritmo que trata de resolver esta problemática. El segundo problema se mantiene creando diferentes vectores de parámetros de solución para la configuración óptima de los mismos. Cada vector de parámetros generado tendrá que ser evaluado, dando como resultado el valor que corresponde a su utilidad. Las flechas de la imagen muestran 37 Capı́tulo 4. Afinación de parámetros LANIA el flujo de comunicación entre los componentes. El afinador de parámetros en la capa de diseño genera un conjunto de vectores que deben ser evaluados mediante una función de utilidad, la capa del algoritmo debe utilizar los parámetros y ejecutar el algoritmo evolutivo para obtener el valor de aptitud. Se puede decir que cada capa se mantiene optimizando sobre su propio espacio de soluciones. Se debe tomar en cuenta que en los problemas de optimización que se acaban de describir se obtienen valores de calidad. Para el espacio de soluciones de vectores de parámetros (el afinador de parámetros) la calidad se mide de acuerdo a su utilidad, mientras que para el espacio de soluciones de vectores de variables de decisión (el resolvedor del problema) la calidad se mide a través de la aptitud. La estructura en capas presentada es independiente del método de solución implementado, solo se muestran los componentes principales. 4.2. Clasificación de los métodos de afinación de parámetros Todos los algoritmos afinadores de parámetros consisten en la generación y prueba de un conjunto de vectores, que después de cierto tiempo deriva en la definición de un vector con mayor utilidad. Dentro de la primera categorı́a se toman en cuenta los algoritmos de acuerdo a la naturaleza implementada en su búsqueda de soluciones óptimas. • Afinadores no iterativos: Este tipo de afinadores ejecuta el proceso de generación de parámetros sólo una vez durante su ejecución, se obtiene la utilidad de cada vector durante la fase de evaluación para encontrar el mejor. En todo caso, se dice que estos afinadores sólo realizan las tareas de inicialización y prueba, como ejemplos están LatinSquare [103] y Taguchi Orthogonal [110]. • Afinadores iterativos: La principal propiedad de este tipo de afinadores es que, a diferencia de su contraparte, los valores de los vectores no permanecen estáticos, sino que se modifican a lo largo de un número definido de repeticiones, en otros casos el número de vectores puede variar, ejemplos de implementación son los algoritmos meta-heurı́sticos. En la segunda categorı́a se hacen evidentes las diferencias en la implementación de la función de utilidad, la principal diferencia consiste en cómo discriminan los vectores de parámetros generados previamente [111, 112]. 38 Capı́tulo 4. Afinación de parámetros LANIA • Afinadores de una etapa: Se realiza el mismo número de pruebas para todos los vectores de parámetros en el espacio de búsqueda de algún modo. Puede llamarse un proceso exhaustivo dentro de los elementos de la población, puesto que no discriminan entre las posibilidades. • Afinadores de múltiples etapas: Realizan una forma de discriminación local en los parámetros, al agregar un mecanismo de selección de los vectores de parámetros e ignorar los demás de acuerdo a su utilidad. De la misma forma que los algoritmos evolutivos, los afinadores pueden explorar soluciones nuevas para descubrir vectores prometedores o explotar las soluciones que se considera tienen mejores posibilidades. De acuerdo con el tipo de balance entre estos conceptos se puede identificar una última categorı́a entre los afinadores de parámetros. • Meta-algoritmos evolutivos: Dan prioridad a la explotación de las mejores soluciones encontradas para devolver aquel vector con la mejor utilidad. • Muestreo de soluciones: Dan prioridad a la exploración de vectores con el objetivo de obtener información propia de los parámetros o del comportamiento de los algoritmos evolutivos. 4.3. Métodos de afinación implementados Este apartado expone diferentes métodos documentados en la literatura para la afinación de parámetros, si bien tienen una relación o similitud con las clasificaciones presentadas en la sección anterior, se considera que la definición de los métodos de esta sección son una especialización de los presentados. Métodos de exploración de vectores: Tratan de analizar el valor y la robustez de los parámetros, para definir su importancia. Este tipo de métodos no pretende encontrar el vector con mayor utilidad, sino explorar las propiedades de los mismos. Por estos motivos, este tipo de algoritmos no se utilizan como afinadores independientes, sino como puntos de entrada para afinadores de parámetros. Métodos de exploración iterativos: Implementan búsquedas de exploración iterativas a las soluciones que se vuelven más fuertes, de modo que se utilizan como afinadores independientes, un ejemplo importante es CALIBRA [113]. 39 Capı́tulo 4. Afinación de parámetros LANIA Métodos basados en modelo: Definen un modelo derivado de relacionar parámetros y su utilidad después de ser evaluados. Entre los objetivos del uso de un modelo está el eliminar estadı́sticamente los vectores de parámetros que no tienen buena probabilidad de devolver buenos resultados. Otro objetivo consiste en generar nuevos vectores de parámetros a partir de la extrapolación de los valores de los vectores actuales, inclusive se puede calcular matemáticamente el valor de los vectores utilizando técnicas de regresión [114–116]. Método iterativo basado en modelo: Mantiene las técnicas de búsqueda del algoritmo anterior, agregando una ejecución iterativa y extendiendo el método para que después de la estimación de los parámetros se realice una búsqueda local que optimice los parámetros encontrados al inicio de la iteración. Un buen ejemplo de este método es Coy [109]. Meta-algoritmos evolutivos: Representan los vectores de parámetros como individuos de una población, la población evoluciona a través de generaciones, un valor derivado de la aptitud de los individuos es asignada a la utilidad, el objetivo es devolver un conjunto de valores especı́ficos que para obtener un algoritmo mejor adaptado al final de su proceso. Estos algoritmos buscan la configuración óptima de los parámetros dejando de lado generar conocimiento sobre su funcionamiento [97, 117]. 4.4. Robustez como medida de calidad Hasta este momento se ha hablado de calidad con respecto a las instancias de los EA, sin embargo, resulta útil conocer el comportamiento que tienen con respecto a los problemas tratados. En este caso se asigna una aptitud no a una solución encontrada por el EA, sino que se asigna al mismo EA, dependiendo de su comportamiento, que se llama robustez. El estudio de esta medida puede ser visto de las siguientes maneras [92]: Analizar la calidad de un algoritmo evolutivo al estudiar la dependencia de su rendimiento con los diferentes problemas que resuelve. Analizar la calidad de un algoritmo evolutivo al estudiar la variación de la dependencia en su rendimiento para diferentes ejecuciones sobre un mismo problema. Medir la robustez de un algoritmo permite definir ciertas caracterı́sticas del mismo, tales como su aplicabilidad para un conjunto de problemas, ası́ como la posibilidad de afinar sus parámetros de acuerdo a su dominio, tomando en 40 Capı́tulo 4. Afinación de parámetros LANIA cuenta si los resultados obtenidos son consistentes en calidad al compararlos con diferentes instancias. Esto resulta importante para un afinador, puesto que de estas caracterı́sticas se puede medir qué tan productivo es, tomando en cuenta que deben existir otras medidas de calidad en la literatura, se presentan las siguientes: Aplicabilidad: Cuando se asignan valores a los parámetros de un algoritmo evolutivo se obtiene una instancia especialista, sin embargo, no tiene la capacidad de asegurar que los resultados obtenidos para una función f (x) sean buenos para otras funciones. En un algoritmo afinador, lo ideal es que tenga la capacidad de ser aplicado a diferentes algoritmos evolutivos. La aplicación de un algoritmo de afinación de parámetros a un conjunto de funciones de prueba f~, construirá una instancia generalista. Consistencia de resultados: Para que un algoritmo de afinación de parámetros sea consistente, debe mantener la misma calidad en sus resultados a lo largo de las diferentes ejecuciones sobre los problemas tratados. Ya que obviamente se intentan generar instancias con buenos resultados, se puede medir la cantidad de ejecuciones que un algoritmo resulta con valores aceptables de acuerdo con un umbral de comparación. Cuando se mide la diferencia de resultados entre las soluciones de EA’s obtenidas en diferentes ejecuciones o con diferentes problemas de optimización, si la diferencia de calidad resulta “pequeña” o con poca variación, entonces se ha generado una instancia de EA estable. 41 CAPÍTULO 5 Algoritmos evolutivos implementados En este capı́tulo se presentan en detalle los algoritmos evolutivos con que trabaja el algoritmo afinador. Los algoritmos son: Evolución Diferencial “DE/rand/1/bin”, Evolución Diferencial “DE/best/1/bin”, Estratégia Evolutiva y Colonia Artificial de Hormigas. Para cada algoritmo se describe su funcionamiento, detalles relevantes propios de su implementación utilizados para este trabajo de tesis, ası́ como los resultados obtenidos de las pruebas a los mismos. Cabe mencionar que un análisis detallado del funcionamiento interno de los EA queda fuera de los alcances de este documento. Todos los algoritmos a describir tienen en común la forma en que representan los individuos. Para cada generación se utiliza una estructura similar, la cual se muestra en la Figura 15. Figura 15: Representación de los individuos. Todos los algoritmos trabajan con las variables xi , i = 1, ...n (donde n es el número total de variables de decisión) para establecer las restricciones. Sin embargo, para determinar la bondad de los individuos en cada generación, se utiliza el valor impuesto como fitness, el campo “Factible” indica si una solución cumple con las condiciones impuestas por las restricciones del problema, el valor de función objetivo se utiliza para almacenar el resultado de la evaluación a la función objetivo, número de violaciones y suma de violaciones almacenan los valores de las restricciones no cumplidas por un individuo, los campos ri almacenan los valores obtenidos por las restricciones en la evaluación de f (x), mientras que los campos xi toman valores de variables de la definición del problema. 42 Capı́tulo 5. Algoritmos evolutivos implementados 5.1. LANIA Evolución diferencial (DE/rand/1/bin) Definido de la siguiente manera: “DE” significa evolución diferencial por sus siglas en inglés, “rand” indica que el vector base se selecciona de manera aleatoria, “1” es el número de diferencias que se calculan en el algoritmo y “bin” hace referencia al tipo de recombinación, en este caso binomial (se comprederán mejor los terminos más adelante). Este algoritmo se basa en el análisis y distribución de un conjunto de posibles soluciones, simulando un proceso de evolución natural de las mismas, intentando en cada iteración y mediante el uso de operadores de modificación, realizar una búsqueda en diferentes direcciones. El algoritmo mantiene un registro de la mejor solución en cada iteración, de esta manera intenta encontrar la óptima global al final de su ejecución [118–120]. DE/rand/1/bin se encuentra definido en el Algoritmo 8. Algoritmo 8: DE/rand/1/bin. G=0 Crear una población inicial aleatoria xi,G ∀i, i = 1, ..., N P Evaluar f (xi,G )∀i, i = 1, ..., N P for G=1 to MAX GEN do for i=1 to NP do Seleccionar aleatoriamente r3 6= r1 6= r2 6= i jrand = randint(1,D) for j=1 to D do if (randj [0, 1) < CR OR j = jrand ) then ui,j,G = xr3,j,G−1 + F (xr1,j,G−1 − xr2,j,G−1 ) else ui,j,G = xi,j,G−1 end end if f (ui,G ) ≤ f (xi,G−1 ) then xi,G = ui,G else xi,G = xi,G−1 end end end DE requiere de un conjunto de parámetros para funcionar, tales como: número de soluciones con las que va a trabajar, número de iteraciones y parámetros referentes a los operadores de cruza y mutación. Se presenta en el Cuadro 4 una descripción de estos valores. 43 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Cuadro 4: Parámetros de evolución diferencial. Nombre Sı́mbolo Descripción Número vectores NP Número de soluciones en la población. Generaciones MAX GEN Iteraciones de la DE. Factor de escala F Multiplica al vector diferencia que se utiliza para calcular el vector de mutación. Es un valor real entre(0,1+]. Porcentaje de cruza CR Determina la aportación del vector de mutación (con respecto al vector padre) en la generación del vector hijo. ~ donde xi , i = 1,. . . ,NP, representativo de las variables de Cada vector X, ~ 0) decisión del problema a optimizar será comparado contra un vector hijo (X obtenido después de aplicar un proceso de mutación en cada iteración o generación. Después de agregar el concepto de generación, es válido decir que cada vector de variables podrá ser identificado como xi,G , i = 1..., N P, G = 1, ..., M AX GEN . 5.1.1. Inicialización del algoritmo En esta etapa se asignan valores aleatorios mediante una distribución uniforme a las variables xi en ~x. Cada variable del problema se encuentra asociada a un rango delimitado por (liminf erior < xi < limsuperior ) donde los rangos de cada variable pueden variar. El dominio de los valores en las variables pertenece a los números reales. 5.1.2. Mutación de los individuos Cada vector xi,g , se convertirá en un vector objetivo para reproducirse y generar un vector hijo ui,G . Para crear un hijo, es necesario obtener un vector mutante, el cual se crea mediante la manipulación de los valores de otros vectores. En la ecuación 5.1.1 se define la forma de generar el vector de mutación. xmut = xr3 + F (xr1 − xr2 ) (5.1.1) 44 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Primero se le da una dirección a la búsqueda al obtener la diferencia entre dos vectores diferentes (xr1,G menos xr2,G ), la diferencia se escala al multiplicarla con el parámetro F > 0, para después sumarla a los valores de un tercer vector, los tres vectores se seleccionan aleatoriamente, tomando en cuenta que deben seguir la siguiente regla: r1 6= r2 6= r3 6= i (siendo i, el identificador del padre) La Figura 16 muestra el proceso de creación del vector mutante. El resultado de este proceso es una diferencia escalada de vectores, el cual define la dirección en que se mueve la búsqueda de la solución. La diferencia entre los vectores, sumada al valor del vector base, define la posición del vector mutante. Figura 16: Creación del vector mutante de DE. 5.1.3. Selección y eliminación de individuos Define la forma en que se discriminan los individuos que van a pasar a las siguientes fases del proceso evolutivo. El operador de recombinación se aplica entre el vector de mutación y el vector prueba para dar origen al vector de comparación y se realiza como lo indica la Ecuación 5.1.2 y se muestra en la Figura 17. ui,G = uj,i,G = vj,i,G xj,i,G−1 si (randj (0, 1) ≤ CR o j = jrand ) de otra manera (5.1.2) El valor de CR se encuentra en un rango de [0,1] y define qué tan parecido será el vector hijo con respecto al vector de mutación o al vector padre. Si CR es cercano a 1, el vector hijo se parecerá mucho al vector de mutación, si CR es cercano a 0, el vector hijo será muy similar al vector padre. Cabe mencionar que, aunque el valor de CR sea igual a 0 (lo que implicarı́a que el vector hijo sea 45 Capı́tulo 5. Algoritmos evolutivos implementados LANIA exactamente igual al vector padre), al menos una posición del vector hijo siempre será distinta, debido a la condición j = jrand , donde j representa una variable del vector que se está calculando y jrand es una posición del vector generada de manera aleatoria en la cual el vector padre y el vector hijo diferirán [121]. Figura 17: Recombinación en evolución diferencial. En la Figura 15, el vector randj (0,1) contiene valores (0,1), el valor en negrita es menor que CR, por lo tanto esa posición se copia del vector de mutación y el resto del vector padre. Se puede deducir que cuando el valor de CR se acerca a cero, se incrementa la probabilidad de que el vector sea similar al vector padre, mientras que será similar al vector de mutación cuando CR se acerca a uno. La implementación del algoritmo de evolución diferencial de este trabajo toma en cuenta la recombinación binomial, donde cada valor de las variables de decisión del padre se emparejan con las del vector de mutación y de acuerdo al valor de CR, se decide cual de los dos valores pasará al vector hijo. Cuando se ha generado el vector hijo se realiza un procedimiento de selección local bipartita simple, en la cual se comparan directamente los vectores padre e hijo. El mejor de ellos pasará a la siguiente generación, mientras que el peor será eliminado. El proceso de selección está definido por la Ecuación 5.1.3. xi,G = ui,G xi,G si f (ui,G ) ≤ f (xi,G−1 ) de otra manera (5.1.3) 46 Capı́tulo 5. Algoritmos evolutivos implementados 5.1.4. LANIA Manejo de restricciones El manejo de restricciones se explica en dos contextos diferentes, uno dentro del subproceso de mutación de los individuos en la población, mientras que el otro se refiere al subproceso de evaluación de los vectores de solución. Cada contexto sugiere un tipo diferente de manejo de restricciones, los cuales se describen a continuación. Restricciones en la mutación de individuos Ya que cada variable tiene asociado un lı́mite inferior y un lı́mite superior, cuando existe la situación en que el valor de mutación queda fuera de sus lı́mites, se tomó en cuenta la solución propuesta por Saku y Jouni en [122], que consiste en un conjunto de reglas definidas en la Ecuación 5.1.4. ( uj,i,G = 2xj liminf − uj,i,G 2xj limsup − uj,i,G uj,i,G si uj,i,G < xj liminf si uj,i,G > xj limsup de otra manera (5.1.4) Donde liminf y limsup corresponden a los lı́mites previamente impuestos para cada variable en la definición del problema de optimizar. Restricciones en la evaluación de individuos Dentro de este contexto, el manejo de restricciones consiste en la implementación de penalizaciones cuando una restricción predefinida en la función de optimización ha sido violada. Para cada individuo dentro de la función de evaluación, se analiza el valor de sus restricciones, cuando alguna restricción es mayor a cero, el valor de factibilidad se vuelve negativo y se incrementa en una unidad el valor fitness, de esta manera, resulta menos probable que el mismo individuo sea elegido. Aún siendo la penalización muy pequeña, se han obtenido buenos resultados. Esta función se muestra en el siguiente algoritmo: 47 Capı́tulo 5. Algoritmos evolutivos implementados LANIA for G=1 to NUM RESTRICCIONES do if restriccionesi,G > 0 then restricciones(i,G) = f (Xi,G ) + N umV iolaciones(Xi,G) else restricciones(i,G) = f (Xi,G ) end end 5.2. Evolución diferencial (DE/best/1/bin) La diferencia con respecto a DE/rand/1/bin consiste en que el vector base se selecciona encontrando el mejor individuo (“best”) entre toda la población, mientras que en la implementación descrita en la sección anterior lo hace de forma aleatoria. En DE/best/1/bin los vectores r1 y r2 siguen siendo seleccionados aleatoriamente. La ecuación 5.2.1 define la forma en que genera el vector de mutación. xmut = xrbest + F (xr1 − xr2 ) (5.2.1) En esta sección resulta importante retomar la siguiente regla. rbest 6= r1 6= r2 6= i (siendo i, el identificador del padre) (5.2.2) Durante el proceso de mutación de individuos, cuando el vector base se elige al escoger el mejor individuo entre toda la población, en algún momento este vector base rbest apuntará al mismo vector que aquel identificado como padre en 5.2.2. Esto quiere decir que cuando rbest = i, la regla definida en 5.2.2 no se cumple. Para solucionar esta situación, al identificador del vector base rbest se le suma una unidad, de esta manera y para este único caso, se hace una excepción y se ignora el vector considerado como el mejor con rbest + 1. Considérese un caso de ejemplo, dentro de una población de 100 individuos, donde rbest = 20 e i = 20, al incrementar el mejor vector en una unidad, la condición en 5.2.2 se vuelve a cumplir. 48 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Si después de realizar el incremento se da el escenario de que el identificador del mejor vector sobrepasa al lı́mite superior, es decir que apunta a un individuo inexistente (101 en el caso descrito anteriormente), entonces el identificador de rbest se decrementa en una unidad, en caso contrario, si se encuentra en el lı́mite inferior, se incrementa una unidad. 5.3. Estrategia evolutiva El objetivo principal del algoritmo consiste en optimizar el resultado de las funciones de evaluación, por medio de la mutación y recombinación de los individuos participantes en su proceso iterativo de evolución. La primera versión del algoritmo se identificó como (1 + 1)-ES, la cual utiliza sólo un individuo y es mutado usando el parámetro σ, para dar como resultado un hijo. En cada iteración, se escoge la mejor solución entre los individuos y sólo uno puede sobrevivir para comenzar de nuevo el subproceso mencionado anteriormente [123]. La primer extensión de este algoritmo diseñada por Rechenberg se identifica como (µ + 1)-ES, donde la notación indica que se utilizan µ padres, los cuales generan λ hijos, por medio del operador de selección “+”. La idea general consiste en crear un conjunto inicial de soluciones aleatorias, las cuales serán los padres y que por cada generación desarrollaran un conjunto de mutaciones (los hijos), que pretenden competir con los padres y obtener soluciones mejores a través del número de iteraciones. De acuerdo con la propuesta de Schwefel [124, 125], en el algoritmo ES multimiembros, al momento de realizar la selección de nuevos individuos, los cuales pasarán a la siguiente iteración, se pueden distinguir dos mecanismos, estos son: (µ + λ)-ES y (µ, λ)-ES. En el primer método el grupo de sobrevivientes se toma de la unión de los padres con los hijos (offspring), mientras que en el segundo se toman solo del offspring. Una propiedad del método implementado es que las soluciones iniciales no tienen la capacidad de sobrevivir más de una generación, se supone en cada generación la mejora de los individuos a través del proceso evolutivo, los cuales van encontrando valores fitness mejores. Cada individuo conserva los elementos presentados al principio de la sección, agregando a estos un conjunto de valores σ del mismo tamaño que el conjunto de variables de decisión (X). Los valores en el vector σ se utilizan en el proceso de mutación. 49 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Después de un número determinado de generaciones, el algoritmo termina de acuerdo a diferentes condiciones, dependientes de la implementación. Estas condiciones o criterios de parada pueden ser los siguientes: [123]: Criterio por recursos • Número máximo de iteraciones • Lı́mite de tiempo de procesamiento Criterio por convergencia • Definición sobre los valores fitness • Definición sobre los parámetros objeto (variables de decisión) • Definición sobre parámetros estratégicos (σ) La implementación estudiada e implementada en este trabajo hace referencia al algoritmo de estrategia evolutiva multimiembro, con tipo de selección “coma” y con mutaciones no co-relacionadas. Se muestra este algoritmo en el Algoritmo 9 Algoritmo 9: Estrategia evolutiva (µ, λ). t=0 Crear µ soluciones aleatorias como población inicial Evaluar los µ individuos generados for t=1 to MAX GEN do Producir λ offspring recombinando los µ padres Mutar cada hijo (individuo de λ) Evaluar individuos en λ µ0 = Seleccionar mejores de µ ∪ λ end ES necesita conocer los valores de algunos parámetros para funcionar correctamente, tales como el número de padres, el tamaño del offspring (descendientes) y el número de generaciones. Se presenta en la siguiente tabla una descripción de estos valores [123]. Cuadro 5: Parámetros de estrategia evolutiva. Nombre Descripción Número de padres El tamaño de los padres en cada generación Número de hijos El tamaño de los individuos mutados y recombinados Número de generaciones Número total de iteraciones 50 Capı́tulo 5. Algoritmos evolutivos implementados 5.3.1. LANIA Selección de individuos Al igual que en todos los algoritmos de búsqueda, uno de los aspectos principales de su funcionamiento se refiere a la forma en que definen la dirección para recorrer el espacio de soluciones. De la forma en que se mostró, en ES existen dos métodos de selección, el método de selección denotado por el signo “+” y el denotado por “,”, ambos tienen la capacidad de ser determinı́sticos y elitistas. Figura 18: Selección para (µ + λ)-ES. El ejemplo de la figura 18, muestra un ejemplo de la selección “+”, donde el conjunto de individuos seleccionados se toma de la unión de los padres con los hijos en la iteración t. Es necesario notar que el grupo λ, tiene un mayor número de integrantes, es decir, se cumple la condición µ < λ, con el objetivo de que en el proceso exista suficiente información derivada de la mutación de los padres. Si el número de padres fuera igual al de los hijos, no se estarı́a haciendo una selección, sino un recorrido aleatorio [123]. Figura 19: Selección para (µ, λ)-ES. La discriminación de los individuos se realiza mediante la comparación de su valor fitness, donde los más altos se consideran de mejor calidad, ası́ los individuos con mayor calidad, tendrán la oportunidad de reproducirse. En la figura 19, se muestra un ejemplo de selección “,”. donde se puede observar que se toman los mejores µ hijos resultantes de la mutación en cada generación t. Los individuos seleccionados en una generación t, se convierten en los padres de la siguiente generación t+1, los nuevos padres serán mutados, recombinados y comparados contra el nuevo offspring, hasta encontrar un criterio de parada. 51 Capı́tulo 5. Algoritmos evolutivos implementados 5.3.2. LANIA Mutación El funcionamiento principal de la mutación consiste en aplicar variaciones a los valores de las variables de decisión, ası́ como a los parámetros estratégicos. Al proceso de mutación de los individuos dentro de la iteraciones, se le conoce como “evolución”, siendo la mutación y selección a través del tiempo, la analogı́a directa entre el proceso reproductivo de la naturaleza y los algoritmos bio-inspirados. Dentro del contexto de la mutación en ES, los valores de σ co-evolucionan con el valor de f (x) al tener una relación de cambio con los valores xt . La mutación se calcula mediante las ecuaciones 5.3.1 y 5.3.2. σi0 = σi ∗ exp(τ 0 ∗ N (0, 1) + τ ∗ Ni (0, 1)) x0i = xi + σi0 ∗ Ni (0, 1) (5.3.1) (5.3.2) Los valores τ y τ 0 son interpretados como tasas de aprendizaje y son definidos p √ −1 √ −1 por su autor de la siguiente manera: τ = ( 2 ∗ n ) y τ 0 = ( 2n ), Ni (x, y) es una función que devuelve un número aleatorio real con distribución normal con media “x” y desviación “y”. El ı́ndice i indica que este número aleatorio es generado para cada variable de decisión. La mutación de las variables de decisión puede resultar en valores fuera del rango permitido para cada xi . Es necesario revisar y ajustar los valores generados puesto que una variable fuera de rango implica una mayor probabilidad de un resultado no satisfactorio en la evaluación del individuo. 5.3.3. Recombinación Existen dos tipos de recombinación, recombinación discreta y recombinación intermedia, ambos tipos de operaciones pueden ser ejecutadas entre dos o más padres o variables de decisión, en ES la recombinación es el siguiente paso de la mutación y deriva la generación del offspring. Para lograr un mejor entendimiento, se define que una recombinación ocurre entre dos mutaciones P 1i y P 2i . De forma genérica, la recombinación de estos individuos puede completarse mediante dos formas: Recombinación discreta: El individuo dentro de λ, se escoge por algún criterio probabilı́stico y puede ser P 1i y P 2i . Recombinación intermedia: El individuo dentro λ se escoge como resultado de la aplicación de la fórmula: P 1i + ((P 2i − P 1i )/2) 52 Capı́tulo 5. Algoritmos evolutivos implementados LANIA El proceso de recombinación se realiza un número de veces equivalente al número de mutaciones obtenido, al final del proceso se obtendrá el mismo número de individuos recombinados, de los cuales, los mejores podrán pasar a la siguiente fase para convertirse en los nuevos padres. 5.3.4. Manejo de restricciones Las restricciones se toman en cuenta a la hora de generar las mutaciones para las variables de decisión dentro de un individuo. El manejo primario de las restricciones, se basa en asegurar que en cada mutación, el valor que se asigna a la variable quede dentro de los lı́mites establecidos por la definición de la función que se esté evaluando. Cada variable tiene asociado tanto un lı́mite inferior, como un lı́mite superior (ambos números reales). Si el valor de una mutación queda fuera de sus lı́mites, la probabilidad de que las restricciones no se cumplan, es mucho mayor, para evitar esto, en ES se tomó en cuenta la siguiente solución. Si la mutación es mayor que el lı́mite inferior y menor que el superior, el valor de la mutación es aceptado, en caso contrario se genera una nueva solución aleatoria. uj,i,G = Aleatorios(liminf ,limsup ) uj,i,G si uj,i,G < xj liminf o uj,i,G > xj limsup de otra manera El manejo de las restricciones del problema de optimización, ası́ como de sus penalizaciones se realiza de la misma forma que en DE. 5.4. Colonia artificial de abejas Es un algoritmo de reciente creación que comparte ciertas caracterı́sticas generales con los métodos explicados, fue presentado por Karaboga [126]. Como su nombre lo indica, se inspira en el comportamiento de obtención de alimento de las abejas, retomando las observaciones del estudio de procesos internos en las colonias de estos insectos y haciendo énfasis en el aspecto social que implementan para conseguir generar conocimiento colectivo, a través del intercambio de información durante el proceso. Haciendo una referencia del método real, el modelo biológico de recolección de alimento de las abejas está compuesto por los siguientes elementos: 53 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Fuentes de alimento: El valor de una fuente de alimento depende de muchos factores, tales como: la cercanı́a que tiene con la colmena, la concentración de alimento y la facilidad para extraerlo. Una fuente de alimento en el modelo de la naturaleza, es representado por un individuo dentro de la población en una generación g. Por simplicidad, es posible representar la rentabilidad de una fuente de alimento mediante un valor numérico, dicho valor se puede mapear como el valor f (~x), sin tomar en cuenta las restricciones. Abejas empleadas: Estas abejas están asociadas con una fuente particular de alimento, la cual está siendo explotada en una generación g, el trabajo de las recolectoras consiste en obtener el alimento de una fuente de trabajo por un tiempo limitado, una vez que ese tiempo finaliza, vuelven a reportar la calidad de la fuente que explotaron recientemente. Abejas desempleadas (exploradoras): Estas abejas pueden buscar fuentes de alimentos y/o están a la expectativa de la información de las recolectoras, dependiendo de la calidad reportada en las diferentes fuentes exploradas, pueden unirse a abejas compañeras para trabajar en otra parte. Como se mencionó, una fuente de alimento corresponde a un individuo de la población en un determinado tiempo, lo cual indica que una fuente de alimento especı́fica puede ir mutando a través de las generaciones para convertirse en la mejor solución global encontrada. El número de abejas recolectoras es el mismo que el número de fuentes de alimento, lo cual corresponde al número de individuos en los parámetros de entrada. 54 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Figura 20: Entorno de la colonia artificial de abejas. La Figura 20 muestra un ejemplo de la interacción entre las abejas en un determinado tiempo (generación), ya que el número de abejas es el mismo que el número de fuentes de alimento (de acuerdo a la implementación del algoritmo), al principio cada abeja explota una fuente aleatoria de alimento, para regresar a reportar la calidad de su fuente, en este momento, los mejores lugares son preferidos sobre los lugares con un valor bajo. En el ejemplo de la Figura 20 dos abejas están comprometidas con la fuente de alimento B, al suponer que alguna de ellas (quizá la abeja 2) la explotó anteriormente, reportó buenos resultados y reclutó a la abeja 3 porque el valor de la fuente de alimento es muy alto. En caso de que la fuente no tenga buenos resultados, la abeja puede optar por volverse desempleada. Las abejas desempleadas pueden dedicarse a buscar nuevas fuentes o ser observadoras a la espera de ser reclutadas y volverse recolectoras. La abeja 4 se encuentra explotando la fuente A, decidiendo explotarla en varias ocasiones. 55 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Algoritmo 10: Algoritmo Colonia artificial de abejas (ABC). Inicializar la población de soluciones xi , 0, i = 1, ..., SN Evaluar la población for G=1 to MNC do Enviar a cada abeja a una fuente aleatoria Generar nuevas soluciones vi,g para las abejas empleadas con vi,g = xi,g + φ ∗ (xi,g − xk,g ) Evaluar soluciones generadas (mutaciones) Seleccionar las fuentes de alimento que serán visitadas por las abejas, la selección depende de la calidad encontrada en la fuente Generar nuevas soluciones vi,g para las abejas empleadas con vi,g = xi,g + φ ∗ (xi,g − xk,g ) Evaluar soluciones generadas (mutaciones) Comparar soluciones, seleccionar la mejor Determinar si existe una fuente abandonada y re-emplazarla con una solución aleatoria end Devolver la mejor solución El Algoritmo 10 muestra una implementación general del algoritmo ABC, para funcionar necesita conocer los valores de algunos parámetros, tales como el número soluciones a considerar (SN), el número de generaciones en la evolución (MNC) y el número de generaciones que una solución puede permanecer sin mejora antes de ser modificada (Lı́mite). Se presenta en la siguiente tabla una descripción de estos valores. Cuadro 6: Parámetros de Colonia Artificial de Abejas. Nombre Descripción SN Número de soluciones en la población MNC Iteraciones del algoritmo Lı́mite Número de no mejores para re-aleatorizar una fuente de alimento 5.4.1. Selección de fuentes de alimento Este proceso corresponde a la asignación de abejas desempleadas en las mejores fuentes de alimento encontradas, también se refiere a la danza de las abejas, tomando en cuenta que representa a las mejores soluciones tarda más tiempo en ser ejecutada, por lo que tiene una mayor probabilidad de ser observada. 56 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Si se toma el concepto de probabilidad, este procedimiento se resume en el sub-problema de encontrar la probabilidad (como un porcentaje o valor real entre 0-1) de cada fuente y asignar un número proporcional de abejas de acuerdo a este valor probabilı́stico. La primera opción para solucionar esta problemática fue la selección por ruleta donde los valores de bondad de las fuentes son los generadores de la distribución de la probabilidad entre las mismas, sin embargo, este método falló cuando un valor de bondad (tomado de f (x)) resultó negativo. La asignación de abejas debe ser coherente con la diferencia de porcentajes entre las fuentes (selección proporcional del capı́tulo 3), por ejemplo, al imaginar la asignación de cuatro abejas a una fuente f1 con valor -800, y las demás fuentes con valor 0.0, se puede aceptar que el total de abejas trabajen en la fuente f1, dado que la diferencia de mejora con respecto a las demás fuentes es muy amplia (en caso de minimización). Del mismo modo, si devolviera f1:-50, f2:-30 y las demás 0.0, se aceptarı́a que la mitad de las abejas sean asignadas a f1 y la otra mitad a f2, también serı́a aceptable que tres abejas trabajen en f1 y solo una en f2. Se implementó un mecanismo de “selección por sub-torneos binarios”, el cual implementa una selección proporcional basada en la comparación iterativa de los valores de bondad de las fuentes de comida. En cada comparación existe un ganador y por cada uno se incrementa su cuenta personal. Aunque al final de un número limitado de enfrentamientos se obtendrá un ganador, la finalidad es contar el número de veces que las fuentes ganan los sub-torneos, hasta que la suma de las cuentas personales ha alcanzado al número del total de abejas disponibles. Figura 21: Selección por sub-torneos binarios. 57 Capı́tulo 5. Algoritmos evolutivos implementados LANIA La Figura 21 muestra como se realizan las comparaciones entre los individuos, existe un vector de ganancias, que tiene un espacio para cada participante. Los participantes son las fuentes de alimento disponibles, cada uno se mide con respecto al valor de bondad de cada fuente, en cada comparación o sub-torneo, el ganador incrementa su cuenta de ganancias, al final de la ejecución el valor de la ganancia será el número de abejas que serán asignadas a la fuente de alimento. La condición de paro del algoritmo será haber asignado el total de abejas a las fuentes de alimento o que no existan más comparaciones posibles. Este algoritmo toma como base que la fuente de alimentos con mejor valor obtendrá el mayor número de ganancias durante todas las iteraciones, lo cual se verá reflejado en el vector final, sin embargo, es posible manipular el resultado de la cuenta de ganadores configurando el nivel de elitismo, al indicar el número de iteración desde donde deben comenzar a incrementarse las ganancias. En el ejemplo de la Figura 21, se pueden observar las siguientes comparaciones para la iteración 0: {(Azul-Verde),(Verde-Amarillo),(AmarilloCafé),(Café-Naranja),(Azul-Naranja)}, de las cuales se obtienen 5 elementos ganadores, en la iteración 1, se realiza el mismo proceso, pero al encontrar la comparación Azul-Azul, se ignora y elimina a uno de los participantes repetidos, las comparaciones continúan hasta alcanzar la condición de paro previamente definida. Al finalizar, el total de abejas habrá sido distribuido uniformemente entre los mejores individuos, en el ejemplo presentado, si se elige empezar por la iteración 1, la asignación de abejas quedará de la siguiente manera: {Azul=2, Verde=1, Amarillo=1, Naranja=1}, que al ser una iteración cercana a 0 promueve la exploración de fuentes, contrario a elegir la iteración 3, que resulta en la asignación elitista {Azul=2, Verde=0}, en todos los casos se respetan las diferencias entre los valores de los participantes y se consigue implementar una selección proporcional. 5.4.2. Mutación La mutación de los individuos sucede cuando las abejas recolectoras explotan una fuente de alimento, la cual se define mediante la implementación de la ecuación 5.4.1. vi,g = xi,g + φ ∗ (xi,g − xk,g ) (5.4.1) en la cual i representa la fuente de alimento donde se encuentra actualmente, k es una fuente de alimento aleatoria diferente, g es el número de generación y φ es 58 Capı́tulo 5. Algoritmos evolutivos implementados LANIA un número real aleatorio en el intervalo [-1,1]. La aplicación de esta fórmula para las fuentes de alimento visitada deriva en nuevas soluciones candidatas. Es notable que la mutación de los individuos se realiza en dos ocasiones por cada generación, para esto necesita una tabla de asignaciones, la asignación de abejas a las fuentes más valiosas se puede representar como en la siguiente tabla. Observadora 1 2 3 Fuente 3 1 1 k 2 3 1 φ1 0.1 0.16 0.01 φ2 0.5 0.2 0.3 La mutación de un individuo se realiza al aplicar la fórmula a las variables de decisión de los individuos (xi ), para todos los individuos de la población en una generación. Al modificar las variables de decisión y evaluar al individuo, se comparan el valor de la función objetivo recién obtenido (f (x)0 ) contra el obtenido antes de la mutación f (x), si f (x)0 es mejor que f (x), el individuo modificará sus valores por los mutados, en caso contrario, se ignoran los valores de la mutación y el individuo conserva los que tenı́a antes de comenzar el proceso. 5.4.3. Mecanismo de reemplazo ABC lleva una cuenta de las veces en que una fuente de comida no mejora su productividad, esta información es parte del conocimiento que cada abeja recolectora tiene de la explotación de las soluciones. Cuando una fuente no mejora en un número determinado de generaciones, los valores de la misma vuelven a generarse de forma aleatoria. 5.4.4. Manejo de restricciones De la misma manera que en los algoritmos anteriores, el manejo de restricciones se realiza en la evaluación de la función f (x), penalizando las restricciones violadas al sumar la cantidad de restricciones no cumplidas el valor del fitness (recordando que se escogerán los individuos con fitness bajo). Los lı́mites de las variables se cuidan en cada mutación, re-aleatorizando los valores que resulten sobrepasar los lı́mites. 5.5. Resultados experimentales En este apartado se presentan los resultados obtenidos por las heurı́sticas basadas en Evolución Diferencial Best, Evolución Diferencial Rand, Colonia Artificial de Abejas y Estrategia Evolutiva, implementadas para las funciones con 59 Capı́tulo 5. Algoritmos evolutivos implementados LANIA restricciones presentadas en el congreso de cómputo evolutivo CEC 2006 [14]. En todas las evaluaciones, las restricciones de igualdad se traducen a restricciones de desigualdad mediante el valor EPSILON = 0.0001. Los objetivos son implementar funciones competitivas y lograr una categorización de las heurı́sticas por cada conjunto de funciones. Información y definición de las funciones puede ser encontrada en [14]. 5.5.1. Resultados de funciones CEC 2006 Todas las ejecuciones sobre las funciones CEC fueron limitadas por un número máximo de evaluaciones de individuos (MAX FES) equivalente a 500000, donde el contador de evaluaciones se incrementa por la evaluación de una solución hijo o padre, durante todas las generaciones. Al alcanzar el valor de MAX FES, el algoritmo se detiene y devuelve el mejor resultado obtenido hasta el momento. La configuración de parámetros para las heurı́sticas es la siguiente: Evolución Diferencial Rand: 300 individuos en la población, 5000 generaciones, factor de mutación con valor de 0.5, factor de recombinación con valor de 0.5 y MAX FES igual a 500000. Evolución Diferencial Best: 300 individuos en la población, 5000 generaciones, factor de mutación con valor de 0.5, factor de recombinación con valor de 0.5 y MAX FES igual a 500000. Estrategia Evolutiva: 100 padres, 300 hijos, 5000 generaciones y MAX FES igual a 500000. Colonia Artificial de Abejas: 300 individuos en la población, 5000 generaciones, el lı́mite de re-aleatorización con valor de 500 y MAX FES igual a 500000. Los cuadros 7, 8, 9, 10 y 11 contienen los resultados estadı́sticos de EDR, EDB, ABC y ES para las 24 funciones del CEC 2006. 60 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Cuadro 7: Resultados originales CEC2006: g01-g05. Algoritmo EDR EDB Algoritmo ABC ES g01 g02 g03 g04 g05 Mejor Mediana Peor Promedio σ -15 -15 -15 -15 0 -0.8034 -0.8033 -0.8033 -0.8033 3.1×10−5 -0.999 -0.9997 -0.9997 -0.9997 5.6×10−5 -30665.53 -30665.53 -30665.53 -30665.53 0 5126.496 5126.496 5126.496 5126.496 0 Mejor Mediana Peor Promedio σ -15 -15 -15 -15 0 -0.8035 -0.8035 -0.8034 -0.8035 1.6×10−5 -0.9999 -0.9998 -0.9997 -0.9998 3.3×10−5 -30665.53 -30665.53 -30665.53 -30665.53 0 5126.496 5126.496 5126.496 5126.496 0 g01 g02 g03 g04 g05 Mejor -14.9993 Mediana -14.9991 Peor -14.9998 Promedio -14.9991 σ 0.0001 -0.7180 -0.6598 -0.5843 -0.6547 0.0362 -0.9997 -0.9994 -0.9992 -0.9994 0.0001 -30665.535 -30665.531 -30665.527 -30665.531 0.0020 5133.1659 5151.4890 5166.877 5150.0275 7.7817 Mejor -15 Mediana -14.9999 Peor -11.6470 Promedio -14.6479 σ 0.8329 -0.7941 -0.6799 -0.4976 -0.6744 0.0708 -0.9932 -0.9803 -0.6021 -0.9514 0.0843 -30665.5381 5127.2591 -30663.0860 5243.4413 -30348.1656 5508.4594 -30631.0098 5289.3260 72.4799 139.3389 61 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Cuadro 8: Resultados originales CEC2006: g06-g10. Algoritmo EDR EDB Algoritmo ABC ES g06 g07 g08 g09 g10 Mejor Mediana Peor Promedio σ -6961.813 -6961.813 -6961.813 -6961.813 0 24.375 24.402 24.447 24.408 0.0194 -0.0958 -0.0958 -0.0958 -0.0958 0 680.6310 680.6316 680.6325 680.6316 0.0003 7124.321 7169.260 7226.040 7170.742 24.2834 Mejor Mediana Peor Promedio σ -6961.813 -6961.813 -6961.813 -6961.813 0 24.354 24.377 24.395 24.376 0.0096 -0.0958 -0.0958 -0.0958 -0.0958 0 680.6304 680.6308 680.6316 680.6308 0.0002 7079.126 7116.371 7225.830 7116.454 26.603 g06 g07 g08 g09 g10 Mejor -6961.8127 24.4897 -0.0958 680.6371 Mediana -6961.8100 24.5960 -0.0958 680.6521 Peor -6961.8065 24.8231 -0.0958 680.6680 Promedio -6961.8097 24.6043 -0.0958 680.6518 σ 0.00171 0.0699 0 0.0067 7187.820 7273.058 7399.175 7282.283 53.7365 Mejor -6961.8138 24.6716 -0.0958 680.9046 7054.7330 Mediana -6961.8138 30.2673 -0.0958 681.8185 7916.8288 Peor -6961.8138 44.3930 -0.0291 722.7354 12859.649 Promedio -6961.8138 30.6393 -0.0936 685.0455 8435.0404 σ 0 4.8043 0.0121 9.0188 1407.5250 62 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Cuadro 9: Resultados originales CEC2006: g11-g15. Algoritmo EDR EDB Algoritmo ABC ES g11 g12 g13 g14 g15 Mejor 0.7499 Mediana 0.7499 Peor 0.7499 Promedio 0.7499 σ 0 -1 -1 -1 -1 0 0.3713 0.9237 0.9914 0.8919 0.5759 -41.053 -39.493 -37.665 -39.494 0.5759 961.7150 961.7150 961.7150 961.7150 0 Mejor 0.7499 Mediana 0.7499 Peor 0.7499 Promedio 0.7499 σ 0 -1 -1 -1 -1 0 0.1103 0.4859 0.9799 0.5654 0.2816 -40.307 -37.734 -35.168 -37.918 1.0473 961.7150 961.7150 961.7150 961.7150 0 g12 g13 g14 g15 g11 Mejor 0.7547 Mediana 0.8255 Peor 1.3694 Promedio 0.8863 σ 0.1813 -1 -1 -1 -1 0 0.8863 -43.4777 962.4097 0.9840 -41.6816 962.9236 1.0000 -40.1322 972.2654 0.9791 -41.7874 963.7842 0.1243 0.8701 2.4459 Mejor 0.7499 -1 0.2999 -44.3573 961.7150 Mediana 0.8300 -1 0.9144 -40.7897 962.0133 Peor 0.9125 -0.99 2.6546 -37.6778 967.9998 Promedio 0.8155 -1 0.9213 -41.0848 962.6875 σ 0.0422 0.0018 0.4341 1.8613 1.4472 63 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Cuadro 10: Resultados originales CEC2006: g16-g20. Algoritmo EDR EDB g16 g17 Mejor Mediana Peor Promedio σ -0.8919 -0.7772 -0.6795 -0.7851 0.0547 8851.81(1) 8939.94(1) 8946.94(2) 8948.05(1) 80.9426 -0.8609 33.9512 -0.8587 34.3534 -0.8548 34.8489 -0.8586 34.3598 0.0017 0.2224 0.947(16) 1.325(17) 2.435(17) 1.412(17) 0.4151 Mejor Mediana Peor Promedio σ -0.9869 -0.8528 -0.7092 -0.8517 0.0719 8863.675 8930.893 9199.15(1) 8963.09(1) 113.413 -0.8647 -0.8627 -0.8613 -0.8628 0.0007 33.1872 33.6301 34.1252 33.6594 0.20801 0.794(14) 0.739(15) 3.441(15) 1.121(15) 0.957 g16 g17 g18 g19 g20 -1.1247 -0.9734 -0.7758 -0.9594 0.0902 8860.914 8930.732 8937.665 8918.323 26.6839 -0.8609 -0.8528 -0.8463 -0.8534 0.0034 Algoritmo ABC ES Mejor Mediana Peor Promedio σ Mejor -1.5356 Mediana -1.0461 Peor 0.0895(3) Promedio -1.0977 σ 1.7411 g18 g19 g20 45.2365 8.4067(17) 71.3447 7.8877(18) 2779.17 11.0267(18) 312.931 7.9913(18) 529.845 1.1677 8851.755 -0.8657 64.1907 8939.517 -0.6651 109.855 9159.005(1) 0.0139 189.948 8930.842 -0.6973 114.708 30.5259 0.1512 33.5364 0.3821(11) 2.0913(14) 5.5562(20) 2.0725(14) 87.30 64 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Cuadro 11: Resultados originales CEC2006: g21-g24. Algoritmo EDR EDB g21 g22 g23 g24 Mejor 343.7368 Mediana 772.824(3) Peor 991.189(3) Promedio 738.122(2) σ 170.3376 4185.96(9) 13856.0(10) 19393.9(10) 13271.4(10) 4151.76 -1193.787(2) 51.419(3) 508.11(3) 17.579(3) 235.928 -5.5080 -5.5080 -5.5080 -5.5080 0 Mejor 193.7318 Mediana 324.7432 Peor 546.151(2) Promedio 337.832 σ 206.0725 2875.08(9) 12886.37(9) 19966.1(10) 11715.80(9) 5464.8253 -634.97(2) 188.771(3) 607.509(3) 110.893(3) 281.8148 -5.5080 -5.5080 -5.5080 -5.5080 0 g21 g22 g23 g24 218.056 356.423 430.075 352.232 42.3454 8378.27(10) 11039.0(11) 19969.4(11) 11960.3(11) 4151.0939 -325.9810 -101.0603 82.9720 -87.6912 116.8245 -5.5080 -5.5080 -5.5080 -5.5080 0 Algoritmo ABC ES 5.5.2. Mejor Mediana Peor Promedio σ Mejor 250.2270 Mediana 295.9657 Peor 326.733(3) Promedio 297.692 σ 27.0333 7640.4751(4) -279.3406 -5.50801 11480.110(5) -112.4927(1) -5.50801 9990.3231(12) -147.5654(1) -5.49832 12836.4083(5) -77.3736(1) -5.50769 3985.2149 159.7380 0.00176 Comparación de resultados contra el entorno de referencia (Benchmark) Los cuadros 12, 13, 14 y 15 muestran el mejor valor alcanzado por EDR, EDB, ABC y ES. Además del valor óptimo reportado en el benchmark. Aquellos valores remarcados con negrita, son iguales a los del benchmark. 65 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Cuadro 12: Comparación de resultados CEC2006: g01-g06. Resultado g01 BenchMark -15 EDR -15 EDB -15 ABC -14.9993 ES -15 g02 g03 g04 -0.8036 -1.0005 -30665.539 -0.8034 -0.9999 -30665.5386 -0.8035 -0.9999 -30665.5386 -0.7180 -0.9997 -30665.535 -0.7941 -0.9932 -30665.5381 g05 g06 5126.497 -6961.814 5126.4967 -6961.8138 5126.4967 -6961.8138 5133.1659 -6361.8127 5127.2591 -6961.8138 Cuadro 13: Comparación de resultados CEC2006: g07-g12. Resultado g07 g08 g09 g10 BenchMark 24.306 -0.09582 680.6301 7049.248 EDR 24.375 -0.0958 680.6310 7124.321 EDB 24.3546 -0.0958 680.6304 7079.265 ABC 24.4897 -0.0958 680.6371 7187.8208 ES 24.6716 -0.0958 680.9046 7054.7330 g11 g12 0.7499 0.7499 0.7499 0.7499 0.7499 -1 -1 -1 -1 -1 Cuadro 14: Comparación de resultados CEC2006: g13-g18. Resultado BenchMark EDR EDB ABC ES g13 g14 g15 g16 g17 g18 0.05349 -47.765 961.71502 -1.90515 8853.5397 0.3713 -41.053 961.7150 -0.8919 8851.8172 0.1103 -40.307 961.7150 -0.9869 8863.675 0.8863 -43.4777 962.4097 -1.1247 8860.914 0.2999 -44.3573 961.7150 -1.5356 8851.755 -0.86602 -0.8609 -0.86476 -0.8609 -0.8657 Cuadro 15: Comparación de resultados CEC2006: g19-g24. Resultado BenchMark EDR EDB ABC ES g19 g20 g21 32.6555 Infactible 193.72451 33.9512 0.947(16) 343.7368 33.1872 0.794(14) 193.7318 45.2365 8.4067(17) 218.056 64.1907 0.3821(11) 250.2270 g22 g23 g24 236.43097 -400.0551 -5.50801 4185.96(9) -1193.787(2) -5.5080 2875.08(9) -634.97(2) -5.5080 8378.27(10) -325.9810 -5.5080 7640.4751(4) -279.3406 -5.5080 Derivado de la exploración a los resultados obtenidos por los algoritmos evolutivos, surge una hipótesis, la cual afirma que los algoritmos EDB y EDR 66 Capı́tulo 5. Algoritmos evolutivos implementados LANIA tienen un mejor rendimiento que ES y ABC. Para poder describir la calidad de los resultados se realiza una comparación en parejas entre los EA mediante la prueba con signo de Wilcoxon. El siguiente cuadro muestra las comparaciones necesarias para realizar una categorización con respecto a la calidad de cada EA con respecto a los demás. 67 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Cuadro 16: Prueba Wilcoxon para los EA sobre CEC 2006. Wilcoxon con funciones CEC2006 EDB>EDR EDR>ABC ABC>ES g01 p-value Iguales R+ + R− Iguales p-value 1.7×10−6 R+ + R− -465 p-value 0.0471 R+ + R− -193 g02 1.7×10−6 -465 1.7×10−6 -465 0.1359 145 g03 6.9e×10−6 -437 1.7×10−6 -465 1.7×10−6 -465 g04 Iguales Iguales 1.7×10−6 -465 3.5×10−6 -451 g05 Iguales Iguales 1.7×10−6 -465 6.01×10−5 -334 g06 Iguales Iguales 1.7×10−6 -465 1.7×10−6 465 g07 1.7×10− 6 -465 1.7×10−6 -465 1.7×10−6 -465 g08 Iguales Iguales Iguales Iguales 0.3173105079 -1 g09 1.7×10−6 -465 1.7×10−6 -465 1.7×10−6 -465 g10 6.5×10−6 -445 1.9×10− -6 -464 3.4×10−5 -403 g11 Iguales Iguales 1.7×10−6 -465 1.9×10−6 -465 g12 Iguales Iguales Iguales Iguales 0.3173 -1 g13 0.0001 356 2.0e×10−5 -317 0.2418 -87 g14 6.98×10−6 -437 2.5e×10−6 435 2.5×10−6 -435 g15 Iguales Iguales 1.7×10−6 -465 1.9×10−6 -465 g16 0.0008 -309 3.5e×10−6 458 0.0593 37 g17 0.7173 -14 0.1504 284 0.0142 -193 g18 1.7×10−6 -465 4.7×10−6 -455 0.0004 -292 g19 1.7×10−6 -465 1.7×10−6 -465 0.517 63 g20 Infactible Infactible Infactible Infactible Infactible Infactible g21 0.0001 -264 1.9×10−6 464 0.0026 127 g22 Infactible Infactible Infactible Infactible Infactible Infactible g23 0.2188 108 0.0413 65 0.5929 -2 g24 Iguales Iguales Iguales Iguales 0.3173 -1 Mejorı́a: 50 % Mejorı́a: 63 % Mejorı́a: 54 % 68 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Interpretación de resultados y categorización de EAs Para interpretar la calidad en los resultados de los algoritmos evolutivos, se realizaron pruebas Wilcoxon con signo. La información de las pruebas se usa para comparar y categorizar los resultados de los EAs [127]. La suma de los valores de todas las categorı́as se obtiene mediante la formula: MAX R=n((n + 1)/2), la cual indica el nivel de bondad del algoritmo con mejor desempeño en la comparación. La suma de diferencias entre los valores de las muestras comparadas R+ y R− se representan por las siguientes fórmulas: 1X rango(di ) 2 d =0 di >0 i X 1X − rango(di ) R = rango(di ) + 2 d =0 d <0 R+ = X i rango(di ) + i Para las comparaciones presentadas en el cuadro 16, se relaciona R− con la suma de los rangos de las diferencias en las cuales el primer algoritmo mejora al segundo. Al sumar (R+ ) + (R− ) se obtiene un valor W positivo o negativo, en caso de que W sea positivo el primer algoritmo no es mejor que el segundo, esto implica rechazar la hipótesis nula, mientras que un W negativo la confirma. Ya que se tomaron muestras de 30 resultados de cada algoritmo evolutivo, el valor de MAX R se obtiene de 30((30+1)/2), por lo tanto, MAX R = 465. Mientras más cercano se encuentra el valor absoluto obtenido de R+ + R− a MAX R mayor será la diferencia entre los algoritmos. Los valores de p−value indican el porcentaje de error de la estimación. El valor máximo permitido es 0.05 en este trabajo con 5 % de error permitido. De forma genérica, la hipótesis nula H0 asegura que el primer algoritmo A1 es mejor que el segundo A2 , la comparación de dos individuos representando H0 se representa con la forma A1 > A2 , donde el identificador del individuo (Ai ) depende del número de individuos (n), es decir, Ai identifica el nombre de un algoritmo evolutivo. En la información del cuadro 16 los problemas g20 y g22 no se contarán en las estadı́sticas, ya que en ningún caso se encontró alguna solución factible. La columna “EDB>EDR” indica que en 9 ocasiones se encontraron muestras con los mismos resultados (g01, g04, g05, g06, g08, g11, g12, g15, g24), las funciones g17 y g23 no cumplen con el criterio determinado por el margen de error (el valor en pvalue es mayor a 0.05), mientras que en los 11 problemas restantes se encontró una mejorı́a de EDB sobre EDR. 69 Capı́tulo 5. Algoritmos evolutivos implementados LANIA Se utilizará el nombre de “columna de comparación” a la columna identificada con la forma A1 > A2 . La última fila de las columnas de comparación indica el porcentaje de funciones que cumplen con la hipótesis nula y comprueban que el algoritmo A1 es mejor. En el caso de la comparación EDB-EDR, EDB mejoró un 50 % a EDR, este valor se obtiene de sacar el porcentaje de comprobaciones de H0 sobre el total de funciones, si 11 funciones comprueban la hipótesis nula y el total de funciones factibles es 22, entonces la mejorı́a es ((11*100)/22). La interpretación de la comparación indica que EDB mejora a EDR en el 50 % de las funciones CEC 2006. La columna “EDR>ABC” indica que EDR mejora en un 63 % de las 22 funciones a ABC, mientras que ABC mejora a EDR en el 18 % de las funciones (g14, g16, g21, g23). Con esta información se tomará a EDR como mejor que ABC. De la misma manera se toma a ABC como mejor que ES y se genera una categorización entre los algoritmos evolutivos definida de la siguiente manera: 1. Evolución diferencial Best. 2. Evolución diferencial Rand. 3. Colonia artificial de abejas. 4. Estrategia evolutiva. La categorización indica que EDB es el algoritmo que obtuvo mejores resultados entre todos los EA, seguido por EDR y ABC, mientras que ES es catalogado como el algoritmo con peor rendimiento. La importancia de realizar una jerarquı́a entre los algoritmos radı́ca en el estudio del comportamiento de cada algoritmo evolutivo con respecto a los demás. La categorización permite conocer el impacto de la afinación de los algoritmos de acuerdo con la calidad y coherencia de su rendimiento antes y después de ser afinados, se puede ver a que algoritmo le afecta más la afinación de parámetros. Cabe notar que existen algunos casos donde ABC mejora a EDR o donde ES mejora a ABC, sin embargo, la categorización se realiza tomando en cuenta el total de funciones de optimización tratadas por los cuatro algoritmos evolutivos. 70 CAPÍTULO 6 Algoritmo propuesto de afinación de parámetros En este apartado se detalla la funcionalidad del algoritmo de afinación de parámetros desarrollado durante este trabajo de tesis. Por simplicidad, esta propuesta será referenciada como APEA (Afinador de Parámetros de EA’s) a lo largo del capı́tulo. De acuerdo con la información presentada en el capitulo 4, APEA se sitúa en la categorı́a de meta-algoritmos evolutivos, centrándose en la optimización de parámetros cuantitativos y con el objetivo de encontrar configuraciones de parámetros óptimas. Se dice que es un meta-algoritmo evolutivo por dos razones, la primera se debe a que las unidades de información con las que trabaja son algoritmos evolutivos, por lo tanto trabaja a un nivel más alto, la segunda razón toma como base la primera y agrega que el algoritmo afinador implementa la misma funcionalidad de algoritmo evolutivo de los elementos que pretende configurar. Tratar de encontrar vectores con parámetros de utilidad alta es una tarea de optimización compleja, ya que puede incluir funciones objetivo no lineales, variables que interactúan entre sı́, múltiples óptimos locales, entre otros atributos que hacen de un espacio de búsqueda un “territorio complejo”. Con todos estos obstáculos, resulta bastante atractivo la implementación de un algoritmo evolutivo, puesto que uno de los principales motivos que los han hecho exitosos, es su alto rendimiento en este tipo de entornos [106]. De la misma forma que A. Eiben define en [92] a los afinadores de parámetros, la estructura de APEA consiste en la interacción de cuatro componentes principales que se encargan de resolver dos subproblemas de optimización (ver Figura 22). Mientras una parte del algoritmo se concentra en resolver la problemática de la función de evaluación, otra parte optimiza la utilidad de los parámetros. Figura 22: Estructura del afinador de parámetros propuesto. 71 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA APEA al igual que los algoritmos evolutivos toma en cuenta el valor de los vectores de solución como la aptitud de los individuos, sin embargo, no implementa una función de utilidad explı́cita como en la literatura se describe, en lugar de eso, dirige la búsqueda de la mejor solución, a través del valor de aptitud de los algoritmos evolutivos, restringiéndolos por medio de la suma de sus parámetros (se explica más adelante), esta suma de sus parámetros corresponde a la utilidad del vector secundario a minimizar. Tomando en cuenta lo anterior, la idea general consiste en dar prioridad a aquellas soluciones con mejor aptitud y utilidad al mismo tiempo, valores que se convierten en los objetivos a optimizar. Hacer esto implica la construcción de un algoritmo elitista con una inclinación hacia la explotación de buenas soluciones, mientras que la re-selección aleatoria de las soluciones no factibles encontradas en conjunto con el componente de mutación, pretenden incluir el término de exploración sobre el espacio de búsqueda. Hasta el momento se ha visto que una de las dificultades más grandes de este enfoque de afinador, consiste en la necesidad de invertir mucho tiempo, ası́ como recursos computacionales para obtener una retroalimentación de los individuos evaluados en la población, sin embargo, el recorrido “inteligente” que se consigue con algoritmos bio-inspirados como el utilizado en este trabajo, activa la posibilidad de reducir esta cantidad de recursos necesarios y hace factible el enfoque de búsqueda. A lo largo de este capı́tulo se mostrarán los procesos y la implementación de un algoritmo que configure óptimamente los parámetros cuantitativos de algoritmos evolutivos. Una de las principales intenciones consiste en obtener un afinador con capacidad de generalizar de forma transitiva sus resultados sobre diferentes conjuntos de funciones de evaluación. 6.1. Afinación de parámetros en APEA La implementación de un afinador meta-heurı́stico es similar a la implementación de un algoritmo evolutivo para resolver problemas de optimización numérica, lo que los hace diferentes es la composición de los elementos que conforman su espacio de búsqueda. La optimización de una función de evaluación con restricciones se presenta a continuación. f (~x) = 3x1 + 0,000001x31 + 2x2 + ( 0,000002 3 )x2 3 (6.1.1) 72 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA sujeta a: g1 (~x) = −x4 + x3 − 0,55 ≤ 0 g2 (~x) = −x3 + x4 − 0,55 ≤ 0 h3 (~x) = 1000sin(−x3 − 0,25) + 1000sin(−x4 − 0,25) + 894,8 − x1 = 0 h4 (~x) = 1000sin(x3 − 0,25) + 1000sin(x3 − x4 − 0,25) + 894,8 − x2 = 0 h5 (~x) = 1000sin(x4 − 0,25) + 1000sin(x4 − x3 − 0,25) + 1294,8 = 0 (6.1.2) (6.1.3) (6.1.4) (6.1.5) (6.1.6) Se pueden identificar diferentes factores importantes, el primero (1) hace referencia una función objetivo (6.1.1), como un valor único conservado en las propiedades de los individuos del algoritmo evolutivo, que define la bondad de la solución. El siguiente factor (2) representan las restricciones de desigualdad (6.1.2) y (6.1.3), ası́ como las restricciones de igualdad (6.1.4)-(6.1.6) transformadas a funciones de desigualdad. La representación de las restricciones dentro del modelo evolutivo se realiza mediante una estructura de datos unidimensional, la cual contiene el mismo número de elementos que restricciones dentro del problema a optimizar. Otro factor importante (3) hace referencia a los lı́mites de las variables. Cada variable x ∈ ~x se toma como variable de decisión, estas variables tienen sus valores restringidos por lı́mites inferiores y superiores. El conjunto de estos factores definen las propiedades de un individuo. En el caso de la optimización de funciones numéricas (4), lo que se pretende es encontrar un individuo que mediante sus propiedades logre minimizar el valor de f (~x). La base de la implementación de APEA consiste en trasladar los factores encontrados en los problemas de optimización numérica (enumerados en los párrafos anteriores) hacia un enfoque de optimización con parámetros en lugar de variables de decisión, este proceso es una traducción o adecuación de las caracterı́sticas que resuelven los EA originales hacia el algoritmo afinador. Dentro del ámbito de afinación de parámetros, el primer factor (1’), toma el concepto de variables de decisión; en este contexto, una variable de este tipo es un valor asignado a un parámetro especı́fico, donde el conjunto de parámetros define las variantes (llamadas variables de decisión en los EA’s) que dan valor a los individuos o soluciones. De la misma forma que en el ambiente de optimización de funciones de evaluación CEC, las variables del problema de optimización de parámetros se representan mediante celdas de un vector unidimensional. El manejo de restricciones se realiza tomando en cuenta que todos los algoritmos evolutivos son iterativos y que al mismo tiempo mantienen un población que genera descendientes, mientras que los demás componentes en la evolución 73 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA difieren en cada implementación. Los algoritmos evolutivos mantienen dos criterios de parada, el primero consiste en alcanzar un número máximo de evaluaciones a cualquier individuo MAX FES, utilizado en los congresos de computación evolutiva CEC. El segundo criterio se alcanza cuando el número de generaciones indicadas por los parámetros del algoritmo se cumplen. Como ejemplo, el número de evaluaciones en la evolución diferencial está dado por g1 = numEval = N P + (N P ∗ M AX GEN ), que indica que el número de hijos N P , va a ser evaluado un M AX GEN veces, sumado a la evaluación inicial de la población N P . La restricción principal (2’) del problema de afinación consiste en no sobrepasar el valor de MAX FES. Por lo tanto, para cada vector de parámetros afinado debe cumplirse que numEval ≤ M AX F ES. El segundo tipo de restricción (3’) se aplica a ~x, donde los valores de cada variable de decisión de alto nivel (las variables del problema de optimización de parámetros), están definidos por lı́mites inferior y superior Linf ≤ xi ≤ Lsup , estos últimos establecidos por el usuario (de la misma forma que en la optimización numérica en los EA que resuelven las funciones CEC). Por último, en la afinación de parámetros (4’), lo que se busca es encontrar un individuo dentro de la población que tenga un conjunto de propiedades que logre minimizar el valor de aptitud de los algoritmos evolutivos y que al mismo tiempo, reduzca el valor de utilidad del vector de parámetros. Esto se traduce en optimizar la calidad de los resultados y reducir los recursos computacionales necesarios de los EA configurados. Se supone que reducir el número de evaluaciones necesarias en la ejecución, disminuye los recursos. Tomando en cuenta la información presentada anteriormente, se formaliza el problema que se pretende resolver para la optimización de parámetros, de la siguiente manera: Encontrar P~ que minimice: f (P~ ) y n X pi (6.1.7) i=1 sujeta a g1 (p) ≤ M AX F ES (6.1.8) g1 (p) = 2∗ | of f spring | ∗M AX GEN (6.1.9) donde 74 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA donde P~ ∈ Rn es un vector de n variables p = [p1 , p2 , ..., pn ]T y cada pi = 1, ..., n está acotado por limites inferiores y superiores Li ≤ xi ≤ Ui , los cuales definen el espacio de búsqueda S. F es el conjunto de todas las soluciones que satisfacen las restricciones del problema y se le llama zona factible, siendo claro que F ⊆ S. Of f spring se identifica como el número de descendientes del proceso evolutivo. La idea de la restricción es asegurar que la configuración final del algoritmo respete el número máximo permitido de evaluaciones. En la implementación de la estrategia evolutiva (µ, λ), la función que dicta el número de evaluaciones es la siguiente numEval = numP adres + (2 ∗ numHijos ∗ numGeneraciones). Considerando que esta ecuación puede cambiar y afecta a la restricción, la definición de g1 en 6.1.9, sumada a las bondades del proceso evolutivo, aumentan la capacidad de encontrar configuraciones óptimas y válidas para un rango amplio de algoritmos evolutivos. Notar que 6.1.9 es la fórmula general para calcular el valor de la restricción y está definida de esta forma para soportar diferentes configuraciones de numEval en los EA. 6.2. Definición de la propuesta La propuesta consiste en implementar un algoritmo evolutivo sobre la definición de optimización de parámetros presentada en el apartado anterior. La decisión sobre el algoritmo a utilizar para la afinación de parámetros consistió en re-explorar y reusar algoritmos evolutivos como heurı́sticas de alto nivel y conocer la factibilidad de este método para el ámbito de la optimización. El algoritmo es iterativo, utiliza el operador de mutación de la evolución diferencial y una implementación de lista tabú de tamaño considerable como ı́ndice de posibles soluciones (individuos en la población que cumplen con las caracterı́sticas que solucionen el problema). Para poder recibir retroalimentación de la búsqueda se necesita ejecutar y esperar el resultado del algoritmo evolutivo en diferentes ocasiones a través de las iteraciones, por este motivo una lista tabú puede resultar de gran ayuda, ya que, aunque la probabilidad de repetición de individuos es moderada al inicio del ciclo, permitirá volver a evaluar aquellos individuos que han sido descartados anteriormente cuando la convergencia de soluciones sea importante. Los individuos mantienen una configuración similar a su contraparte de optimización numérica. La Figura 23 muestra la representación “fı́sica” de los individuos en la población, la diferencia radica en que la “Suma de parámetros”, 75 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA mantiene el valor de utilidad del vector de parámetros y el afinador discriminará los individuos basado en este valor, “Restricción” es el valor de la única restricción del problema y el vector de P~ , corresponde a los valores de los parámetros, lo cual es la contraparte de las variables de decisión en la implementación de un EA. Figura 23: Representación de los individuos en APEA. Una descripción de los parámetros utilizados por el algoritmo afinador se muestran en el cuadro 17. Cuadro 17: Parámetros en APEA. Parámetro Descripción MAX GEN Número de generaciones tamVecindario Número de individuos en la población NumFunciones Funciones a resolver por el algoritmo evolutivo maxFES Evaluaciones permitidas en los algoritmos evolutivos F Factor de mutación El algoritmo 11 muestra la estructura del algoritmo afinador de parámetros propuesto, en las subsecciones siguientes se explicarán las partes principales del mismo. 76 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Algoritmo 11: Propuesta de afinador de parámetros. 1: Leer archivos de informacion 2: while iteracion ≤ numFunciones/4 do 3: Obtener funcion actual a evaluar 4: Crear una población inicial aleatoria pi,G ∀i, i = 1, ..., N P 5: for G=1 to MAX GEN do 6: while ! solucionInicial do 7: Inicializar poblacion 8: Seleccionar solución inicial 9: end while 10: Evaluar inicial f (pi,G )∀i, i = 1, ..., N P 11: if Solucion inicial infactible then 12: Marcar funcion actual como infactible 13: Regresar al inicio del while con un nueva funcion actual 14: end if 15: Identificar candidatos 16: Marcar infactibles como errores 17: if numCandidatos > 3 then 18: Evaluar candidatos 19: Re-aleatorizar errores 20: Localizar mejor candidato 21: Mutar los candidatos no seleccionados 22: Comparar mejor solución con candidato 23: Meter a lista tabu al perdedor 24: Meter a lista tabu a candidatos no seleccionados 25: else 26: Re-aleatorizar errores 27: end if 28: end for 29: Almacenar parametros en historialParametros 30: Incrementar iteracion 31: end while 32: parametrosFinales = obtenerMedianas(historialParametros) 33: Devolver parametrosFinales El algoritmo evalúa una función CEC definida al inicio de una iteración, existen diferentes valores de bondad en los individuos, los cuales contienen un conjunto de variables y definen la calidad de la solución, cada solución es afectada por el proceso evolutivo, de tal manera que se van mutando a través de las generaciones (igual que en todos los algoritmos evolutivos), cuando el número 77 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA lı́mite de generaciones ha sido alcanzado, se devuelve el individuo con la mejor configuración de parámetros para dicha función (funcion actual), de acuerdo al algoritmo anterior, en ese momento se ha terminado una iteracion. El algoritmo realiza un número de iteraciones definido por numF unciones/4, lo cual indica que evalúa un cuarto del número total de funciones de evaluación (en este caso CEC 2006), esto quiere decir que obtendrá (numF unciones/4) ∗ numHeuristicas vectores de parámetros óptimos, la estructura que mantiene la información de los parámetros encontrados se llama “historialParametros” y puede ser visualizada como en la Figura 24. Figura 24: Arreglo tridimensional de parámetros optimizados en el afinador. De acuerdo a la figura anterior, cuando se termina la primera iteracion, se obtiene un conjunto de numHeuristicas vectores de parámetros óptimos, estos vectores se almacenan en hi .1, donde i corresponde al número de heurı́stica evaluada, esto quiere decir, que por cada iteración se evalúan todas las instancias de algoritmos evolutivos almacenadas, resolviendo una función de evaluación a la 78 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA vez, de entre el total disponibles (entre las funciones CEC), si se evalúan cuatro instancias, entonces se obtendrán cuatro vectores que serán almacenados en h1.1, h2.1, h3.1, h4.1 respectivamente. Explicado de otra manera, para el caso de este trabajo donde se tienen cuatro instancias, el apuntador de tres dimensiones tiene cuatro celdas, dentro de cada celda existe una matriz de numF unciones/4 filas con numP arametros columnas, donde el número de columnas identifica el número de parámetros que se necesitan optimizar. Cada matriz de dos dimensiones identifica a una heurı́stica, mientras que cada vector en la matriz identifica a un vector de parámetros óptimos. El resultado final consiste un arreglo bidimensional de numHeuristicas filas por numP arametros columnas, donde las celdas de cada fila de la matriz se obtienen mediante la mediana de los valores del vector tridimensional. Para obtener el valor final del parámetro 1 de la heurı́stica 1, se obtiene la mediana de todas las celdas marcadas con “0”, en la matriz h1, el segundo valor se obtiene, con la mediana de los valores marcados con “1” en la matriz h1 y ası́ sucesivamente. Esto quiere decir que se obtiene una mediana de un conjunto finito de vectores, donde cada vector corresponde a una iteración con una función de evaluación diferente. Las funciones de evaluación se eligen de forma aleatoria en cada iteración, una función es elegible siempre que no se haya seleccionado anteriormente y no esté dentro de las funciones consideradas infactibles. Una función será considerada infactible cuando en su primer evaluación, el número de restricciones sea mayor a cero, en este caso será marcada como infactible y no podrá volver a usarse en otras iteraciones. El proceso descrito hasta el momento toma los valores definidos por el subproceso evolutivo de búsqueda, donde un subproceso de evolución devuelve un vector de parámetros para una instancia de EA sobre una función de evaluación. En cada iteracion tendrán lugar numHeuristicas y procesos de evolución, donde el total de procesos de evolución está definido por numHeuristicas ∗ (numF unciones/4). El proceso de búsqueda interno puede definirse de la siguiente manera. Se genera una población aleatoria de tamaño tamV ecindario, la población puede ser llamada vecindario. El primer paso consiste en encontrar la solución inicial que debe ser factible, se busca de forma secuencial un individuo como punto de partida. Si no se encuentran soluciones factibles, se re-inicializa la población aleatoriamente y se repite la búsqueda. Ya que se ha encontrado una solución inicial, el siguiente paso consiste en identificar aquellas soluciones que son factibles de acuerdo a la restricción, las soluciones factibles ingresan a una lista de candidatos, siempre y cuando no estén dentro de la lista tabú, mientras que las soluciones no factibles entran a una lista de errores. 79 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Los errores se re-aleatorizan, mientras que en la lista de candidatos se recorren los individuos para encontrar aquel con la mejor solución. En este paso, los individuos no seleccionados serán mutados con el operador de mutación de evolución diferencial. El individuo considerado como mejor candidato se compara contra la mejor solución conocida actualmente, el perdedor será mutado. El último paso consiste en ingresar los candidatos no seleccionados y agregarlos a la lista tabú. La lista tabú tiene un tamaño tamV ecindario/2, que es relativamente grande, pero útil para evitar ciclos en el proceso de búsqueda. 6.2.1. Inicialización del algoritmo El algoritmo comienza leyendo los nombres de los algoritmos evolutivos, ası́ como información referente al número de variables de decisión implementadas por el algoritmo. Esta actividad corresponde a la primer lı́nea del algoritmo 12. Para que el algoritmo de afinación sea capaz de trabajar con varias heurı́sticas, necesita leer la información de dos tipos de archivos. La información del primero se muestra en la figura 25. 4 MRySI MRySI MRySI MRySI EDR EDB ES ABC Figura 25: Archivo de texto con los nombres de los algoritmos evolutivos. Ya que el sistema necesita ejecutar los EA, utiliza los nombres de las aplicaciones dentro del sistema para construir los comandos de ejecución, los comandos de ejecución son las lineas con las que se invocan los programas a través del intérprete de comandos del sistema operativo. Debe existir un archivo con la información mostrada en la Figura 25 para cada algoritmo evolutivo a afinar, la primera lı́nea indica el número de variables, la segunda identifica las variables útiles para construir la restricción, la tercera indica la posición donde inician las variables (Fı́gura 26) útiles (se explicará más adelante), mientras que el resto indica los lı́mites de cada variable. 80 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA 3 2 1 100 400 200 5000 100 500 Figura 26: Archivo de texto de información de variables objeto. La primera acción del algoritmo consiste en comparar los valores de la primera lı́nea de los archivos con información de variables, el valor más alto encontrado se almacena e indica el tamaño de las variables de todos los individuos. Se lleva un contador interno para identificar el número de variables de cada heurı́stica, por este motivo, es posible trabajar con heurı́sticas que manejan una cantidad diferente de parámetros. Cuando las estructuras de datos han sido creadas, se inicializa las variables pi , i = 1, 2, ..., numeroV ariables, para cada individuo de la población, la inicialización está sujeta a los valores determinados como lı́mites que el usuario especificó en el archivo de texto con información de variables objeto. En este trabajo de tesis se utilizó una generación aleatoria con distribución normal Se puede considerar parte de la inicialización el hecho de seleccionar por única vez dentro del algoritmo 12, la selección de la mejor solución inicial, esta parte depende de los valores generados aleatoriamente durante la fase de inicialización de la población y consiste en encontrar aquel individuo que maximiza f (P~ ) y n X minimiza pi , entre todos los individuos de la población. El algoritmo 12 muestra i=1 el pseudocódigo para la definición de la mejor solución inicial, mientras que el 14 muestra los criterios de comparación para determinar la solución con mejor aptitud (relacionada con f (P~ )) y utilidad (relacionada con la sumatoria de parámetros). 81 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Algoritmo 12: Selección inicial de la mejor solución. Leer nombres Crear una población inicial aleatoria pi,G ∀i, i = 1, ..., N P for G=1 to MAX GEN do while ! solucionInicial do Inicializar poblacion; Seleccionar solución inicial; end Evaluar inicial f (pi,G )∀i, i = 1, ..., N P Identificar candidatos(tamVecindario); Marcar infactibles como errores end 6.2.2. Mutación de los individuos La descripción de mutación en el afinador corresponde a la mutación del algoritmo Evolución Diferencial, en este caso no se implementó un procedimiento de recombinación. Cada vector pi,g , se convertirá en un vector objetivo para reproducirse y generar un vector hijo ui,G . Para crear un hijo, es necesario obtener un vector mutante, el cual se crea mediante la manipulación de los valores de otros vectores. Para iniciar, en la siguiente ecuación se define la forma de generar el vector de mutación y se explica en los siguientes párrafos pmut = pr0 + F (pr1 − pr2 ) Primero se le da una dirección a la búsqueda al obtener la diferencia entre dos vectores diferentes (pr1,G menos pr2,G ), la diferencia se debe escalar, al multiplicarla con el parámetro F>0, para después sumarla a los valores de un tercer vector , los tres vectores se seleccionan aleatoriamente, tomando en cuenta que deben seguir la siguiente regla. r0 6= r1 6= r2 6= i (siendo i, el identificador del padre) La forma de mutar las soluciones es exactamente la misma implementada en la evolución diferencial (ver Figura 15), donde se puede observar que la dirección en que la búsqueda se “mueve” depende de la comparación entre la diferencia escalada, sumada al valor del vector base que define la posición del vector mutante y el vector que se esté mutando en ese momento. 82 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros 6.2.3. LANIA Selección de los sobrevivientes El criterio de selección de individuos es totalmente elitista, ya que primero se escoge aquellos individuos que tienen la propiedad de ser factibles, sin dar oportunidad a los infactibles de pasar a las siguientes generaciones. Cuando los individuos factibles son identificados (se agrega su identificador en una lista), se encuentra el mejor de ellos, llamado el mejor candidato y es comparado contra la mejor solución en la generación actual, el perdedor de esta comparación es mutado, de la misma manera que las soluciones factibles que no fueron seleccionadas como el mejor candidato. Algoritmo 13: Criterios de comparación entre individuos. mejor = MejorSolucion if (MejorSolucion.factible & Candidato.factible) then if (Candidato.aptitud < MejorSolucion.aptitud) then mejor = Candidato end if if (MejorSolucion.aptitud = Candidato.aptitud) then if (Candidato.utilidad < MejorSolucion.utilidad) then mejor = Candidato end if end if else if (Candidato.factible & MejorSolucion.infactible) then mejor = Candidato end if if (Candidato.Infactible & MejorSolucion.Infactible) then if (Candidato.NoViolaciones 6= MejorSolucion.NoViolaciones) then if (Candidato.NoViolaciones < MejorSolucion.NoViolaciones) then mejor = Candidato end if else if (Candidato.utilidad ≤ MejorSolucion.utilidad) then mejor = Candidato end if end if end if end if La siguiente generación estará poblada por el mejor individuo encontrado hasta la generación actual y las mutaciones de los mejores candidatos de la solución anterior, es decir, el proceso de evolución modifica a las soluciones factibles y las va mutando entre sı́, hasta que se conviertan en la mejor solución o dejen de ser 83 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA factibles. El término vecindario es vago en esta implementación, puesto que no es posible definir los vecinos de un individuo, sin embargo, el operador de mutación de la evolución diferencial es apropiado por que muta los individuos y triangula las soluciones exploradas, eso le da más fuerza a la definición de vecindario. 6.2.4. Manejo de restricciones Como se comentó, en APEA existen dos tipos de restricciones, la primera se aplica a los lı́mites de P~ , mientras que la segunda se relaciona con el lı́mite MAX FES necesario para la implementación del afinador, la primera cobra importancia durante la fase de inicialización (explicada anteriormente) y durante el proceso de mutación de individuos. La segunda es importante a la hora de construir la restricción g1 para el problema de optimización de parámetros. Las restricciones se toman en cuenta a la hora de generar las mutaciones para las variables de decisión dentro de un individuo. El manejo primario de las restricciones se basa en asegurar que en cada mutación, el valor que se va a asignar a la variable quede dentro de los lı́mites establecidos por el usuario. Cuando un valor mutado queda fuera del rango establecido, se remedia con la siguiente solución. ( uj,i,G = 2pj liminf − uj,i,G 2pj limsup − uj,i,G uj,i,G si uj,i,G < pj liminf si uj,i,G > pj limsup de otra manera Para describir la construcción de la restricción del problema general g1 se retoma la figura 25, la cual representa la información contenida en el archivo de información de variables de decisión para cada EA a configurar. La restricción del problema está definida por la ecuación: g1 (p) = 2∗ | of f spring | ∗M AX GEN Los valores de of f spring y M AX GEN deben ser identificados entre los datos de los arreglos lineales que representan a los conjuntos de parámetros a afinar. Si bien esto hace complicado la configuración inicial, es necesario para poder trabajar con un conjunto amplio de EA’s con diferentes cantidades de parámetros, esta medida es una forma de estandarizar los valores de entrada del algoritmo afinador. La segunda lı́nea del archivo de texto de información inicial (figura 25), indica la cantidad de parámetros que definen el número de evaluaciones que debe realizar el algoritmo evolutivo. La restricción g0 se construye a partir del tamaño del “offspring” y el número de generaciones, por lo tanto, el número mı́nimo en la 84 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA segunda lı́nea del archivo es 2 (individuos y generaciones), en los conjuntos de parámetros estos datos deben ir juntos y con ese orden: padres, hijos, generaciones y otros parámetros. La tercera lı́nea indica la posición donde se encontrará el primero de estos valores (el número de individuos) entre el total de parámetros. De esta forma el algoritmo tiene información suficiente para crear las estructuras y generar la restricción g0 . Se puede decir que el algoritmo afinador no conoce la utilidad de cada parámetro dentro del EA, sino que el usuario indica mediante el archivo de texto de información inicial como trabajar con ellos, es decir, el usuario tiene que identificar los parámetros que influyen en la determinación del número generaciones a evaluar por los EA’s. 6.3. Resultados experimentales De la ejecución repetida por 30 veces del algoritmo afinador, se obtuvieron los conjuntos de parámetros que se presentan en los cuadros 18-21, la columna “MAX FES” indica el número de evaluaciones que serán ejecutadas por el algoritmo evolutivo, la columna marcada como “Utiliza” indica el porcentaje de evaluaciones que el algoritmo realiza con respecto a las 500000 evaluaciones utilizadas en la implementación de los EA sin afinar. La configuración de parámetros utilizada para la ejecución del algoritmo afinador está conformada por una población de 30 individuos, 50 generaciones, número de funciones igual a 24, MAX FES igual a 500000 (el número lı́mite de evaluaciones que debe respetar) y un factor para el operador de mutación igual a 0.9, lo que hará que la búsqueda se mueva de forma más rápida por el espacio de búsqueda. El orden de los parámetros mostrados en la tabla de resultados para EDB y EDR es el siguiente: NP, MAX GEN, F y CR. El orden de los parámetros mostrados en la tabla de resultados para ES es el siguiente: numero de padres, numero de hijos y número de generaciones, mientras que el orden de parámetros para ABC es: SN, MNC y lı́mite. 85 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 18: Conjuntos de parámetros afinados para EDB. No. Parámetros MAX FES Utiliza 1 148.117331 825.225695 0.492455 0.9688 122378 24 % 2 160.475206 523.454053 0.438266 0.813398 84162 17 % 3 136.773724 640.834535 0.428531 0.893742 87786 18 % 4 180.033825 668.282124 0.418539 0.961209 120493 24 % 5 166.278509 628.908994 0.418103 0.84323 104740 21 % 6 156.551793 615.227048 0.348084 0.849457 96471 19 % 7 118.333966 634.993644 0.455258 0.856318 75260 15 % 8 137.931177 645.722586 0.489546 0.773161 89203 18 % 9 141.140089 664.148605 0.229224 0.942347 93879 19 % 10 255.300423 699.110938 0.363042 0.953289 178739 36 % 11 190.935898 625.689729 0.34054 0.96764 119658 24 % 12 117.835924 614.103992 0.205107 0.717051 72481 14 % 13 131.987764 651.691688 0.350692 0.881753 86147 17 % 14 140.383774 647.771047 0.442924 0.893489 91077 18 % 15 127.410956 965.543707 0.459739 0.968585 123148 25 % 16 139.254568 622.626202 0.365516 0.886914 86843 17 % 17 163.041078 695.01768 0.453128 0.903068 113479 23 % 18 123.259785 637.539451 0.422845 0.889398 78706 16 % 19 117.988821 609.609873 0.501288 0.924812 72045 14 % 20 111.388987 717.138588 0.259057 0.827718 79993 16 % 21 175.008703 760.443759 0.357966 0.768991 133259 27 % 22 131.815217 760.690328 0.454336 0.960332 100402 20 % 23 139.365508 651.935815 0.489139 0.83343 90997 18 % 24 216.661908 706.185577 0.405575 0.958853 153220 31 % 25 122.153778 732.7659 0.591637 0.918127 89632 18 % 26 137.457012 699.503066 0.408255 0.86391 96289 19 % 27 141.351211 617.270124 0.364625 0.918935 87393 17 % 28 156.384919 641.669384 0.408665 0.954269 100504 20 % 29 111.349595 646.335196 0.209565 0.758906 72081 14 % 30 132.703256 648.661373 0.499829 0.862099 86212 17 % 86 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 19: Conjuntos de parámetros afinados para EDR. No. Parámetros MAX FES Utiliza 1 159.989906 558.764051 0.370937 0.986503 89557 18 % 2 113.677949 515.799366 0.339498 0.827149 58749 12 % 3 113.422991 672.252003 0.390276 0.917421 76362 15 % 4 145.673962 869.569019 0.399946 0.943941 126819 25 % 5 144.337516 791.199264 0.376694 0.847403 114344 23 % 6 168.603377 645.450018 0.394058 0.908878 108994 22 % 7 152.488203 559.985064 0.235022 0.862193 85544 17 % 8 173.772798 631.521067 0.430424 0.85557 109915 22 % 9 196.339117 748.863357 0.336642 0.926509 147228 29 % 10 121.838726 1110.097439 0.533797 0.874085 135375 27 % 11 139.347004 788.150684 0.433591 0.821933 109966 22 % 12 137.217459 725.221374 0.454035 0.961894 99650 20 % 13 133.928636 570.8419 0.441927 0.85051 76586 15 % 14 125.480456 780.6118 0.337809 0.892947 98077 20 % 15 120.859226 575.252846 0.365686 0.757805 69645 14 % 16 162.934327 723.140752 0.422313 0.850331 117987 24 % 17 183.81681 690.014682 0.407874 0.894644 127020 25 % 18 132.577883 597.191443 0.374058 0.843498 79307 16 % 19 147.637059 785.557036 0.453783 0.974715 116125 23 % 20 165.768167 611.264329 0.47408 0.856975 101494 20 % 21 136.963954 694.761433 0.370143 0.708674 95294 19 % 22 127.862569 552.94137 0.200864 0.890955 70828 14 % 23 128.319604 616.421921 0.363313 0.89502 79227 16 % 24 136.270781 688.151581 0.373275 0.976281 93911 19 % 25 157.974568 660.846591 0.40219 0.916378 104555 21 % 26 140.399596 581.792671 0.443453 0.945743 81824 16 % 27 167.897116 721.354271 0.377221 0.955443 121281 24 % 28 146.360154 785.873615 0.459087 0.77335 115167 23 % 29 145.473328 641.591414 0.397028 0.793113 93480 19 % 30 143.659145 653.02409 0.316362 0.775096 93957 19 % 87 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 20: Conjuntos de parámetros afinados para ES. No. Parámetros MAX FES Utiliza 1 164.020367 415.618475 735.273123 305757 61 % 2 171.52074 378.834813 606.897167 230085 46 % 3 119.277807 343.179363 674.906437 231733 46 % 4 192.294435 409.295314 856.354988 350694 70 % 5 159.985515 447.039528 611.578005 273560 55 % 6 141.91293 393.229027 601.037433 236487 47 % 7 146.403713 434.727539 699.619678 304290 61 % 8 189.886185 342.399144 760.141381 260462 52 % 9 247.496708 424.929458 689.69054 293317 59 % 10 189.475343 359.352699 803.110887 288790 58 % 11 145.096644 392.045363 519.550527 203832 41 % 12 180.814525 348.606416 658.325384 229677 46 % 13 154.392583 362.194311 648.670538 235099 47 % 14 192.551364 365.567977 832.774243 304628 61 % 15 130.555891 384.483837 731.317903 281310 56 % 16 115.602386 398.81843 663.458791 264715 53 % 17 181.547624 331.525012 702.574359 233103 47 % 18 265.772253 325.031508 828.318538 269495 54 % 19 169.435677 386.719028 649.552916 251364 50 % 20 161.608922 386.725636 788.830454 305223 61 % 21 271.549487 401.555035 590.877983 237542 48 % 22 246.144419 336.579133 774.636754 260973 52 % 23 203.998506 391.576195 659.363352 258395 52 % 24 195.498481 465.941681 565.14245 263519 53 % 25 255.994217 396.459462 695.510288 275998 55 % 26 194.814249 367.400201 639.977344 235323 47 % 27 139.020038 326.33506 635.393348 207490 41 % 28 208.080908 417.903828 672.761179 281358 56 % 29 199.083342 322.786202 722.549882 233428 47 % 30 221.32789 419.565502 733.397339 307930 62 % 88 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 21: Conjuntos de parámetros afinados para ABC. No. Parámetros FES Utiliza 1 122.949238 1053.463004 241.26726002 259168 52 % 2 120.606977 1491.216092 140.9158962 359823 72 % 3 143.623178 1306.968075 164.58007386 375565 75 % 4 114.963928 1300.367728 216.59036614 299106 60 % 5 118.149641 1721.142583 297.9376857 406823 81 % 6 120.255521 1400.968699 373.08087598 337069 67 % 7 135.955759 1658.089763 367.9296461 450990 90 % 8 108.440888 1894.342324 161.32124752 410957 82 % 9 117.98824 1772.178351 320.08055045 418310 84 % 10 135.335272 1490.897981 198.61732707 403678 81 % 11 115.386959 1600.891884 232.41599372 369559 74 % 12 142.216564 1479.320036 166.98394318 420910 84 % 13 120.207998 1756.847844 134.0393291 422495 84 % 14 117.868573 1728.875636 213.35448618 407678 82 % 15 138.004869 1796.782591 197.65576938 496067 99 % 16 151.620908 1302.039179 175.68985169 394984 79 % 17 125.752336 1635.487609 110.1200121 411459 82 % 18 112.700361 1789.867171 294.14793276 403550 81 % 19 121.539351 1925.549211 138.27689876 468182 94 % 20 121.535148 1577.108562 180.40466331 383470 77 % 21 122.449847 1540.395867 173.17336196 377365 75 % 22 115.399727 1902.513201 111.07607373 439214 88 % 23 112.078462 1673.278074 190.9520658 375189 75 % 24 132.347424 1644.914887 272.26761306 435533 87 % 25 112.758149 1267.543454 267.24970146 285964 57 % 26 126.272396 1604.354029 108.95055578 405298 81 % 27 125.754626 1021.680079 152.8940181 257088 51 % 28 114.360724 1805.470693 146.445713 413064 83 % 29 119.237774 1823.096304 291.38971022 434883 87 % 30 119.06459 1871.423522 197.95245611 445760 89 % 89 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Se puede observar que para cada algoritmo evolutivo, la mayorı́a de los datos en las columnas que conforman los vectores afinados de parámetros tienen valores similares, de esta manera, es posible definir un patrón para cada heurı́stica. Al mismo tiempo, existe la posibilidad de identificar una medida de conocimiento sobre como interactúan los parámetros entre si. Se genera un cuestionamiento: ¿Por qué se obtienen mejores resultados con menor cantidad de evaluaciones, si el objetivo principal de los EA consiste en evolucionar a través de las generaciones? Cuadro 22: Valores promedio de parámetros afinados de los EA. Id Parámetros FES Utiliza EDB 147.6224901667 673.2700233667 0.4023825333 0.8837743667 99556 20 % EDR 145.6964129 684.9168817 0.3891795333 0.8761652333 99942 20 % ABC 123.4941809333 1594.5691477667 207.9253692813 392307 78 % 185.1721049667 382.5475059 691.7197737 263853 53 % ES El cuadro 22 muestra el valor promedio de las 30 ejecuciones del algoritmo afinador, estos valores serán utilizados para ejecutar otras 30 veces los algoritmos evolutivos y realizar una comparación entre los “resultados originales” y los “resultados afinados”. 6.3.1. Tablas de comparación de resultados afinados Los parámetros utilizados para obtener los resultados afinados se heredan del cuadro 22, se identifica el valor de cada parámetro en el siguiente cuadro: Evolución Diferencial Rand: 145 individuos en la población, 684 generaciones, factor de mutación con valor de 0.3891795333, factor de recombinación con valor de 0.8761652333 y MAX FES igual a 99556. Evolución Diferencial Best: 147 individuos en la población, 673 generaciones, factor de mutación con valor de 0.4023825333, factor de recombinación con valor de 0.8837743667 y MAX FES igual a 99942. Estrategia Evolutiva: 185 padres, 382 hijos, 691 generaciones y MAX FES igual a 263853. Colonia Artificial de Abejas: 123 individuos en la población, 1594 generaciones, el lı́mite de re-aleatorización con valor de 207 y MAX FES igual a 392307. 90 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Los cuadros 23-27 presentan la información obtenida por la ejecución de cada algoritmo evolutivo con los parámetros afinados. Cuadro 23: Resultados afinados CEC2006: g01-g05. Algoritmo EDR EDB g01 g02 g03 g04 g05 Mejor Mediana Peor Promedio σ -15 -15 -15 -15 0 -0.8034 -0.8031 -0.7924 -0.7484 0.2929 -1 -1 -1 -1 0 -30665.5386 -30665.5386 -30665.5386 -30665.5386 0 5126.496 5126.496 5126.496 5126.496 0 Mejor Mediana Peor Promedio σ -15 -15 -15 -15 0 -0.8033 -0.8030 -0.7922 -0.8018 0.0032 -1 -1 -1 -1 0 -30665.5386 -30665.5386 -30665.5386 -30665.5386 0 5126.496 5126.496 5126.496 5126.496 0 g01 g02 g03 g04 g05 -30665.538 -30665.538 -30665.538 -30665.538 0 5129.9437 5147.4789 5179.7877 5147.3780 11.0274 -30665.538 -30663.592 -30344.576 -30638.050 72.9534 5126.5807 5317.1405 5812.5711 5342.978 189.478 Algoritmo ABC ES Mejor Mediana Peor Promedio σ -15 -15 -15 -15 0 -0.8013 -0.9998 -0.7949 -0.9997 -0.7858 -0.9996 -0.7953 -0.9997 0.0036 7.3×10−5 Mejor -14.999 -0.7752 Mediana -14.897 -0.6614 Peor -12.0670 -0.5124 Promedio -14.2754 -0.6693 σ 1.0219 0.0694 -0.9959 -0.9810 -0.8951 -0.9684 0.0280 91 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 24: Resultados afinados CEC2006: g06-g10. Algoritmo EDR EDB Algoritmo ABC ES g06 Mejor -6961.8138 Mediana -6961.8138 Peor -6961.8138 Promedio -6961.8138 σ 0 g07 g09 g10 -0.0958 680.6300 -0.0958 680.6300 -0.0958 680.6300 -0.0958 680.6300 0 0 7049.771 7050.228 7050.466 7050.147 0.3046 Mejor -6961.8138 24.3073 -0.0958 680.6300 Mediana -6961.8138 24.3079 -0.0958 680.6300 Peor -6961.8138 24.3083 -0.0958 680.6300 Promedio -6961.8138 24.3080 -0.0958 680.6300 σ 0 0.0002 0 0 7049.591 7049.806 7050.008 7049.802 0.0221 g06 24.307 24.309 24.310 24.309 0.0007 g08 g07 g08 g09 g10 Mejor -6961.8138 24.4038 -0.0958 680.6367 7105.0158 Mediana -6961.8138 24.4951 -0.0958 680.6440 7175.2046 Peor -6961.8138 24.8760 -0.0958 680.6525 7330.6826 Promedio -6961.8138 24.5102 -0.0958 680.6448 7193.9833 σ 0 0.0876 0 0.0040 65.8195 Mejor -6961.8139 Mediana -6961.8139 Peor -6961.8139 Promedio -6961.8139 σ 0 24.9605 32.9200 160.324 45.7912 35.8195 -0.0958 681.0692 7161.2975 -0.0958 681.8076 8466.1933 -0.0858 702.3107 14703.507 -0.0958 684.1620 9024.529 0 4.8276 1912.7578 92 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 25: Resultados afinados CEC2006: g11-g15. Algoritmo EDR EDB Algoritmo ABC ES g11 g12 g13 g14 g15 Mejor 0.7499 Mediana 0.7499 Peor 0.7524 Promedio 0.7503 σ 0.0009 -1 -1 -1 -1 0 0.4655 0.8124 0.9885 0.7872 0.1324 -32.703 -32.697 -32.697 -32.697 0.0013 961.7150 961.7150 961.7150 961.7150 0 Mejor 0.7499 Mediana 0.7499 Peor 0.7960 Promedio 0.7652 σ 0.0221 -1 -1 -1 -1 0 0.0541 0.4340 2.0541 0.3693 0.3926 -39.013 -32.697 -32.697 -33.649 1.6021 961.7150 961.7150 961.7150 961.7150 0 g12 g13 g14 g15 Mejor 0.7499 Mediana 0.7503 Peor 0.7554 Promedio 0.7508 σ 0.0013 -1 -1 -1 -1 0 0.7538 0.9442 0.9890 0.9252 0.0647 -43.7349 961.7150 -42.1032 961.7152 -40.1714 961.7159 -42.0467 961.7153 0.9823 0.0002 Mejor 0.7530 Mediana 0.8319 Peor 0.9999 Promedio 0.8310 σ 0.0725 -1 -1 -1 -1 0 0.1070 0.8626 4.4638 1.0237 0.9102 -44.9824 961.7163 -40.9202 961.8351 -37.4065 965.5881 -41.2192 962.1461 1.9300 0.8050 g11 93 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 26: Resultados afinados CEC2006: g16-g20. Algoritmo EDR EDB g16 ES g18 g19 g20 32.6613 32.6665 32.6913 32.6701 0.0087 0.8812(16) 1.0643(17) 4.8406(18) 1.2939(17) 6.9924 Mejor Mediana Peor Promedio σ -1.0683 -0.9245 -0.7469 -0.8735 0.1002 8853.323 -0.8660 8855.485 -0.8660 8943.274 -0.8658 8885.267 -0.8659 37.4890 4.1×10−5 Mejor Mediana Peor Promedio σ -1.0975 -0.9786 -0.8851 -1.0119 0.0641 8853.323 8927.508 8927.508 8895.361 37.3900 -0.8660 -0.8660 -0.8660 -0.8660 0 32.6555 32.6556 32.6558 32.6556 5.6×10−5 0.1457(14) 0.6834(16) 1.9491(18) 1.1038(16) 17.221 g16 g17 g18 g19 g20 -1.4019 -1.1070 -0.8462 -1.1231 0.1401 8859.221 8928.943 8935.342 8917.792 25.4752 -0.8646 -0.8603 -0.8547 -0.8606 0.0021 43.1743 110.0444 1927.089 358.3902 445.8986 7.7579(17) 7.4247(18) 9.3495(18) 7.3136(18) 28.2316 -1.3146 8861.687 -1.1549(1) 8947.971 0.9785(3) 9178.934 -1.2078(1) 8965.455 1.8997 83.6025 -0.8656 -0.7626 -0.4959 -0.7028 0.1348 51.9720 149.211 298.385 143.108 53.0099 0.2868(13) 0.7293(15) 1.6878(20) 1.0285(16) 1.8086 Algoritmo ABC g17 Mejor Mediana Peor Promedio σ Mejor Mediana Peor Promedio σ 94 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 27: Resultados afinados CEC2006: g21-g24. Algoritmo EDR EDB g21 g22 g23 g24 Mejor 193.7264 Mediana 193.7535 Peor 955.194(1) Promedio 275.4698 σ 179.7593 7170.302(9) 13747.81(9) 19888.3(10) 13792.3(9) 3421.201 -264.134 -96.8450 -175.002 -80.358 104.8585 -5.5080 -5.5080 -5.5080 -5.5080 0 Mejor Mediana Peor Promedio σ 193.7245 324.7028 933.2709 297.3313 136.9963 2459.97(8) 12744.4(8) 19786.2(9) 12830.0(8) 5500.466 -394.2627 -227.4996 489.8934 -210.599 167.0391 -5.5080 -5.5080 -5.5080 -5.5080 0 g21 g22 g23 g24 Algoritmo ABC ES Mejor Mediana Peor Promedio σ Mejor Mediana Peor Promedio σ 269.9337 342.9118 390.7559 338.0690 34.1472 195.991 293.074 325.797 283.364 37.7413 6029.95(10) -283.3060 -5.5080 11638.31(11) -72.1336 -5.5080 19446.43(11) 86.7736 -5.5080 11270.29(11) -89.2448 -5.5080 3572.725 103.5368 0 10400.93(2) -315.8496 -5.50801 10933.68(6) -96.0680 -5.50801 12463.86(10) -117.519 -5.47903 14295.07(5) -113.917 -5.50704 2900.61 120.3002 0.0052 Comparación de resultados afinados contra los originales y el Benchmark Los cuadros 28-33 muestran una comparación entre los mejores resultados obtenidos de la ejecución de los EA afinados contra los valores originales (EA sin afinar), la idea general consiste en comparar la cantidad de funciones de evaluación que mantienen la calidad de aptitud obtenida con parámetros afinados con respecto a los valores originales. Esta comparación es importante, pues se toma en cuenta que los datos que conforma cada muestra de una función de evaluación CEC viene de vectores de parámetros con valores diferentes. 95 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 28: Comparación de resultados afinados CEC2006: g01-g04. Origen g01 g02 g03 g04 BenchMark -15 -0.8036 -1.0005 -30665.539 Originales Afinados EDR EDB ABC ES -15 -0.8034 -0.9999 -30665.5386 -15 -0.8035 -0.9999 -30665.5386 -14.9993 -0.7180 -0.9997 -30665.535 -15 -0.7941 -0.9932 -30665.5381 EDR EDB ABC ES -15 -15 -15 -14.999 -0.8034 -0.8033 -0.8013 -0.7752 -1 -30665.5386 -1 -30665.5386 -0.9998 -30665.538 -0.9959 -30665.538 Cuadro 29: Comparación de resultados afinados CEC2006: g05-g08. Origen g05 g06 g07 g08 BenchMark 5126.497 -6961.814 24.306 -0.09582 EDR 5126.4967 -6961.8138 24.375 EDB 5126.4967 -6961.8138 24.3546 ABC 5133.1659 -6361.8127 24.4897 ES 5127.2591 -6961.8138 24.6716 -0.0958 -0.0958 -0.0958 -0.0958 EDR EDB ABC ES -0.0958 -0.0958 -0.0958 -0.0958 Originales Afinados 5126.496 5126.496 5129.9437 5126.5807 -6961.8138 24.307 -6961.8138 24.307 -6961.8138 24.4038 -6961.8139 24.9605 96 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 30: Comparación de resultados afinados CEC2006: g09-g12. Origen g09 g10 g11 g12 BenchMark 680.6301 7049.248 0.7499 -1 EDR 680.6310 EDB 680.6304 ABC 680.6371 ES 680.9046 7124.321 7079.265 7187.8208 7054.7330 0.7499 0.7499 0.7499 0.7499 -1 -1 -1 -1 EDR 680.6300 EDB 680.6300 ABC 680.6367 ES 681.0692 7049.771 0.7499 7049.591 0.7499 7105.0158 0.7499 7161.2975 0.7530 -1 -1 -1 -1 Originales Afinados Cuadro 31: Comparación de resultados afinados CEC2006: g13-g16. Origen g13 g14 g15 g16 BenchMark 0.05349 -47.765 961.71502 -1.90515 EDR EDB ABC ES 0.3713 0.1103 0.7538 0.2999 -41.053 -40.307 -43.7349 -44.3573 961.7150 961.7150 962.4097 961.7150 -0.8919 -0.9869 -1.1247 -1.5356 EDR EDB ABC ES 0.4655 0.0541 0.3440 0.1070 -32.703 -39.013 -44.5830 -44.9824 961.7150 961.7150 961.7150 961.7163 -1.0683 -1.0975 -1.4019 -1.3146 Originales Afinados 97 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 32: Comparación de resultados afinados CEC2006: g17-g20. Origen g17 g18 g19 g20 BenchMark 8853.5397 -0.86602 32.6555 Infactible EDR EDB ABC ES 8851.8172 8863.675 8860.914 8851.755 -0.8609 -0.86476 -0.8609 -0.8657 33.9512 33.1872 45.2365 64.1907 0.947(16) 0.794(14) 8.4067(17) 0.3821(11) EDR EDB ABC ES 8853.540 8853.540 8859.221 8861.687 -0.8660 -0.8660 -0.8646 -0.8656 32.6613 32.6555 43.1743 51.9720 0.947(16) 0.794(14) 8.4067(17) 0.3821(11) Originales Afinados Cuadro 33: Comparación de resultados afinados CEC2006: g21-g24. Origen g21 g22 g23 g24 BenchMark 193.72451 236.43097 -400.0551 -5.50801 Originales Afinados EDR 343.7368 EDB 193.7318 ABC 218.056 ES 250.2270 4185.96(9) -1193.787(2) 2875.08(9) -634.97(2) 8378.27(10) -325.9810 7640.4751(4) -279.3406 -5.5080 -5.5080 -5.5080 -5.5080 EDR 193.7264 EDB 193.7245 ABC 269.9337 ES 195.991 7170.302(9) 2459.97(8) 6029.95(10) 6158.7880(9) -5.5080 -5.5080 -5.5080 -5.5080 -264.134 -394.2627 -283.3060 -315.8496 La comparación anterior sugiere que los resultados obtenidos con los parámetros afinados mantienen la calidad de aptitud obtenida por las ejecuciones originales, y en repetidas ocasiones los mejora. En la mayorı́a de las funciones de optimización los valores mejorados por el afinador alcanza los valores reportados en el BenchMark, de esta manera se puede determinar que el algoritmo afinador provocó una mejora en el rendimiento de los algoritmos evolutivos, donde ésta queda remarcada cuando se toma en cuenta la reducción tan drástica de recursos necesarios para la ejecución de los EA afinados. 98 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 34: Prueba Wilcoxon para los EA afinados. Wilcoxon con funciones CEC2006 EDB>EDR EDR>ABC ABC>ES g01 p-value Iguales R+ + R− Iguales p-value Iguales R+ + R− Iguales p-value 1.7×10−6 R+ + R− -465 g02 0.9262 9 0.0004 -339 1.7×10−6 -465 g03 Iguales Iguales 1.7×10−6 -465 1.7×10−6 -465 g04 Iguales Iguales Iguales Iguales 1.9×10−6 -464 g05 Iguales Iguales 1.7×10−6 -465 1.7×10−5 -289 g06 Iguales Iguales Iguales Iguales 1.7×10−6 465 g07 Iguales Iguales 1.7×10−6 -465 2.5×10−6 -435 g08 Iguales Iguales Iguales Iguales Iguales Iguales g09 Iguales Iguales 1.7×10−6 -465 2.5×10−6 -435 g10 0.0006 -333 1.7×10−6 -465 2.6×10−6 -461 g11 0.0105 90 0.0316 -209 2.5×10−6 -435 g12 Iguales Iguales Iguales Iguales Iguales Iguales g13 4.4×10−5 -397 3.4×10−5 -403 0.2948 92 g14 0.387 -72 1.7×10−6 465 0.0152 -202 g15 Iguales Iguales 1.7×10−6 -465 1.7×10−6 -465 g16 4.4×10−5 -397 8.0×10−6 392 0.2954 52 g17 0.8628 -12 0.0002 -361 0.0066 -251 g18 1.7×10−6 -465 1.7×10−6 -465 1.0×10−5 -347 g19 1.7×10−6 -466 1.7×10−6 -465 0.1779 131 g20 Infactible Infactible Infactible Infactible Infactible Infactible g21 0.5277 29 0.0385 -95 0.0052 108 g22 Infactible Infactible Infactible Infactible Infactible Infactible g23 0.0003 -351 0.84 -15 0.9593 1 g24 Iguales Iguales Iguales Iguales Iguales Iguales Mejorı́a: 27 % Mejorı́a: 59 % Mejorı́a: 59 % 99 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Interpretación de resultados Después de realizar pruebas Wilcoxon, de forma similar que en el capı́tulo 5, se decidió que dentro de la información del cuadro de comparaciones los problemas g20 y g22 no se contarán en las estadı́sticas, ya que en ningún caso se encontró alguna solución factible. La columna “EDB>EDR” indica que en 11 ocasiones se encontraron muestras con los mismos resultados (g01, g03, g04, g05, g06, g08, g07, g09, g12, g15, g24), las funciones g14, g17 y g21 no cumplen con el criterio determinado por el margen de error ( porque el valor en p-value es mayor a 0.05), mientras que en 6 problemas se encontró una mejorı́a de EDB sobre EDR. La última fila de las columnas de comparación indica el porcentaje de funciones que cumplen con la hipótesis nula y comprueban que primer algoritmo es mejor que el segundo. En el caso de la comparación EDB-EDR, EDB mejora en un 27 % a EDR, lo cual con respecto a los resultados originales, indica que la diferencia entre los resultados de los algoritmos evolutivos disminuyo por que EDR alcanzó nuevos valores del BenchMark con los parámetros afinados. La columna “EDR>ABC” indica que EDR mejora en un 59 % de las 22 funciones a ABC, con lo que se tomará a EDR como mejor que ABC. De la misma manera se toma a ABC como mejor que ES y se mantiene una categorización entre los algoritmos evolutivos definida de la siguiente manera: 1. Evolución diferencial Best. 2. Evolución diferencial Rand. 3. Colonia artificial de abejas. 4. Estrategia evolutiva. La categorización indica que EDB es el algoritmo que obtuvo mejores resultados entre todos los EA afinados, seguido por EDR y ABC, mientras que ES es catalogado como el algoritmo con peor rendimiento. Cabe notar que existen algunos casos donde ABC mejora a EDR o donde ES mejora a ABC, por lo que el siguiente cuadro muestra los mejores resultados obtenidos por los parámetros afinados, su comparación contra el BenchMark y el nombre del algoritmo evolutivo que generó el resultado. La columna algoritmo indica el nombre del o de los algoritmos que alcanzan el resultado mostrado en el cuadro 35. 100 Capı́tulo 6. Algoritmo propuesto de afinación de parámetros LANIA Cuadro 35: Mejores resultados alcanzados por los EA afinados. Problema g01 Algoritmo EDB, EDR,ABC Resultado -15 BenchMark -15 g02 EDR -0.8034 -0.8036 g03 EDB, EDR -1 -1.0050 g04 Todos -30665.539 -30665.539 g05 EDB, EDR 5126.496 5126.497 g06 Todos -6961.8138 -6961.814 g07 EDB, EDR 24.307 24.306 g08 Todos -0.0958 -0.0958 g09 EDB, EDR 680.6300 680.6301 g10 EDB 7049.591 7049.248 g11 EDB, EDR, ABC 0.7499 0.7499 g12 Todos -1 -1 g13 EDB 0.0541 0.0534 g14 ES -44.9824 -47.765 g15 EDB, EDR, ABC 961.7150 961.7150 g16 ABC -1.4019 -1.90515 g17 EDB,EDR 8853.540 8853.54 g18 EDR,EDB -0.8660 -0.86602 g19 EDB 32.6555 32.6555 g21 EDB 193.7245 193.7245 g23 EDB -394.2627 -400.0551 g24 Todos -5.5080 -5.5080 101 CAPÍTULO 7 Comentarios finales En este trabajo se presentó un algoritmo evolutivo afinador de parámetros de algoritmos evolutivos, especializado en los parámetros cuantitativos de los mismos. El objetivo original de la tesis consistı́a en generar un algoritmo hiper-heurı́stico con aprendizaje por refuerzo que mediante la exploración de las soluciones de las instancias de EA sobre las funciones de evaluación a optimizar (funciones CEC), obtuviera “experiencia” y fuera capaz de identificar eficientemente cual instancia es mejor para cada función de evaluación. La ejecución de un algoritmo hiper-heurı́stico con aprendizaje máquina por estadı́sticas utilizó EAs con valores muy bajos en sus parámetros, con la intención de obligarlo a esforzarse más en su aprendizaje, sin embargo, generó resultados inesperados sobre los obtenidos en la fase de pruebas de los EA con 500000 evaluaciones de individuos. Se identificó que algunas heurı́sticas tienden a converger rápidamente, mientras que otras tardan en encontrar una buena solución. Intentar evaluar un conjunto de heurı́sticas que toman en cuenta muchas generaciones, es un proceso demasiado costoso durante la fase de pruebas, lo que se busca en estos casos es aumentar la agilidad del proceso general, derivado de esto, se puede pensar que si la finalidad de los algoritmos evolutivos consiste en mejorar los individuos a través de las generaciones, entonces, reducir el número de generaciones se puede llegar a traducir en perdida de la información, estos motivos abrieron la pregunta sobre cuales eran las mejores configuraciones para que cada heurı́stica pudiera encontrar sus mejores resultados, de tal manera que sean lo más ligeras posible y no pierdan la calidad en sus resultados. Este trabajo de tesis desarrollo una alternativa de solución para esta problemática. 7.1. Conclusiones Los resultados presentados en el capı́tulo 6, indican que el algoritmo afinador de parámetros, en la mayorı́a de los casos incrementó la calidad y agilidad (mejores resultados con una menor cantidad de evaluaciones) de los algoritmos evolutivos para la mayorı́a de las funciones CEC2006 con respecto a los resultados presentados en el capı́tulo 5. A continuación se describen de forma independiente las conclusiones obtenidas. 102 Capı́tulo 7. Comentarios finales LANIA Los resultados sugieren de forma empı́rica que el algoritmo tiene la capacidad de optimizar un conjunto de algoritmos evolutivos, en lugar de sólo uno. Por otra parte, mediante las gráficas de los anexos, se puede inferir que los resultados de la ejecución de los algoritmos evolutivos con parámetros afinados tienden a ser coherentes, que mejoran los resultados mientras que su jerarquı́a se mantiene, reduciendo a mismo tiempo el consumo de recursos de forma drástica. Se traducen estas caracterı́sticas como indicadores de que el algoritmo es robusto con respecto a las funciones CEC2006. Aunque los resultados sugieren que el algoritmo es robusto, las gráficas de dispersión de algunas funciones, indican que no serı́a prudente afirmar que es un afinador general que puede trabajar con cualquier conjunto de heurı́sticas o funciones de evaluación, esto se debe a que cada función de evaluación tiene caracterı́sticas independientes, donde los parámetros influyen de diferente manera para encontrar el resultado final. Se observa que la mayorı́a de los resultados de algunas funciones son buenos, mientras que en algunas funciones no se logra encontrar una buena solución o los datos están dispersos. Se dice que se encuentra una buena solución cuando los valores dentro del conjunto de resultados de un EA afinado mejoran e idealmente se encuentran menos dispersos que los resultados originales. El uso de un algoritmo evolutivo de alto nivel con el objetivo de manejar un conjunto de algoritmos evolutivos de bajo nivel es un enfoque bastante atractivo, puesto que los EA fueron diseñados para trabajar en entornos difı́ciles, sin embargo, su implementación es costosa con respecto a otros métodos existentes, tales como la regresión lineal. En este trabajo se identificó la idea de que el uso de un algoritmo con parámetros afinados es esencial para combatir el costo necesario de ejecución de los EAs. Se intenta delimitar el número de evaluaciones necesarias con diferentes factores, tratando de mantener los mejores resultados. La implementación de un algoritmo evolutivo de alto nivel para afinar algoritmos de bajo nivel, hereda tanto las bondades de los algoritmos evolutivos como sus dificultades. Se puede ver que el uso del afinador necesita que el usuario configure previamente un conjunto de parámetros. De acuerdo con la experimentación realizada en este trabajo, se presume que el espacio de búsqueda del modelo de parámetros es bastante reducido con respecto a los modelos de las funciones CEC, por este motivo, se obtuvieron buenos resultados con pocas evaluaciones. La reducción del espacio de búsqueda supone que la configuración de parámetros del algoritmo de alto nivel es mucho más sencilla de lograr, por lo que el tiempo invertido para esta tarea es reducido y vale la pena, ya que 103 Capı́tulo 7. Comentarios finales LANIA con esto se puede lograr la configuración de un conjunto de EAs (centraliza el problema). De acuerdo con Sampieri, Collado y Lucio en [128], los resultados de este trabajo de tesis se obtuvieron mediante un trabajo de investigación cualitativo, puesto que en cada fase se hizo necesaria la retroalimentación de los resultados obtenidos hasta ese momento, esta re-evaluación llevó a la redefinición constante de objetivos e hipótesis. Cada etapa dentro de este trabajo se convirtió en un subproceso de investigación, mientras que la conjunción de estos definió el camino a seguir del trabajo. Los conjuntos de parámetros optimizados para un algoritmo evolutivo, pueden representar una fuente de información para conocer al mismo algoritmo evolutivo, puesto que indican patrones de uso sobre los valores en los parámetros, esta información puede ser un punto inicial para conocer el comportamiento interno de los EA. El resultado buscado en este trabajo consistió en encontrar buenas configuraciones de parámetros de algoritmos evolutivos, no se busca obtener información sobre la interacción entre parámetros o sus niveles de importancia sobre los componentes que definen al proceso de búsqueda general. Las contribuciones de este trabajo de tesis se pueden resumir en los siguientes puntos: • Aportar conocimiento en el área de configuración de parámetros, mediante el desarrollo de un modelo de afinación de parámetros de algoritmos evolutivos. • Retomar un enfoque de afinación de parámetros que se considera infactible y proporcionar un modelo simple con buenos resultados. • Demostrar la importancia de la tarea de afinación de parámetros como un factor clave para obtener buenos resultados de la implementación de algoritmos evolutivos, al describir un método el cual genera una solución que reduce los recursos y tiempo de ejecución de los EAs que utilizan los parámetros afinados. 104 Capı́tulo 7. Comentarios finales 7.2. LANIA Trabajo futuro Las actividades propuestas como continuación a este trabajo, se resumen en los siguientes puntos: Implementar el algoritmo afinador a conjuntos diferentes de funciones de evaluación, ası́ como a diferentes algoritmos evolutivos, para visualizar su comportamiento, de esta manera se puede verificar la calidad del comportamiento del afinador. Aumentar la capacidad del afinador para que agregue la optimización de parámetros cualitativos, intentando que la configuración inicial por parte del usuario no se vuelva una tarea demasiado compleja. Este trabajo presenta la descripción de la implementación y los resultados, sin embargo, serı́a buena idea realizar un estudio del comportamiento del algoritmo que permita observar la forma (comportamiento interno) en que realiza la búsqueda de buenas soluciones. Ya que uno de los principales objetivos del algoritmo consiste en minimizar el tiempo y recursos de ejecución, podrı́a ser interesante aplicar este modelo a heurı́sticas que solucionan problemas en un ámbito productivo. 105 APÉNDICE A Gráficas de dispersión: resultados originales vs afinados En este apartado se muestra un conjunto de figuras de comparación entre los resultados obtenidos por los algoritmos evolutivos con parámetros originales y los resultados obtenidos con la ejecución de los mismos algoritmos evolutivos, pero con parámetros afinados. Cada figura corresponde a una función CEC especı́fica, se compone de cuatro subfiguras correspondientes a todos los EA presentados en el capı́tulo 5. Dentro de cada subfigura se presentan dos gráficas de caja, la gráfica que se encuentra en la parte superior se formó con los valores afinados, mientras que la gráfica de la parte inferior fue creada con los valores originales. La idea es comparar la gráfica de arriba contra la de abajo. (a) EDR (b) EDB (c) ABC (d) ES Figura A.1: Comparación de resultados originales vs afinados, función CEC2006, G01. 106 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.2: Comparación de resultados originales vs afinados, función CEC2006, G02. 107 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.3: Comparación de resultados originales vs afinados, función CEC2006, G03. 108 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.4: Comparación de resultados originales vs afinados, función CEC2006, G04. 109 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.5: Comparación de resultados originales vs afinados, función CEC2006, G05. 110 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.6: Comparación de resultados originales vs afinados, función CEC2006, G06. 111 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.7: Comparación de resultados originales vs afinados, función CEC2006, G07. 112 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.8: Comparación de resultados originales vs afinados, función CEC2006, G08. 113 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.9: Comparación de resultados originales vs afinados, función CEC2006, G09. 114 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.10: Comparación de resultados originales vs afinados, función CEC2006, G10. 115 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.11: Comparación de resultados originales vs afinados, función CEC2006, G11. 116 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.12: Comparación de resultados originales vs afinados, función CEC2006, G12. 117 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.13: Comparación de resultados originales vs afinados, función CEC2006, G13. 118 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.14: Comparación de resultados originales vs afinados, función CEC2006, G14. 119 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.15: Comparación de resultados originales vs afinados, función CEC2006, G15. 120 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.16: Comparación de resultados originales vs afinados, función CEC2006, G16. 121 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.17: Comparación de resultados originales vs afinados, función CEC2006, G17. 122 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.18: Comparación de resultados originales vs afinados, función CEC2006, G18. 123 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.19: Comparación de resultados originales vs afinados, función CEC2006, G19. 124 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.20: Comparación de resultados originales vs afinados, función CEC2006, G21. 125 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.21: Comparación de resultados originales vs afinados, función CEC2006, G23. 126 Apéndice A. Gráficas de dispersión: resultados originales vs afinados (a) EDR (b) EDB (c) ABC (d) ES LANIA Figura A.22: Comparación de resultados originales vs afinados, función CEC2006, G24. 127 APÉNDICE B Gráficas de dispersión: comparación entre EAs afinados En este apartado se muestra la comparación entre los cuatro EAs, para cada función CEC, cada figura está compuesta por cuatro gráficas de caja, todas las gráficas fueron creadas con los valores obtenidos de las ejecuciones de los EAs con parámetros afinados. Figura B.1: Comparación general, función CEC 2006, g01. Figura B.2: Comparación general, función CEC 2006, g02. 128 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA Figura B.3: Comparación general, función CEC 2006, g03. Figura B.4: Comparación general, función CEC 2006, g04. 129 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA Figura B.5: Comparación general, función CEC 2006, g05. Figura B.6: Comparación general, función CEC 2006, g06. 130 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA Figura B.7: Comparación general, función CEC 2006, g07. Figura B.8: Comparación general, función CEC 2006, g08. 131 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA Figura B.9: Comparación general, función CEC 2006, g09. Figura B.10: Comparación general, función CEC 2006, g10. 132 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA Figura B.11: Comparación general, función CEC 2006, g11. Figura B.12: Comparación general, función CEC 2006, g12. 133 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA Figura B.13: Comparación general, función CEC 2006, g13. Figura B.14: Comparación general, función CEC 2006, g14. 134 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA Figura B.15: Comparación general, función CEC 2006, g15. Figura B.16: Comparación general, función CEC 2006, g16. 135 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA Figura B.17: Comparación general, función CEC 2006, g17. Figura B.18: Comparación general, función CEC 2006, g18. 136 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA Figura B.19: Comparación general, función CEC 2006, g19. Figura B.20: Comparación general, función CEC 2006, g21. 137 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA Figura B.21: Comparación general, función CEC 2006, g23. Figura B.22: Comparación general, función CEC 2006, g24. 138 Lista de referencias [1] S. Manos, M. Large, and L. Ploladian, “Evolutionary design of singlemode microstructured polymer optical fibres using an artificial embryogeny representation,” in Proceedings GECCO the genetic and evolutionary Computation Conference companion, Nov. 2007, pp. 2549–2556. [2] A. Hauptman and M. Sipper, “Evolution of an efficent serach algorithm for the mate-in-n problem in chess,” in Proceedings EuroGP the 10th European Conference on Genetic Programming, Nov. 2007, pp. 78–79. [3] X. Llorá, R. Reddy, B. Matesic, and R. Bhargava, “Towards better than human capability in diagnosing cancer using infrared spectroscopic imaging,” in Proceedings GECCO the Genetic and Evolutionaryy Computation Conference, Nov. 2007, pp. 2098–2105. [4] J. BAcardit, M. Stout, X. Llora, and N. Krasnogor, “Automated alphabet reduction method with evolutionary algoritms for protein structure prediction,” in Proceedings GECCO the Genetic and Evolutionaryy Computation Conference, Nov. 2007, pp. 346–353. [5] D. V. Arnold, Noisy Optimization with Evolution Strategies. United States of America: Kluer Academic Publishers, 2002. New York, [6] C. C. Coello, D. V. Veldhuizen, and G. Lammont, Evolutionary Algorithms for Solving Multi-Objective Problems. New York, United States of America: Kluer Academic Publishers, 2002. [7] D. B. Fogel, Evolutionary Computation. Toward a New Philosophy of Machine Learning, New York, United States of America, 1998. [8] C. A. C. Coello, A comprensive survey of evolutionary-bases multi-objective optimization techniques, New York, United States of America, 1999. [9] T. Hanne, “On the convergence of multiobjective evolutionary algorithms,” in European Journal of Operational Research, 1999, pp. 553–564. [10] T. Hanne, “Global multiobjective optimization using algorithms,” in Journal of heuristics, 2000, pp. 347–360. evolutionary [11] V. Nannen, S. K. Smith, and Ágoston E. Eiben, “Costs and benefits of tuning parameters of evolutionary algorithms.” in PPSN’08, 2008, pp. 528–538. 139 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA [12] F. B. and Hartfelder, “Optimization of genetic alrorithms by genetic algorithms.” in Artificial eural Networks and Genetic Algorithms, 1993, pp. 392–399. [13] E. Mezura-Montes, “Alternative techniques to handle constraints in evolutionary optimization,” Ph.D. dissertation, Centro de Investigación y de Estudios Avanzados dle IPN, 2004. [14] Liang-Thomas, P. Runarsson, E. Mezura-Montes, M. C. Suganthan, C. A. Coello, and K. Deb, “Problem definitions and evaluation criteria for the cec 2006 special session on contrained real-parameter optimization,” IEEE Transactions, 2006. [15] J. Nocedal and S. J. Wright, Numerical Optimization, S. M. R. Peter Glynn, Ed. United States of America: Springer, 1999. [16] C. Floudas and P. Pardalos, eds., Recent Advances in Global Optimization, Princeton University Press, Princeton, NJ, 1992. [17] J. E. Dennis and R. B. Schnabel, Numerical Methods for Unconstrained Optimization, Prentice- Hall, Englewood Cliffs, NJ. SIAM Publications, 1993. [18] P. Gill, W. Murray, and M. H. Wright, Practical Optimization, Academic Press, 1981. [19] C. Villela, “Mecanı́smo de selección y control de una hiperheurı́stica basada en evolución diferencial para optimización en espacios restringidos,” Master’s thesis, Centro de Investigación y de Estudios Avanzados dle IPN, 2010. [20] R. Fourer, D. M. Gay, and B. W. Kernighan, AMPL: A Modeling Language for Mathematical Programming. The Scientific Press, 1993. [21] R. K. Ahuja, T. L. Magnanti, and J. B. Orlin, Network Flows: Theory, Algorithms, and Applications. Prentice-Hall, 1993. [22] A. L. López, “Un estudio de las estrégias evolutivas paraproblemas multiobjetivo,” Ph.D. dissertation, Centro de Investigación y de Estudios Avanzados dle IPN, 2003. [23] T. Weise, Global Optimization Algorithms, Theory and Application. Thomas Weise, 2009. [24] G. L. Nemhauser and L. A. Wolsey, Integer and Combinatorial Optimization. John Wiley e hijos, 1988. 140 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA [25] M. Bazaraa, H. Sherali, and C. Shetty, Nonlinear Programming, Theory and Applications. John Wiley e hijos, 1993. [26] W. J. Cook and W. H. Cunningham, Combinatorial optimization. Wiley e hijos, 1997. John [27] C. H. Papadimitriou and K. Steiglitz, Combinatorial Optimization: Algorithms and Complexity. Prentice Hall, 1982. [28] L. A. Wolsey, Integer Programming. John Wiley e hijos, 1998. [29] V. Chvátal, Linear Programming. W. H. Freeman, 1983. [30] G. B. Dantzig, Linear Programming and Extensions. Press, 1963. Princeton University [31] O. L. Mangasarian, Nonlinear Programming. McGraw-Hill, New York, 1995. [32] P. E. Gill, W. Murray, M. A. Saunders, and M. H. Wright, “Constrained nonlinear programming,” Optimization, vol. 1, pp. 171–210, 1989. [33] J. R. Birge and F. Louveaux, Introduction to Stochastic Programming. Springer-Verlag, 1997. [34] R. H. Byrd and J. Nocedal, An analysis of reduced Hessian methods for constrained optimization, Mathematical Programming, 1991. [35] Hiriart-Urruty and C. Lemarechal, Convex Analysis and Minimization Algorithms, Springer-Verlag, Berlin, New York, 1993. [36] R. Govindan and H. Tangmunarunkit, “Heuristics for internet map discovery,” 2000. [37] Michalewicz, Zbigniew, and D. B. Fogel, How to Solve It: Modern Heuristics. Springer, 2004. [38] E. Özcan, B. Bilgin, and E. E. Korkmaz, “A comprehensive analysis of hyperheuristics.” [39] E. K. Burke, M. Hyde, G. Kendall, G. Ochoa, E. Ozcan, and J. R. Woodward, “A classification of hyper-heuristic approaches.” [40] X. Yao, Evolutionary computation: A gentle introduction, M. M. Sarker and X. Yao, Eds. Kluwer Academic Publishers, 2002. [41] Arts and humanities Research Council, “The complete work of charles darwin,” Agosto 2011. [Online]. Available: htttp://dariwin-online.org.uk 141 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA [42] C. Darwin and S. Schmitz, Charles Darwin - ein Leben : Autobiographie, Briefe, Dokumente. Deutscher Taschenbuch Verlag, 1982. [43] C. Darwin, On the Origin of Species by Means of Natural Selection. Dover Publications, 2006. [44] C. Darwin, The Origin Of Species. Signet Classics, 2003. [45] D. B. Fogel, Evolutionary Computation. Machine Intelligence, 1995. Toward a New Philosophy of [46] J. Jenkins, Genetics. Houghton Mifflin Company, 1984. [47] R. Baldwin, Genetica elemental. Limusa, 1983. [48] D. B. Fogel, “An introduction to simulated evolutionary optimization,” IEEE Transactions on Neural Networks, vol. 5, no. 1, pp. 3–14, Jan. 1994. [49] T. Bäck and H. Schwefel, “An overview of Evolutionary Algorithms for parameter optimization,” Evolutionary Computation, vol. 1, no. 1, pp. 1– 23, 1993. [50] L. E. Davis, Handbook of genetic algorithms. Reinhold, 1991. New York: Van Nostrand [51] Z. Michalewicz, Genetic algorithms + data structures = evolution programs. Berlin: Springer, 1992. [52] L. Franco, “Doble hélice, genes and cromosomas,” Promoción de la cultura cientı́fica y tecnológica, pp. 99–114, 2007. [53] J. H. Holland, Adaptation in Natural an Artificial Systems. 1992. MIT Press, [54] A. D. Jong, An Analysis of the Behavior of a Class of Genetic Adaptative Systems. University of Michigan, 1975. [55] D. H. Ackley, A Connectionist Machine for Genetic Hillclimbing. Academic Publishers, 1995. Kluwer [56] G. Syswerda, “Uniform crossover in genetic algorithms,” in Proceedings of the Third International Conference on Genetic Alg orithms, J. D. Schaffer, Ed., 1989, pp. 2–9. [57] E. Smorodkina and D. Tauritz, “Greedy population sizing for evolutionary algorithms,” in Proceedings of CEC, 2007, pp. 2181–2187. 142 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA [58] O. Francois and C. Lavergne, “: Design of evolutionary algorithms. a statistical perspective,” IEEE Trans. Evol. Comput. 5(2), vol. 5, no. 2, pp. 129–148, 2001. [59] D. E. Goldberg and K. Deb, “A comparison of selection schemes used in genetic algorithms,” in Foundations of Genetic Algorithms, G. J. E. Rawlins, Ed., 1991, pp. 69–93. [60] D. E. Goldberg, : Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley Longman Publishing Co., Boston, 1989. [61] B. Friesleben and M. Hartfelder, : Optimization of Genetic Algorithms by Genetic Algorithms, R. F., C. R. Reeves, and N. C. Steele, Eds. Albrecht, 1993. [62] S. Cagnoni, A. B. Dobrzeniecki, R. Poli, and J. C. Yanch, “Genetic algorithmbased interactive segmentation of 3D medical images,” Image and Vision Computing, vol. 17, no. 12, pp. 881–895, Oct. 1999. [63] R. Smigrodzki, B. Goertzel, C. Pennachin, L. Coelho, F. Prosdocimi, and D. P. Jr, “Genetic algorithm for analysis of mutations in parkinson’s disease,” Artificial Intelligence in Medicine, vol. 35, pp. 227–241, Nov. 2005. [64] H. Yan, Y. Jiang, J. Zheng, C. Peng, and S. Xiao, “Discovering critical diagnostic features for heart diseases with a hybrid genetic algorithm,” in Proceedings of the International Conference on Mathematics and Engineering Techniques in Medicine and Biological Scienes, METMBS’03, F. Valafar and H. Valafar, Eds., June 2003, pp. 406–409. [65] H. Min, T. G. Smolinski, and G. M. Boratyn, “A genetic algorithm- based data mining approach to profiling the adopters and non-adopters of epurchasing,” in Information Reuse and Integration, Third Inter- national Conference, W. W. Smari, Ed., 2001, pp. 1–6. [66] A. Kamraniy, W. Rong, and R. Gonzalez, “A genetic algorithm methodology for data mining and intelligent knowledge acquisition,” Computers and Industrial Engineering, vol. 40, no. 4, pp. 361–377, Sept. 2001. [67] K. El-Fakihy, H. Yamaguchi, and G. von Bochmann, “A method and a genetic algorithm for deriving protocols for distributed applications with minimum communication cost,” in Proceedings of Eleventh IASTED International Conference on Parallel and Distributed Computing and Systems (PDCS’99), 1999, pp. 863–868. 143 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA [68] N. P. Sharples, Evolutionary Approaches to Adaptive Protocol Design. PhD thesis, School of Cognitive and Computing Sciences of the University of Sussex, Aug. 2001. [69] J. D. Lohn and S. P. Colombano, “A circuit representation technique for automated circuit design,” IEEE Transactions on Evolutionary Computation (IEEE-EC), vol. 3, no. 3, p. 205, Sept. 1999. [70] J. Lohn, S. Colombano, G. Haith, and D. Stassinopoulos, “A parallel genetic algorithm for automated electronic circuit design,” in Proceedings of the Computational Aerosciences Workshop, Feb. 2000. [71] D. Yuret and M. Maza, A genetic algorithm system for predicting the oex. Technical Analysis of Stocks and Commodities, June 1994. [72] P. Vitanyi, “A dicipline of evolutionary programming,” Theorietical computer science, 2000. [73] D. B. Fogel, System Identification through Simulated Evolution: A Machine Learn- ing Approach to Modeling. Ginn Press, Needham Heights, MA, June 1991. [74] D. B. Fogel, “Evolving a checkers player without relying on human experience,” Intelligence, vol. 11, no. 2, pp. 20–27, 2000. [75] D. B. Fogel, Blondie24: playing at the edge of AI. Series in Artificial Intelligence, Sept. 2001. The Morgan Kaufmann [76] G. Verkhivker, R. Fogel, and Freer, “Docking conformationally flexible small molecules into a protein binding site through evolutionary programming,” in Evolutionary Programming IV: Proceedings of the Fourth Annual Conference on Evo- lutionary Programming, 1995. [77] D. K. Gehlhaar and D. B. Fogel, “Tuning evolutionary programming for confor- mationally flexible molecular docking,” in Evolutionary Programming V: Proceedings of the Fifth Annual Conference on Evolutionary Programming, 1996, pp. 419–429. [78] B. S. Duncan and A. J. Olson, “Applications of evolutionary programming for the prediction of protein-protein interactions,” in Evolutionary Programming V: Proceedings of the Fifth Annual Conference on Evolutionary Programming, 1996, pp. 411–417. [79] J.-H. Kim and J.-Y. Jeon, “Evolutionary programming-based high- precision controller design,” in Evolutionary Programming V: Proceedings of the Fifth Annual Conference on Evolutionary Programming, 1996, pp. 73–81. 144 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA [80] K. M. Nelson, “A comparison of evolutionary programming and genetic algorithms for electronic part placement,” in Evolutionary Programming IV: Proceedings of the Fourth Annual Conference on Evolutionary Programming, 1995, pp. 503–519. [81] M. Sarkar, “Evolutionary programming-based fuzzy clustering,” in Evolutionary Programming V: Proceedings of the Fifth Annual Conference on Evolutionary Pro- gramming, 1996, pp. 247–256. [82] O. Cordon, F. Herrera, and L. Sanchez, Evolutionary learning processes for data analysis in electrical engineering applications, J. P. Quagliarella, C. Poloni, and G. Winter, Eds., 1998. [83] H.-D. Huang, J. T. Yang, S. F. Shen, and J.-T. Horng, “An evolution strategy to solve sports scheduling problems,” in Proceedings of the Genetic and Evolutionary Computation Conference GECCO-99, 1999, vol. 1, p. 943. [84] V. Nissen and M. Krause, “Constrained combinatorial optimization with an evolution strategy,” in Proceedings of Fuzzy Logik, Theorie und Praxis, June 1994, vol. 4., pp. 33–40. [85] H.-G. Beyer, “Some aspects of the ‘evolution strategy’ for solving TSPlike optimization problems appearing at the design studies os a 0,” Parallel problem solving from nature, vol. 2, pp. 361–370, 1992. [86] H.-G. Beyer, “Design optimization of a linear accelerator using evolution strat- egy: solving a TSP-like optimization problem,” in Handbook of Evolutionary Compu- tation, 1997, vol. 2, pp. 1–8. [87] R. E. Keller, W. Banzhaf, J. Mehnen, and K. Weinert, “Cad surface reconstruction from digitized 3d point data with a genetic programming/evolution strategy hybrid,” in Advances in genetic programming:, 1999, vol. 3, pp. 41–65. [88] K. Weinert and J. Mehnen, “Discrete nurbs-surface approximation using an evolutionary strategy,” Department of Machining Technology, University of Dortmund, Germany, Technical Report Sonderforschungsbereich (SFB) 531, Oct. 2001. [89] H. Greiner, “Robust filter design by stochastic optimization,” Proceedings of SPIE (The International Society for Optical Engineering), vol. 2253, pp. 150–161, 1994. [90] H. Greiner, “Robust optical coating design with evolutionary strategies,” Applied Optics, vol. 35, no. 28, pp. 5477–5483, 1996. 145 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA [91] T. Back, Evolution strategies for mixed-integer optimization of optical multilayer systems. Evolutionary Programming IV., 1995. [92] A. E. Eiben and S. K. Smith, “Parameter tuning for configuring and analyzing evolutionary algorithms,” in Swarm and evolutionary computation, Marzo 2011, pp. 19–31. [93] J. Hooker, “Testing heuristics: We have it all wrong,” Journal of Heuristics, vol. 1, pp. 33–42, 1995. [94] V. Nannen, S. Smit, and A. E. Eiben, “Costs and benefits of tuning parameters of evolutionary algorithms,” Journal of Heuristics, vol. 1, pp. 33–42, 2009. [95] A. E. Eiben and J. Smith, Introduction to Evolutionary Computing. Springer-Verlag, London, 2003. [96] J. Maturana, F. Lardeux, and F. Saubion, Controlling behavioral and structural parameters in evolutionary algorithms. International Conference on Artificial Evolution, EA, 2009. [97] J. Greffenstette, “Optimisation of Control Parameters for Genetic Algorithms,” IEEE Transactions on Systems, Man and Cybernetics, vol. 16, pp. 122–128, 1986. [98] V. Nannen and A. E. Eiben, Relevance Estimation and Value Calibration of Evolutionary Algorithm Parameters, in: M. M. Veloso, Ed. Proceed- ings of the 20th International Joint Conference on Artificial Intelligence (IJCAI), Hyderabad, India, 2007. [99] J. Schaffer, R. Caruana, L. Eshelman, and R. Das, A study of control parameters affecting online performance of genetic algorithms for function optimization. Proceedings of the third international conference on Genetic algorithms, Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1989. [100] O. Maron and A. Moore, “The racing algorithm: Model selection for lazy learners,” Artificial Intelligence Review, vol. 11, pp. 193–225, 1997. [101] A. E. Eiben and S. K. Smit, Evolutionary algorithm parameters and methods to tune them, in: E. M. Y. Hamadi and F. Saubion, Eds. Autonomous Search, Springer, 2011. [102] S. K. Smit and A. E. Eiben, Using entropy for parameter analysis of evolutionary algorithms, in: T. Bartz-Beielstein, M. Chiarandini, L. Paquete, 146 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA and M. Preuss, Eds. Experimental Methods for the Analysis of Optimization Algorithms, in: Natural Computing Series, Springer, 2010. [103] R. Myers and E. R. Hancock, Empirical modelling of genetic algorithms. Evolution- ary Computation 9, 2001. [104] T. Bartz-Beielstein, “Experimental analysis of evolution strategies: overview and comprehensive introduction,” SFB 531, Universitat Dortmund, Dortmund, Germany,” Technical Report Reihe CI 157/03, 2003. [105] A. E. Eiben, R. Hinterding, and Z. Michalewicz, Parameter control in evolutionary algorithms. IEEE Transactions on Evolutionary Computation 3, 1999. [106] F. Lobo, C. Lima, and Z. Michalewicz, Parameter Setting in Evolutionary Algorithms. Springer, 2007. [107] M. Birattari, Tuning Metaheuristics, Springer, 2005. [108] S. K. Smit and A. E. Eiben, Comparing parameter tuning methods for evolutionary algorithms. in: IEEE Congress on Evolutionary Computation, IEEE Press, Trondheim, 2009. [109] S. Coy, B. Golden, G. Runger, and E. Wasil, Using experimental design to find effective parameter settings for heuristics. Journal of Heuristics 7, 2001. [110] G. Taguchi and T. Yokoyama, Taguchi Methods: Design of Experiments. ASI Press, 1993. [111] T. Bartz-Beielstein, Experimental Research in Evolutionary Computation: The New Experimentalism. Springer, 2006. [112] R. Bechhofer, C. Dunnett, D. Goldsman, and M. Hartmann, A comparison of the performances of procedures for selecting the normal population having the largest mean when populations have a common unknown variance. Communications in Statistics B19, 1990. [113] B. Adenso-Diaz and M. Laguna, “Fine-tunning of algorithms using fractional experimental designs and local search,” Operations research 54, pp. 99–114, 2006. [114] A. Czarn, C. MacNish, K. Vijayan, B. Turlach, and R. Gupta, Statistical exploratory analysis of genetic algorithms. IEEE Transactions on Evolutionary Computation 8, 2004. 147 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA [115] I. Ramos, M. Goldbarg, E. Goldbarg, and A. Neto, “Logistic regression for parameter tuning on an evolutionary algorithm,” in: Proceedings of the 2005 IEEE Congress on Evolutionary Computation IEEE Congress on Evolutionary Computation, vol. 2, pp. 1061–1068, 2005. [116] O. Francois and C. Lavergne, Design of Evolutionary Algorithms: A Statistical Perspective. IEEE Transactions on Evolutionary Computation 5, 2001. [117] R. Mercer and J. Sampson, Adaptive search using a reproductive metaplan. Kybernetes 7, 1978. [118] S. Kukkonen and J. Lampinen, “Contrained real-parameter optimization with generalized differential evolution,” Congress on Evolutionary Computation, vol. 1, pp. 33–42, 2006. [119] E. Mezura-Montes, J. Velázquez-Reyes, and C. A. C. Coello, “Modified differential evolution for constrained optimization,” Congress on Evolutionary Computation, vol. 1, pp. 33–42, 2006. [120] E. Mezura-Montes, M. E. Miranda-Varela, and R. del Carmen GómezRamón, “Differential evolution in constrained numerical optimization. an empirical study,” Congress on Evolutionary Computation, vol. 1, pp. 33–42, 2006. [121] E. Mezura-Montes, M. E. Miranda-Varela, and J. I. Flores-Mendoza, “Paradı́gmas emergentes en algoritmos bio-inspirados,” IEEE Transactions, 2009. [122] S. Kukkonen and J. Lampinen, “Constrained real-parameter optimization with generalized differential evolution,” Congreso de computación evolutiva, 2006. [123] H.-G. Beyer and H.-P. Schwefel, “Evolution strategies. a comprensive introduction,” Natural computing, 2002. [124] I. Rechenberg, Evolutionsstrategie: Optimierung technischer Systeme nach Prinzipien der biologischen Evolution. [PhD Thesis] Technical University of Berlin, Department of Process Engineering, 1971. [125] T. bäck, F. Hoffmeister, and H.-P. Schwefel, “A survey of evolution strategies,” Natural computing, 2002. [126] D. KAraboga and B. Bastuk, “A powerful and efficient algorithm for numerical function optimization,” Optimización global, 2007. 148 Apéndice B. Gráficas de dispersión: comparación entre EAs afinados LANIA [127] J. Derrac, S. Garcı́a, D. Molina, and F. Herrera, “A practical tutorial on the use of nonparametric statistical tests as a methodology for comparing evolutionary and swarm intelligence algorithms,” Swarm and Evolutionary Computation, 2010. [128] R. Sampieri, C. Collado, and P. Lucio, Metodologı́a de la investigación. McGraww Hill, 2006. 149