ec.steadystate
Class SteadyStateEvolutionState

java.lang.Object
  extended byec.EvolutionState
      extended byec.steadystate.SteadyStateEvolutionState
All Implemented Interfaces:
java.io.Serializable, Setup, Singleton

public class SteadyStateEvolutionState
extends EvolutionState

A SteadyStateEvolutionState is an EvolutionState which implements a simple form of steady-state evolution.

First, all the individuals in the population are created and evaluated. (A) Then 1 individual is selected by the breder for removal from the population. They are replaced by the result of breeding the other individuals in the population. Then just those newly-bred individuals are evaluted. Goto (A).

The individual selected for removal is done so by calling the deselector for that subpopulation. Deselectors are stored and defined in SteadyStateBreeder.

A generation is defined as the interval in which N indidivuals are evaluated, where N is set to the size of subpopulation 0. SteadyStateEvolutioState keeps track of both generations and number of evaluations performed so far.

Exchanges and checkpointing occur each generation.

Evolution stops in any of the following conditions:

Additional constraints:

If your statistics object adheres to SteadyStateStatisticsForm, it will receive additional statistics as specified in that form. If it does not adhere to this form, you should be aware that the evaluation and breeding statistics hooks are called oddly: they wrap the evaluation of the first individual of a generation and the subsequent breeding of the population immediately thereafter. Thus because it's steady-state and fine-grained, a lot of evaluations and breedings occur for which the statistics hooks are NOT called. Furthermore, exchanges only occur on the generation boundary, and are wrapped with statistics hooks there.

Parameters

breed
classname, inherits or = ec.steadystate.SteadyStateBreeder
(the class for breeder)
eval
classname, inherits or = ec.steadystate.SteadyStateEvaluator
(the class for evaluator)
evaluations
int >= 1 or undefined (the default)
Number of evaluations to perform. If this parameter is undefined, number of generations is used instead

See Also:
Serialized Form

Field Summary
 long evaluations
          How many evaluations have we run so far?
 boolean firstTimeAround
          Is this the first time the population is being evaluated, and so the *entire* population must be evaluated?
 boolean generationBoundary
          Did we just start a new generation?
 int generationSize
          how big is a generation? Set to the size of subpopulation 0 of the initial population.
 int[] newIndividuals
          The breeder puts the index of the newly-bred individuals in this array for the Evaluator to find them, one per subpopulation
 long numEvaluations
          How many evaluations should we run for? If set to UNDEFINED (0), we run for the number of generations instead.
static java.lang.String P_NUMEVALUATIONS
           
static java.lang.String P_STEADYSTATE
          base parameter for steady-state
static long UNDEFINED
           
 
Fields inherited from class ec.EvolutionState
breeder, breedthreads, C_STARTED_FRESH, C_STARTED_FROM_CHECKPOINT, checkpoint, checkpointModulo, checkpointPrefix, evalthreads, evaluator, exchanger, finisher, generation, initializer, job, numGenerations, output, P_BREEDER, P_CHECKPOINT, P_CHECKPOINTMODULO, P_CHECKPOINTPREFIX, P_EVALUATOR, P_EXCHANGER, P_FINISHER, P_GENERATIONS, P_INITIALIZER, P_QUITONRUNCOMPLETE, P_STATISTICS, parameters, population, quitOnRunComplete, R_FAILURE, R_NOTDONE, R_SUCCESS, random, runtimeArguments, statics, statistics
 
Constructor Summary
SteadyStateEvolutionState()
           
 
Method Summary
 int evolve()
          Performs the evolutionary run.
 void finish(int result)
           
 void setup(EvolutionState state, Parameter base)
          Unlike for other setup() methods, ignore the base; it will always be null.
 void startFresh()
           
 
Methods inherited from class ec.EvolutionState
resetFromCheckpoint, run, startFromCheckpoint
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

P_STEADYSTATE

public static final java.lang.String P_STEADYSTATE
base parameter for steady-state

See Also:
Constant Field Values

P_NUMEVALUATIONS

public static final java.lang.String P_NUMEVALUATIONS
See Also:
Constant Field Values

newIndividuals

public int[] newIndividuals
The breeder puts the index of the newly-bred individuals in this array for the Evaluator to find them, one per subpopulation


generationBoundary

public boolean generationBoundary
Did we just start a new generation?


firstTimeAround

public boolean firstTimeAround
Is this the first time the population is being evaluated, and so the *entire* population must be evaluated?


numEvaluations

public long numEvaluations
How many evaluations should we run for? If set to UNDEFINED (0), we run for the number of generations instead.


UNDEFINED

public static long UNDEFINED

generationSize

public int generationSize
how big is a generation? Set to the size of subpopulation 0 of the initial population.


evaluations

public long evaluations
How many evaluations have we run so far?

Constructor Detail

SteadyStateEvolutionState

public SteadyStateEvolutionState()
Method Detail

setup

public void setup(EvolutionState state,
                  Parameter base)
Description copied from class: EvolutionState
Unlike for other setup() methods, ignore the base; it will always be null.

Specified by:
setup in interface Setup
Overrides:
setup in class EvolutionState
See Also:
Prototype.setup(EvolutionState,Parameter)

startFresh

public void startFresh()
Overrides:
startFresh in class EvolutionState

evolve

public int evolve()
Performs the evolutionary run. Garbage collection and checkpointing are done only once every pseudogeneration evaluations. The only Statistics calls made are preInitializationStatistics(), postInitializationStatistics(), occasional postEvaluationStatistics (done once every pseudogeneration evaluations), and finalStatistics().

Overrides:
evolve in class EvolutionState

finish

public void finish(int result)
Overrides:
finish in class EvolutionState
Parameters:
result -