Top Banner
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
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 e as-meta

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

Page 2: Optimizando e as-meta

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…

Page 3: Optimizando e as-meta

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

Page 4: Optimizando e as-meta

Used tools

Monitors

Running time, used memory, resource usage

Profilers

Parts that are responsible for waisting resources

Page 5: Optimizando e as-meta

Profiler usage

Page 6: Optimizando e as-meta

Problem setup

Fitness = MaxOnes

Canonical evolutionary algorithm, élite = 2

Varied population and chromosome size

Free software: http://bit.ly/bOk3z3

Page 7: Optimizando e as-meta

Evolving an evolutionary algorithm program

Eliminated

Added

Page 8: Optimizando e as-meta

Size always matters

Caché for fitness computations

Use of the tr Perl-specific function for computing fitness

Page 9: Optimizando e as-meta

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

Page 10: Optimizando e as-meta

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)

Page 11: Optimizando e as-meta

Thank you

Questions?