Upload
carlos-m-fernandes
View
406
Download
0
Tags:
Embed Size (px)
Citation preview
Optimizing evolutionary algorithms at program level
JJ Merelo, A. M. Mora, Pedro Castillo,
Juan L. Jiménez Laredo, Carlos Fernandes
GeNeura team: http://geneura.wordpress.com
Departamento de Arquitectura y Tecnología de Computadores: http://atc.ugr.es
University of Granada: http://www.ugr.es
Evolutionary Algorithms
EAs are population-based algorithms that rely on a certain number of parameters and operatorsBest parameter values and competence of operators are well studied.We know the limits of the EAs scalabilityHowever…
Little attention is devoted to evolutionary algorithm
implementation
Even as it allows to design better algorihtms and
obtain substantial improvement at the algorithm
and runtime level
Used tools
Monitors
Running time, used memory, resource usage
Profilers
Parts that are responsible for waisting resources
Profiler usage
Problem setup
Fitness = MaxOnes
Canonical evolutionary algorithm, élite = 2
Varied population and chromosome size
Free software: http://bit.ly/bOk3z3
Evolving an evolutionary algorithm program
Eliminated
Added
Size always matters
Caché for fitness computations
Use of the tr Perl-specific function for computing fitness
If we are more, we'll take more
Using a profiler for finding a bottleneck: the sort function
Change by Sort::Key
It improves worst-case behavior.
Blue uses previous slide function
Conclusions
Running time improves up to two orders of magnitude (for some population sizes) through changes in implementation.
It is convenient to always bear in mind usual programming techniques and good practices.
Future work: apply this to complex EA libraries such as Algorithm::Evolutionary, written in Perl, and other languages (Lua)
Thank you
Questions?