Welcome to The Python Genetic Programming Project (PyGP). The project currently consists of a full tree-arhitecture genetic programming algorithm written in Python. Results and screenshots from past runs are available in the Runs section
If you would like to learn more about Genetic Programming, or want to help on the project, contact me in the forums. There's still lots to be done. I can also be e-mailed.
More information than you can shake a stick at about genetic programming
I was dismayed to find that the traditional approach to mating trees was insanely destructive, so I've come up with my own way. In this method, all nodes retain their position, where position is the route down the tree to the node. This is represented as a tuple containing the indeces of children required to traverse to the node. The method will be described in another article shortly, but is already implemented in the current release.
Another in-demand feature is distribution. This involves having a number of localised populations on different machines, and after each generation a portion of the population (~5%) migrates to a different machine. There are a number of issues, mainly central control and migration parameters, that need to be resolved before this feature is ready.
At the moment, an individual consists of a tree and a set of parameters. Nodes within the tree cannot reference any other nodes but their parents. This means things are easy to process, but features like automatically defined functions are not really possible.
I hope to implement more interesting fitness testing, involving multiple instances of agents, such as ant farms.
For some particle systems like rigid bodies, we have fairly accurate and simple macroscopic representations. When considering an object in motion, it is rarely necessary to consider its individual particles. The same cannot be said for other particle systems, like fluids and reaction/diffusion systems. In this branch, genetic programming will be used to (hopefully) discover macroscopic rules for complex systems like these.