Package org.uncommons.watchmaker.framework
This package provides a framework for evolutionary computation. It defines generic
interfaces for evolutionary operators, fitness functions and selection strategies.
It also provides an all-purpose
EvolutionEngine
.-
Interface Summary Interface Description CandidateFactory<T> Creates new populations of candidates.EvolutionaryOperator<T> An evolutionary operator is a function that takes a population of candidates as an argument and returns a new population that is the result of applying a transformation to the original population.EvolutionEngine<T> Operations for classes that provide an evolution implementation.EvolutionObserver<T> Call-back interface so that programs can monitor the state of a long-running evolutionary algorithm.FitnessEvaluator<T> Calculates the fitness score of a given candidate of the appropriate type.SelectionStrategy<T> Strategy interface for "natural" selection.TerminationCondition Interface for implementing conditions used to terminate evolutionary algorithms. -
Class Summary Class Description AbstractEvolutionEngine<T> Base class forEvolutionEngine
implementations.CachingFitnessEvaluator<T> A wrapper that provides caching forFitnessEvaluator
implementations.EvaluatedCandidate<T> Immutable wrapper class for associating a candidate solution with its fitness score.EvolutionStrategyEngine<T> General purpose engine for implementing Evolution Strategies.EvolutionUtils Utility methods used by different evolution implementations.FitnessEvaluationWorker This is the class that actually runs the fitness evaluation tasks created by aEvolutionEngine
.GenerationalEvolutionEngine<T> This class implements a general-purpose generational evolutionary algorithm.PopulationData<T> Immutable data object containing statistics about the state of an evolved population and a reference to the fittest candidate solution in the population.SteadyStateEvolutionEngine<T> An implementation of steady-state evolution, which is a type of evolutionary algorithm where a population is changed incrementally, with one individual evolved at a time.