Skip to main content

Incremental Evaluation in Genetic Programming

  • Conference paper
  • First Online:
Genetic Programming (EuroGP 2021)

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

Included in the following conference series:

Abstract

Often GP evolves side effect free trees. These pure functional expressions can be evaluated in any order. In particular they can be interpreted from the genetic modification point outwards. Incremental evaluation exploits the fact that: in highly evolved children the semantic difference between child and parent falls with distance from the syntactic disruption (e.g. crossover point) and can reach zero before the whole child has been interpreted. If so, its fitness is identical to its parent (mum).

Considerable savings in bloated binary tree GP runs are given by exploiting population convergence with existing GPquick data structures, leading to near linear O(gens) runtime. With multi-threading and SIMD AVX parallel computing a 16 core desktop can deliver the equivalent of 571 billion GP operations per second, 571 giga GPop/s.

GP convergence is viewed via information theory as evolving a smooth landscape and software plasticity. Which gives rise to functional resilience to source code changes. On average a mixture of 100 +, −, \(\times \) and (protected) \(\div \) tree nodes remove test case effectiveness at exposing changes and so fail to propagate crossover infected errors.

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

    (DIV X Y) is protected division which returns 1.0 if Y = 0 and X/Y otherwise. Ni et al. [18] propose the analytic quotient instead of DIV.

  2. 2.

    Trapping special cases, such as multiplication by zero, and multiplication or division by one, only sped up GP by a few percent.

