PolyGP: a polymorphic genetic programming system in Haskell

In general, the machine learning process can be accelerated through the use of heuristic knowledge about the problem solution. For example, monomorphic typed Genetic Programming (GP) uses type information to reduce the search space and improve performance. Unfortunately, monomorphic typed GP also loses the generality of untyped GP: the generated programs are only suitable for inputs with the specified type. Polymorphic typed GP improves over monomorphic and untyped GP by allowing the type information to be expressed in a more generic manner, and yet still imposes constraints on the search space. This paper describes a polymorphic GP system which can generate polymorphic programs: programs which take inputs of more than one type and produces outputs of more than one type. We also demonstrate its operation through the generation of the “map” polymorphic program.

[1]  Douglas B. Lenat,et al.  The Role of Heuristics in Learning by Discovery: Three Case Studies , 1983 .

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

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

[4]  Roger L. Wainwright,et al.  Type inheritance in strongly typed genetic programming , 1996 .

[5]  J. Barkley Rosser,et al.  Highlights of the History of the Lambda-Calculus , 1982, Annals of the History of Computing.

[6]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

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

[8]  C. Clack,et al.  Recursion , Lambda Abstractions and Genetic Programming , 2022 .

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

[10]  J. K. Kinnear,et al.  Alternatives in automatic function definition: a comparison of performance , 1994 .

[11]  Una-May O'Reilly,et al.  Genetic Programming II: Automatic Discovery of Reusable Programs. , 1994, Artificial Life.

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

[13]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[14]  P. Ross,et al.  An adverse interaction between crossover and restricted tree depth in genetic programming , 1996 .