Genetic programming with polymorphic types and higher-order functions

  title={Genetic programming with polymorphic types and higher-order functions},
  author={Franck Binard and Amy P. Felty},
  booktitle={GECCO '08},
This article introduces our new approach to program representation for genetic programming (GP). We replace the usual s-expression representation scheme by a strongly-typed abstraction-based representation scheme. This allows us to represent many typical computational structures by abstractions rather than by functions defined in the GP system's terminal set. The result is a generic GP system that is able to express programming structures such as recursion and data types without explicit… 

Figures and Tables from this paper

Generating lambda term individuals in typed genetic programming using forgetful A∗
This paper presents population initialization methods within a framework of GP over simply typed lambda calculus that can be also used in the standard GP approach, and proposes a novel geometric strategy that balances those two approaches.
Utilization of reductions and abstraction elimination in typed genetic programming
The role of reductions in the process of generating initial population is discussed and two novel crossover operations based on abstraction elimination capable of handling general form of typed lambda term while being a straight generalization of the standard crossover operation are proposed.
Combining top-down and bottom-up approaches for automated discovery of typed programs
This paper proposes a way of representing program search space explicitly, with a top-down hierarchy of semi-constructed programs, and backs this claim by a simple experiment utilizing a Monte-Carlo Tree Search algorithm.
MT-CGP: mixed type cartesian genetic programming
This paper presents a version of Cartesian Genetic Programming that handles multiple data types, and demonstrates that this allows evolution to quickly find competitive, compact, and human readable solutions on multiple classification tasks.
On the Expressive Power of Programming Languages for Generative Design - The Case of Higher-Order Functions
The concept of higher-order function and its use for Generative Design is explained, the support for HOF in the most used programming languages in the GD field is compared and the pedagogy of HOFs is discussed.
A survey of modularity in genetic programming
The goal in this paper is to survey the literature on modularity in Genetic Programming GP, which will include Automatically Defined Functions ADFs, Automaticallydefined Macros ADM, Adaptive Representation Through Learning ARL, Module Acquisition MA, Hierarchically Defined Local Modules HGP, Higher Order Functions using λ calculus LC and Combinators.
A Combined Analytical and Search-Based Approach for the Inductive Synthesis of Functional Programs
The main contribution of the dissertation is the algorithm Igor2 for the induction of functional programs, based on search in program spaces but derives candidate programs directly from examples, rather than using them as test cases, and thereby prunes many programs.
Using context blocks to implement Node-attached Modules in genetic programming
  • M. Gregor, J. Spalek
  • Computer Science
    2013 IEEE 17th International Conference on Intelligent Engineering Systems (INES)
  • 2013
The paper presents extensions to the standard version of genetic programming that implement a novel approach to modular genetic programming based on modules stored with the abstract syntax tree, but also attached to nodes that call them (Node-attached Modules with Ancestry Tracking).
Inductive Programming: A Survey of Program Synthesis Techniques
Theoretical results and methods of inductive program synthesis that have been developed in different research fields until today are surveyed.
Evolving Workflow Graphs Using Typed Genetic Programming
A technique for construction of ensembles based on typed genetic programming is presented, which describes an ensemble as a directed acyclic graph, which is internally represented as a tree evolved by the genetic programming.


An abstraction-based genetic programming system
System F is introduced, an expressive λ-calculus, for representing programs and types that provides the potential for a genetic programming system to evolve looping, recursion, lists, trees and many other typical programming structures and behavior.
Recursion , Lambda Abstractions and Genetic Programming
A particular kind of program structure is presented to serve these purposes: modules are represented as λ abstractions and their reuse is achieved through an implicit recursion, and a type system is used to preserve this structure.
Strongly Typed Genetic Programming
  • D. Montana
  • Computer Science
    Evolutionary Computation
  • 1995
Strongly typed genetic programming (STGP) is an enhanced version of genetic programming that enforces data-type constraints and whose use of generic functions and generic data types makes it more powerful than other approaches to type-constraint enforcement.
Strongly Typed Genetic Programming in Evolving Cooperation Strategies
The results of the experiments indicate that STGP is able to evolve programs that perform signi cantly better than GP evolved programs, and the programs gener ated by STGP were easier to understand.
Performance-Enhanced Genetic Programming
This work addresses the problem of the performance overheads of evolving a large number of data structures and demonstrates how the evolutionary process can be achieved with much greater efficiency through the use of a formally-based representation and strong typing.
Genetic programming - on the programming of computers by means of natural selection
  • J. Koza
  • Computer Science
    Complex adaptive systems
  • 1993
This book discusses the evolution of architecture, primitive functions, terminals, sufficiency, and closure, and the role of representation and the lens effect in genetic programming.
Genetic programming: a paradigm for genetically breeding populations of computer programs to solve problems
In this new "genetic programming" paradigm, populations of computer programs are genetically bred using the Darwinian principle of survival of the fittest and using a genetic crossover (recombination) operator appropriate for genetically mating computer programs.
On Computable Numbers, with an Application to the Entscheidungsproblem
This chapter discusses the application of the diagonal process of the universal computing machine, which automates the calculation of circle and circle-free numbers.
Proofs and types
Sense, denotation and semantics natural deduction the Curry-Howard isomorphism the normalisation theorem Godel's system T coherence spaces denotational semantics of T sums in natural deduction system
Towards a theory of type structure
7)(D) = B[w][71t]#D] and delta is a functor from Funct(C, C) into C. Even before defining the functors arrow and delta, it can be shown that B maps every type expression into a functor from C T into