References

  1. Koza, J.R.: Genetic Programming: On the Programming of Computers by Natural Selection (1992). http://mitpress.mit.edu/books/genetic-programming

  2. Langdon, W.B., Poli, R.: Why ants are hard. In: Koza, J.R., et al. (eds.) GP, pp. 193–201 (1998). http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/WBL.antspace_gp98.pdf

  3. Teller, A.: The internal reinforcement of evolving algorithms. In: Spector, L., et al. (eds.) AiGP 3, pp. 325–354 (1999). http://www.cs.ucl.ac.uk/staff/W.Langdon/aigp3/ch14.pdf

  4. Langdon, W.B.: Genetic Programming and Data Structures, Springer, Boston (1998). https://doi.org/10.1007/978-1-4615-5731-9

  5. White, D.R., et al.: Evolutionary improvement of programs. IEEE TEVC 15(4), 515–538 (2011). https://doi.org/10.1109/TEVC.2010.2083669

    Article  Google Scholar 

  6. Langdon, W.B., Harman, M.: Optimising existing software with genetic programming. IEEE TEVC 19(1), 118–135 (2015). https://doi.org/10.1109/TEVC.2013.2281544

    Article  Google Scholar 

  7. Petke, J., Harman, M., Langdon, W.B., Weimer, W.: Using genetic improvement and code transplants to specialise a C++ program to a problem class. In: Nicolau, M., et al. (eds.) EuroGP 2014. LNCS, vol. 8599, pp. 137–149. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-44303-3_12

    Chapter  Google Scholar 

  8. Petke, J.: Constraints: the future of combinatorial interaction testing. In: SBST, pp. 17–18 (2015). https://doi.org/10.1109/SBST.2015.11

  9. Petke, J., et al.: Specialising software for different downstream applications using genetic improvement and code transplantation. TSE 44(6), 574–594 (2018). https://doi.org/10.1109/TSE.2017.2702606

    Article  Google Scholar 

  10. Petke, J., et al.: Genetic improvement of software: a comprehensive survey. IEEE TEVC 22(3), 415–432 (2018). https://doi.org/10.1109/TEVC.2017.2693219

    Article  Google Scholar 

  11. Takagi, H.: Interactive evolutionary computation: fusion of the capabilities of EC optimization and human evaluation. Proc. IEEE 89(9), 1275–1296 (2001). https://doi.org/10.1109/5.949485

    Article  Google Scholar 

  12. Backer, G.: Learning with missing data using genetic programming. In: The 1st Online Workshop on Soft Computing (WSC1). Nagoya University, Japan (1996). http://www.pa.info.mie-u.ac.jp/bioele/wsc1/papers/files/backer.ps.gz

  13. Poli, R., et al.: A field guide to genetic programming (2008). http://lulu.com, http://www.gp-field-guide.org.uk

  14. Langdon, W.B., Buxton, B.F.: Evolving receiver operating characteristics for data fusion. In: Miller, J., Tomassini, M., Lanzi, P.L., Ryan, C., Tettamanzi, A.G.B., Langdon, W.B. (eds.) EuroGP 2001. LNCS, vol. 2038, pp. 87–96. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45355-5_8

    Chapter  MATH  Google Scholar 

  15. Gathercole, C., Ross, P.: Dynamic training subset selection for supervised learning in genetic programming. In: Davidor, Y., Schwefel, H.-P., Männer, R. (eds.) PPSN 1994. LNCS, vol. 866, pp. 312–321. Springer, Heidelberg (1994). https://doi.org/10.1007/3-540-58484-6_275

    Chapter  Google Scholar 

  16. Spector, L.: Assessment of problem modality by differential performance of lexicase selection in genetic programming: a preliminary report. In: McClymont, K., Keedwell, E. (eds.) GECCO Computing, pp. 401–408 (2012). https://doi.org/10.1145/2330784.2330846

  17. Teller, A., Andre, D.: Automatically choosing the number of fitness cases: the rational allocation of trials. In: Koza, J.R., et al. (eds.) GP, pp. 321–328 (1997). http://www.cs.cmu.edu/afs/cs/usr/astro/public/papers/GR.ps

  18. Ni, J., et al.: The use of an analytic quotient operator in genetic programming. IEEE TEVC 17(1), 146–152 (2013). https://doi.org/10.1109/TEVC.2012.2195319

    Article  Google Scholar 

  19. Koza, J.R., et al.: Genetic Programming III: Darwinian Invention and Problem Solving (1999). http://www.genetic-programming.org/gpbook3toc.html

  20. Langdon, W.B.: Multi-threaded memory efficient crossover in C++ for generational genetic programming. SIGEVOlution 13(3), 2–4 (2020). https://doi.org/10.1145/3430913.3430914

    Article  Google Scholar 

  21. Singleton, A.: Genetic programming with C++. In: BYTE, pp. 171–176 (1994). http://www.assembla.com/wiki/show/andysgp/GPQuick_Article

  22. Langdon, W.B.: Parallel GPQUICK. In: Doerr, C. (ed.) GECCO Computing, pp. 63–64 (2019). https://doi.org/10.1145/3319619.3326770

  23. Keith, M.J., Martin, M.C.: Genetic programming in C++: implementation issues. In: Kinnear, Jr., K.E. (ed.) AiGP, pp. 285–310 (1994). http://cognet.mit.edu/sites/default/files/books/9780262277181/pdfs/9780262277181_chap13.pdf

  24. Handley, S.: On the use of a directed acyclic graph to represent a population of computer programs. In: WCCI, pp. 154–159 (1994). https://doi.org/10.1109/ICEC.1994.350024

  25. McPhee, N.F., et al.: Sutherland: An extensible object-oriented software framework for evolutionary computation. In: Koza, J.R., et al. (eds.) GP, p. 241 (1998). http://facultypages.morris.umn.edu/~mcphee/Research/Sutherland/sutherland_gp98_announcement.ps.gz

  26. Ehrenburg, H.: Improved directed acyclic graph evaluation and the combine operator in genetic programming. In: Koza, J.R., et al. (eds.) GP, pp. 285–291 (1996). http://cognet.mit.edu/sites/default/files/books/9780262315876/pdfs/9780262315876_chap36.pdf

  27. Sedgewick, R., Flajolet, P.: An Introduction to the Analysis of Algorithms (1996)

    Google Scholar 

  28. Langdon, W.B.: Fast generation of big random binary trees. Technical Report RN/20/01, Computer Science, University College, London (2020). https://arxiv.org/abs/2001.04505

  29. Langdon, W.B., Banzhaf, W.: Continuous long-term evolution of genetic programming. In: Fuechslin, R. (ed.) ALIFE, pp. 388–395 (2019). https://doi.org/10.1162/isal_a_00191

  30. Langdon, W.B., Banzhaf, W.: A SIMD interpreter for genetic programming on GPU graphics cards. In: O’Neill, M., et al. (eds.) EuroGP 2008. LNCS, vol. 4971, pp. 73–85. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78671-9_7

    Chapter  MATH  Google Scholar 

  31. Langdon, W.B., Harrison, A.P.: GP on SPMD parallel graphics hardware for mega bioinformatics data mining. Soft Comput. 12(12), 1169–1183 (2008). https://doi.org/10.1007/s00500-008-0296-x

    Article  Google Scholar 

  32. Poli, R., Langdon, W.B.: Sub-machine-code genetic programming. In: Spector, L., et al. (eds.) AiGP 3, pp. 301–323 (1999). http://www.cs.ucl.ac.uk/staff/W.Langdon/aigp3/ch13.pdf

  33. Langdon, W.B.: Long-term evolution of genetic programming populations. In: GECCO, pp. 235–236 (2017). https://doi.org/10.1145/3067695.3075965

  34. Langdon, W.B.: Genetic improvement of genetic programming. In: Brownlee, A.S., et al. (eds.) GI @ CEC 2020 Special Session (2020). https://doi.org/10.1109/CEC48606.2020.9185771

  35. Langdon, W.B., et al.: The evolution of size and shape. In: Spector, L., et al. (eds.) AiGP 3, pp. 163–190 (1999). http://www.cs.ucl.ac.uk/staff/W.Langdon/aigp3/ch08.pdf

  36. Altenberg, L.: The evolution of evolvability in genetic programming. In: Kinnear, Jr., K.E. (ed.) AiGP (1994)

    Google Scholar 

  37. Tackett, W.A.: Recombination, Selection, and the Genetic Construction of Computer Programs. Ph.D. thesis (1994)

    Google Scholar 

  38. Langdon, W.B., Poli, R.: Fitness causes bloat. In: Chawdhry, P.K., et al. (eds.) Soft Computing in Engineering Design and Manufacturing, pp. 13–22. Springer, London (1998). https://doi.org/10.1007/978-1-4471-0427-8_2

  39. Mrazek, V., et al.: Evolutionary approximation of software for embedded systems: median function. In: Langdon, W.B., et al. (eds.) GI, pp. 795–801 (2015). https://doi.org/10.1145/2739482.2768416

  40. Langdon, W.B.: The distribution of reversible functions is Normal. In: Riolo, R.L., Worzel, B. (eds.) GPTP, vol 6, pp. 173–187. Springer, Boston (2003). https://doi.org/10.1007/978-1-4419-8983-3_11

  41. Yao, X., et al.: A study of equivalent and stubborn mutation operators using human analysis of equivalence. In: Briand, L., et al. (eds.) ICSE, pp. 919–930 (2014). https://doi.org/10.1145/2568225.2568265

  42. Jia, Y., et al.: Learning combinatorial interaction test generation strategies using hyperheuristic search. In: Bertolino, A., et al. (eds.) ICSE, pp. 540–550 (2015). https://doi.org/10.1109/ICSE.2015.71

  43. Langdon, W.B., et al.: Efficient multi-objective higher order mutation testing with genetic programming. J. Syst. Softw. 83(12), 2416–2430 (2010). https://doi.org/10.1016/j.jss.2010.07.027

    Article  Google Scholar 

  44. Danglot, B., Preux, P., Baudry, B., Monperrus, M.: Correctness attraction: a study of stability of software behavior under runtime perturbation. Empr. Soft. Eng. 23(4), 2086–2119 (2018). https://doi.org/10.1007/s10664-017-9571-8

    Article  Google Scholar 

  45. Abou Assi, R., et al.: Coincidental correctness in the Defects4J benchmark. Soft. TVR 29(3), e1696 (2019). https://doi.org/10.1002/stvr.1696

    Article  Google Scholar 

  46. Timperley, C.S., et al.: Crashing simulated planes is cheap: can simulation detect robotics bugs early? In: ICST, pp. 331–342 (2018). https://doi.org/10.1109/ICST.2018.00040

  47. Voas, J.M., Miller, K.W.: Software testability: the new verification. IEEE Softw. 12(3), 17–28 (1995)

    Article  Google Scholar 

  48. Clark, D., et al.: Normalised squeeziness and failed error propagation. Info. Proc. Lets 149, 6–9 (2019). https://doi.org/10.1016/j.ipl.2019.04.001

    Article  MathSciNet  MATH  Google Scholar 

  49. Langdon, W.B., Petke, J.: Software is not fragile. In: Parrend, P., Bourgine, P., Collet, P. (eds.) First Complex Systems Digital Campus World E-Conference 2015. SPC, pp. 203–211. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-45901-1_24

    Chapter  Google Scholar 

  50. Langdon, W.B.: Large-scale bioinformatics data mining with parallel genetic programming on graphics processing units. In: Tsutsui, S., Collet, P. (eds.) Massively Parallel Evolutionary Computation on GPGPUs. NCS, pp. 311–347. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-37959-8_15

    Chapter  Google Scholar 

  51. 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 

Download references

Acknowledgements

Funded by EPSRC grant EP/P005888/1.

For GPinc C++ code see my home pages.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to William B. Langdon .

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

Langdon, W.B. (2021). Incremental Evaluation in Genetic Programming. In: Hu, T., Lourenço, N., Medvet, E. (eds) Genetic Programming. EuroGP 2021. Lecture Notes in Computer Science(), vol 12691. Springer, Cham. https://doi.org/10.1007/978-3-030-72812-0_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-72812-0_15

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-72811-3

  • Online ISBN: 978-3-030-72812-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics