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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 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.
Trapping special cases, such as multiplication by zero, and multiplication or division by one, only sped up GP by a few percent.
References
Koza, J.R.: Genetic Programming: On the Programming of Computers by Natural Selection (1992). http://mitpress.mit.edu/books/genetic-programming
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
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
Langdon, W.B.: Genetic Programming and Data Structures, Springer, Boston (1998). https://doi.org/10.1007/978-1-4615-5731-9
White, D.R., et al.: Evolutionary improvement of programs. IEEE TEVC 15(4), 515–538 (2011). https://doi.org/10.1109/TEVC.2010.2083669
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
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
Petke, J.: Constraints: the future of combinatorial interaction testing. In: SBST, pp. 17–18 (2015). https://doi.org/10.1109/SBST.2015.11
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
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
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
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
Poli, R., et al.: A field guide to genetic programming (2008). http://lulu.com, http://www.gp-field-guide.org.uk
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
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
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
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
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
Koza, J.R., et al.: Genetic Programming III: Darwinian Invention and Problem Solving (1999). http://www.genetic-programming.org/gpbook3toc.html
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
Singleton, A.: Genetic programming with C++. In: BYTE, pp. 171–176 (1994). http://www.assembla.com/wiki/show/andysgp/GPQuick_Article
Langdon, W.B.: Parallel GPQUICK. In: Doerr, C. (ed.) GECCO Computing, pp. 63–64 (2019). https://doi.org/10.1145/3319619.3326770
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
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
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
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
Sedgewick, R., Flajolet, P.: An Introduction to the Analysis of Algorithms (1996)
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
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
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
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
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
Langdon, W.B.: Long-term evolution of genetic programming populations. In: GECCO, pp. 235–236 (2017). https://doi.org/10.1145/3067695.3075965
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
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
Altenberg, L.: The evolution of evolvability in genetic programming. In: Kinnear, Jr., K.E. (ed.) AiGP (1994)
Tackett, W.A.: Recombination, Selection, and the Genetic Construction of Computer Programs. Ph.D. thesis (1994)
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
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
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
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
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
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
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
Abou Assi, R., et al.: Coincidental correctness in the Defects4J benchmark. Soft. TVR 29(3), e1696 (2019). https://doi.org/10.1002/stvr.1696
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
Voas, J.M., Miller, K.W.: Software testability: the new verification. IEEE Softw. 12(3), 17–28 (1995)
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
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
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
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
Acknowledgements
Funded by EPSRC grant EP/P005888/1.
For GPinc C++ code see my home pages.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
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)