Genetic improvement of GPU software

  • William B. Langdon
  • Brian Yee Hong Lam
  • Marc Modat
  • Justyna Petke
  • Mark Harman
Article

Abstract

We survey genetic improvement (GI) of general purpose computing on graphics cards. We summarise several experiments which demonstrate four themes. Experiments with the gzip program show that genetic programming can automatically port sequential C code to parallel code. Experiments with the StereoCamera program show that GI can upgrade legacy parallel code for new hardware and software. Experiments with NiftyReg and BarraCUDA show that GI can make substantial improvements to current parallel CUDA applications. Finally, experiments with the pknotsRG program show that with semi-automated approaches, enormous speed ups can sometimes be had by growing and grafting new code with genetic programming in combination with human input.

Keywords

Genetic programming SBSE GI-GPGPU Metaprogramming Grammar based genetic programming NVidia CUDA Parallel computing Dynamic programming GPGPU GGGP 

Supplementary material

10710_2016_9273_MOESM1_ESM.gif (481 kb)
Supplementary material 1 (gif 480 KB)

References

  1. 1.
    P.J. Angeline, Genetic programming and emergent intelligence, in Advances in Genetic Programming, chapter 4, ed. by K.E. Kinnear Jr. (MIT Press, Cambridge, 1994), pp. 75–98Google Scholar
  2. 2.
    A. Arcuri, Xin Yao, A novel co-evolutionary approach to automatic software bug fixing. in ed by J. Wang. 2008 IEEE World Congress on Computational Intelligence, Hong Kong, 1–6 June 2008. IEEE Computational Intelligence Society, IEEE Press, pp. 162–168Google Scholar
  3. 3.
    W. Banzhaf, W.B. Langdon, Some considerations on the reason for bloat. Genet. Progr. Evolvable Mach. 3(1), 81–91 (2002)CrossRefMATHGoogle Scholar
  4. 4.
    E.T. Barr, M. Harman, Yue Jia, A. Marginean, J. Petke, Automated software transplantation. in ed. by T. Xie, M. Young International Symposium on Software Testing and Analysis, ISSTA 2015, Baltimore, Maryland, USA, 14–17 July 2015. ACM. ACM SIGSOFT Distinguished Paper Award, pp. 257–269Google Scholar
  5. 5.
    A. Brady, J. Lawrence, P. Peers, W. Weimer, genBRDF: discovering new analytic BRDFs with genetic programming. ACM Trans. Graph. 33(4), 114–11411 (2014)CrossRefGoogle Scholar
  6. 6.
    B.R. Bruce, J. Petke, M. Harman, Reducing energy consumption using genetic improvement. in ed. by S. Silva et al. GECCO ’15: Proceedings of the 2015 on Genetic and Evolutionary Computation Conference, Madrid, Spain, 11-15 July 2015. ACM, ACM, pp. 1327–1334Google Scholar
  7. 7.
    B.R. Bruce, Energy optimisation via genetic improvement A SBSE technique for a new era in software development. in ed by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 819–820Google Scholar
  8. 8.
    E.K. Burke, S. Gustafson, G. Kendall, Diversity in genetic programming: an analysis of measures and correlation with fitness. IEEE Trans. Evol. Comput. 8(1), 47–62 (2004)CrossRefGoogle Scholar
  9. 9.
    N. Burles, E. Bowles, B.R. Bruce, K. Srivisut, Specialising Guava’s cache to reduce energy consumption. In Yvan Labiche and Marcio Barros, editors, SSBSE, vol. 9275 of LNCS, Bergamo, Italy, September 5–7 2015. (Springer, Berlin) pp. 276–281Google Scholar
  10. 10.
    N. Burles, J. Swan, E. Bowles, A.E.I. Brownlee, Z.A. Kocsis, N. Veerapen, Embedded dynamic improvement. in ed. by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 831–832Google Scholar
  11. 11.
    D.J. Cavicchio, Jr., Adaptive search using simulated evolution. Ph.D. thesis, Department of Computer and Communication Sciences, University of Michigan, Ann Arbor, August (1970)Google Scholar
  12. 12.
    J.M. Daida, A.M. Hilss, D.J. Ward, S.L. Long, Visualizing tree structures in genetic programming. Genet. Progr. Evolvable Mach. 6(1), 79–110 (2005)CrossRefMATHGoogle Scholar
  13. 13.
    R.M. Durbin et al., A map of human genome variation from population-scale sequencing. Nature 467(7319), 1061–1073 (2010)CrossRefGoogle Scholar
  14. 14.
    B. Foster, A. Somayaji, Object-level recombination of commodity applications. in ed. by J. Branke et al. GECCO ’10: Proceedings of the 12th annual conference on Genetic and evolutionary computation, Portland, Oregon, USA, 7-11 July 2010. ACM, pp. 957–964Google Scholar
  15. 15.
    J.A. Foster, Review: discipulus: a commercial genetic programming system. Genet. Progr. Evolvable Mach. 2(2), 201–203 (2001)CrossRefGoogle Scholar
  16. 16.
    C. Gathercole, P. Ross, Dynamic training subset selection for supervised learning in genetic programming. in ed. by Y. Davidor et al. Parallel Problem Solving from Nature III, vol. 866 of LNCS, Jerusalem, 9-14 October 1994. (Springer, Berlin) pp. 312–321Google Scholar
  17. 17.
    S.L. Harding, W. Banzhaf, Distributed genetic programming on GPUs using CUDA. in ed. by I. Hidalgo et al. Workshop on Parallel Architectures and Bioinspired Algorithms, Raleigh, NC, USA, 13 September 2009. Universidad Complutense de Madrid, pp. 1–10Google Scholar
  18. 18.
    M. Harman, B.F. Jones, Search based software engineering. Inf. Softw. Technol. 43(14), 833–839 (2001)CrossRefGoogle Scholar
  19. 19.
    M. Harman, W.B. Langdon, Yue Jia, D.R. White, A. Arcuri, J.A. Clark, The GISMOE challenge: constructing the Pareto program surface using genetic programming to find better programs. in The 27th IEEE/ACM International Conference on Automated Software Engineering (ASE 12), Essen, Germany, September 3–7 2012. ACM, pp. 1–14Google Scholar
  20. 20.
    M. Harman, A. Mansouri, Yuanyuan Zhang, Search based software engineering: trends, techniques and applications. ACM Comput. Surv. 45(1), 11:1–11:61 (2012)CrossRefGoogle Scholar
  21. 21.
    M. Harman, Yue Jia, W.B. Langdon, Babel pidgin: SBSE can grow and graft entirely new functionality into a real world system. in ed. by C. Le Goues, S. Yoo Proceedings of the 6th International Symposium, on Search-Based Software Engineering, SSBSE 2014, vol. 8636 of LNCS, Fortaleza, Brazil, 26–29 August 2014. Springer. Winner SSBSE 2014 Challange Track, pp. 247–252Google Scholar
  22. 22.
    C. Harris, An investigation into the Application of Genetic Programming techniques to Signal Analysis and Feature Detection. Ph.D. thesis, University College, London, UK, 26 September (1997)Google Scholar
  23. 23.
    B. Harvey, J.A. Foster, D. Frincke, Byte code genetic programming. in ed. by J.R. Koza Late Breaking Papers at the Genetic Programming 1998 Conference, University of Wisconsin, Madison, Wisconsin, USA, 22–25 July 1998. Stanford University Bookstore, pp. 59–63Google Scholar
  24. 24.
    D. Hussain, S. Malliaris, Evolutionary techniques applied to hashing: an efficient data retrieval method. in ed. by D. Whitley et al. Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2000), Las Vegas, Nevada, USA, 10–12 July 2000. Morgan Kaufmann, p. 760Google Scholar
  25. 25.
    M. Hutchins, H. Foster, T. Goradia, T. Ostrand, Experiments on the effectiveness of dataflow- and control-flow-based test adequacy criteria. in Proceedings of 16th International Conference on Software Engineering, ICSE-16, pp. 191–200, May (1994)Google Scholar
  26. 26.
    International Human Genome Sequencing Consortium. Initial sequencing and analysis of the human genome. Nature, 409(6822):860–921 (2001)Google Scholar
  27. 27.
    Yue Jia, M. Harman, W.B. Langdon, A. Marginean, Grow and serve: growing Django citation services using SBSE. In Shin Yoo and Leandro Minku, editors, SSBSE 2015 Challenge Track, vol. 9275 of LNCS, Bergamo, Italy, 5–7 September, pp. 269–275 (2015)Google Scholar
  28. 28.
    S. Klahold, S. Frank, R.E. Keller, W. Banzhaf, Exploring the possibilites and restrictions of genetic programming in Java bytecode. in ed. by J.R. Koza Late Breaking Papers at the Genetic Programming 1998 Conference, University of Wisconsin, Madison, Wisconsin, USA, 22–25 July 1998. Stanford University Bookstore, pp. 120–124Google Scholar
  29. 29.
    P. Klus, Simon Lam, D. Lyberg, M.S. Cheung, G. Pullan, I. McFarlane, G.S.H. Yeo, B.Y.H. Lam, BarraCUDA—a fast short read sequence aligner using graphics processing units. BMC Res. Notes (2012). doi:10.1186/1756-0500-5-27 Google Scholar
  30. 30.
    J.R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection (MIT Press, Cambridge, 1992)MATHGoogle Scholar
  31. 31.
    J. Landsborough, S. Harding, S. Fugate, Removing the kitchen sink from software. in ed. by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 833–838Google Scholar
  32. 32.
    W.B. Langdon, M. Harman, Evolving a CUDA kernel from an nVidia template. in ed. by P. Sobrevilla 2010 IEEE World Congress on Computational Intelligence, Barcelona, 18–23 July 2010. IEEE, pp. 2376–2383Google Scholar
  33. 33.
    W.B. Langdon, M. Harman, Genetically improved CUDA kernels for stereocamera. Research Note RN/14/02, Department of Computer Science, University College London, Gower Street, London WC1E 6BT, UK, 20 February (2014)Google Scholar
  34. 34.
    W.B. Langdon, M. Harman, Genetically improved CUDA C++ software. In Miguel Nicolau et al., editors, 17th European Conference on Genetic Programming, vol. 8599 of LNCS, Granada, Spain, 23-25 April 2014. (Springer, Berlin, 2014) pp. 87–99Google Scholar
  35. 35.
    W.B. Langdon, M. Harman, Grow and graft a better CUDA pknotsRG for RNA pseudoknot free energy calculation. in ed, by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 805–810Google Scholar
  36. 36.
    W.B. Langdon, M. Harman, Optimising existing software with genetic programming. IEEE Trans. Evol. Comput. 19(1), 118–135 (2015)CrossRefGoogle Scholar
  37. 37.
    W.B. Langdon, A.P. Harrison, GP on SPMD parallel graphics hardware for mega bioinformatics data mining. Soft Comput., 12(12):1169–1183, October 2008. Special Issue on Distributed Bioinspired AlgorithmsGoogle Scholar
  38. 38.
    W.B. Langdon, B.Y.H. Lam, Genetically improved barraCUDA. Research Note RN/15/03, Department of Computer Science, University College London, Gower Street, London WC1E 6BT, UK, 28 May (2015)Google Scholar
  39. 39.
    W.B. Langdon, J. Petke, Genetic improvement. IEEE Software Blog, (2016)Google Scholar
  40. 40.
    W.B. Langdon, R. Poli, An analysis of the MAX problem in genetic programming. in ed. by J.R. Koza et al. Genetic Programming 1997: Proceedings of the Second Annual Conference, Stanford University, CA, USA, 13–16 July 1997. Morgan Kaufmann, pp. 222–230Google Scholar
  41. 41.
    W.B. Langdon, R. Poli, Fitness causes bloat. in ed. by P.K. Chawdhry et al. Soft Computing in Engineering Design and Manufacturing (Springer, London, 1997), 23–27 June, pp. 13–22Google Scholar
  42. 42.
    W.B. Langdon, R. Poli, Foundations of Genetic Programming (Springer, Berlin, 2002)CrossRefMATHGoogle Scholar
  43. 43.
    W.B. Langdon, M. Harman, Yue Jia, Efficient multi-objective higher order mutation testing with genetic programming. J. Syst. Softw. 83(12), 2416–2430 (2010)CrossRefGoogle Scholar
  44. 44.
    W.B. Langdon, M. Modat, J. Petke, M. Harman, Improving 3D medical image registration CUDA software with genetic programming. in ed. by C. Igel et al. GECCO ’14: Proceeding of the sixteenth annual conference on genetic and evolutionary computation conference, Vancouver, BC, Canada, 12–15 July 2014. ACM, pp. 951–958Google Scholar
  45. 45.
    W.B. Langdon, B.Y.H. Lam, J. Petke, M. Harman, Improving CUDA DNA analysis software with genetic programming. in ed. by S. Silva et al. GECCO ’15: Proceedings of the 2015 on Genetic and Evolutionary Computation Conference, Madrid, 11–15 July 2015. ACM, pp. 1063–1070Google Scholar
  46. 46.
    W.B. Langdon, Directed crossover within genetic programming. Research Note RN/95/71, University College London, Gower Street, London WC1E 6BT, UK, September (1995)Google Scholar
  47. 47.
    W.B. Langdon, Genetic Programming and Data Structures: Genetic Programming + Data Structures = Automatic Programming! volume 1 of Genetic Programming, vol. 1 (Kluwer, Boston, 1998)Google Scholar
  48. 48.
    W.B. Langdon, A many threaded CUDA interpreter for genetic programming. in ed. by A. Isabel Esparcia-Alcazar et al. Proceedings of the 13th European Conference on Genetic Programming, EuroGP 2010, volume 6021 of LNCS, Istanbul, 7–9 April 2010. (Springer, Berlin) pp. 146–158Google Scholar
  49. 49.
    W.B. Langdon, Creating and debugging performance CUDA C. in ed. by F. Fernandez de Vega et al. Parallel Architectures and Bioinspired Algorithms, vol. 415 of Studies in Computational Intelligence, chapter 1. (Springer, Berlin, 2012) pp. 7–50Google Scholar
  50. 50.
    W.B. Langdon, Genetic improvement of software for multiple objectives. in ed. by Y. Labiche, M. Barros SSBSE, vol. 9275 of LNCS, Bergamo, Italy, September 5–7 2015. Springer. Invited keynote, pp. 12–28Google Scholar
  51. 51.
    W.B. Langdon, Genetically improved software, in Handbook of Genetic Programming Applications, chapter 8, ed. by A.H. Gandomi, et al. (Springer, Berlin, 2015), pp. 181–220CrossRefGoogle Scholar
  52. 52.
    C. Le Goues, M. Dewey-Vogt, S. Forrest, W. Weimer, A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each. in ed. by M. Glinz 34th International Conference on Software Engineering (ICSE 2012), Zurich, June 2–9, pp. 3–13, (2012)Google Scholar
  53. 53.
    C. Le Goues, W. Weimer, S. Forrest, Representations and operators for improving evolutionary software repair. in ed. by T. Soule et al. GECCO ’12: Proceedings of the fourteenth international conference on Genetic and evolutionary computation conference, Philadelphia, Pennsylvania, USA, 7–11 July 2012. ACM, pp. 959–966Google Scholar
  54. 54.
    Heng Li, R. Durbin, Fast and accurate long-read alignment with Burrows-Wheeler transform. Bioinformatics 26(5), 589–595 (2010)CrossRefGoogle Scholar
  55. 55.
    Weiguo Liu, B. Schmidt, G. Voss, A. Schroder, W. Muller-Wittig, Bio-sequence database scanning on a GPU. in 20th International Parallel and Distributed Processing Symposium, IPDPS 2006, Rhodes, Greece, 25–29 April 2006. IEEE PressGoogle Scholar
  56. 56.
    R.E. Lopez-Herrejon, L. Linsbauer, Genetic improvement for software product lines: an overview and a roadmap. in W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 823–830Google Scholar
  57. 57.
    E. Lukschandl, M. Holmlund, E. Moden, Automatic evolution of Java bytecode: First experience with the Java virtual machine. in ed. by R. Poli et al. Late Breaking Papers at EuroGP’98: the First European Workshop on Genetic Programming, Paris, France, 14–15 April 1998. CSRP-98-10, The University of Birmingham, UK, pp. 14–16Google Scholar
  58. 58.
    Ruibang Luo, Thomas Wong, Jianqiao Zhu, Chi-Man Liu, Xiaoqian Zhu, Edward Wu, Lap-Kei Lee, Haoxiang Lin, Wenjuan Zhu, David W. Cheung, Hing-Fung Ting, Siu-Ming Yiu, Shaoliang Peng, Chang Yu, Yingrui Li, Ruiqiang Li, and Tak-Wah Lam, SOAP3-dp: Fast, accurate and sensitive GPU-based short read aligner. PLoS One 8(5), e65632 (2013)CrossRefGoogle Scholar
  59. 59.
    S. Manavski, G. Valle, CUDA compatible GPU cards as efficient hardware accelerators for Smith-Waterman sequence alignment. BMC Bioinf. 9(Suppl 2), S10 (2008)CrossRefGoogle Scholar
  60. 60.
    N.F. McPhee, N.J. Hopper, Analysis of genetic diversity through population history. in ed. by W. Banzhaf et al. Proceedings of the Genetic and Evolutionary Computation Conference, vol. 2, pp. 1112–1120, Orlando, Florida, USA, 13-17 July 1999. Morgan KaufmannGoogle Scholar
  61. 61.
    D. Merrill, M. Garland, A. Grimshaw, Policy-based tuning for performance portability and library co-optimization. In Innovative Parallel Computing (InPar), 2012. IEEE, May (2012)Google Scholar
  62. 62.
    M. Modat, G.R. Ridgway, Z.A. Taylor, M. Lehmann, J. Barnes, D.J. Hawkes, N.C. Fox, S. Ourselin, Fast free-form deformation using graphics processing units. Comput. Methods Progr. Biomed. 98(3), 278–284 (2010)CrossRefGoogle Scholar
  63. 63.
    V. Mrazek, Z. Vasicek, L. Sekanina, Evolutionary approximation of software for embedded systems: Median function. in ed. by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11–15 July 2015. ACM, pp. 795–801Google Scholar
  64. 64.
    M. Orlov, M. Sipper, Flight of the FINCH through the Java wilderness. IEEE Trans. Evol. Comput. 15(2), 166–182 (2011)CrossRefGoogle Scholar
  65. 65.
    J.D. Owens, M. Houston, D. Luebke, S. Green, J.E. Stone, J.C. Phillips, GPU computing. Proc. IEEE, 96(5):879–899, May 2008. Invited paperGoogle Scholar
  66. 66.
    N. Paterson, M. Livesey, Evolving caching algorithms in C by genetic programming. in ed. by J.R. Koza et al. Genetic Programming 1997: Proceedings of the Second Annual Conference, Stanford University, CA, USA, 13-16 July 1997. Morgan Kaufmann, pp. 262–267Google Scholar
  67. 67.
    J. Petke, M. Harman, W.B. Langdon, W. Weimer, Using genetic improvement & code transplants to specialise a C++ program to a problem class. 11th Annual Humies Awards 2014, 14 July 2014. Winner SilverGoogle Scholar
  68. 68.
    J. Petke, M. Harman, W.B. Langdon, W. Weimer, Using genetic improvement and code transplants to specialise a C++ program to a problem class. in ed. by M. Nicolau et al. 17th European Conference on Genetic Programming, vol. 8599 of LNCS, Granada, Spain, 23-25 April 2014. (Springer, Berlin) pp. 137–149Google Scholar
  69. 69.
    R. Poli, W.B. Langdon, S. Dignum, On the limiting distribution of program sizes in tree-based genetic programming. in ed. by M. Ebner et al. Proceedings of the 10th European Conference on Genetic Programming, vol. 4445 of Lecture Notes in Computer Science, Valencia, Spain, 11-13 April 2007. (Springer, Berlin) pp. 193–204Google Scholar
  70. 70.
    R. Poli, W.B. Langdon, N.F. McPhee, A field guide to genetic programming. Published via http://lulu.com and freely available at http://www.gp-field-guide.org.uk, 2008. (With contributions by J. R. Koza)
  71. 71.
    J. Reeder, R. Giegerich, Design, implementation and evaluation of a practical pseudoknot folding algorithm based on thermodynamics. BMC Bioinf. 5(1), 104 (2004)CrossRefGoogle Scholar
  72. 72.
    J. Reeder, P. Steffen, R. Giegerich, pknotsRG: RNA pseudoknot folding including near-optimal structures and sliding windows. Nucleic Acids Res. 35(suppl 2), W320–W324 (2007)CrossRefGoogle Scholar
  73. 73.
    I. Reguly, M. Giles, Efficient sparse matrix-vector multiplication on cache-based GPUs. in Innovative Parallel Computing (InPar), 2012, San Jose, USA, 13–14 May 2012. IEEE, pp. 230–241Google Scholar
  74. 74.
    J.L. Risco-Martin, D. Atienza, J.M. Colmenar, O. Garnica, A parallel evolutionary algorithm to optimize dynamic memory managers in embedded systems. Parallel Computing, 36(10-11):572–590 (2010). Parallel Architectures and Bioinspired AlgorithmsGoogle Scholar
  75. 75.
    P. Rodriguez-Mier, M. Mucientes, M. Lama, M.I. Couto, Composition of web services through genetic programming. Evol. Intel. 3(3–4), 171–186 (2010)CrossRefGoogle Scholar
  76. 76.
    D. Schuler, A. Zeller, Javalanche: efficient mutation testing for java. in ed. by H. van Vliet, V. Issarny ESEC/SIGSOFT FSE, Amsterdam, Netherlands, 24–28 August 2009. ACM, pp. 297–298Google Scholar
  77. 77.
    E. Schulte, J. DiLorenzo, W. Weimer, S. Forrest, Automated repair of binary and assembly programs for cooperating embedded devices. in Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems, ASPLOS 2013, Houston, Texas, USA, March 16-20 2013. ACM, pp. 317–328Google Scholar
  78. 78.
    E. Schulte, J. Dorn, S. Harding, S. Forrest, W. Weimer, Post-compiler software optimization for reducing energy. in Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS’14, Salt Lake City, Utah, USA, 1–5 March 2014. ACM, pp. 639–652Google Scholar
  79. 79.
    E. Schulte, Z.P. Fry, E. Fast, W. Weimer, S. Forrest, Software mutational robustness. Genet. Progr. Evolvable Mach. 15(3), 281–312 (2014)CrossRefGoogle Scholar
  80. 80.
    E. Schulte, W. Weimer, S. Forrest, Repairing COTS router firmware without access to source code or test suites: a case study in evolutionary software repair. in ed. by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11-15 July 2015. ACM. Best Paper, pp. 847–854Google Scholar
  81. 81.
    P. Sitthi-amorn, N. Modly, W. Weimer, J. Lawrence, Genetic programming for shader simplification. ACM Transactions on Graphics, 30(6):article:152, December 2011. Proceedings of ACM SIGGRAPH Asia (2011)Google Scholar
  82. 82.
    T. Soule, R.B. Heckendorn, An analysis of the causes of code growth in genetic programming. Genet. Progr. Evolvable Mach. 3(3), 283–309 (2002)CrossRefMATHGoogle Scholar
  83. 83.
    J. Stam, Stereo imaging with CUDA. Technical report, nVidia, V 0.2 3 Jan 2008. StereoImaging.pdf distributed with StereoCamera_v1_1c.zip Google Scholar
  84. 84.
    P. Steffen, R. Giegerich, Table design in dynamic programming. Inf. Comput. 204(9), 1325–1345 (2006)MathSciNetCrossRefMATHGoogle Scholar
  85. 85.
    G. Syswerda, Uniform crossover in genetic algorithms. in ed. by J. David Schaffer Proceedings of the third international conference on Genetic Algorithms, George Mason University, 4–7 June 1989. Morgan Kaufmann, pp. 2–9Google Scholar
  86. 86.
    W.A. Tackett, Recombination, Selection, and the Genetic Construction of Computer Programs. Ph.D. thesis, University of Southern California, Department of Electrical Engineering Systems, USA (1994)Google Scholar
  87. 87.
    A. Teller, D. Andre, Automatically choosing the number of fitness cases: the rational allocation of trials. in ed. by J.R. Koza et al. Genetic Programming 1997: Proceedings of the Second Annual Conference, Stanford University, CA, USA, 13–16 July 1997. Morgan Kaufmann, pp. 321–328Google Scholar
  88. 88.
    R.H. Untch, A.J. Offutt, M.J. Harrold, Mutation analysis using mutant schemata. in Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis, Cambridge, Massachusetts, pp. 139–148 (1993)Google Scholar
  89. 89.
    W. Weimer, ThanhVu Nguyen, C. Le Goues, S. Forrest, Automatically finding patches using genetic programming. in ed. by S. Fickas International Conference on Software Engineering (ICSE) 2009, Vancouver, May 16–24, pp. 364–374 (2009)Google Scholar
  90. 90.
    W. Weimer, S. Forrest, C. Le Goues, ThanhVu Nguyen, Automatic program repair with evolutionary computation. Commun. ACM 53(5), 109–116 (2010)CrossRefGoogle Scholar
  91. 91.
    D.R. White, J. Clark, J. Jacob, S.M. Poulding, Searching for resource-efficient programs: low-power pseudorandom number generators. in ed. by M. Keijzer et al. GECCO ’08: Proceedings of the 10th annual conference on Genetic and evolutionary computation, Atlanta, GA, USA, 12–16 July 2008. ACM, pp. 1775–1782Google Scholar
  92. 92.
    D.R. White, A. Arcuri, J.A. Clark, Evolutionary improvement of programs. IEEE Trans. Evol. Comput. 15(4), 515–538 (2011)CrossRefGoogle Scholar
  93. 93.
    F. Wu, W. Weimer, M. Harman, Yue Jia, J. Krinke, Deep parameter optimisation. in ed. by S. Silva et al. GECCO ’15: Proceedings of the 2015 on Genetic and Evolutionary Computation Conference, Madrid, 11-15 July 2015. ACM, pp. 1375–1382Google Scholar
  94. 94.
    Xin Yao, M. Harman, Yue Jia, A study of equivalent and stubborn mutation operators using human analysis of equivalence. in Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, Hyderabad, India, 2014. ACM, pp. 919–930Google Scholar
  95. 95.
    K. Yeboah-Antwi, B. Baudry, Embedding adaptivity in software systems using the ECSELR framework. in ed. by W.B. Langdon et al. Genetic Improvement 2015 Workshop, Madrid, 11-15 July 2015. ACM, pp. 839–844Google Scholar

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  • William B. Langdon
    • 1
  • Brian Yee Hong Lam
    • 2
  • Marc Modat
    • 3
  • Justyna Petke
    • 1
  • Mark Harman
    • 1
  1. 1.Department of Computer ScienceUniversity College LondonLondonUK
  2. 2.University of Cambridge Metabolic Research LaboratoriesAddenbrooke’s HospitalCambridgeUK
  3. 3.Leonard Wolfson Experimental Neurology CentreUniversity College LondonLondonUK

Personalised recommendations