Darwin is a Java framework for building genetic algorithms. The Darwin framework was first made available in 2003 and has had several minor revisions up to the last release (1.2) in March 2007. Since then, Darwin has undergone a major renovation resulting in the latest version, known as "Darwin 2". The project emphasizes 1) extensibility of the code (i.e. you can make it do whatever you want); 2) the separation of framework (core) classes and application classes; 3) maintaining parallels with natural evolutionary mechanisms. Darwin is not optimized for fast and efficient evolutionary computation, but it does do some appropriate caching of calculated results.
It is intended to build a fuller set of examplars to show the genetic algorithm methods in use. Contributions are welcome! Currently there are two examples, one of a biological nature: the Peppered Moth; and one of a mathematical nature: the Traveling Salesman. See Darwin Applet to see the peppered moth simulation in an applet.
Darwin 2 is a relatively complex framework. It is made up (as of 2.1.9) of 342 framework classes which together with the unit tests and resources, comprises 34,000+ lines of code. It depends on three other Rubecula projects: BeanPot (4,800 lines), toString (1,200), and Jexpression (4,200). See the links below for more documentation on these components. And of course there are all of the included libraries, mainly from the Jakarta project. The team therefore welcomes new contributors, either in framework development, testing, or example building. Financial contributions would be very welcome, too.
If you've read this far, it should be fairly obvious that this project has nothing whatsoever to do with the Apple operating system called Darwin. This project is named in honor of Charles Darwin. And it's further inspired by Richard Dawkins, (formerly) Simonyi Professor of the Public Understanding of Science at the University of Oxford.
Developed by: Rubecula Software
Last updated: 2009-10-05 By: Robin Hillyard