Skip to main content

TensorGP – Genetic Programming Engine in TensorFlow

  • Conference paper
  • First Online:
Book cover Applications of Evolutionary Computation (EvoApplications 2021)

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

Abstract

In this paper, we resort to the TensorFlow framework to investigate the benefits of applying data vectorization and fitness caching methods to domain evaluation in Genetic Programming. For this purpose, an independent engine was developed, TensorGP, along with a testing suite to extract comparative timing results across different architectures and amongst both iterative and vectorized approaches. Our performance benchmarks demonstrate that by exploiting the TensorFlow eager execution model, performance gains of up to two orders of magnitude can be achieved on a parallel approach running on dedicated hardware when compared to a standard iterative approach.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.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

Institutional subscriptions

Notes

  1. 1.

    TensorGP repository available at https://github.com/AwardOfSky/TensorGP.

References

  1. Giacobini, M., Tomassini, M., Vanneschi, L.: Limiting the number of fitness cases in genetic programming using statistics. In: Guervós, J.J.M., Adamidis, P., Beyer, H.-G., Schwefel, H.-P., Fernández-Villacañas, J.-L. (eds.) PPSN 2002. LNCS, vol. 2439, pp. 371–380. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45712-7_36

    Chapter  Google Scholar 

  2. Poli, R., Langdon, W.B., McPhee, N.F., Koza, J.R.: A field guide to genetic programming. Lulu. com (2008)

    Google Scholar 

  3. Andre, D., Koza, J.R.: Parallel genetic programming: a scalable implementation using the transputer network architecture. In: Advances in Genetic Programming, pp. 317–337. MIT Press (1996)

    Google Scholar 

  4. Moore, G.E., et al.: Cramming more components onto integrated circuits (1965)

    Google Scholar 

  5. Arenas, M., Romero, G., Mora, A., Castillo, P., Merelo, J.: GPU parallel computation in bioinspired algorithms: a review. In: Kołodziej, J., Khan, S., Burczyński, T. (eds.) Advances in Intelligent Modelling and Simulation. SCI, vol. 422, pp. 113–134. Springer, Heidelberg (2012). https://doi.org/10.1007/978-3-642-30154-4_6

    Chapter  Google Scholar 

  6. Staats, K., Pantridge, E., Cavaglia, M., Milovanov, I., Aniyan, A.: TensorFlow enabled genetic programming. In: Proceedings of the Genetic and Evolutionary Computation Conference Companion, pp. 1872–1879. ACM (2017)

    Google Scholar 

  7. Keijzer, M.: Efficiently representing populations in genetic programming. In: Advances in Genetic Programming, pp. 259–278. MIT Press (1996)

    Google Scholar 

  8. Handley, S.: On the use of a directed acyclic graph to represent a population of computer programs. In: Proceedings of the First IEEE Conference on Evolutionary Computation. IEEE World Congress on Computational Intelligence, pp. 154–159. IEEE (1994)

    Google Scholar 

  9. Keijzer, M.: Alternatives in subtree caching for genetic programming. In: Keijzer, M., O’Reilly, U.-M., Lucas, S., Costa, E., Soule, T. (eds.) EuroGP 2004. LNCS, vol. 3003, pp. 328–337. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24650-3_31

    Chapter  Google Scholar 

  10. Wong, P., Zhang, M.: Scheme: caching subtrees in genetic programming. In: 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence), pp. 2678–2685. IEEE (2008)

    Google Scholar 

  11. Machado, P., Cardoso, A.: Speeding up genetic programming. In: Proceedings of the 2nd International Symposium AI and Adaptive Systems, CIMAF, vol. 99, pp. 217–222 (1999)

    Google Scholar 

  12. Chitty, D.M.: Fast parallel genetic programming: multi-core CPU versus many-core GPU. Soft. Comput. 16(10), 1795–1814 (2012)

    Article  Google Scholar 

  13. Burlacu, B., Kronberger, G., Kommenda, M.: Operon C++ an efficient genetic programming framework for symbolic regression. In: Proceedings of the 2020 Genetic and Evolutionary Computation Conference Companion, pp. 1562–1570 (2020)

    Google Scholar 

  14. de Melo, V.V., Fazenda, Á.L., Sotto, L.F.D.P., Iacca, G.: A MIMD interpreter for genetic programming. In: Castillo, P.A., Jiménez Laredo, J.L., Fernández de Vega, F. (eds.) EvoApplications 2020. LNCS, vol. 12104, pp. 645–658. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-43722-0_41

    Chapter  Google Scholar 

  15. Cano, A., Zafra, A., Ventura, S.: Speeding up the evaluation phase of GP classification algorithms on GPUs. Soft. Comput. 16(2), 187–202 (2012)

    Article  Google Scholar 

  16. Chitty, D.M.: A data parallel approach to genetic programming using programmable graphics hardware. In: Proceedings of the 9th Annual Conference on Genetic and Evolutionary Computation, pp. 1566–1573. ACM (2007)

    Google Scholar 

  17. Cano, A., Ventura, S.: GPU-parallel subtree interpreter for genetic programming. In: Proceedings of the 2014 Annual Conference on Genetic and Evolutionary Computation, pp. 887–894. ACM (2014)

    Google Scholar 

  18. Augusto, D.A., Barbosa, H.J.: Accelerated parallel genetic programming tree evaluation with OpenCL. J. Parallel Distrib. Comput. 73(1), 86–100 (2013)

    Article  Google Scholar 

  19. Koza, J.R., Bennett, F., Hutchings, J.L., Bade, S.L., Keane, M.A., Andre, D.: Evolving sorting networks using genetic programming and the rapidly reconfigurable Xilinx 6216 field-programmable gate array. In: Conference Record of the Thirty-First Asilomar Conference on Signals, Systems and Computers (Cat. No. 97CB36136), vol. 1, pp. 404–410. IEEE (1997)

    Google Scholar 

  20. Abadi, M., et al.: TensorFlow: a system for large-scale machine learning. In: 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2016), pp. 265–283 (2016)

    Google Scholar 

  21. Cavaglia, M., Staats, K., Gill, T.: Finding the origin of noise transients in LIGO data with machine learning. arXiv preprint arXiv:1812.05225 (2018)

  22. Fu, X., Ren, X., Mengshoel, O.J., Wu, X.: Stochastic optimization for market return prediction using financial knowledge graph. In: 2018 IEEE International Conference on Big Knowledge (ICBK), pp. 25–32. IEEE (2018)

    Google Scholar 

  23. Matousek, R., Hulka, T., Dobrovsky, L., Kudela, J.: Sum epsilon-tube error fitness function design for GP symbolic regression: preliminary study. In: 2019 International Conference on Control, Artificial Intelligence, Robotics & Optimization (ICCAIRO), pp. 78–83. IEEE (2019)

    Google Scholar 

  24. Rowland, T., Weisstein, E.W.: Tensor. From MathWorld–A Wolfram Web Resource. http://mathworld.wolfram.com/Tensor.html

  25. Agrawal, A., et al.: TensorFlow Eager: a multi-stage, Python-embedded DSL for machine learning. arXiv preprint arXiv:1903.01855 (2019)

  26. Pagie, L., Hogeweg, P.: Evolutionary consequences of coevolving targets. Evol. Comput. 5(4), 401–418 (1997)

    Article  Google Scholar 

  27. Fortin, F.A., De Rainville, F.M., Gardner, M.A.G., Parizeau, M., Gagné, C.: DEAP: evolutionary algorithms made easy. J. Mach. Learn. Res. 13(1), 2171–2175 (2012)

    MathSciNet  Google Scholar 

Download references

Acknowledgements

This work is funded by national funds through the FCT - Foundation for Science and Technology, I.P., within the scope of the project CISUC - UID/CEC/00326/2020 and by European Social Fund, through the Regional Operational Program Centro 2020 and by the project grant DSAIPA/DS/0022/2018 (GADgET). We also thank the NVIDIA Corporation for the hardware granted to this research.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Francisco Baeta .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Baeta, F., Correia, J., Martins, T., Machado, P. (2021). TensorGP – Genetic Programming Engine in TensorFlow. In: Castillo, P.A., Jiménez Laredo, J.L. (eds) Applications of Evolutionary Computation. EvoApplications 2021. Lecture Notes in Computer Science(), vol 12694. Springer, Cham. https://doi.org/10.1007/978-3-030-72699-7_48

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-72699-7_48

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-72698-0

  • Online ISBN: 978-3-030-72699-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics