Darwin 2: Evolutionary Computation Java Framework

Darwin, the Java framework for evolutionary computation, has undergone a long-awaited major overhaul. The new version is now known as "Darwin 2" to indicate that it is based on a very significant set of changes. We believe that Darwin 2 is the most powerful, extensible and easy-to-use system for genetic algorithms available today from the open source community. First and foremost is that the components which make up evolutionary computation applications are now assembled by configuring a set of beans, each of which implements one of the many interfaces defined by the framework. The configuration is typically based on an XML file and is interpreted by a configuration manager with dependency injection. For this purpose, Darwin 2 uses a custom-made, but generic bean container called BeanPot (http://beanpot.sourceforge.net/) which has a minimal footprint and provides just the required functionality (including implicit registering of MBeans with a JMX agent). Of course, Spring could equally well be used. In addition, many more types of genetic artifacts are available out of the box, for example sex-based chromosomes to enable sexual selection. A more flexible and powerful subsystem is provided for driving the generations and environmental changes. What has not changed is the commitment to style of programming to interfaces which makes possible the easy configuration and unlimited extensibility. Darwin 2 is now built using Maven. The license has been changed to the GPL. This release, 2.0, is still considered to be at beta stability but it is fully functional and comes with two fully working applications, one sexual (the Peppered Moth Applet) and one asexual (the Traveling Salesman Solution). A 2.1 release is expected by the end of 2009 which it is hoped will be able to incorporate the suggestions that we invite experts in the field to make, particularly in the area of nomenclature for concepts and classes. For more details, there are several places to look: * http://darwin.sourceforge.net/; * darwin.wiki; * package descriptor for com.rubecula.darwin.startup in the apidocs; * README.html. And, of course, the apidocs in general and the src.zip file.