A Grammar Design Pattern for Arbitrary Program Synthesis Problems in Genetic Programming

Grammar Guided Genetic Programming has been applied to many problem domains. It is well suited to tackle program synthesis, as it has the capability to evolve code in arbitrary languages. Nevertheless, grammars designed to evolve code have always been tailored to specific problems resulting in bespoke grammars, which makes them difficult to reuse. In this study a more general approach to grammar design in the program synthesis domain is presented. The approach undertaken is to create a grammar for each data type of a language and combine these grammars for the problem at hand, without having to tailor a grammar for every single problem. The approach can be applied to arbitrary problem instances of program synthesis and can be used with any programming language. The approach is also extensible to use libraries available in a given language. The grammars presented can be applied to any grammar-based Genetic Programming approach and make it easy for researches to rerun experiments or test new problems. The approach is tested on a suite of benchmark problems and compared to PushGP, as it is the only GP system that has presented results on a wide range of benchmark problems. The object of this study is to match or outperform PushGP on these problems without tuning grammars to solve each specific problem.

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

[2]  Peter A. Whigham,et al.  Grammatical bias for evolutionary learning , 1996 .

[3]  Sumit Gulwani,et al.  Dimensions in program synthesis , 2010, Formal Methods in Computer Aided Design.

[4]  John R. Koza,et al.  Genetic Programming III: Darwinian Invention & Problem Solving , 1999 .

[5]  John A. Clark,et al.  The GISMOE challenge: constructing the pareto program surface using genetic programming to find better programs (keynote paper) , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[6]  Michael O'Neill,et al.  Grammatical evolution - evolutionary automatic programming in an arbitrary language , 2003, Genetic programming.

[7]  Claire Le Goues,et al.  GenProg: A Generic Method for Automatic Software Repair , 2012, IEEE Transactions on Software Engineering.

[8]  Michael G. Epitropakis,et al.  Gen-O-Fix: An embeddable framework for Dynamic Adaptive Genetic Improvement Programming , 2014 .

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

[10]  Michael O'Neill,et al.  Tonality driven piano compositions with grammatical evolution , 2015, 2015 IEEE Congress on Evolutionary Computation (CEC).

[11]  P. J. Landin,et al.  The next 700 programming languages , 1966, CACM.

[12]  Colin G. Johnson,et al.  Evolving High-Level Imperative Program Trees with Strongly Formed Genetic Programming , 2012, EuroGP.

[13]  Alexandros Agapitos,et al.  Experiments in program synthesis with grammatical evolution: A focus on Integer Sorting , 2014, 2014 IEEE Congress on Evolutionary Computation (CEC).

[14]  Michael O'Neill,et al.  Automatic innovative truss design using grammatical evolution , 2014 .

[15]  Anthony Brabazon,et al.  Evolving parametric aircraft models for design exploration and optimisation , 2014, Neurocomputing.

[16]  David J. Montana,et al.  Strongly Typed Genetic Programming , 1995, Evolutionary Computation.

[17]  Peter A. Whigham,et al.  Grammar-based Genetic Programming: a survey , 2010, Genetic Programming and Evolvable Machines.

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

[19]  Lee Spector,et al.  Automatic Quantum Computer Programming: A Genetic Programming Approach (Genetic Programming) , 2004 .

[20]  Gabriela Ochoa,et al.  Genetic improvement: A key challenge for evolutionary computation , 2016, 2016 IEEE Congress on Evolutionary Computation (CEC).

[21]  Michael O'Neill,et al.  Optimising complex pylon structures with grammatical evolution , 2015, Inf. Sci..

[22]  Lee Spector,et al.  General Program Synthesis Benchmark Suite , 2015, GECCO.

[23]  Holger Claussen,et al.  A comparison of grammatical genetic programming grammars for controlling femtocell network coverage , 2012, Genetic Programming and Evolvable Machines.

[24]  Mark Harman,et al.  Ieee Transactions on Evolutionary Computation 1 , 2022 .