Watchmaker

An object-oriented framework
Download

Watchmaker Ranking & Summary

Advertisement

  • Rating:
  • License:
  • The Apache License 2.0
  • Price:
  • FREE
  • Publisher Name:
  • Daniel W. Dyer
  • Publisher web site:
  • https://watchmaker.dev.java.net/

Watchmaker Tags


Watchmaker Description

An object-oriented framework 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. What's New in This Release: · Fix for thread leak in ConcurrentEvolutionEngine (ISSUE#16). Added a finalizer to shutdown the thread pool in FitnessEvaluationWorker so that the active threads do not inhibit garbage collection. · Made the FitnessEvaluationWorker in ConcurrentEvolutionEngine static so that it can be shared by all instances avoiding the unnecessary creation of new thread pools (ISSUE#16). · Made fitness evaluation threads daemons again (as in 0.6.0). Only standalone (i.e. Terracotta) FitnessEvaluationWorkers now use non-daemon threads. This fixes the problem of the JVM not exiting when the program is finished (ISSUE#17). · Better thread naming for fitness evaluation worker threads.


Watchmaker Related Software