Documentation of 'ec.steadystate.SteadyStateEvolutionState' Java class
SteadyStateEvolutionState
ec.steadystate

Class SteadyStateEvolutionState

  • All Implemented Interfaces:
    Setup, Singleton, java.io.Serializable


    public class SteadyStateEvolutionState
    extends EvolutionState
    This subclass of EvolutionState implements basic Steady-State Evolution and (in distributed form) Asynchronous Evolution. The procedure is as follows. We begin with an empty Population and one by one create new Indivdiuals and send them off to be evaluated. 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 individuals return they are added to the Population until it is full. No duplicate individuals are allowed.

    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.

    SteadyStateEvolutionState will run either for some N "generations" or for some M evaluations of individuals. A "generation" is defined as a Population's worth of evaluations. If you do not specify the number of evaluations (the M), then SteadyStateEvolutionState will use the standard generations parameter defined in EvolutionState.

    Parameters

    evaluations
    int >= 1
    (maximal number of evaluations to run.)
    steady.replacement-probability
    0.0 <= double <= 1.0 (default is 1.0)
    (probability that an incoming individual will unilaterally replace the individual marked for death, as opposed to replacing it only if the incoming individual is superior in fitness)
    See Also:
    Serialized Form
    • Field Detail

      • P_REPLACEMENT_PROBABILITY

        public static final java.lang.String P_REPLACEMENT_PROBABILITY
        See Also:
        Constant Field Values
      • generationBoundary

        public boolean generationBoundary
        Did we just start a new generation?
      • 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?
      • replacementProbability

        public double replacementProbability
        When a new individual arrives, with what probability should it directly replace the existing "marked for death" individual, as opposed to only replacing it if it's superior?
    • Constructor Detail

      • SteadyStateEvolutionState

        public SteadyStateEvolutionState()

DMelt 3.0 © DataMelt by jWork.ORG

You see the box below because you did not login.