Behavioral Program Synthesis: Insights and Prospects

Genetic programming (GP) is a stochastic, iterative generate-and-test approach to synthesizing programs from tests, i.e. examples of the desired input-output mapping. The number of passed tests, or the total error in continuous domains, is a natural objective measure of a program’s performance and a common yardstick when experimentally comparing algorithms. In GP, it is also by default used to guide the evolutionary search process. An assumption that an objective function should also be an efficient ‘search driver’ is common for all metaheuristics, such as the evolutionary algorithms which GP is a member of. Programs are complex combinatorial structures that exhibit even more complex input-output behavior, and in this chapter we discuss why this complexity cannot be effectively reflected by a single scalar objective. In consequence, GP algorithms are systemically ‘underinformed’ about the characteristics of programs they operate on, and pay for this with unsatisfactory performance and limited scalability. This chapter advocates behavioral program synthesis, where programs are characterized by informative execution traces that enable multifaceted evaluation and substantially change the roles of components in an evolutionary infrastructure. We provide a unified perspective on past work in this area, discuss the consequences of the behavioral viewpoint, outlining the future avenues for program synthesis and the wider application areas that lie beyond.

[1]  Alan S. Perelson,et al.  Searching for Diverse, Cooperative Populations with Genetic Algorithms , 1993, Evolutionary Computation.

[2]  Lee Spector,et al.  Genetic Programming and Autoconstructive Evolution with the Push Programming Language , 2002, Genetic Programming and Evolvable Machines.

[3]  J. Ross Quinlan,et al.  C4.5: Programs for Machine Learning , 1992 .

[4]  Leonardo Vanneschi,et al.  A Study of Fitness Distance Correlation as a Difficulty Measure in Genetic Programming , 2005, Evolutionary Computation.

[5]  Graham Kendall,et al.  Searching the Hyper-heuristic Design Space , 2014, Cognitive Computation.

[6]  Krzysztof Krawiec,et al.  Geometric Semantic Genetic Programming , 2012, PPSN.

[7]  Giulio Sandini,et al.  Developmental robotics: a survey , 2003, Connect. Sci..

[8]  Krzysztof Krawiec,et al.  On relationships between semantic diversity, complexity and modularity of programming tasks , 2012, GECCO '12.

[9]  Richard A. Watson Compositional Evolution - The Impact of Sex, Symbiosis, and Modularity on the Gradualist Framework of Evolution , 2006, The Vienna series in theoretical biology.

[10]  Maria Liakata,et al.  Towards Robot Scientists for autonomous scientific discovery , 2010, Automated experimentation.

[11]  Wolfgang Banzhaf,et al.  Linear Genetic Programming (Genetic and Evolutionary Computation) , 2006 .

[12]  Krzysztof Krawiec,et al.  Using Co-solvability to Model and Exploit Synergetic Effects in Evolution , 2010, PPSN.

[13]  Kalyanmoy Deb,et al.  A fast and elitist multiobjective genetic algorithm: NSGA-II , 2002, IEEE Trans. Evol. Comput..

[14]  Bernhard Sendhoff,et al.  A framework for evolutionary optimization with approximate fitness functions , 2002, IEEE Trans. Evol. Comput..

[15]  Krzysztof Krawiec,et al.  Improving Genetic Programming with Behavioral Consistency Measure , 2014, PPSN.

[16]  Lee Spector,et al.  Solving Uncompromising Problems With Lexicase Selection , 2015, IEEE Transactions on Evolutionary Computation.

[17]  Krzysztof Krawiec,et al.  Comparison of Semantic-aware Selection Methods in Genetic Programming , 2015, GECCO.

[18]  Krzysztof Krawiec,et al.  Pattern-guided genetic programming , 2013, GECCO '13.

[19]  Krzysztof Krawiec,et al.  Behavioral programming: a broader and more detailed take on semantic GP , 2014, GECCO.

[20]  U. Grenander Advances in Pattern Theory , 1989 .

[21]  Robert I. McKay,et al.  Fitness Sharing in Genetic Programming , 2000, GECCO.

[22]  D. Hofstadter,et al.  Godel, Escher, Bach: An Eternal Golden Braid , 1979 .