This table is intended to be a comprehensive list of evolutionary algorithm software frameworks that support some flavour of genetic programming. Each entry lists the language the framework is written in, which program representations it supports and whether the software still appears to be being actively developed or not.

If you know of any other genetic programming software that has been omitted from this list, then please leave a comment with details.

Continue reading »

Framework License Lang Tree GE CFG-GP CGP GEP Active?
AForge.NET LGPL .NET
Beagle LGPL C++
DEAP LGPL Python
DGPF LGPL Java
DRP GPL Ruby
Discipulus Commercial
ECF ? C++
ECJ AFL Java
EO LGPL C++ ? ? ? ? ?
EpochX LGPL Java
ep4js Apache JScript
Eva2 LGPL Java
EpochX genetic programming software

EpochX is a Java framework for genetic programming

I have just released version 1.3 of EpochX, a Java based genetic programming framework built specifically for researchers working with genetic programming. Significant additions in version 1.3 include a hooks system which allows the dynamic modification of the population and programs mid-execution and an expanded set of statistics that can be obtained live while the run proceeds. There are a whole swathe of other improvements and bugfixes too.

The documentation for EpochX is also expanding as well. The first half of the Complete Guide documentation has now been published to the website.

Downloads and documentation are all available from www.epochx.org.

One of my worries about genetic programming is that we may just be shifting the problem of programming to the (equally difficult?) task of problem specification in the fitness function. This would be similar to the move made from assembly language to higher level languages such as Fortran in the 1950s. At the time this was seen as essentially solving the problem of programming, but that clearly isn’t the case, the problem was merely shifted to a different (albeit easier to understand) paradigm. In the 50s there were advantages such as easier to read and debug code, and shorter programs. Now, if we make the complete shift to formal specification for an evolving generator, what will the benefits be?

Initially it seemed to me that this would be a no-win situation. By requiring a formal definition of the problem, non-trivial programs are still going to require non-trivial specifications. Further, the skill of writing non-ambiguous and correct formal specifications is a challenging task requiring a reasonably in-depth knowledge of logic and the sort of mathematics that many shy away from.

What would be the ideal situation? Ideally any average non-programmer would be able to generate a program by doing no more than describing what it should do. That is still infeasible, but if we could automatically generate programs from an informal requirements document, then that would be a useful step! This has more practical potential than is immediately obvious. There has been a rather large amount of research, going back as far as the 1980s, into automatically generating formal specifications from informal, natural language definitions. Some of the results appear very impressive. So, if we are able to generate formal specifications from something close to natural language, and if we are able to automatically generate computer programs that satisfy those specifications, then it immediately becomes obvious that we can combine these two steps. We can generate programs from an informal description with very little expert interference. That is the theory at least.

This is not trivial in practice since there are difficulties in expressing formal specifications such that they provide a fitness function which rewards partial solutions and the generation of the specifications from natural language is farĀ  from perfect. However, these problems are certainly solvable and the solution would be a major step towards an admirable aim.

XGE is a serious research tool for grammatical evolution

http://xge.epochx.org

If you haven’t already heard – EpochX is an amazing new research tool for evolving computer programs using genetic programming. But then I would say that – I helped write it :) . For information about EpochX you should see the website, which as it so happens is what this post is all about.

epochx-logo-small

http://www.epochx.org

I have just launched the redesigned EpochX website at http://www.epochx.org. The new website is generally clearer and easier to use, it also incorporates the new branding imagery. There is also a discussion group available which will hopefully provide an avenue for questions, feedback and announcements. A sub-site is incorporated for XGE, the grammatical evolution version of the software. The XGE website is accessible directly at http://xge.epochx.org.

There is more work to be done on the website, particularly providing resources such as tutorials and indepth guides. These will come over time, and be published to the website when they’re completed, as will improvements to the code itself.

© 2012 TC33.org Suffusion theme by Sayontan Sinha