Cartesian genetic programming is a form of
genetic programming that uses a
graph representation
In computer science, a graph is an abstract data type that is meant to implement the undirected graph and directed graph concepts from the field of graph theory within mathematics.
A graph data structure consists of a finite (and possibly mut ...
to encode
computer programs. It grew from a method of evolving
digital circuits developed by Julian F. Miller and Peter Thomson in 1997. The term ‘Cartesian genetic programming’ first appeared in 1999 and was proposed as a general form of genetic programming in 2000. It is called ‘
Cartesian Cartesian means of or relating to the French philosopher René Descartes—from his Latinized name ''Cartesius''. It may refer to:
Mathematics
*Cartesian closed category, a closed category in category theory
*Cartesian coordinate system, modern ...
’ because it represents a program using a two-dimensional grid of
nodes
In general, a node is a localized swelling (a "knot") or a point of intersection (a Vertex (graph theory), vertex).
Node may refer to:
In mathematics
*Vertex (graph theory), a vertex in a mathematical graph
*Vertex (geometry), a point where two ...
.
Miller's website explains how CGP works. He edited a book entitled ''Cartesian Genetic Programming'', published in 2011 by
Springer.
The open source project dCGP implements a differentiable version of CGP developed at the European Space Agency by Dario Izzo, Francesco Biscani and Alessio Mereta
[Izzo, D. and Biscani, F. and Mereta, A.: Differentiable Genetic Programming. In: Proc. European Conference on Genetic Programming, LNCS, vol. 10196, pp. 35–51. Springer (2017)] able to approach symbolic regression tasks, to find solution to differential equations, find prime integrals of dynamical systems, represent variable topology artificial neural networks and more.
See also
*
Genetic programming
*
Gene expression programming
*
Grammatical evolution
*
Linear genetic programming
*
Multi expression programming
References
Genetic programming
{{Compu-prog-stub