Exploiting Subprograms in Genetic Programming

  • Steven B. Fine
  • Erik Hemberg
  • Krzysztof Krawiec
  • Una-May O’ReillyEmail author
Conference paper
Part of the Genetic and Evolutionary Computation book series (GEVO)


Compelled by the importance of subprogram behavior, we investigate how much Behavioral Genetic Programming is sensitive to model bias. We experimentally compare two different decision tree algorithms analyzing whether it is possible to see significant performance differences given that the model techniques select different subprograms and differ in how accurately they can regress subprogram behavior on desired outputs. We find no remarkable difference between REPTree and CART in this regard, though for a modest fraction of our datasets we find that one algorithm results in superior error reduction than the other. We also investigate alternative ways to identify useful subprograms beyond examining those within one program. We propose a means of identifying subprograms from different programs that work well together. This method combines behavioral traces from multiple programs and uses the information derived from modeling the combined program traces.


  1. 1.
    David Basin, Yves Deville, Pierre Flener, Andreas Hamfelt, and Jürgen Fischer Nilsson. Synthesis of programs in computational logic. In PROGRAM DEVELOPMENT IN COMPUTATIONAL LOGIC, pages 30–65. Springer, 2004.CrossRefGoogle Scholar
  2. 2.
    Robyn Ffrancon and Marc Schoenauer. Memetic semantic genetic programming. In Proceedings of the 2015 Annual Conference on Genetic and Evolutionary Computation, GECCO ’15, pages 1023–1030, New York, NY, USA, 2015. ACM.Google Scholar
  3. 3.
    Alex Graves, Greg Wayne, Malcolm Reynolds, Tim Harley, Ivo Danihelka, Agnieszka Grabska-Barwińska, Sergio Gómez Colmenarejo, Edward Grefenstette, Tiago Ramalho, John Agapiou, et al. Hybrid computing using a neural network with dynamic external memory. Nature, 538(7626):471–476, 2016.CrossRefGoogle Scholar
  4. 4.
    Sumit Gulwani. Dimensions in program synthesis. In Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming, pages 13–24. ACM, 2010.Google Scholar
  5. 5.
    Mark Hall, Eibe Frank, Geoffrey Holmes, Bernhard Pfahringer, Peter Reutemann, and Ian H. Witten. The weka data mining software: An update. SIGKDD Explor. Newsl., 11(1):10–18, November 2009.CrossRefGoogle Scholar
  6. 6.
    Thomas Haynes. On-line adaptation of search via knowledge reuse. Genetic Programming 1997: Proceedings of the Second Annual Conference, pages 156–161. Morgan Kaufmann Publishers Inc., 1997.Google Scholar
  7. 7.
    John R Koza. Genetic programming: on the programming of computers by means of natural selection, volume 1. MIT press, 1992.Google Scholar
  8. 8.
    Krzysztof Krawiec. Behavioral Program Synthesis with Genetic Programming, volume 618 of Studies in Computational Intelligence. Springer International Publishing, 2015.Google Scholar
  9. 9.
    Krzysztof Krawiec and Una-May O’Reilly. Behavioral programming: a broader and more detailed take on semantic gp. In Proceedings of the 2014 Annual Conference on Genetic and Evolutionary Computation, pages 935–942. ACM, 2014.Google Scholar
  10. 10.
    Krzysztof Krawiec and Jerry Swan. Pattern-guided genetic programming. In Proceedings of the 15th annual conference on Genetic and evolutionary computation, pages 949–956. ACM, 2013.Google Scholar
  11. 11.
    Paweł Liskowski and Krzysztof Krawiec. Online discovery of search objectives for test-based problems. Evolutionary Computation, 25:375–406, 2016.CrossRefGoogle Scholar
  12. 12.
    James McDermott, David R White, Sean Luke, Luca Manzoni, Mauro Castelli, Leonardo Vanneschi, Wojciech Jaskowski, Krzysztof Krawiec, Robin Harper, Kenneth De Jong, et al. Genetic programming needs better benchmarks. In Proceedings of the 14th annual conference on Genetic and evolutionary computation, pages 791–798. ACM, 2012.Google Scholar
  13. 13.
    Robert I McKay. Fitness sharing in genetic programming. In Proceedings of the 2nd Annual Conference on Genetic and Evolutionary Computation, pages 435–442. Morgan Kaufmann Publishers Inc., 2000.Google Scholar
  14. 14.
    Nicholas Freitag McPhee, Brian Ohs, and Tyler Hutchison. Semantic building blocks in genetic programming. In European Conference on Genetic Programming, pages 134–145. Springer, 2008.Google Scholar
  15. 15.
    Martin C Rinard. Example-driven program synthesis for end-user programming: technical perspective. Communications of the ACM, 55(8):96–96, 2012.CrossRefGoogle Scholar
  16. 16.
    Armando Solar-Lezama. Program synthesis by sketching. PhD Thesis, University of California, Berkeley, 2008.Google Scholar
  17. 17.
    Saurabh Srivastava, Sumit Gulwani, and Jeffrey S Foster. From program verification to program synthesis. In ACM Sigplan Notices, volume 45, pages 313–326. ACM, 2010.Google Scholar
  18. 18.
    Leonardo Vanneschi, Mauro Castelli, and Sara Silva. A survey of semantic methods in genetic programming. Genetic Programming and Evolvable Machines, 15(2):195–214, 2014.CrossRefGoogle Scholar
  19. 19.
    Westley Weimer, Stephanie Forrest, Claire Le Goues, and ThanhVu Nguyen. Automatic program repair with evolutionary computation. Communications of the ACM, 53(5):109–116, 2010.CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  • Steven B. Fine
    • 1
  • Erik Hemberg
    • 1
  • Krzysztof Krawiec
    • 2
  • Una-May O’Reilly
    • 1
    Email author
  1. 1.MIT CSAILCambridgeUSA
  2. 2.Poznan Institute of TechnologyPoznańPoland

Personalised recommendations