Top Banner
Optimizando la implementación de algoritmos evolutivos JJ Merelo, Pedro C a s t illo , Juan L. Jiménez Laredo, Maribel García Arenas GeNeura team: http://geneura.wordpress.com Departamento de Arquitectura y Tecnología de Computadores: http://atc.ugr.es Universidad d Granada: http://www.ugr.es
11
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Optimizando Algoritmos Evolutivos - MAEB

Optimizando la implementación de algoritmos evolutivos

JJ Merelo, P e d r o C a s t i l lo ,Juan L. Jiménez Laredo, Maribel García Arenas

GeNeura team: http://geneura.wordpress.comDepartamento de Arquitectura y Tecnología de

Computadores: http://atc.ugr.esUniversidad d Granada: http://www.ugr.es

Page 2: Optimizando Algoritmos Evolutivos - MAEB

Se presta poca atención a la implementación de los algoritmos

evolutivos

Aunque permite diseñar mejores algoritmos y

obtener mejoras sustanciales tanto algorítmicas

como de tiempo de ejecución

Page 3: Optimizando Algoritmos Evolutivos - MAEB

Herramientas usadas

Monitores

Tiempo de ejecución, memoria usada, consumo de recursos

Profilers

Tiempo invertido y número de ejecuciones reales de fragmentos de código

Page 4: Optimizando Algoritmos Evolutivos - MAEB

Ejemplo de uso de un profiler

Page 5: Optimizando Algoritmos Evolutivos - MAEB

Planteamiento del problema

Fitness = MaxOnes

Algoritmo genético canónico, con élite = 2

Población y longitud variable

Software libre: http://bit.ly/bOk3z3

Page 6: Optimizando Algoritmos Evolutivos - MAEB

Evolución de un programa evolutivo

Eliminado

Añadido

Page 7: Optimizando Algoritmos Evolutivos - MAEB

El tamaño siempre importa

Caché para la función fitness

Uso de tr para cálculo del fitness

Page 8: Optimizando Algoritmos Evolutivos - MAEB

Cuantos más semos... más tardaremos

Uso de un profiler para localización de cuello de botella: función sort

Cambio por Sort::Key

Mejora del comportamiento peor caso.

Page 9: Optimizando Algoritmos Evolutivos - MAEB

Conclusiones

Mejoras de dos órdenes de magnitud (para algunos tamaños) del tiempo de ejecución de un programa mediante mejoras en la implementación.

Conviene aplicar técnicas de programación habituales y buenas prácticas.

Trabajo futuro: incorporación de técnicas en Algorithm::Evolutionary, librería de algoritmos evolutivos en Perl.

Page 10: Optimizando Algoritmos Evolutivos - MAEB

Muchas gracias por su atención

¿Alguna pregunta?

Page 11: Optimizando Algoritmos Evolutivos - MAEB

Mejorando los algoritmos evolutivos

Se propone el uso de una metodología de prueba y evaluación seguida por la aplicación de técnicas

de programación comunes