WatchmakerAn object-oriented framework | |
Download |
Watchmaker Ranking & Summary
Advertisement
- 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