A Study of Genetic Programming and Grammatical Evolution for Automatic Object-Oriented Programming: A Focus on the List Data Structure

Automatic programming is a concept which until today has not been fully achieved using evolutionary algorithms. Despite much research in this field, a lot of the concepts remain unexplored. The current study is part of ongoing research aimed at using evolutionary algorithms for automatic programming. The performance of two evolutionary algorithms, namely, genetic programming and grammatical evolution are compared for automatic object-oriented programming. Genetic programming is an evolutionary algorithm which searches a program space for a solution program. A program generated by genetic programming is executed to yield a solution to the problem at hand. Grammatical evolution is a variation of genetic programming which adopts a genotype–phenotype distinction and uses grammars to map from a genotypic space to a phenotypic (program) space. The study implements and tests the abilities of these approaches as well as a further variation of genetic programming, namely, object-oriented genetic programming, for automatic object-oriented programming. The application domain used to evaluate these approaches is the generation of abstract data types, specifically the class for the list data structure. The study also compares the performance of the algorithms when human programmer problem domain knowledge is incorporated and when such knowledge is not incorporated. The results show that grammatical evolution performs better than genetic programming and object-oriented genetic programming, with object-oriented genetic programming outperforming genetic programming. Future work will focus on evolution of programs that use the evolved classes.

[1]  Wilker Shane Bruce The Application of Genetic Programming to The Automatic Generation of Object-Oriented Programs , 1995 .

[2]  Anthony Brabazon,et al.  An investigation into automatically defined function representations in Grammatical Evolution , 2009 .

[3]  Anthony Brabazon,et al.  Structural and nodal mutation in grammatical evolution , 2009, GECCO '09.

[4]  Craig W. Reynolds An evolved, vision-based behavioral model of coordinated group motion , 1993 .

[5]  Cândida Ferreira,et al.  Gene Expression Programming: A New Adaptive Algorithm for Solving Problems , 2001, Complex Syst..

[6]  José Ignacio Hidalgo,et al.  Modeling glycemia in humans by means of Grammatical Evolution , 2014, Appl. Soft Comput..

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

[8]  Margaret M. Burnett,et al.  Operational versus definitional: a perspective on programming paradigms , 1992, Computer.

[9]  Shunsuke Inenaga,et al.  Palindrome pattern matching , 2013, Theor. Comput. Sci..

[10]  William B. Langdon,et al.  Genetic Programming and Data Structures: Genetic Programming + Data Structures = Automatic Programming! , 1998 .

[11]  John R. Koza,et al.  Genetic Programming as a Darwinian Invention Machine , 1999, EuroGP.

[12]  Michael O'Neill,et al.  Crossover in Grammatical Evolution: A Smooth Operator? , 2000, EuroGP.

[13]  Mengjie Zhang,et al.  Impacts of sampling strategies in tournament selection for genetic programming , 2012, Soft Comput..

[14]  Wolfgang Banzhaf,et al.  Neutral Variations Cause Bloat in Linear GP , 2003, EuroGP.

[15]  Maarten Keijzer,et al.  Crossover in Grammatical Evolution , 2003, Genetic Programming and Evolvable Machines.

[16]  Simon M. Lucas,et al.  Evolving Modular Recursive Sorting Algorithms , 2007, EuroGP.

[17]  Anthony Brabazon,et al.  An Analysis of the Behaviour of Mutation in Grammatical Evolution , 2010, EuroGP.

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

[19]  Gilbert Syswerda,et al.  Uniform Crossover in Genetic Algorithms , 1989, ICGA.

[20]  Xiang Li,et al.  Utilising Restricted For-Loops in Genetic Programming , 2007 .

[21]  Arthur L. Samuel,et al.  Some studies in machine learning using the game of checkers , 2000, IBM J. Res. Dev..

[22]  Riccardo Poli,et al.  An Experimental Analysis of Schema Creation, Propagation and Disruption in Genetic Programming , 1997, ICGA.

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

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

[25]  W. A. Tackett,et al.  The donut problem: scalability, generalization and breeding policies in genetic programming , 1994 .

[26]  Li Chen,et al.  Macro-grammatical evolution for nonlinear time series modeling—a case study of reservoir inflow forecasting , 2011, Engineering with Computers.

[27]  John R. Koza,et al.  Genetic programming 2 - automatic discovery of reusable programs , 1994, Complex Adaptive Systems.

[28]  Colin G. Johnson,et al.  Semantically driven crossover in genetic programming , 2008, 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence).

