Groovy Java Genetic Programming

Genetic Programming (JGProg) is an open-source pure Java implementation of a strongly-typed Genetic Programming experimentation platform. Three example "worlds" are provided, in which a population evolves and solves the problem. Now that's Groovy. The source code is released under the GNU General Public Licence.

Go to the Groovy Java main home page

How do I Get Started?

About the Project Page

The project page contains links to various elements of the project: forums, mailing lists, news items, downloads, etc.

Public Forums

There are three public forums anyone can post to and read:

Bug Tracking

Here you can see open and closed bug reports or submit a bug report.

Mailing Lists

There is one mailing list you can subscribe to:

CVS Repository

You can browse the code here, or if you're an "official" developer for the JGProg project, you can use CVS to check out, modify, and check in code.

File Releases

Here's where you can download releases. There are two modules:

Each module has a zip link, which will give you a zip file, and a sig link, which will give you the PGP signature of the zip file so that you can verify the zip file hasn't been tampered with. To verify the signature, get a hold of the groovyjava PGP public key at, get a hold of PGP (from PGPI, if you're not in the U.S. or Canada) as well, and run the sig file through PGP in verify mode (it usually helps to put the sig file in the same directory as the zip file before doing the verify). The signature should come up OK.

You can also see the Release Notes and Changelog for the release.

Latest News

Goings-on in the JGProg world. Effectively a version of the jprog-announce mailing list.

Documentation (javadoc)


Making it work with Java 1.1.x

The JGProg code will work out of the box with Java 1.2 and up. However, because it relies on collection classes native to Java 2, if you're using Java 1.1.x then you have just a little more work to do. Go to Sun's JavaBeans Infobus Page and download the Java 1.1 Collections package (it's about 3/4 of the way down the page). This package is a 100% pure Java implementation of all the collection classes that come standard with Java 2, except because of package naming conventions, the classes aren't in java.util. According to Sun, they just took the 1.2 source code to the collection classes and compiled it under 1.1 (changing the package names). So it's bug-for-bug compatible, and that's quite Groovy.

Unzip the zipfile and put the collections.jar file somewhere. Next you will need to download the source code to JGProg and add the following line to the imports declarations in every file:


Now add collections.jar to your CLASSPATH and then recompile JGProg.

Note that when you move to Java 1.2/1.3, you will probably want to undo these changes (i.e. remove collections.jar from the CLASSPATH, remove the import lines, and recompile).

Things You Can Do to Help!

All you have to do is pick something from this laundry list, work on it, and submit the code to me. Your changes, if they work OK and look good, will be incorporated in the very next release of JGProg as soon as I can manage it.

Problems on this page? Bug reports? Enhancement ideas? Contact Robert Baruch.
Last Update: 25 April 2000