ec.evolve
Class RandomRestarts

java.lang.Object
  extended by ec.Statistics
      extended by ec.evolve.RandomRestarts
All Implemented Interfaces:
Setup, Singleton, java.io.Serializable

public class RandomRestarts
extends Statistics

A special Statistics class which performs random restarts on the population, effectively reininitializing the population and starting over again. RandomRestarts has two ways of determining when to perform a restart. If the restart type is "fixed", then the restart will occur precisely when the generation is a multiple of restart-upper-bound, minus one. (That's hardly random, of course). If the restart type is "random", then at the beginning of the run, and after every restart, a new restart is chosen randomly from one to restart-upper-bound.

This class is compatible with populations which load from files -- it temporarily disables the load-from-file feature when telling the population to populate itself again, forcing the population to do so by creating random individuals.

See Also:
Serialized Form

Field Summary
static java.lang.String P_RESTART_TYPE
          Two options available here: "fixed" and "random"; "fixed" will initate the restart timer at the value specified for restart-upper-bound, "random" will initiate the restart timer somewhere below the value specified for restart-upper-bound
static java.lang.String P_RESTART_UPPERBOUND
          This is the highest value at which the "ticking" restart clock can initiate at.
 
Fields inherited from class ec.Statistics
children, P_CHILD, P_NUMCHILDREN
 
Constructor Summary
RandomRestarts()
           
 
Method Summary
 void preEvaluationStatistics(EvolutionState state)
          Checks the clock; if it's time to restart, we repopulate the population.
 void setup(EvolutionState state, Parameter base)
          Gets the clock ticking.
 
Methods inherited from class ec.Statistics
finalStatistics, generationBoundaryStatistics, individualsBredStatistics, individualsEvaluatedStatistics, postBreedingStatistics, postCheckpointStatistics, postEvaluationStatistics, postInitialEvaluationStatistics, postInitializationStatistics, postPostBreedingExchangeStatistics, postPreBreedingExchangeStatistics, preBreedingStatistics, preCheckpointStatistics, preInitialEvaluationStatistics, preInitializationStatistics, prePostBreedingExchangeStatistics, prePreBreedingExchangeStatistics
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

P_RESTART_TYPE

public static final java.lang.String P_RESTART_TYPE
Two options available here: "fixed" and "random"; "fixed" will initate the restart timer at the value specified for restart-upper-bound, "random" will initiate the restart timer somewhere below the value specified for restart-upper-bound

See Also:
Constant Field Values

P_RESTART_UPPERBOUND

public static final java.lang.String P_RESTART_UPPERBOUND
This is the highest value at which the "ticking" restart clock can initiate at.

See Also:
Constant Field Values
Constructor Detail

RandomRestarts

public RandomRestarts()
Method Detail

setup

public void setup(EvolutionState state,
                  Parameter base)
Gets the clock ticking.

Specified by:
setup in interface Setup
Overrides:
setup in class Statistics

preEvaluationStatistics

public void preEvaluationStatistics(EvolutionState state)
Checks the clock; if it's time to restart, we repopulate the population. Afterwards, we reset the clock. If it's not time yet, the clock goes tick.

Overrides:
preEvaluationStatistics in class Statistics