[29]  Conor Ryan,et al.  Grammatical Evolution: A Steady State approach , 2008 .

[30]  Franz Rothlauf,et al.  On the Locality of Grammatical Evolution , 2006, EuroGP.

[31]  John R. Koza,et al.  Genetic programming - on the programming of computers by means of natural selection , 1993, Complex adaptive systems.

[32]  Wilker Shane Bruce Automatic generation of object-oriented programs using genetic programming , 1996 .

[33]  Peter Nordin,et al.  Complexity Compression and Evolution , 1995, ICGA.

[34]  Jan Mendling,et al.  Declarative versus Imperative Process Modeling Languages: The Issue of Understandability , 2009, BMMDS/EMMSAD.

[35]  Anthony Brabazon,et al.  Genotype representations in grammatical evolution , 2010, Appl. Soft Comput..

[36]  Fardin Ahmadizar,et al.  Artificial neural network development by means of a novel combination of grammatical evolution and genetic algorithm , 2015, Eng. Appl. Artif. Intell..

[37]  David E. Goldberg,et al.  Genetic Algorithms in Search Optimization and Machine Learning , 1988 .

[38]  Tomoharu Nagao,et al.  Evolution of sorting algorithm using graph structured program evolution , 2007, 2007 IEEE International Conference on Systems, Man and Cybernetics.

[39]  Michael T. Goodrich,et al.  Education forum: Web Enhanced Textbooks , 1998, SIGA.

[40]  Ernesto Costa,et al.  Dynamic Limits for Bloat Control: Variations on Size and Depth , 2004, GECCO.

[41]  K. E. Kinnear,et al.  Evolving a sort: lessons in genetic programming , 1993, IEEE International Conference on Neural Networks.

[42]  Riccardo Poli,et al.  A Field Guide to Genetic Programming , 2008 .

[43]  Colin G. Johnson,et al.  Positional Effect of Crossover and Mutation in Grammatical Evolution , 2010, EuroGP.

[44]  Michael O'Neill,et al.  Grammar based function definition in Grammatical Evolution , 2000, GECCO.

[45]  Nelishia Pillay,et al.  An investigation into the use of genetic programming for the induction of novice procedural programming solution algorithms in intelligent programming tutors. , 2004 .

[46]  Nelishia Pillay,et al.  Automatic programming using genetic programming , 2013, 2013 Third World Congress on Information and Communication Technologies (WICT 2013).

[47]  Alan Blair,et al.  Dynamically Defined Functions In Grammatical Evolution , 2006, 2006 IEEE International Conference on Evolutionary Computation.

[48]  Josh C. Bongard,et al.  Improving genetic programming based symbolic regression using deterministic machine learning , 2013, 2013 IEEE Congress on Evolutionary Computation.

[49]  Franz Rothlauf,et al.  On the Locality of Standard Search Operators in Grammatical Evolution , 2014, PPSN.

[50]  Russ Abbott,et al.  Object-Oriented Genetic Programming: An Initial Implementation , 2003, MLMTA.

[51]  Astro Teller,et al.  Turing completeness in the language of genetic programming with indexed memory , 1994, Proceedings of the First IEEE Conference on Evolutionary Computation. IEEE World Congress on Computational Intelligence.

[52]  Ernesto Costa,et al.  Dynamic limits for bloat control in genetic programming and a review of past and current bloat theories , 2009, Genetic Programming and Evolvable Machines.

[53]  Riccardo Poli,et al.  On the Search Properties of Different Crossover Operators in Genetic Programming , 2001 .

[54]  Richard C. Waters,et al.  Automatic programming: myths and prospects , 1988, Computer.

[55]  Peter J. Angeline,et al.  A Historical Perspective on the Evolution of Executable Structures , 1998, Fundam. Informaticae.

[56]  Kenneth E. Kinnear,et al.  Generality and Difficulty in Genetic Programming: Evolving a Sort , 1993, ICGA.

[57]  Nelishia Pillay,et al.  A hybrid approach to automatic programming for the object-oriented programming paradigm , 2007, SAICSIT '07.

[58]  Nelishia Pillay,et al.  A genetic programming system for the induction of iterative solution algorithms to novice procedural programming problems , 2005 .

[59]  Peter Nordin,et al.  Genetic programming - An Introduction: On the Automatic Evolution of Computer Programs and Its Applications , 1998 .

[60]  Qingchun Wang,et al.  Evolving Computing and Automatic Programming , 2011, 2011 International Conference on Internet Computing and Information Services.