Solving Novel Program Synthesis Problems with Genetic Programming using Parametric Polymorphism

by   Edward Pantridge, et al.

Contemporary genetic programming (GP) systems for general program synthesis have been primarily concerned with evolving programs that can manipulate values from a standard set of primitive data types and simple indexed data structures. In contrast, human programmers do not limit themselves to a small finite set of data types and use polymorphism to express an unbounded number of types including nested data structures, product types, and generic functions. Code-building Genetic Programming (CBGP) is a recently introduced method that compiles type-safe programs from linear genomes using stack-based compilation and a formal type system. Although prior work with CBGP has shown initial demonstrations of polymorphism inside evolved programs, we have provided a deeper exploration of these capabilities through the evolution of programs which make use of generic data types such as key-value maps, tuples, and sets, as well as higher order functions and functions with polymorphic type signatures. In our experiments, CBGP is able to solve problems with all of these properties, where every other GP system that we know of has restrictions that make it unable to even consider problems with these properties. This demonstration provides a significant step towards fully aligning the expressiveness of GP to real world programming.


page 1

page 2

page 3

page 4


Functional Code Building Genetic Programming

General program synthesis has become an important application area for g...

Code Building Genetic Programming

In recent years the field of genetic programming has made significant ad...

Tag-based Genetic Regulation for Genetic Programming

We introduce and experimentally demonstrate tag-based genetic regulation...

HOTGP – Higher-Order Typed Genetic Programming

Program synthesis is the process of generating a computer program follow...

Multi-Robot Path Planning Via Genetic Programming

This paper presents a Genetic Programming (GP) approach to solving multi...

Evolving simple programs for playing Atari games

Cartesian Genetic Programming (CGP) has previously shown capabilities in...

Evolving Event-driven Programs with SignalGP

We present SignalGP, a new genetic programming (GP) technique designed t...

Please sign up or login with your details

Forgot password? Click here to reset