Abstract
In this work we propose the implementation of an automatic random tree generator on an FPGA for genetic programming (GP). While most authors in specialized literature avoid the use of the tree data structure in their implementations of GP on Field Programmable Gate Arrays (FPGAs), due to the impossibility of using pointers (references) in the Very High Speed Integrated Circuit Hardware Description Language (VHDL), we propose two methods for a single matrix implementation and one for a vector implementation. All trees in the population are created in concurrent processes leading to significant time savings. We present pseudocode and results of hardware consumption for matrix and vector implementations. Results show that up to 100 trees can be implemented in a Spartan-6 FPGA using the representation of one tree in a single matrix in parallel processes. Moreover, this implementation requires less resources than the apparently simpler vector representation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Koza, J.R.: Genetic Programming: On the Programming of Computers by Means of Natural Selection. MIT Press, Massachusetts (1992)
Poli, R., Langdon, W.B., McPhee, N.F.: A Field Guide to Genetic Programming. Lulu Enterprises Ltd, UK (2008)
Poli, R., McPhee, N F., Vanneschi, L.: Analysis of the effects of elitism on bloat in linear and tree-based genetic programming. In: Genetic Programming Theory and Practice VI, Chap. 7. pp. 91–111 (2008)
Jin, Y.: A comprehensive survey of fitness approximation in evolutionary computation. Soft Comput. 9(1), 3–12 (2005)
Hrbacek, R., Sikulova, M.: Coevolutionary cartesian genetic programming in FPGA. In: 12th European Conference on Artificial Life Proceedings. pp. 431–438 (2013)
Sidhu, R.P., Mei, A., Prasanna, V. K.: Genetic programming using self-reconfigurable. In: FPGAs, in 9th International Workshop on Field Programmable Logic and Applications, pp. 301–312 (1998)
Augusto, D.A., Barbosa, H.J.C.: Accelerated parallel genetic programming tree evaluation with OpenCL. J. Parallel Distrib. Comput. 73(1), 86–100 (2013)
Heywood, M.I., Zincir-Heywood, A.N.: Register based genetic programming on FPGA computing platforms. In: Genetic Programming, Proceedings of EuroGP’2000, pp. 44–59 (2000)
Harding, S.: Evolution of image filters on graphics processor units using cartesian genetic programming. In: Evolutionary Computation, IEEE World Congress on Computational Intelligence, pp. 1921–1928 (2008)
Harding, S., Banzhaf, W.: Fast genetic programming on GPUs. In: Proceedings of the 10th European Conference on Genetic Programming (EuroGP’07), pp. 90–101 (2007)
Perry, D.: VHDL: Programming By Example. McGraw-Hill Education, New York (2002)
Moraglio, A., Krawiec, K., Johnson, C.G.: Geometric semantic genetic programming. In: Proceedings of the 12th International Conference on Parallel Problem Solving from Nature, vol. I, pp. 21–31 (2012)
Castelli, M., Silva, S., Vanneschi, L.: A C++ framework for geometric semantic genetic programming. Genet. Program. Evolv. Mach. 16(1), 73–81 (2015)
Garcia-Arnau, M., Manrique, D., Rios, J., Rodriguez-Paton, A.: Initialization method for grammar-guided genetic programming. Knowl. Based Syst. 20(2), 127–133 (2007)
Chellapilla, K.: Evolving computer programs without subtree crossover. IEEE Trans. Evol. Comput. 1(3) (1997)
Kazimipour, B., Li, X., Qin, A.K.: A review of population initialization techniques for evolutionary algorithms. In: IEEE Congress on Evolutionary Computation (CEC), pp. 2585–2592 (2014)
Munoz, D.M., Llanos, C.H., Coelho, L. dos S., Ayala-Rincn, M.: Hardware opposition-based PSO applied to mobile robot controllers. Eng. Appl. Artif. Intell. 28, 64–77 (2014)
Golomb, S.: Shift Register Sequences. Holden-Day, Inc., San Francisco (1967)
Brown, S., Vranesic, Z.: Fundamentals of digital logic with VHDL design. McGraw Hill (2008)
Scheuermann, B., So, K., Guntsch, M., Middendorf, M., Diessel, O., ElGindy, H., Schmeck, H.: FPGA implementation of population-based ant colony optimization. Appl. Soft Comput. 4(3), 9303–9322 (2004)
Castelli, M., Vanneschi, L.: Sara silva prediction of high performance concrete strength using genetic programming with geometric semantic genetic operators. Expert Syst. Appl. 40, 6856–6862 (2013)
Castelli, Mauro, Vanneschi, Leonardo: Sara silva prediction of the unified parkinsons disease rating scale assessment using a genetic programming system with geometric semantic genetic. Expert Syst. Appl. 41, 4608–4616 (2014)
Castelli, M., Henriques, R., Vanneschi, L.: A geometric semantic genetic programming system for the electoral redistricting problem. Neurocomputing 154, 200–207 (2015)
Spartan-3E FPGA Family Data Sheet. Xilinx (2013)
Spartan-6 FPGA Configurable Logic Block. Xilinx (2010)
Acknowledgments
The authors want to thank the Instituto Tecnológico de Tijuana, and PRODEP with the projet “Reducción del área de sistemas reconfigurables” with number ITTIJ-PTC-007 for supporting our research activities. Also wants to thank the CONACYT for the funding for this work with the project No. 178323, the TecNM(México) Research projects 5861.16P, Prodep(México) ITTIJ-PTC-007, and the FP7-Marie Curie-IRSES 2013 European Commission program through project ACoBSEC with contract No. 612689.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Goribar, C., Maldonado, Y., Trujillo, L. (2017). Automatic Random Tree Generator on FPGA. In: Schütze, O., Trujillo, L., Legrand, P., Maldonado, Y. (eds) NEO 2015. Studies in Computational Intelligence, vol 663. Springer, Cham. https://doi.org/10.1007/978-3-319-44003-3_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-44003-3_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-44002-6
Online ISBN: 978-3-319-44003-3
eBook Packages: EngineeringEngineering (R0)