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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Merali, Z.: Computational science: Error, why scientific programming does not compute. Nature 467(7317), 775–777 (2010)
Merelo-Guervós, J.J.: A Perl primer for EA practitioners. SIGEvolution 4(4), 12–19 (2010)
Wall, L., Christiansen, T., Orwant, J.: Programming Perl, 3rd edn. O’Reilly & Associates, Sebastopol (2000)
Schwartz, R.L., Phoenix, T., foy, B.D.: Learning Perl, 5th edn. O´Reilly & Associates (2008)
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)
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
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)
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
Castellano, J., Castillo, P., Merelo-Guervós, J.J., Romero, G.: Paralelización de evolving objects library usando MPI. In: [24], pp. 265–270
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)
Fogel, D., Bäck, T., Michalewicz, Z.: Evolutionary Computation: Advanced algorithms and operators. Taylor & Francis, Abington (2000)
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
Rummler, A., Scarbata, G.: eaLib – A Java Frameword for Implementation of Evolutionary Algorithms. Theory and Applications Computational Intelligence, 92–102
Wong, M., Wong, T.: Implementation of parallel genetic algorithms on graphics processing units. Intelligent and Evolutionary Systems, 197–216 (2009)
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)
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)
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)
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)
Salomon, R.: Improving the performance of genetic algorithms through derandomization. Software - Concepts and Tools 18(4), 175 (1997)
Digalakis, J.G., Margaritis, K.G.: On benchmarking functions for genetic algorithms. International Journal of Computer Mathematics 77(4), 481–506 (2001)
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)
Hoare, C.: Quicksort. The Computer Journal 5(1), 10 (1962)
Cole, R.: Parallel merge sort.In: 27th Annual Symposium on Foundations of Computer Science 1985, pp. 511–516 (1986)
UPV. In: Actas XII Jornadas de Paralelismo, UPV, Universidad Politécnica de Valencia (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)