Implementing Parallel Genetic Algorithm Using Concurrent-functional Languages

José Albert Cruz, J. J. Merelo, Liesner Acevedo-Martínez, Paloma de las Cuevas

2014

Abstract

The spread of multiprocessor and multi-core architectures have a pervasive effect on the way software is developed. In order to take full advantage of them, a parallel implementation of every single program would be needed, but also a radical reformulation of the algorithms that are more appropriate to that kind of implementation. In this work we design and implement an evolutionary computation model using programming languages with built-in concurrent concepts. This article shows the advantages of these paradigms in order to implement a parallel genetic algorithm (pGA) with an island pools based topology in the concurrent-functional oriented programming languages: Erlang, Scala, and Clojure. Some implementation decisions are analyzed and the results of the solution of a study case are shown.

References

  1. A. Bienz, K. Fokle, Z. K. E. Z. and Thede, S. (2011). A generalized parallel genetic algorithm in Erlang. In Proceedings of Midstates Conference on Undergraduate Research in Computer Science and Mathematics.
  2. Alba, E. (2002). Parallel evolutionary algorithms can achieve super-linear performance. Information Processing Letters, 82:7-13.
  3. Alba, E. and Troya, J. M. (2001). Analyzing Synchronous and Asynchronous Parallel Distributed Genetic Algorithms. Future Generation Computer Systems - Special issue on bioimpaired solutions to parallel processing problems, 17.
  4. Albert-Cruz, J., Acevedo-Martínez, L., Merelo, J., Castillo, P., and Arenas, M. (2013). Adaptando algoritmos evolutivos paralelos al lenguaje funcional erlang. MAEB 2013 - IX Congreso EspaÁol de Metaheurísticas, Algoritmos Evolutivos y Bioinspirados.
  5. Armstrong, J. (2003). Concurrency oriented programming in erlang.
  6. Briggs, F. and O'Neill, M. (2008). Functional genetic programming and exhaustive program search with combinator expressions. Int. J. Know.-Based Intell. Eng. Syst., 12(1):47-68.
  7. Cruz, J. A., Guervós, J. J. M., García, A. M., and de las Cuevas, P. (2013). Adapting evolutionary algorithms to the concurrent functional language Erlang. In GECCO (Companion), pages 1723-1724.
  8. Goldberg, D. E. (1989). Genetic Algorithms in Search, Optimization and Machine Learning. Addison Wesley.
  9. Hawkins, J. and Abdallah, A. (2001). A generic functional genetic algorithm. In Proceedings of the ACS/IEEE International Conference on Computer Systems and Applications, AICCSA 7801, pages 11-, Washington, DC, USA. IEEE Computer Society.
  10. Hoare, C. A. R. (1978). Communicating sequential processes. Commun. ACM, 21(8):666-677.
  11. Hoos, H. H. and Stutzle, T. (2000). Satlib: An online resource for research on sat. In I.P.Gent, H.v.Maaren, T., editor, SAT 2000, pages 283-292, www.satlib.org. IOS Press.
  12. Huelsbergen, L. (1996). Toward simulated evolution of machine-language iteration. In Proceedings of the First Annual Conference on Genetic Programming, GECCO 7896, pages 315-320, Cambridge, MA, USA. MIT Press.
  13. Kerdprasop, K. and Kerdprasop, N. (2013). Concurrent data mining and genetic computing implemented with erlang language. International Journal of Software Engineering and Its Applications, 7(3).
  14. Luque, G. and Alba, E. (2011). Parallel Genetic Algorithms, Theory and Real World Applications, chapter Parallel Models for Genetic Algorithms, pages 15-30. Springer-Verlag Berlin Heidelberg.
  15. Merelo-Guervós, J.-J., Arenas, M. G., Carpio, J., Castillo, P., Rivas, V. M., Romero, G., and Schoenauer, M. (2000). Evolving objects. In Wang, P. P., editor, Proc. JCIS 2000 (Joint Conference on Information Sciences), volume I, pages 1083-1086. ISBN: 0- 9643456-9-2.
  16. Merelo-Guervós, J.-J., Romero, G., García-Arenas, M., Castillo, P. A., Mora, A.-M., and Jiménez-Laredo, J.-L. (2011). Implementation matters: Programming best practices for evolutionary algorithms. In Cabestany, J., Rojas, I., and Caparrós, G. J., editors, IWANN (2), volume 6692 of Lecture Notes in Computer Science, pages 333-340. Springer.
  17. Santos, L. (2002). Evolutionary Computation in Ada95, A Genetic Algorithm approach. Ada User Journal, 23(4).
  18. Sher, G. I. (2013). Handbook of Neuroevolution Through Erlang. Springer.
  19. Walsh, P. (1999). A functional style and fitness evaluation scheme for inducting high level programs. In Banzhaf, W., Daida, J., Eiben, A. E., Garzon, M. H., Honavar, V., Jakiela, M., and Smith, R. E., editors, Proceedings of the Genetic and Evolutionary Computation Conference, volume 2, pages 1211-1216, Orlando, Florida, USA. Morgan Kaufmann.
Download


Paper Citation


in Harvard Style

Cruz J., Merelo J., Acevedo-Martínez L. and Cuevas P. (2014). Implementing Parallel Genetic Algorithm Using Concurrent-functional Languages . In Proceedings of the International Conference on Evolutionary Computation Theory and Applications - Volume 1: ECTA, (IJCCI 2014) ISBN 978-989-758-052-9, pages 169-175. DOI: 10.5220/0005036601690175


in Bibtex Style

@conference{ecta14,
author={José Albert Cruz and J. J. Merelo and Liesner Acevedo-Martínez and Paloma de las Cuevas},
title={Implementing Parallel Genetic Algorithm Using Concurrent-functional Languages},
booktitle={Proceedings of the International Conference on Evolutionary Computation Theory and Applications - Volume 1: ECTA, (IJCCI 2014)},
year={2014},
pages={169-175},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005036601690175},
isbn={978-989-758-052-9},
}


in EndNote Style

TY - CONF
JO - Proceedings of the International Conference on Evolutionary Computation Theory and Applications - Volume 1: ECTA, (IJCCI 2014)
TI - Implementing Parallel Genetic Algorithm Using Concurrent-functional Languages
SN - 978-989-758-052-9
AU - Cruz J.
AU - Merelo J.
AU - Acevedo-Martínez L.
AU - Cuevas P.
PY - 2014
SP - 169
EP - 175
DO - 10.5220/0005036601690175