|
Watchmaker Framework for Evolutionary Computation API (Version 0.7.1) |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.uncommons.watchmaker.framework.AbstractEvolutionEngine<T>
T
- The type of entity evolved by the evolution engine.public abstract class AbstractEvolutionEngine<T>
Base class for EvolutionEngine
implementations.
CandidateFactory
,
FitnessEvaluator
Constructor Summary | |
---|---|
protected |
AbstractEvolutionEngine(CandidateFactory<T> candidateFactory,
FitnessEvaluator<? super T> fitnessEvaluator,
Random rng)
Creates a new evolution engine by specifying the various components required by an evolutionary algorithm. |
Method Summary | |
---|---|
void |
addEvolutionObserver(EvolutionObserver<? super T> observer)
Adds a listener to receive status updates on the evolution progress. |
protected List<EvaluatedCandidate<T>> |
evaluatePopulation(List<T> population)
Takes a population, assigns a fitness score to each member and returns the members with their scores attached, sorted in descending order of fitness (descending order of fitness score for natural scores, ascending order of scores for non-natural scores). |
T |
evolve(int populationSize,
int eliteCount,
Collection<T> seedCandidates,
TerminationCondition... conditions)
Execute the evolutionary algorithm until one of the termination conditions is met, then return the fittest candidate from the final generation. |
T |
evolve(int populationSize,
int eliteCount,
TerminationCondition... conditions)
Execute the evolutionary algorithm until one of the termination conditions is met, then return the fittest candidate from the final generation. |
List<EvaluatedCandidate<T>> |
evolvePopulation(int populationSize,
int eliteCount,
Collection<T> seedCandidates,
TerminationCondition... conditions)
Execute the evolutionary algorithm until one of the termination conditions is met, then return all of the candidates from the final generation. |
List<EvaluatedCandidate<T>> |
evolvePopulation(int populationSize,
int eliteCount,
TerminationCondition... conditions)
Execute the evolutionary algorithm until one of the termination conditions is met, then return all of the candidates from the final generation. |
List<TerminationCondition> |
getSatisfiedTerminationConditions()
Returns a list of all TerminationCondition s that are satisfied by the current
state of the evolution engine. |
protected abstract List<EvaluatedCandidate<T>> |
nextEvolutionStep(List<EvaluatedCandidate<T>> evaluatedPopulation,
int eliteCount,
Random rng)
This method performs a single step/iteration of the evolutionary process. |
void |
removeEvolutionObserver(EvolutionObserver<? super T> observer)
Removes an evolution progress listener. |
void |
setSingleThreaded(boolean singleThreaded)
By default, fitness evaluations are performed on separate threads (as many as there are available cores/processors). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected AbstractEvolutionEngine(CandidateFactory<T> candidateFactory, FitnessEvaluator<? super T> fitnessEvaluator, Random rng)
candidateFactory
- Factory used to create the initial population that is
iteratively evolved.fitnessEvaluator
- A function for assigning fitness scores to candidate
solutions.rng
- The source of randomness used by all stochastic processes (including
evolutionary operators and selection strategies).Method Detail |
---|
public T evolve(int populationSize, int eliteCount, TerminationCondition... conditions)
EvolutionEngine.evolvePopulation(int, int, TerminationCondition[])
method instead.
evolve
in interface EvolutionEngine<T>
populationSize
- The number of candidate solutions present in the population
at any point in time.eliteCount
- The number of candidates preserved via elitism. In elitism, a
sub-set of the population with the best fitness scores are preserved unchanged in
the subsequent generation. Candidate solutions that are preserved unchanged through
elitism remain eligible for selection for breeding the remainder of the next generation.
This value must be non-negative and less than the population size. A value of zero
means that no elitism will be applied.conditions
- One or more conditions that may cause the evolution to terminate.
EvolutionEngine.evolve(int, int, Collection, TerminationCondition[])
public T evolve(int populationSize, int eliteCount, Collection<T> seedCandidates, TerminationCondition... conditions)
EvolutionEngine.evolvePopulation(int, int, Collection, TerminationCondition[])
method instead.
evolve
in interface EvolutionEngine<T>
populationSize
- The number of candidate solutions present in the population
at any point in time.eliteCount
- The number of candidates preserved via elitism. In elitism, a
sub-set of the population with the best fitness scores are preserved unchanged in
the subsequent generation. Candidate solutions that are preserved unchanged through
elitism remain eligible for selection for breeding the remainder of the next generation.
This value must be non-negative and less than the population size. A value of zero
means that no elitism will be applied.seedCandidates
- A set of candidates to seed the population with. The size of
this collection must be no greater than the specified population size.conditions
- One or more conditions that may cause the evolution to terminate.
EvolutionEngine.evolve(int,int,TerminationCondition[])
public List<EvaluatedCandidate<T>> evolvePopulation(int populationSize, int eliteCount, TerminationCondition... conditions)
EvolutionEngine.evolve(int, int, TerminationCondition[])
method instead.
evolvePopulation
in interface EvolutionEngine<T>
populationSize
- The number of candidate solutions present in the population
at any point in time.eliteCount
- The number of candidates preserved via elitism. In elitism, a
sub-set of the population with the best fitness scores are preserved unchanged in
the subsequent generation. Candidate solutions that are preserved unchanged through
elitism remain eligible for selection for breeding the remainder of the next generation.
This value must be non-negative and less than the population size. A value of zero
means that no elitism will be applied.conditions
- One or more conditions that may cause the evolution to terminate.
EvolutionEngine.evolve(int, int, Collection, TerminationCondition[])
,
EvolutionEngine.evolvePopulation(int, int, Collection, TerminationCondition[])
public List<EvaluatedCandidate<T>> evolvePopulation(int populationSize, int eliteCount, Collection<T> seedCandidates, TerminationCondition... conditions)
EvolutionEngine.evolve(int, int, Collection, TerminationCondition[])
method instead.
evolvePopulation
in interface EvolutionEngine<T>
populationSize
- The number of candidate solutions present in the population
at any point in time.eliteCount
- The number of candidates preserved via elitism. In elitism, a
sub-set of the population with the best fitness scores are preserved unchanged in
the subsequent generation. Candidate solutions that are preserved unchanged through
elitism remain eligible for selection for breeding the remainder of the next generation.
This value must be non-negative and less than the population size. A value of zero
means that no elitism will be applied.seedCandidates
- A set of candidates to seed the population with. The size of
this collection must be no greater than the specified population size.conditions
- One or more conditions that may cause the evolution to terminate.
EvolutionEngine.evolve(int, int, Collection, TerminationCondition[])
,
EvolutionEngine.evolvePopulation(int, int, Collection, TerminationCondition[])
protected abstract List<EvaluatedCandidate<T>> nextEvolutionStep(List<EvaluatedCandidate<T>> evaluatedPopulation, int eliteCount, Random rng)
evaluatedPopulation
- The population at the beginning of the process.eliteCount
- The number of the fittest individuals that must be preserved.rng
- A source of randomness.
protected List<EvaluatedCandidate<T>> evaluatePopulation(List<T> population)
population
- The population to evaluate (each candidate is assigned
a fitness score).
public List<TerminationCondition> getSatisfiedTerminationConditions()
Returns a list of all TerminationCondition
s that are satisfied by the current
state of the evolution engine. Usually this list will contain only one item, but it
is possible that mutliple termination conditions will become satisfied at the same
time. In this case the condition objects in the list will be in the same order that
they were specified when passed to the engine.
If the evolution has not yet terminated (either because it is still in progress or because it hasn't even been started) then an IllegalStateException will be thrown.
If the evolution terminated because the request thread was interrupted before any termination conditions were satisfied then this method will return an empty list.
getSatisfiedTerminationConditions
in interface EvolutionEngine<T>
IllegalStateException
- If this method is invoked on an evolution engine before
evolution is started or while it is still in progress.public void addEvolutionObserver(EvolutionObserver<? super T> observer)
addEvolutionObserver
in interface EvolutionEngine<T>
observer
- An evolution observer call-back.removeEvolutionObserver(EvolutionObserver)
public void removeEvolutionObserver(EvolutionObserver<? super T> observer)
removeEvolutionObserver
in interface EvolutionEngine<T>
observer
- An evolution observer call-back.addEvolutionObserver(EvolutionObserver)
public void setSingleThreaded(boolean singleThreaded)
singleThreaded
- If true, fitness evaluations will be performed synchronously on the
request thread. If false, fitness evaluations will be performed by worker threads.
|
Watchmaker Framework for Evolutionary Computation API (Version 0.7.1) |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |