Modelo heur´ıstico de afinación de parámetros sobre algoritmos

Transcripción

Modelo heur´ıstico de afinación de parámetros sobre algoritmos
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

Documentos relacionados