public class SteadyStateBreeder extends SimpleBreeder
At this point the system switches to its "steady state": individuals are bred from the population one by one, and sent off to be evaluated. Once again, in basic Steady-State Evolution the individuals are immediately evaluated and we wait for them; but in Asynchronous Evolution the individuals are evaluated for however long it takes and we don't wait for them to finish. When an individual returns, we mark an individual in the Population for death, then replace it with the new returning individual. Note that during the steady-state, Asynchronous Evolution could be still sending back some "new" individuals created during the initialization phase, not "bred" individuals.
The determination of how an individual is marked for death is done by the SteadyStateBreeder. This is a SelectionMethod. Note that this SelectionMethod probably should not be selecting for the "fittest" individuals, but rather for either random individuals (the standard approach) or for "bad" individuals.
Parameters
| deselector classname, inherits and != ec.SelectionMethod |
(The SelectionMethod used to pick individuals for death) |
| Modifier and Type | Field and Description |
|---|---|
(package private) BreedingPipeline[] |
bp
If st.firstTimeAround, this acts exactly like SimpleBreeder.
|
(package private) SelectionMethod[] |
deselectors
Loaded during the first iteration of breedPopulation
|
static String |
P_DESELECTOR |
private static long |
serialVersionUID |
backupPopulation, clonePipelineAndPopulation, elite, eliteFrac, NOT_SET, P_CLONE_PIPELINE_AND_POPULATION, P_ELITE, P_ELITE_FRAC, P_REEVALUATE_ELITES, P_SEQUENTIAL_BREEDING, pool, reevaluateElites, sequentialBreeding| Constructor and Description |
|---|
SteadyStateBreeder()
Do we allow duplicates?
|
| Modifier and Type | Method and Description |
|---|---|
Individual |
breedIndividual(EvolutionState state,
int subpop,
int thread) |
void |
finishPipelines(EvolutionState state) |
void |
individualReplaced(SteadyStateEvolutionState state,
int subpopulation,
int thread,
int individual)
Called whenever individuals have been replaced by new
individuals in the population.
|
void |
prepareToBreed(EvolutionState state,
int thread) |
void |
setup(EvolutionState state,
Parameter base)
Sets up the object by reading it from the parameters stored
in state, built off of the parameter base base.
|
void |
sourcesAreProperForm(SteadyStateEvolutionState state,
BreedingPipeline[] breedingPipelines)
Called to check to see if the breeding sources are correct -- if you
use this method, you must call state.output.exitIfErrors() immediately
afterwards.
|
breedPopChunk, breedPopulation, computeSubpopulationLength, loadElites, numElites, shouldBreedSubpop, unmarkElitesEvaluated, usingElitismprivate static final long serialVersionUID
BreedingPipeline[] bp
public static final String P_DESELECTOR
SelectionMethod[] deselectors
public void setup(EvolutionState state, Parameter base)
Setupsetup in interface Setupsetup in class SimpleBreederpublic void sourcesAreProperForm(SteadyStateEvolutionState state, BreedingPipeline[] breedingPipelines)
public void individualReplaced(SteadyStateEvolutionState state, int subpopulation, int thread, int individual)
public void finishPipelines(EvolutionState state)
public void prepareToBreed(EvolutionState state, int thread)
public Individual breedIndividual(EvolutionState state, int subpop, int thread)
Copyright © 2014 Evolutionary Computation Laboratory at George Mason University. All rights reserved.