Optimizando e as-meta

Post on 21-Jun-2015

406 views 0 download

Tags:

Transcript of 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

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?