Skip to main content

Ranking Programming Languages for Evolutionary Algorithm Operations

  • Conference paper
  • First Online:
Applications of Evolutionary Computation (EvoApplications 2017)

Abstract

In this paper we measure the speed of several popular and recent programming languages performing the most usual operators in the canonical evolutionary algorithm, mutation and crossover, as well as an usual fitness function, OneMax. These three operations are representative of the kind of the ones performed in binary chromosomes. Our main objectives are, first, to create programs in programming languages that use the fastest available implementation. Second, to find out the differences in speeds for the different languages. Third, to find out whether the usual assumptions about the speed of languages really holds. And, finally, to find if the assumed order of speed in languages used in evolutionary algorithms holds true for all kinds of operations. In order to do that, we use available implementations or perform our own, concluding that the evolutionary algorithm scenario is more complex than usually assumed and finding out some surprising winners and losers among the languages tested.

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

Access this chapter

Institutional subscriptions

Notes

  1. 1.

    Considering that Octave and Matlab actually use the same language. Besides, we have not measured proprietary implementations of languages such as that one.

References

  1. Alba, E., Ferretti, E., Molina, J.M.: The influence of data implementation in the performance of evolutionary algorithms. In: Moreno Díaz, R., Pichler, F., Quesada Arencibia, A. (eds.) EUROCAST 2007. LNCS, vol. 4739, pp. 764–771. Springer, Heidelberg (2007). doi:10.1007/978-3-540-75867-9_96

    Chapter  Google Scholar 

  2. Desell, T., Anderson, D.P., Magdon-Ismail, M., Newberg, H., Szymanski, B.K., Varela, C.A.: An analysis of massively distributed evolutionary algorithms. In: IEEE Congress on Evolutionary Computation, pp. 1–8. IEEE (2010)

    Google Scholar 

  3. Desell, T., Magdon-Ismail, M., Szymanski, B., Varela, C.A., Newberg, H., Anderson, D.P.: Validating evolutionary algorithms on volunteer computing grids. In: Eliassen, F., Kapitza, R. (eds.) DAIS 2010. LNCS, vol. 6115, pp. 29–41. Springer, Heidelberg (2010). doi:10.1007/978-3-642-13645-0_3

    Chapter  Google Scholar 

  4. Erb, B., Kargl, F.: A conceptual model for event-sourced graph computing. In: Proceedings of the 9th ACM International Conference on Distributed Event-Based Systems, DEBS 2015, pp. 352–355. ACM, New York, NY, USA (2015). http://doi.acm.org/10.1145/2675743.2776773

  5. Fortin, F.A., Rainville, D., Gardner, M.A.G., Parizeau, M., Gagné, C., et al.: Deap: evolutionary algorithms made easy. J. Mach. Learn. Res. 13(1), 2171–2175 (2012)

    MathSciNet  MATH  Google Scholar 

  6. García-Sánchez, P., González, J., Castillo, P., Merelo, J., Mora, A., Laredo, J., Arenas, M.: A distributed service oriented framework for metaheuristics using a public standard. In: González, J.R., Pelta, D.A., Cruz, C., Terrazas, G., Krasnogor, N. (eds.) Nature Inspired Cooperative Strategies for Optimization (NICSO 2010), vol. 284, pp. 211–222. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  7. García-Sánchez, P., González, J., Castillo, P.A., García-Arenas, M., Merelo-Guervós, J.J.: Service oriented evolutionary algorithms. Soft Comput. 17(6), 1059–1075 (2013)

    Article  Google Scholar 

  8. Jose Filho, L.R., Treleaven, P.C., Alippi, C.: Genetic-algorithm programming environments. Computer 27(6), 28–43 (1994)

    Article  Google Scholar 

  9. Laredo, J.L.J., Bouvry, P., González, D.L., De Vega, F.F., Arenas, M.G., Merelo, J., Fernandes, C.M.: Designing robust volunteer-based evolutionary algorithms. Genet. Program. Evolvable Mach. 15(3), 221–244 (2014)

    Article  Google Scholar 

  10. Merelo, J.J., García-Sánchez, P., García-Valdez, M., Blancas, I.: There is no fast lunch: an examination of the running speed of evolutionary algorithms in several languages, November 2015. ArXiv e-prints http://arxiv.org/abs/1511.01088

  11. Merelo, J.J., et al.: Benchmarking languages for evolutionary algorithms. In: Squillero, G., Burelli, P. (eds.) EvoApplications 2016. LNCS, vol. 9598, pp. 27–41. Springer, Cham (2016). doi:10.1007/978-3-319-31153-1_3

    Chapter  Google Scholar 

  12. Merelo, J.J., et al.: Testing the intermediate disturbance hypothesis: effect of asynchronous population incorporation on multi-deme evolutionary algorithms. In: Rudolph, G., Jansen, T., Beume, N., Lucas, S., Poloni, C. (eds.) PPSN 2008. LNCS, vol. 5199, pp. 266–275. Springer, Heidelberg (2008). doi:10.1007/978-3-540-87700-4_27

    Chapter  Google Scholar 

  13. Merelo-Guervós, J.-J., Mora, A., Cruz, J.A., Esparcia, A.I.: Pool-based distributed evolutionary algorithms using an object database. In: Chio, C., et al. (eds.) EvoApplications 2012. LNCS, vol. 7248, pp. 446–455. Springer, Heidelberg (2012). doi:10.1007/978-3-642-29178-4_45

    Chapter  Google Scholar 

  14. Merelo, J.J., Romero, G., Arenas, M.G., Castillo, P.A., Mora, A.M., Laredo, J.L.J.: Implementation matters: programming best practices for evolutionary algorithms. In: Cabestany, J., Rojas, I., Joya, G. (eds.) IWANN 2011. LNCS, vol. 6692, pp. 333–340. Springer, Heidelberg (2011). doi:10.1007/978-3-642-21498-1_42

    Chapter  Google Scholar 

  15. Merelo-Guervós, J.J., Castillo, P.A., Alba, E.: Algorithm::Evolutionary, a flexible perl module for evolutionary computation. Soft Comput. 14(10), 1091–1109 (2010). http://www.springerlink.com/content/8h025g83j0q68270/fulltext.pdf, http://sl.ugr.es/000K

  16. Namiot, D., Sneps-Sneppe, M.: On micro-services architecture. Int. J. Open Inf. Technol. 2(9), 24–27 (2014)

    Google Scholar 

  17. Nesmachnow, S., Luna, F., Alba, E.: An empirical time analysis of evolutionary algorithms as C programs. Softw. Pract. Experience 45(1), 111–142 (2015)

    Article  Google Scholar 

  18. Santana, R.: Estimation of distribution algorithms: from available implementations to potential developments. In: Proceedings of the 13th Annual Conference Companion on Genetic and Evolutionary Computation, pp. 679–686. ACM (2011)

    Google Scholar 

  19. Scott, E.O., De Jong, K.A.: Understanding simple asynchronous evolutionary algorithms. In: Proceedings of the 2015 ACM Conference on Foundations of Genetic Algorithms XIII, pp. 85–98. ACM (2015)

    Google Scholar 

  20. Swann, J., Hammond, K.: Towards ‘metaheuristics in the large’ (2015)

    Google Scholar 

  21. TIOBE team: Tiobe index for April 2016. Technical report, TIOBE, April 2016. http://www.tiobe.com/tiobe_index

  22. Whitley, D., Rana, S., Dzubera, J., Mathias, K.E.: Evaluating evolutionary algorithms. Artif. Intell. 85(1), 245–276 (1996). http://www.sciencedirect.com/science/article/pii/0004370295001247

    Article  Google Scholar 

  23. Wolpert, D.H., Macready, W.G.: No free lunch theorems for optimization. IEEE Trans. Evol. Comput. 1(1), 67–82 (1997). http://citeseer.nj.nec.com/wolpert96no.html

    Article  Google Scholar 

  24. Wu, Q., Peng, C.: A least squares support vector machine optimized by cloud-based evolutionary algorithm for wind power generation prediction. Energies 9(8), 585 (2016)

    Article  Google Scholar 

  25. Zhang, G., He, R., Liu, Y., Li, D., Chen, G.: An evolutionary algorithm based on cloud model. Chin. J. Comput. 31(7), 1082–1091 (2008)

    Article  MathSciNet  Google Scholar 

Download references

Acknowledgements

This paper is part of the open science effort at the university of Granada. It has been written using knitr, and its source as well as the data used to create it can be downloaded from the GitHub repository https://github.com/JJ/2016-ea-languages-PPSN. It has been supported in part by GeNeura Team http://geneura.wordpress.com, projects TIN2014-56494-C4-3-P (Spanish Ministry of Economy and Competitiveness), Conacyt Project PROINNOVA-220590.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Juan-Julián Merelo-Guervós .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Merelo-Guervós, JJ. et al. (2017). Ranking Programming Languages for Evolutionary Algorithm Operations. In: Squillero, G., Sim, K. (eds) Applications of Evolutionary Computation. EvoApplications 2017. Lecture Notes in Computer Science(), vol 10199. Springer, Cham. https://doi.org/10.1007/978-3-319-55849-3_44

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-55849-3_44

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-55848-6

  • Online ISBN: 978-3-319-55849-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics