ec
Class Breeder
java.lang.Object
|
+--ec.Breeder
- Direct Known Subclasses:
- MuCommaLambdaBreeder, SimpleBreeder
- public abstract class Breeder
- extends java.lang.Object
- implements Singleton
A Breeder is a singleton object which is responsible for the breeding
process during the course of an evolutionary run. Only one Breeder
is created in a run, and is stored in the EvolutionState object.
Breeders typically do their work by applying a Species' BreedingPipelines
on subpopulations of that species to produce new individuals for those
subpopulations.
Breeders may be multithreaded. The number of threads they may spawn
(excepting a parent "gathering" thread) is governed by the EvolutionState's
breedthreads value.
Be careful about spawning threads -- this system has no few synchronized
methods for efficiency's sake, so you must either divvy up breeding in a
thread-safe fashion and assume that all individuals
in the current population are read-only (which you may assume for a generational
breeder which needs to return a whole new population each generation), or
otherwise you must obtain the appropriate locks on individuals in the population
and other objects as necessary.
- See Also:
- Serialized Form
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Breeder
public Breeder()
breedPopulation
public abstract Population breedPopulation(EvolutionState state)
throws java.lang.CloneNotSupportedException
- Breeds state.population, returning a new population. In general,
state.population should not be modified.