Optimización Continua Basada en Algoritmos de Estimación de Regresión Miguel Ratón Almansa A mis padres y mi hermana Índice general 1. Introducción 5 1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2. Estado del Arte 7 2.1. Algoritmos Evolutivos . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1. Programación evolutiva . . . . . . . . . . . . . . . . . . . . . . 7 2.1.2. Estrategias evolutivas . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.3. Algoritmos genéticos . . . . . . . . . . . . . . . . . . . . . . . 9 2.1.3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 9 2.1.3.2. Terminología . . . . . . . . . . . . . . . . . . . . . . 10 2.1.3.3. Esquema general del algoritmo . . . . . . . . . . . . 11 2.1.3.4. Ventajas e inconvenientes . . . . . . . . . . . . . . . 11 2.1.4. Algoritmos EDA . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.1.4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 12 2.1.4.2. Esquema general del algoritmo . . . . . . . . . . . . 13 2.1.4.3. Modelo gráfico probabilístico . . . . . . . . . . . . . 13 2.1.4.4. Tipos de modelos probabilísticos . . . . . . . . . . . 14 2.1.4.5. UMDA . . . . . . . . . . . . . . . . . . . . . . . . . 15 c 2.1.4.6. MIMIC . . . . . . . . . . . . . . . . . . . . . . . . . 16 c 2.2. Regresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.1. Regresión lineal . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2.1.1. Regresión lineal simple . . . . . . . . . . . . . . . . . 19 2.2.1.2. Regresión lineal múltiple . . . . . . . . . . . . . . . . 22 2.2.1.3. Regresión penalizada L1 y L2 . . . . . . . . . . . . . 23 3. Desarrollo 26 3.1. Diseño del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.1. Descripción general . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.2. Simulación de nuevas poblaciones . . . . . . . . . . . . . . . . 28 3.1.2.1. Método del desplazamiento Gaussiano . . . . . . . . 28 3.2. Implementación del algoritmo . . . . . . . . . . . . . . . . . . . . . . 33 3.2.1. R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.2.1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 33 3.2.1.2. R como entorno . . . . . . . . . . . . . . . . . . . . . 34 iii Índice general Índice general 3.2.2. Paquete penalized . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.2.2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 35 3.2.2.2. Elección de λ . . . . . . . . . . . . . . . . . . . . . . 36 3.2.2.3. Estandarización . . . . . . . . . . . . . . . . . . . . . 36 3.2.2.4. Genes sin penalizar . . . . . . . . . . . . . . . . . . . 37 3.2.3. Detalles de implementación . . . . . . . . . . . . . . . . . . . 38 3.2.3.1. cera.R . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.2.3.2. gaussian_offset.R . . . . . . . . . . . . . . . . . . . . 48 3.2.4. Funcionamiento práctico . . . . . . . . . . . . . . . . . . . . . 55 3.2.4.1. Requisitos previos . . . . . . . . . . . . . . . . . . . 55 3.2.4.2. Cómo ejecutar el algoritmo en R . . . . . . . . . . . 55 3.2.4.3. Ejemplos de funcionamiento . . . . . . . . . . . . . . 57 4. Resultados 65 4.1. Batería de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.1.1. Problema de Ackley . . . . . . . . . . . . . . . . . . . . . . . . 67 4.1.2. Problema de Branin . . . . . . . . . . . . . . . . . . . . . . . 68 4.1.3. Problema de Griewank . . . . . . . . . . . . . . . . . . . . . . 69 4.1.4. Problema Quartic con ruido . . . . . . . . . . . . . . . . . . . 70 4.1.5. Problema de Schwefel 1.2 . . . . . . . . . . . . . . . . . . . . . 70 4.1.6. Problema de Schwefel 2.21 . . . . . . . . . . . . . . . . . . . . 71 4.1.7. Problema de Schwefel 2.22 . . . . . . . . . . . . . . . . . . . . 71 4.1.8. Problema de Six-Hump Camel-Back . . . . . . . . . . . . . . . 72 4.1.9. Problema de Rastrigin . . . . . . . . . . . . . . . . . . . . . . 73 4.1.10. Problema de Rosenbrock . . . . . . . . . . . . . . . . . . . . . 74 4.1.11. Problema Generalizado de Schwefel . . . . . . . . . . . . . . . 75 4.1.12. Problema de la Esfera . . . . . . . . . . . . . . . . . . . . . . 76 4.1.13. Problema del Escalón . . . . . . . . . . . . . . . . . . . . . . . 77 4.2. Resultados experimentales . . . . . . . . . . . . . . . . . . . . . . . . 77 4.2.1. Datos de entrada . . . . . . . . . . . . . . . . . . . . . . . . . 78 4.2.2. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.2.2.1. Tamaño población 300, selección 50 individuos . . . . 80 4.2.2.2. Tamaño población 400, selección 200 individuos . . . 83 4.2.2.3. Tamaño población 1200, selección 300 individuos . . 86 4.2.3. Tests estadísticos para comparar algoritmos . . . . . . . . . . 88 4.2.3.1. Test de Mann-Whitney . . . . . . . . . . . . . . . . . 90 4.2.3.2. Resultado del test de Mann-Whitney . . . . . . . . . 92 5. Conclusiones 94 A. Cómo crear CERAS en R 96 A.1. Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 A.2. Creación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 iv Índice general Índice general Bibliografía 102 Índice alfabético 105 v Índice de figuras 2.1. Ejemplo de un modelo gráfico para X = (A,B,C,D) . . . . . . . . . 14 2.2. Diagrama de dispersión generado con R . . . . . . . . . . . . . . . . . 21 2.3. Recta de regresión generada con R . . . . . . . . . . . . . . . . . . . 21 2.4. Interpretación geométrica de la regresión lineal múltiple . . . . . . . . 23 2.5. Interpretación geométrica de lasso . . . . . . . . . . . . . . . . . . . . 25 3.1. Diagrama de flujo del algoritmo . . . . . . . . . . . . . . . . . . . . . 29 3.2. Visión esquemática del funcionamiento de R . . . . . . . . . . . . . . 34 3.3. Visión esquemática de una función en R . . . . . . . . . . . . . . . . 35 3.4. Población de 9 individuos con sus respectivos genomas . . . . . . . . 37 3.5. Diagrama flujo alto nivel del núcleo del algoritmo . . . . . . . . . . . 38 3.6. Diagrama de flujo detallado de cera.R . . . . . . . . . . . . . . . . . . 47 3.7. Diagrama de flujo de alto nivel del método de simulación . . . . . . . 48 3.8. Diagrama de flujo detallado de gaussian_offset.R . . . . . . . . . . . 54 3.9. Consultar variable entorno R_HOME . . . . . . . . . . . . . . . . . . 56 3.10.Comando source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.11.Instalación de paquetes a partir de archivos locales (versión Windows) 57 3.12.Carga del paquete ceras . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.13.Ejecución de Branin sin interacciones . . . . . . . . . . . . . . . . . . 58 3.14.Población obtenida en la generación 17 . . . . . . . . . . . . . . . . . 59 3.15.Ejecución de grado 2 no convergente . . . . . . . . . . . . . . . . . . 60 3.16.Ejecución de grado 2 convergente . . . . . . . . . . . . . . . . . . . . 61 3.17.Argumento TRACE: Individuos seleccionados para penalized . . . . . 62 3.18.Argumento TRACE: Modelo de regresión devuelto por penalized . . . 63 3.19.Argumento TRACE: Población evolucionada . . . . . . . . . . . . . . 63 3.20.Coeficientes β con interacciones grado 2 . . . . . . . . . . . . . . . . 64 4.1. Ejemplo de función “trampa” . . . . . . . . . . . . . . . . . . . . . . 66 4.2. Representación gráfica del problema de Ackley . . . . . . . . . . . . . 67 4.3. Representación gráfica del problema de Branin . . . . . . . . . . . . . 68 4.4. Representación gráfica del problema de Griewank (con d = 4000) . . . 69 4.5. Representación gráfica del problema de Six-Hump . . . . . . . . . . . 72 4.6. Representación gráfica del problema de Rastrigin . . . . . . . . . . . 73 4.7. Representación gráfica del problema de Rosenbrock . . . . . . . . . . 74 4.8. Representación gráfica del problema generalizado de Schwefel . . . . . 75 4.9. Representación gráfica del problema de la Esfera . . . . . . . . . . . . 76 1 Índice de figuras Índice de figuras A.1. Variables de entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 A.2. Estructura de directorios tras aplicar package.skeleton . . . . . . . . . 98 A.3. Generación del paquete binario . . . . . . . . . . . . . . . . . . . . . 99 A.4. Estructura de directorios del paquete binario . . . . . . . . . . . . . . 100 A.5. Estructura de directorios completa del paquete binario . . . . . . . . 100 2 Índice de cuadros 2.2. Datos mensuales de producción y costos de operación . . . . . . . . . 20 3.1. Incremento ∆ para un problema de maximización . . . . . . . . . . . 31 3.2. Incremento ∆ para un problema de minimización . . . . . . . . . . . 31 3.3. Interfaz de la función cera . . . . . . . . . . . . . . . . . . . . . . . . 40 3.4. Interfaz de la función powerSet . . . . . . . . . . . . . . . . . . . . . 41 3.5. Interfaz de la función extendGenome . . . . . . . . . . . . . . . . . . 41 3.6. Interfaz de la función hasConstantColumn . . . . . . . . . . . . . . . 42 3.7. Interfaz de la función isConstantMatrix . . . . . . . . . . . . . . . . . 42 3.8. Interfaz de la función loadProblem . . . . . . . . . . . . . . . . . . . . 43 3.9. Interfaz de la función getGenomeRange . . . . . . . . . . . . . . . . . 43 3.10.Interfaz de la función makeInitialIndividual . . . . . . . . . . . . . . . 44 3.11.Interfaz de la función createInitialPopulation . . . . . . . . . . . . . . 44 3.12.Interfaz de la función selectIndividuals . . . . . . . . . . . . . . . . . 45 3.13.Interfaz de la función improvePopulation . . . . . . . . . . . . . . . . 46 3.14.Interfaz de la función gaussian_offset . . . . . . . . . . . . . . . . . . 49 3.15.Interfaz de la función global_sign . . . . . . . . . . . . . . . . . . . . 50 3.16.Interfaz de la función getMeansOfColumns . . . . . . . . . . . . . . . 50 3.17.Interfaz de la función calculateDeltas . . . . . . . . . . . . . . . . . . 51 3.18.Interfaz de la función improveGen . . . . . . . . . . . . . . . . . . . . 51 3.19.Interfaz de la función improveMultipleGenes . . . . . . . . . . . . . . 52 3.20.Interfaz de la función improveIndividual . . . . . . . . . . . . . . . . 52 3.21.Interfaz de la función improveUsingInteractions . . . . . . . . . . . . 53 4.1. Problema de Ackley . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.2. Problema de Branin . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.3. Problema de Griewank . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.4. Problema Quartic con ruido . . . . . . . . . . . . . . . . . . . . . . . 70 4.5. Problema de Schwefel 1.2 . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.6. Problema de Schwefel 2.21 . . . . . . . . . . . . . . . . . . . . . . . . 71 4.7. Problema de Schwefel 2.22 . . . . . . . . . . . . . . . . . . . . . . . . 71 4.8. Problema de Six-Hump Camel-Back . . . . . . . . . . . . . . . . . . . 72 4.9. Problema de Rastrigin . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.10.Problema de Rosenbrock . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.11.Problema Generalizado de Schwefel . . . . . . . . . . . . . . . . . . . 75 4.12.Problema de la Esfera . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3 Índice de cuadros Índice de cuadros 4.13.Problema del Escalón . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.14.Resultados para Pob=300, Sel=50, Elitismo=Sí . . . . . . . . . . . . 80 4.15.Error con respecto a f(x∗) (Pop=300,Sel=50,Elitismo=Sí) . . . . . . 80 4.16.Resultados para Pob=300, Sel=50, Elitismo=No . . . . . . . . . . . . 81 4.17.Error con respecto a f(x∗) (Pop=300,Sel=50,Elitismo=No) . . . . . . 81 4.18.Comparación entre algoritmos (Pop=300,Sel=50) . . . . . . . . . . . 82 4.19. . . . 82 Problemas optimizados por debajo del error especificado (Pop=300, Sel=50) 4.20.Resultados para Pob=400, Sel=200, Elitismo=Sí . . . . . . . . . . . . 83 4.21.Error con respecto a f(x∗) (Pop=400,Sel=200,Elitismo=Sí) . . . . . . 83 4.22.Resultados para Pob=400, Sel=200, Elitismo=No . . . . . . . . . . . 84 4.23.Error con respecto a f(x∗) (Pop=400,Sel=200,Elitismo=No) . . . . . 84 4.24.Comparación entre algoritmos (Pop=400,Sel=200) . . . . . . . . . . . 85 4.25. . . 85 Problemas optimizados por debajo del error especificado (Pop=400, Sel=200) 4.26.Resultados para Pob=1200, Sel=300, Elitismo=Sí . . . . . . . . . . . 86 4.27.Error con respecto a f(x∗) (Pop=1200,Sel=300,Elitismo=Sí) . . . . . 86 4.28.Resultados para Pob=1200, Sel=300, Elitismo=No . . . . . . . . . . 87 4.29.Error con respecto a f(x∗) (Pop=1200,Sel=300,Elitismo=No) . . . . 87 4.30.Comparación entre algoritmos (Pop=1200,Sel=300) . . . . . . . . . . 88 4.31. . 88 Problemas optimizados por debajo del error especificado (Pop=1200, Sel=300) 4.32.Combinación de algoritmos posibles . . . . . . . . . . . . . . . . . . . 89 4.33.Puntuación de algoritmos . . . . . . . . . . . . . . . . . . . . . . . . 92 4.34.Ranking de algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4 1. Introducción 1.1. Motivación La computación evolutiva [4] es, como disciplina reconocida, relativamente reciente. Se adoptó el término en el año 1.991, y representa un esfuerzo por aunar las diferen- tes técnicas desarrolladas por los investigadores para simular ciertos aspectos de la evolución. Así pues, estas técnicas entre las que se hallan las basadas en programa- ción evolutiva, estrategias evolutivas y algoritmos genéticos poseen una característica metafórica común sacada de la propia naturaleza: los individuos que forman una determinada población varían aleatoriamente, compiten entre sí, se seleccionan y se reproducen para dar lugar a nuevas poblaciones. Esto es, en esencia, en lo que consiste la evolución. Y cada uno de los 4 procesos mencionados anteriormente, tienen lugar como resultado inevitable de la evolución, sea ésta natural o no. La evolución es un proceso de optimización, no teniendo ésta por qué ser perfecta, pe- ro sí lo suficientemente precisa como para dar respuesta a los problemas particulares que se le pueden presentar a un individuo en un determinado entorno. De aquí que sea natural describir la evolución, dentro de la computación evolutiva, en términos de un algoritmo que sea capaz de resolver problemas complejos de optimización. Las téc- nicas clásicas basadas en descenso por el gradiente, proceso de escalada determinista y búsqueda aleatoria (sin herencia) han proporcionado resultados poco satisfacto- rios en su aplicación sobre problemas de optimización no lineales. En cambio, estos problemas son los que aparentemente son capaces de ser resueltos satisfactoriamente mediante técnicas basadas en algoritmos evolutivos, siendo éste el motivo por el que la computación evolutiva ha suscitado un gran interés durante los últimos años. Elmotivodeestetrabajodefindecarreraeseldedesarrollarunalibreríaquepermita la resolución de problemas de optimización no lineales mediante un enfoque basado en algoritmos evolutivos, empleando para ello un método de resolución basado en regresión regularizada. La librería se ha implementado en R, que es un lenguaje y entorno para computación estadística. Asimismo se ha diseñado la librería de tal forma que ésta sea independiente del problema que se desea optimizar, permitiendo añadir nuevos métodos de simulación 5
Description: