Evolutionary Computation in Java

A Practical Guide to the Watchmaker Framework

Daniel W. Dyer

Table of Contents

1. The Power of Evolution
What are Evolutionary Algorithms?
An Example
The Outline of an Evolutionary Algorithm
When are Evolutionary Algorithms Useful?
Implementing Evolutionary Algorithms
Choice of Programming Language
Evolution Frameworks
2. The Watchmaker Framework
The Evolution Engine
The Candidate Factory
Evolutionary Operators
The Evolution Pipeline
The Fitness Evaluator
Selection Strategy
Random Number Generator
Completing the Jigsaw
Termination Conditions
Evolution Observers
3. Selection Strategies & Elitism
Truncation Selection
Fitness-Proportionate Selection
Roulette Wheel Selection
Stochastic Universal Sampling
Rank Selection
Tournament Selection
Sigma Scaling
4. Island Models
Islands in the Watchmaker Framework
Advanced Usage
A. Optimising for Performance
Optimising the Fitness Evaluator
The Caching Fitness Evaluator
Minimising the Search Space
Random Number Generators
JVM Options
Server VM
Garbage Collection
Alternative JVMs