Functional genetic programming and exhaustive program search with combinator expressions

Using a strongly typed functional programming language for genetic programming has many advantages, but evolving functional programs with variables requires complex genetic operators with special cases to avoid creating ill-formed programs. We introduce combinator expressions as an alternative program representation for genetic programming, providing the same expressive power as strongly typed functional programs, but in a simpler format that avoids variables and other syntactic clutter. We outline a complete genetic-programming system based on combinator expressions, including a novel generalized genetic operator, and also show how it is possible to exhaustively enumerate all well-typed combinator expressions up to a given size. Our experimental evidence shows that combinator expressions compare favorably with prior representations for functional genetic programming and also offers insight into situations where exhaustive enumeration outperforms genetic programming and vice versa.

[1]  Susumu Katayama Power of Brute-Force Search in Strongly-Typed Inductive Functional Programming Automation , 2004, PRICAI.

[2]  Kenneth DeJong,et al.  Learning with genetic algorithms: An overview , 1988, Machine Learning.

[3]  M. Schönfinkel Über die Bausteine der mathematischen Logik , 1924 .

[4]  Peter J. Angeline,et al.  Type Inheritance in Strongly Typed Genetic Programming , 1996 .

[5]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[6]  Roland Olsson,et al.  Inductive Functional Programming Using Incremental Program Transformation , 1995, Artif. Intell..

[7]  Keith D. Cooper,et al.  Optimizing for reduced code space using genetic algorithms , 1999, LCTES '99.

[8]  A. Church An Unsolvable Problem of Elementary Number Theory , 1936 .

[9]  Tina Yu,et al.  Performance-Enhanced Genetic Programming , 1997, Evolutionary Programming.

[10]  A. Church Review: A. M. Turing, On Computable Numbers, with an Application to the Entscheidungsproblem , 1937 .

[11]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[12]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[13]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[14]  M. Nicholas,et al.  Impact of types on essentially typeless problems in GP , 1998 .

[15]  Roy Dyckhoff,et al.  Contraction-free sequent calculi for intuitionistic logic , 1992, Journal of Symbolic Logic.

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

[17]  M. Sørensen,et al.  Lectures on the Curry-Howard Isomorphism, Volume 149 (Studies in Logic and the Foundations of Mathematics) , 2006 .

[18]  Simon Peyton Jones,et al.  The Implementation of Functional Programming Languages (Prentice-hall International Series in Computer Science) , 1987 .

[19]  H. Iba,et al.  Inferring a system of differential equations for a gene regulatory network by using genetic programming , 2001, Proceedings of the 2001 Congress on Evolutionary Computation (IEEE Cat. No.01TH8546).

[20]  Gilbert Syswerda,et al.  A Study of Reproduction in Generational and Steady State Genetic Algorithms , 1990, FOGA.

[21]  Vidroha Debroy,et al.  Genetic Programming , 1998, Lecture Notes in Computer Science.

[22]  R. Hindley The Principal Type-Scheme of an Object in Combinatory Logic , 1969 .

[23]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[24]  Kwong-Sak Leung,et al.  Evolving recursive functions for the even-parity problem using genetic programming , 1996 .

[25]  Una-May O'Reilly,et al.  Genetic Programming Applied to Compiler Heuristic Optimization , 2003, EuroGP.

[26]  M. Collins Finding needles in haystacks is harder with neutrality , 2006, Genetic Programming and Evolvable Machines.

[27]  Evan Kirshenbaum,et al.  Genetic Programming with Statically Scoped Local Variables , 2000, GECCO.

[28]  John R. Koza,et al.  Genetic programming (videotape): the movie , 1992 .

[29]  David B. MacQueen,et al.  The Definition of Standard ML (Revised) , 1997 .

[30]  Julian Francis Miller,et al.  Finding Needles in Haystacks Is Not Hard with Neutrality , 2002, EuroGP.

[31]  Simon M. Lucas,et al.  Learning Recursive Functions with Object Oriented Genetic Programming , 2006, EuroGP.

[32]  Tina Yu,et al.  Polymorphism and Genetic Programming , 2001, EuroGP.

[33]  William C. Frederick,et al.  A Combinatory Logic , 1995 .

[34]  Evan R. Kirshenbaum,et al.  Iteration Over Vectors in Genetic Programming , 2001 .

[35]  A. Church A Set of Postulates for the Foundation of Logic , 1932 .

[36]  W. B. Langdon,et al.  Genetic Programming and Data Structures , 1998, The Springer International Series in Engineering and Computer Science.

[37]  Tina Gwoing Yu,et al.  An analysis of the impact of functional programming techniques on genetic programming , 1999 .

[38]  Sean Luke,et al.  Genetic Programming Produced Competitive Soccer Softbot Teams for RoboCup97 , 1998 .

[39]  Terry Van Belle,et al.  Uniform Subtree Mutation , 2002, EuroGP.

[40]  William B. Langdon Evolving Data Structures with Genetic Programming , 1995, ICGA.

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

[42]  Marc Ebner,et al.  On neutral networks and evolvability , 2001, Proceedings of the 2001 Congress on Evolutionary Computation (IEEE Cat. No.01TH8546).

[43]  Robin Milner,et al.  Definition of standard ML , 1990 .

[44]  K. De Jong Learning with Genetic Algorithms: An Overview , 1988 .

[45]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .