Skip to main content

Implementation Matters: Programming Best Practices for Evolutionary Algorithms

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 6692))

Abstract

While a lot of attention is usually devoted to the study of different components of evolutionary algorithms or the creation of heuristic operators, little effort is being directed at how these algorithms are actually implemented. However, the efficient implementation of any application is essential to obtain a good performance, to the point that performance improvements obtained by changes in implementation are usually much bigger than those obtained by algorithmic changes, and they also scale much better. In this paper we will present and apply usual methodologies for performance improvement to evolutionary algorithms, and show which implementation options yield the best results for a certain problem configuration and which ones scale better when features such as population or chromosome size increase.

This work has been supported in part by the CEI BioTIC GENIL (CEB09-0010) Programa CEI del MICINN (PYR-2010-13) project, the Junta de Andalucía TIC-3903 and P08-TIC-03928 projects, and the Jaén University UJA-08-16-30 project.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Merali, Z.: Computational science: Error, why scientific programming does not compute. Nature 467(7317), 775–777 (2010)

    Article  Google Scholar 

  2. Merelo-Guervós, J.J.: A Perl primer for EA practitioners. SIGEvolution 4(4), 12–19 (2010)

    Article  Google Scholar 

  3. Wall, L., Christiansen, T., Orwant, J.: Programming Perl, 3rd edn. O’Reilly & Associates, Sebastopol (2000)

    MATH  Google Scholar 

  4. Schwartz, R.L., Phoenix, T., foy, B.D.: Learning Perl, 5th edn. O´Reilly & Associates (2008)

    Google Scholar 

  5. Laredo, J., Castillo, P., Mora, A., Merelo, J.: Exploring population structures for locally concurrent and massively parallel evolutionary algorithms. In: Computational Intelligence: Research Frontiers, pp. 2610–2617. IEEE Press, Los Alamitos (2008)

    Google Scholar 

  6. Merelo-Guervós, J.J.: Algoritmos evolutivos en Perl. Ponencia presentada en el V Congreso Hispalinux, disponible en (November 2002), http://congreso.hispalinux.es/ponencias/merelo/ae-hispalinux2002.html

  7. Merelo-Guervós, J.J.: OPEAL, una librería de algoritmos evolutivos en Perl. In: Alba, E., Fernández, F., Gómez, J.A., Herrera, F., Hidalgo, J.I., Merelo-Guervós, J.J., Sánchez, J.M. (eds.) Actas primer congreso español algoritmos evolutivos, AEB 2002, Universidad de Extremadura, pp. 54–59 (February 2002)

    Google Scholar 

  8. Arenas, M., Foucart, L., Merelo-Guervós, J.J., Castillo, P.A.: JEO: a framework for Evolving Objects in Java. In: [24], pp. 185–191, http://geneura.ugr.es/pub/papers/jornadas2001.pdf

  9. Castellano, J., Castillo, P., Merelo-Guervós, J.J., Romero, G.: Paralelización de evolving objects library usando MPI. In: [24], pp. 265–270

    Google Scholar 

  10. Keijzer, M., Merelo, J.J., Romero, G., Schoenauer, M.: Evolving objects: A general purpose evolutionary computation library. In: Collet, P., Fonlupt, C., Hao, J.-K., Lutton, E., Schoenauer, M. (eds.) EA 2001. LNCS, vol. 2310, pp. 231–244. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  11. Fogel, D., Bäck, T., Michalewicz, Z.: Evolutionary Computation: Advanced algorithms and operators. Taylor & Francis, Abington (2000)

    MATH  Google Scholar 

  12. Setzkorn, C., Paton, R.: JavaSpaces–An Affordable Technology for the Simple Implementation of Reusable Parallel Evolutionary Algorithms. Knowledge Exploration in Life Science Informatics, 151–160

    Google Scholar 

  13. Rummler, A., Scarbata, G.: eaLib – A Java Frameword for Implementation of Evolutionary Algorithms. Theory and Applications Computational Intelligence, 92–102

    Google Scholar 

  14. Wong, M., Wong, T.: Implementation of parallel genetic algorithms on graphics processing units. Intelligent and Evolutionary Systems, 197–216 (2009)

    Google Scholar 

  15. Schubert, T., Mackensen, E., Drechsler, N., Drechsler, R., Becker, B.: Specialized hardware for implementation of evolutionary algorithms. In: Genetic and Evolutionary Computing Conference, Citeseer, p. 369 (2000)

    Google Scholar 

  16. Merelo-Guervós, J.J., Castillo, P.A., Alba, E.: Algorithm: Evolutionary, a flexible Perl module for evolutionary computation. Soft Computing (2009), http://sl.ugr.es/000K (to be published)

  17. Ventura, S., Ortiz, D., Hervás, C.: JCLEC: Una biblioteca de clases java para computación evolutiva. In: Primer Congreso Español de Algoritmos Evolutivos y Bioinspirador, pp. 23–30. Mérida, Spain (2002)

    Google Scholar 

  18. Ventura, S., Romero, C., Zafra, A., Delgado, J., Hervás, C.: JCLEC: a Java framework for evolutionary computation. Soft Computing-A Fusion of Foundations, Methodologies and Applications 12(4), 381–392 (2008)

    Google Scholar 

  19. Salomon, R.: Improving the performance of genetic algorithms through derandomization. Software - Concepts and Tools 18(4), 175 (1997)

    Google Scholar 

  20. Digalakis, J.G., Margaritis, K.G.: On benchmarking functions for genetic algorithms. International Journal of Computer Mathematics 77(4), 481–506 (2001)

    Article  MathSciNet  MATH  Google Scholar 

  21. Muhlenbein, H.: How genetic algorithms really work: I.@ mutation and hillclimbing. In: Munner, R., Manderick, B. (eds.) Proceedings of the Second Conference on Parallel Problem Solving from Nature (PPSN II). pp. 15–25. North-Holland, Amsterdam (1992)

    Google Scholar 

  22. Hoare, C.: Quicksort. The Computer Journal 5(1), 10 (1962)

    Article  MathSciNet  MATH  Google Scholar 

  23. Cole, R.: Parallel merge sort.In: 27th Annual Symposium on Foundations of Computer Science 1985, pp. 511–516 (1986)

    Google Scholar 

  24. UPV. In: Actas XII Jornadas de Paralelismo, UPV, Universidad Politécnica de Valencia (2001)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Merelo, J.J., Romero, G., Arenas, M.G., Castillo, P.A., Mora, A.M., Laredo, J.L.J. (2011). Implementation Matters: Programming Best Practices for Evolutionary Algorithms. In: Cabestany, J., Rojas, I., Joya, G. (eds) Advances in Computational Intelligence. IWANN 2011. Lecture Notes in Computer Science, vol 6692. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21498-1_42

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-21498-1_42

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-21497-4

  • Online ISBN: 978-3-642-21498-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics