Abstract

Genetic programming (GP) can dramatically increase computer programs’ performance. It can automatically port or refactor legacy code written by domain experts and specialist software engineers. After reviewing SBSE research on evolving software we describe an open source parallel StereoCamera image processing application in which GI optimisation gave a seven fold speedup on nVidia Tesla GPU hardware not even imagined when the original state-of-the-art CUDA GPGPU C++ code was written.

References

  1. Thomas Ackling, Bradley Alexander, and Ian Grunert. Evolving patches for software repair. In Natalio Krasnogor et al., editors, GECCO ’11: Proceedings of the 13th annual conference on Genetic and evolutionary computation, pages 1427–1434, Dublin, Ireland, 12-16 July 2011. ACM.Google Scholar
  2. Stephen F. Altschul, Thomas L. Madden, Alejandro A. Schaffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman. Gapped BLAST and PSI-BLAST a new generation of protein database search programs. Nucleic Acids Research, 25(17):3389–3402, 1997.CrossRefGoogle Scholar
  3. Yiannis Andreopoulos. Error tolerant multimedia stream processing: There’s plenty of room at the top (of the system stack). IEEE Transactions on Multimedia, 15(2):291–303, Feb 2013. Invited Paper.Google Scholar
  4. Gabriel A. Archanjo and Fernando J. Von Zuben. Genetic programming for automating the development of data management algorithms in information technology systems. Advances in Software Engineering, 2012.Google Scholar
  5. Andrea Arcuri and Xin Yao. A novel co-evolutionary approach to automatic software bug fixing. In Jun Wang, editor, 2008 IEEE World Congress on Computational Intelligence, pages 162–168, Hong Kong, 1–6 June 2008. IEEE Computational Intelligence Society, IEEE Press.Google Scholar
  6. Andrea Arcuri and Xin Yao. Co-evolutionary automatic programming for software development. Information Sciences, 259:412–432, 2014.CrossRefGoogle Scholar
  7. Wolfgang Banzhaf, Peter Nordin, Robert E. Keller, and Frank D. Francone. Genetic Programming – An Introduction; On the Automatic Evolution of Computer Programs and its Applications. Morgan Kaufmann, San Francisco, CA, USA, January 1998.MATHGoogle Scholar
  8. Earl T. Barr, Yuriy Brun, Premkumar Devanbu, Mark Harman, and Federica Sarro. The plastic surgery hypothesis. In Alessandro Orso, Margaret-Anne Storey, and Shing-Chi Cheung, editors, 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE 2014), Hong Kong, 16–12 Nov 2014. ACM.Google Scholar
  9. Patrick Berarducci, Demetrius Jordan, David Martin, and Jennifer Seitzer. GEVOSH: Using grammatical evolution to generate hashing functions. In R. Poli et al., editors, GECCO 2004 Workshop Proceedings, Seattle, Washington, USA, 26–30 June 2004.Google Scholar
  10. Jeremy S. Bradbury and Kevin Jalbert. Automatic repair of concurrency bugs. In Massimiliano Di Penta et al., editors, Proceedings of the 2nd International Symposium on Search Based Software Engineering (SSBSE ’10), Benevento, Italy, 7–9 September 2010. Fast abstract.Google Scholar
  11. Jurgen Branke, Pablo Funes, and Frederik Thiele. Evolutionary design of en-route caching strategies. Applied Soft Computing, 7(3):890–898, June 2006.CrossRefGoogle Scholar
  12. Edmund K Burke, Michel Gendreau, Matthew Hyde, Graham Kendall, Gabriela Ochoa, Ender Ozcan, and Rong Qu. Hyper-heuristics: a survey of the state of the art. Journal of the Operational Research Society, 64(12):1695–1724, December 2013.Google Scholar
  13. B. F. Buxton, W. B. Langdon, and S. J. Barrett. Data fusion by intelligent classifier combination. Measurement and Control, 34(8):229–234, October 2001.CrossRefGoogle Scholar
  14. Cristian Cadar, Peter Pietzuch, and Alexander L. Wolf. Multiplicity computing: a vision of software engineering for next-generation computing platform applications. In Kevin Sullivan, editor, Proceedings of the FSE/SDP workshop on Future of software engineering research, FoSER ’10, pages 81–86, Santa Fe, New Mexico, USA, 7–11 November 2010. ACM.Google Scholar
  15. Brendan Cody-Kenny and Stephen Barrett. The emergence of useful bias in self-focusing genetic programming for software optimisation. In Guenther Ruhe and Yuanyuan Zhang, editors, Symposium on Search-Based Software Engineering, volume 8084 of Lecture Notes in Computer Science, pages 306–311, Leningrad, August 24–26 2013. Springer. Graduate Student Track.Google Scholar
  16. J. Manuel Colmenar, Jose L. Risco-Martin, David Atienza, and J. Ignacio Hidalgo. Multi-objective optimization of dynamic memory managers using grammatical evolution. In Natalio Krasnogor et al., editors, GECCO ’11: Proceedings of the 13th annual conference on Genetic and evolutionary computation, pages 1819–1826, Dublin, Ireland, 12–16 July 2011. ACM.Google Scholar
  17. Alban Cotillon, Philip Valencia, and Raja Jurdak. Android genetic programming framework. In Alberto Moraglio et al., editors, Proceedings of the 15th European Conference on Genetic Programming, EuroGP 2012, volume 7244 of LNCS, pages 13–24, Malaga, Spain, 11–13 April 2012. Springer Verlag.Google Scholar
  18. Charles Darwin. The Origin of Species. John Murray, penguin classics, 1985 edition, 1859.Google Scholar
  19. K. Deb, A. Pratap, S. Agarwal, and T. Meyarivan. A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Transactions on Evolutionary Computation, 6(2):182–197, Apr 2002.CrossRefGoogle Scholar
  20. Richard A. DeMillo and A. Jefferson Offutt. Constraint-based automatic test data generation. IEEE Transactions on Software Engineering, 17(9):900–910, 1991.Google Scholar
  21. Cesar Estebanez, Yago Saez, Gustavo Recio, and Pedro Isasi. Automatic design of noncryptographic hash functions using genetic programming. Computational Intelligence. Early View (Online Version of Record published before inclusion in an issue).Google Scholar
  22. Robert Feldt. Generating diverse software versions with genetic programming: an experimental study. IEE Proceedings - Software Engineering, 145(6):228–236, December 1998. Special issue on Dependable Computing Systems.Google Scholar
  23. Robert Feldt. Genetic programming as an explorative tool in early software development phases. In Conor Ryan and Jim Buckley, editors, Proceedings of the 1st International Workshop on Soft Computing Applied to Software Engineering, pages 11–20, University of Limerick, Ireland, 12–14 April 1999. Limerick University Press.Google Scholar
  24. Stephanie Forrest, ThanhVu Nguyen, Westley Weimer, and Claire Le Goues. A genetic programming approach to automated software repair. In Guenther Raidl et al., editors, GECCO ’09: Proceedings of the 11th Annual conference on Genetic and evolutionary computation, pages 947–954, Montreal, 8–12 July 2009. ACM. Best paper.Google Scholar
  25. Erik M. Fredericks and Betty H. C. Cheng. Exploring automated software composition with genetic programming. In Christian Blum et al., editors, GECCO ’13 Companion: Proceeding of the fifteenth annual conference companion on Genetic and evolutionary computation conference companion, pages 1733–1734, Amsterdam, The Netherlands, 6–10 July 2013. ACM.Google Scholar
  26. Alex A. Freitas. A genetic programming framework for two data mining tasks: Classification and generalized rule induction. In John R. Koza et al., editors, Genetic Programming 1997: Proceedings of the Second Annual Conference, pages 96–101, Stanford University, CA, USA, 13–16 July 1997. Morgan Kaufmann.Google Scholar
  27. Mark Gabel and Zhendong Su. A study of the uniqueness of source code. In Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, FSE ’10, pages 147–156, New York, NY, USA, 2010. ACM.Google Scholar
  28. David E. Goldberg. Genetic Algorithms in Search Optimization and Machine Learning. Addison-Wesley, 1989.Google Scholar
  29. Xin Han, Tak-Wah Lam, Lap-Kei Lee, Isaac K.K. To, and Prudence W.H. Wong. Deadline scheduling and power management for speed bounded processors. Theoretical Computer Science, 411(40-42):3587–3600, 2010.Google Scholar
  30. S. Handley. On the use of a directed acyclic graph to represent a population of computer programs. In Proceedings of the 1994 IEEE World Congress on Computational Intelligence, volume 1, pages 154–159, Orlando, Florida, USA, 27–29 June 1994. IEEE Press.Google Scholar
  31. Saemundur O. Haraldsson and John R. Woodward. Automated design of algorithms and genetic improvement: contrast and commonalities. In John Woodward et al., editors, GECCO 2014 4th workshop on evolutionary computation for the automated design of algorithms, pages 1373–1380, Vancouver, BC, Canada, 12–16 July 2014. ACM.Google Scholar
  32. Mark Harman, William B. Langdon, Yue Jia, David R. White, Andrea Arcuri, and John 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), pages 1–14, Essen, Germany, September 3–7 2012. ACM.Google Scholar
  33. Mark Harman, Yue Jia, and William B. Langdon. Babel pidgin: SBSE can grow and graft entirely new functionality into a real world system. In Claire Le Goues and Shin Yoo, editors, Proceedings of the 6th International Symposium, on Search-Based Software Engineering, SSBSE 2014, volume 8636 of LNCS, pages 247–252, Fortaleza, Brazil, 26–29 August 2014. Springer. Winner SSBSE 2014 Challange Track.Google Scholar
  34. Mark Harman. Software engineering meets evolutionary computation. Computer, 44(10):31–39, October 2011. Cover feature.Google Scholar
  35. John H. Holland. Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence. MIT Press, 1992. First Published by University of Michigan Press 1975.Google Scholar
  36. Daniar Hussain and Steven Malliaris. Evolutionary techniques applied to hashing: An efficient data retrieval method. In Darrell Whitley et al., editors, Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2000), page 760, Las Vegas, Nevada, USA, 10–12 July 2000. Morgan Kaufmann.Google Scholar
  37. M. Hutchins, H. Foster, T. Goradia, and 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, pages 191–200, May 1994.Google Scholar
  38. Kosuke Imamura and James A. Foster. Fault-tolerant computing with N-version genetic programming. In Lee Spector et al., editors, Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2001), page 178, San Francisco, California, USA, 7–11 July 2001. Morgan Kaufmann.Google Scholar
  39. Kosuke Imamura, Terence Soule, Robert B. Heckendorn, and James A. Foster. Behavioral diversity and a probabilistically optimal GP ensemble. Genetic Programming and Evolvable Machines, 4(3):235–253, September 2003.CrossRefGoogle Scholar
  40. Christian Jacob. Illustrating Evolutionary Computation with Mathematica. Morgan Kaufmann, 2001.Google Scholar
  41. Jan Karasek, Radim Burget, and Ondrej Morsky. Towards an automatic design of non-cryptographic hash function. In 34th International Conference on Telecommunications and Signal Processing (TSP 2011), pages 19–23, Budapest, 18–20 August 2011.Google Scholar
  42. Gal Katz and Doron Peled. Synthesizing, correcting and improving code, using model checking-based genetic programming. In Valeria Bertacco and Axel Legay, editors, Proceedings of the 9th International Haifa Verification Conference (HVC 2013), volume 8244 of Lecture Notes in Computer Science, pages 246–261, Haifa, Israel, November 5–7 2013. Springer. Keynote Presentation.Google Scholar
  43. Marouane Kessentini, Wael Kessentini, Houari Sahraoui, Mounir Boukadoum, and Ali Ouni. Design defects detection and correction by example. In 19th IEEE International Conference on Program Comprehension (ICPC 2011), pages 81–90, Kingston, Canada, 22–24 June 2011.Google Scholar
  44. Dongsun Kim, Jaechang Nam, Jaewoo Song, and Sunghun Kim. Automatic patch generation learned from human-written patches. In 35th International Conference on Software Engineering (ICSE 2013), pages 802–811, San Francisco, USA, 18–26 May 2013.Google Scholar
  45. Arthur K. Kordon. Applying Computational Intelligence How to Create Value. Springer, 2010.Google Scholar
  46. Miha Kovacic and Bozidar Sarler. Genetic programming prediction of the natural gas consumption in a steel plant. Energy, 66(1):273–284, 1 March 2014.Google Scholar
  47. John R. Koza. Genetic Programming: On the Programming of Computers by Natural Selection. MIT press, 1992.Google Scholar
  48. W. B. Langdon and S. J. Barrett. Genetic programming in data mining for drug discovery. In Ashish Ghosh and Lakhmi C. Jain, editors, Evolutionary Computing in Data Mining, volume 163 of Studies in Fuzziness and Soft Computing, Chapter 10, pages 211–235. Springer, 2004.Google Scholar
  49. W. B. Langdon and B. F. Buxton. Genetic programming for combining classifiers. In Lee Spector et al., editors, Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2001), pages 66–73, San Francisco, California, USA, 7–11 July 2001. Morgan Kaufmann.Google Scholar
  50. W. B. Langdon and M. Harman. Evolving a CUDA kernel from an nVidia template. In Pilar Sobrevilla, editor, 2010 IEEE World Congress on Computational Intelligence, pages 2376–2383, Barcelona, 18–23 July 2010. IEEE.Google Scholar
  51. W. B. Langdon and 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
  52. William B. Langdon and Mark Harman. Genetically improved CUDA C++ software. In Miguel Nicolau et al., editors, 17th European Conference on Genetic Programming, volume 8599 of LNCS, pages 87–99, Granada, Spain, 23–25 April 2014. Springer.Google Scholar
  53. William B. Langdon and Mark Harman. Optimising existing software with genetic programming. IEEE Transactions on Evolutionary Computation, 19(1):118–135, February 2015.CrossRefGoogle Scholar
  54. W. B. Langdon and J. P. Nordin. Seeding GP populations. In Riccardo Poli et al., editors, Genetic Programming, Proceedings of EuroGP’2000, volume 1802 of LNCS, pages 304–315, Edinburgh, 15–16 April 2000. Springer-Verlag.Google Scholar
  55. William B. Langdon and Riccardo Poli. Evolving problems to learn about particle swarm and other optimisers. In David Corne et al., editors, Proceedings of the 2005 IEEE Congress on Evolutionary Computation, volume 1, pages 81–88, Edinburgh, UK, 2–5 September 2005. IEEE Press.Google Scholar
  56. William B. Langdon, Mark Harman, and Yue Jia. Efficient multi-objective higher order mutation testing with genetic programming. Journal of Systems and Software, 83(12):2416–2430, December 2010.CrossRefGoogle Scholar
  57. William B. Langdon, Marc Modat, Justyna Petke, and Mark Harman. Improving 3D medical image registration CUDA software with genetic programming. In Christian Igel et al., editors, GECCO ’14: Proceeding of the sixteenth annual conference on genetic and evolutionary computation conference, pages 951–958, Vancouver, BC, Canada, 12–15 July 2014. ACM.Google Scholar
  58. William B. Langdon. Genetic Programming and Data Structures: Genetic Programming + Data Structures = Automatic Programming!, volume 1 of Genetic Programming. Kluwer, Boston, 1998.CrossRefGoogle Scholar
  59. W. B. Langdon. Global distributed evolution of L-systems fractals. In Maarten Keijzer et al., editors, Genetic Programming, Proceedings of EuroGP’2004, volume 3003 of LNCS, pages 349–358, Coimbra, Portugal, 5–7 April 2004. Springer-Verlag.Google Scholar
  60. W. B. Langdon. A many threaded CUDA interpreter for genetic programming. In Anna Isabel Esparcia-Alcazar et al., editors, Proceedings of the 13th European Conference on Genetic Programming, EuroGP 2010, volume 6021 of LNCS, pages 146–158, Istanbul, 7–9 April 2010. Springer.Google Scholar
  61. W. B. Langdon. Graphics processing units and genetic programming: An overview. Soft Computing, 15:1657–1669, August 2011.CrossRefGoogle Scholar
  62. W.B. Langdon. Creating and debugging performance CUDA C. In Francisco Fernandez de Vega, Jose Ignacio Hidalgo Perez, and Juan Lanchares, editors, Parallel Architectures and Bioinspired Algorithms, volume 415 of Studies in Computational Intelligence, chapter 1, pages 7–50. Springer, 2012.Google Scholar
  63. William B. Langdon. Genetic improvement of programs. In Franz Winkler et al., editors, 16th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC 2014), pages 14–19, Timisoara, 22–25 September 2014. IEEE. Keynote.Google Scholar
  64. Claire Le Goues, Michael Dewey-Vogt, Stephanie Forrest, and Westley Weimer. A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each. In Martin Glinz, editor, 34th International Conference on Software Engineering (ICSE 2012), pages 3–13, Zurich, June 2–9 2012.Google Scholar
  65. Claire Le Goues, ThanhVu Nguyen, Stephanie Forrest, and Westley Weimer. GenProg: A generic method for automatic software repair. IEEE Transactions on Software Engineering, 38(1):54–72, January-February 2012.CrossRefGoogle Scholar
  66. Jason D. Lohn and Gregory S. Hornby. Evolvable hardware using evolutionary computation to design and optimize hardware systems. IEEE Computational Intelligence Magazine, 1(1):19–27, February 2006.CrossRefGoogle Scholar
  67. Eduard Lukschandl, Magus Holmlund, and Eirk Moden. Automatic evolution of Java bytecode: First experience with the Java virtual machine. In Riccardo Poli et al., editors, Late Breaking Papers at EuroGP’98: the First European Workshop on Genetic Programming, pages 14–16, Paris, France, 14–15 April 1998. CSRP-98-10, The University of Birmingham, UK.Google Scholar
  68. Anjali Mahajan and M S Ali. Superblock scheduling using genetic programming for embedded systems. In 7th IEEE International Conference on Cognitive Informatics, ICCI 2008, pages 261–266, August 2008.Google Scholar
  69. Duane Merrill, Michael Garland, and Andrew Grimshaw. Policy-based tuning for performance portability and library co-optimization. In Innovative Parallel Computing (InPar), 2012. IEEE, May 2012.Google Scholar
  70. Gordon E. Moore. Cramming more components onto integrated circuits. Electronics, 38(8):114–117, April 19 1965.Google Scholar
  71. Hoang Duong Thien Nguyen, Dawei Qi, Abhik Roychoudhury, and Satish Chandra. SemFix: program repair via semantic analysis. In Betty H. C. Cheng and Klaus Pohl, editors, 35th International Conference on Software Engineering (ICSE 2013), pages 772–781, San Francisco, USA, May 18–26 2013. IEEE.Google Scholar
  72. Michael O’Neill and Conor Ryan. Automatic generation of caching algorithms. In Kaisa Miettinen et al., editors, Evolutionary Algorithms in Engineering and Computer Science, pages 127–134, Jyväskylä, Finland, 30 May - 3 June 1999. John Wiley & Sons.Google Scholar
  73. Michael O’Neill and Conor Ryan. Grammatical evolution. IEEE Transactions on Evolutionary Computation, 5(4):349–358, August 2001.CrossRefGoogle Scholar
  74. Michael O’Neill and Conor Ryan. Grammatical Evolution: Evolutionary Automatic Programming in a Arbitrary Language, volume 4 of Genetic programming. Kluwer Academic Publishers, 2003.Google Scholar
  75. Michael Orlov and Moshe Sipper. Flight of the FINCH through the Java wilderness. IEEE Transactions on Evolutionary Computation, 15(2):166–182, April 2011.CrossRefGoogle Scholar
  76. John D. Owens, Mike Houston, David Luebke, Simon Green, John E. Stone, and James C. Phillips. GPU computing. Proceedings of the IEEE, 96(5):879–899, May 2008. Invited paper.Google Scholar
  77. Gisele L. Pappa, Gabriela Ochoa, Matthew R. Hyde, Alex A. Freitas, John Woodward, and Jerry Swan. Contrasting meta-learning and hyper-heuristic research: the role of evolutionary algorithms. Genetic Programming and Evolvable Machines, 15(1):3–35, March 2014.CrossRefGoogle Scholar
  78. Norman Paterson and Mike Livesey. Evolving caching algorithms in C by genetic programming. In John R. Koza et al., editors, Genetic Programming 1997: Proceedings of the Second Annual Conference, pages 262–267, Stanford University, CA, USA, 13–16 July 1997. Morgan Kaufmann.Google Scholar
  79. Justyna Petke, Mark Harman, William B. Langdon, and Westley Weimer. Using genetic improvement & code transplants to specialise a C++ program to a problem class. 11th Annual Humies Awards 2014, 14 July 2014. Winner Silver.Google Scholar
  80. Justyna Petke, Mark Harman, William B. Langdon, and Westley Weimer. Using genetic improvement and code transplants to specialise a C++ program to a problem class. In Miguel Nicolau et al., editors, 17th European Conference on Genetic Programming, volume 8599 of LNCS, pages 137–149, Granada, Spain, 23–25 April 2014. Springer.Google Scholar
  81. Bojan Podgornik, Vojteh Leskovsek, Miha Kovacic, and Josef Vizintin. Analysis and prediction of residual stresses in nitrided tool steel. Materials Science Forum, 681, Residual Stresses VIII:352–357, March 2011.Google Scholar
  82. Riccardo Poli, William B. Langdon, and Nicholas Freitag 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).
  83. Vlad Radulescu, Stefan Andrei, and Albert M. K. Cheng. A heuristic-based approach for reducing the power consumption of real-time embedded systems. In Franz Winkler, editor, 16th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC 2014), Timisoara, 22–25 September 2014. Pre-proceedings.Google Scholar
  84. Craig Reynolds. Interactive evolution of camouflage. Artificial Life, 17(2):123–136, Spring 2011.CrossRefGoogle Scholar
  85. Jose L. Risco-Martin, David Atienza, J. Manuel Colmenar, and Oscar 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 Algorithms.Google Scholar
  86. Pablo Rodriguez-Mier, Manuel Mucientes, Manuel Lama, and Miguel I. Couto. Composition of web services through genetic programming. Evolutionary Intelligence, 3(3-4):171–186, 2010.CrossRefGoogle Scholar
  87. Juan Romero, Penousal Machado, and Adrian Carballal. Guest editorial: special issue on biologically inspired music, sound, art and design. Genetic Programming and Evolvable Machines, 14(3):281–286, September 2013. Special issue on biologically inspired music, sound, art and design.Google Scholar
  88. Conor Ryan. Automatic Re-engineering of Software Using Genetic Programming, volume 2 of Genetic Programming. Kluwer Academic Publishers, 1 November 1999.Google Scholar
  89. Eric Schulte, Stephanie Forrest, and Westley Weimer. Automated program repair through the evolution of assembly code. In Proceedings of the IEEE/ACM international conference on Automated software engineering, pages 313–316, Antwerp, 20–24 September 2010. ACM.Google Scholar
  90. Eric Schulte, Jonathan DiLorenzo, Westley Weimer, and Stephanie 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, pages 317–328, Houston, Texas, USA, March 16–20 2013. ACM.Google Scholar
  91. Eric Schulte, Jonathan Dorn, Stephen Harding, Stephanie Forrest, and Westley 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, pages 639–652, Salt Lake City, Utah, USA, 1–5 March 2014. ACM.Google Scholar
  92. Eric Schulte, Zachary P. Fry, Ethan Fast, Westley Weimer, and Stephanie Forrest. Software mutational robustness. Genetic Programming and Evolvable Machines, 15(3):281–312, September 2014.CrossRefGoogle Scholar
  93. Pitchaya Sitthi-amorn, Nicholas Modly, Westley Weimer, and Jason Lawrence. Genetic programming for shader simplification. ACM Transactions on Graphics, 30(6):article:152, December 2011. Proceedings of ACM SIGGRAPH Asia 2011.Google Scholar
  94. Joe Stam. Stereo imaging with CUDA. Technical report, nVidia, V 0.2 3 Jan 2008.Google Scholar
  95. Gilbert Syswerda. Uniform crossover in genetic algorithms. In J. David Schaffer, editor, Proceedings of the third international conference on Genetic Algorithms, pages 2–9, George Mason University, 4–7 June 1989. Morgan Kaufmann.Google Scholar
  96. Westley Weimer, ThanhVu Nguyen, Claire Le Goues, and Stephanie Forrest. Automatically finding patches using genetic programming. In Stephen Fickas, editor, International Conference on Software Engineering (ICSE) 2009, pages 364–374, Vancouver, May 16–24 2009.Google Scholar
  97. Westley Weimer, Stephanie Forrest, Claire Le Goues, and ThanhVu Nguyen. Automatic program repair with evolutionary computation. Communications of the ACM, 53(5):109–116, June 2010.CrossRefGoogle Scholar
  98. Westley Weimer. Advances in automated program repair and a call to arms. In Guenther Ruhe and Yuanyuan Zhang, editors, Symposium on Search-Based Software Engineering, volume 8084 of Lecture Notes in Computer Science, pages 1–3, Leningrad, August 24–26 2013. Springer. Invited keynote.Google Scholar
  99. David R. White, John Clark, Jeremy Jacob, and Simon M. Poulding. Searching for resource-efficient programs: low-power pseudorandom number generators. In Maarten Keijzer et al., editors, GECCO ’08: Proceedings of the 10th annual conference on Genetic and evolutionary computation, pages 1775–1782, Atlanta, GA, USA, 12–16 July 2008. ACM.Google Scholar
  100. David R. White, Andrea Arcuri, and John A. Clark. Evolutionary improvement of programs. IEEE Transactions on Evolutionary Computation, 15(4):515–538, August 2011.CrossRefGoogle Scholar
  101. Josh L. Wilkerson and Daniel Tauritz. Coevolutionary automated software correction. In Juergen Branke et al., editors, GECCO ’10: Proceedings of the 12th annual conference on Genetic and evolutionary computation, pages 1391–1392, Portland, Oregon, USA, 7–11 July 2010. ACM.Google Scholar
  102. Liyuan Xiao, Carl K. Chang, Hen-I Yang, Kai-Shin Lu, and Hsin yi Jiang. Automated web service composition using genetic programming. In 36th Annual IEEE Computer Software and Applications Conference Workshops (COMPSACW 2012), pages 7–12, Izmir, 16–20 July 2012.Google Scholar
  103. Frances Yao, Alan Demers, and Scott Shenker. A scheduling model for reduced cpu energy. In 36th Annual Symposium on Foundations of Computer Science, pages 374–382. IEEE, Oct 1995.Google Scholar
  104. Shin Yoo. Evolving human competitive spectra-based fault localisation techniques. In Gordon Fraser et al., editors, 4th Symposium on Search Based Software Engineering, volume 7515 of Lecture Notes in Computer Science, pages 244–258, Riva del Garda, Italy, September 28–30 2012. Springer.Google Scholar
  105. Ling Zhu and Sandeep Kulkarni. Synthesizing round based fault-tolerant programs using genetic programming. In Teruo Higashino et al., editors, Proceedings of the 15th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 2013), volume 8255 of Lecture Notes in Computer Science, pages 370–372, Osaka, Japan, November 13–16 2013. Springer.Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.Computer ScienceUniversity CollegeLondonUK

Personalised recommendations