Skip to main content
Log in

Introducing a cross platform open source Cartesian Genetic Programming library

  • Letter
  • Published:
Genetic Programming and Evolvable Machines Aims and scope Submit manuscript

Abstract

Cartesian Genetic Programming (CGP) is a form of Genetic Programming which encodes computational structures as generic cyclic/acyclic graphs. This letter introduces a new cross platform CGP library intended for use in teaching, academic research and real world applications. This new CGP library is currently capable of evolving symbolic expressions, Boolean logic circuits and Artificial Neural Networks but can easily be extended to other domains. The CGP library, documentation and tutorials are all available at www.cgplibrary.co.uk.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2

Notes

  1. For simplicity, here a single input single output CGP chromosome has been displayed. However CGP is also capable of creating multiple input multiple output programs.

  2. Interestingly using a mixture of these three types is also possible.

  3. The first line contains the number of inputs, outputs and the number of data samples. Subsequent lines contain the inputs followed by the outputs for each sample. All values are comma separated.

References

  1. J. Ellson, E. Gansner, L. Koutsofios, S.C. North, Graphviz-open source graph drawing tools. In: Graph Drawing (Springer, Heidelberg, 2002), pp. 483–484

  2. GNU: GNU Free Documentation License (2014). https://www.gnu.org/licenses/fdl.html

  3. GNU: GNU Lesser General Public License (2014). https://www.gnu.org/licenses/lgpl.html

  4. T. Heller, Ctypes (2014). https://pypi.python.org/pypi/ctypes

  5. M.M. Khan, M.A. Ahmad, M.G. Khan, J.F. Miller, Fast learning neural networks using Cartesian genetic programming. Neurocomputing 121, 274–289 (2013)

    Article  Google Scholar 

  6. J.R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection, vol. 1 (MIT press, Cambridge, 1992)

  7. L. Lamport, LaTeX: User’s Guide & Reference Manual (Addison-Wesley Publishing Company Inc,  Boston, 1986)

    Google Scholar 

  8. J.F. Miller, An empirical study of the efficiency of learning boolean functions using a Cartesian genetic programming approach. In: Proceedings of the Genetic and Evolutionary Computation Conference, vol. 2 (Citeseer, 1999), pp. 1135–1142

  9. J.F. Miller, What bloat? Cartesian genetic programming on Boolean problems. In: 2001 Genetic and Evolutionary Computation Conference Late Breaking Papers (2001), pp. 295–302

  10. J.F. Miller (ed.), Cartesian Genetic Programming (Springer, Berlin, 2011)

    MATH  Google Scholar 

  11. J.F. Miller, Cartesiangp (2014). http://www.cartesiangp.co.uk/

  12. J.F. Miller, S. Smith, Redundancy and computational efficiency in Cartesian genetic programming. IEEE Trans. Evol. Comput. 10(2), 167–174 (2006)

    Article  Google Scholar 

  13. J.F. Miller, P. Thomson, Cartesian genetic programming. In: Proceedings of the Third European Conference on Genetic Programming (EuroGP), vol. 1820 (Springer, 2000), pp. 121–132

  14. T. Preston-Werner, C. Wanstrath, P. Hyett, Github (2014). https://github.com/

  15. S. Silva, E. Costa, Dynamic limits for bloat control in genetic programming and a review of past and current bloat theories. Genet. Program. Evol. Mach. 10(2), 141–179 (2009)

    Article  MathSciNet  Google Scholar 

  16. A.J. Turner, J.F. Miller, Cartesian genetic programming encoded artificial neural networks: a comparison using three benchmarks. In: Proceedings of the Conference on Genetic and Evolutionary Computation (GECCO-13) (2013), pp. 1005–1012

  17. A.J. Turner, J.F. Miller, The importance of topology evolution in neuroevolution: a case study using Cartesian genetic programming of artificial neural networks. In: Research and Development in Intelligent Systems (Springer, Berlin, 2013), pp. 213–226

  18. A.J. Turner, J.F. Miller, Cartesian genetic programming: why no bloat? In: Genetic Programming: 17th European Conference, EuroGP-2014 (2014) (to appear)

  19. A.J. Turner, J.F. Miller, Neuroevolution: the importance of transfer function evolution and heterogeneous networks. In: Proceedings of the 50th Anniversary Convention of the AISB (2014), pp. 158–165

  20. A.J. Turner, J.F. Miller, Recurrent Cartesian genetic programming. In: 13th International Conference on Parallel Problem Solving from Nature (PPSN 2014) (2014) (to appear)

  21. V.K. Vassilev, J.F. Miller, The advantages of landscape neutrality in digital circuit evolution. In: Proceedings of the International Conference on Evolvable Systems, LNCS, vol. 1801 (Springer, 2000), pp. 252–263

  22. D.R. White, J. McDermott, M. Castelli, L. Manzoni, B.W. Goldman, G. Kronberger, W. Jaśkowski, U.M. OReilly, S. Luke, Better GP benchmarks: community survey results and proposals. Genet. Program. Evol. Mach. 14(1), 3–29 (2013)

    Article  Google Scholar 

  23. T. Yu, J.F. Miller, Neutrality and the evolvability of boolean function landscape. In: Genetic programming, LNCS (Springer, 2001), pp. 204–217

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Andrew James Turner.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Turner, A.J., Miller, J.F. Introducing a cross platform open source Cartesian Genetic Programming library. Genet Program Evolvable Mach 16, 83–91 (2015). https://doi.org/10.1007/s10710-014-9233-1

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10710-014-9233-1

Keywords

Navigation