Watchmaker

  759 downloads
0.7.0 The Apache License 2.0    
3.3/5 15
An object-oriented framework

description

download

specifications

changelog

Watchmaker is an extensible, high-performance, object-oriented framework for implementing platform-independent evolutionary algorithms (EAs) in Java. The framework provides type-safe, non-invasive evolution for arbitrary representations.

Here are some key features of "Watchmaker":

- Multi-Threaded Evolution Engine - Takes advantage of parallelism to improve performance on multi-core and multi-processor machines.
- Ultra-Fast Random Number Generators - The Uncommons Maths library provides the high-quality, high-performance random number generators (RNGs) used by the Watchmaker Framework. Other third-party RNGs can also be used if required.
- Non-Invasive - Objects of any type can be evolved without the evolvable class having to implement a particular interface or extend from a common base class. This means that there are no restrictions on the implementation of the evolvable type and no dependencies on any framework classes. The evolvable type is completely decoupled.
- Pluggable Selection Strategies - Roulette Wheel Selection, Tournament Selection, Rank Selection, Truncation Selection and Stochastic Universal Sampling are all provided. Alternatively, you can implement your own selection strategy quickly and easily.
- Flexible Evolution Schemes - The evolution process can be as simple or as complicated as you like. A single step or several operators combined in sequence and/or with branching. Use the provided operators, implement your own, or use a combination of both.
- Re-usable Operators for Common Types - Cross-over and mutation implementations for several data types including strings, arrays and lists.
- Interactive Evolutionary Algorithms - Support for user-guided selection makes the framework suitable for applictions in which defining an adequate fitness function is difficult, such as evolutionary art and evolutionary music.

A working knowledge of Java 5 or later is assumed (including a basic understanding of generics). Using the framework, simple evolutionary algorithms can be developed by implementing just a few methods.

Please feel free to suggest new features and enhancements.
READ MORE   
Last updated on December 15th, 2009

0 User reviews so far.

SUBMIT