/* Copyright 2006 by Sean Luke Licensed under the Academic Free License version 3.0 See the file "LICENSE" for more information */ package ec.steadystate; import ec.*; /* * SteadyStateStatisticsForm.java * * Created: Fri Nov 9 20:45:26 EST 2001 * By: Sean Luke */ /** * This interface defines the hooks for SteadyStateEvolutionState objects * to update themselves on. Note that the the only methods in common * with the standard statistics are initialization and final. This is an * optional interface: SteadyStateEvolutionState will complain, but * will permit Statistics objects that don't adhere to it, though they will * only have their initialization and final statistics methods called! * *

See SteadyStateEvolutionState for how regular Statistics objects' * hook methods are called in steady state evolution. * * @author Sean Luke * @version 1.0 */ public interface SteadyStateStatisticsForm { /** Called when we created an empty initial Population. */ public void enteringInitialPopulationStatistics(SteadyStateEvolutionState state); /** Called when we have filled the initial population and are entering the steady state. */ public void enteringSteadyStateStatistics(int subpop, SteadyStateEvolutionState state); /** Called each time new individuals are bred during the steady-state process. */ public void individualsBredStatistics(SteadyStateEvolutionState state, Individual[] individuals); /** Called each time new individuals are evaluated during the steady-state process, NOT including the initial generation's individuals. */ public void individualsEvaluatedStatistics(SteadyStateEvolutionState state, Individual[] newIndividuals, Individual[] oldIndividuals, int[] subpopulations, int[] indices); /** Called when the generation count increments */ public void generationBoundaryStatistics(final EvolutionState state); /** Called immediately before checkpointing occurs. */ public void preCheckpointStatistics(final EvolutionState state); /** Called immediately after checkpointing occurs. */ public void postCheckpointStatistics(final EvolutionState state); /** Called immediately before the pre-breeding exchange occurs. */ public void prePreBreedingExchangeStatistics(final EvolutionState state); /** Called immediately after the pre-breeding exchange occurs. */ public void postPreBreedingExchangeStatistics(final EvolutionState state); /** Called immediately before the post-breeding exchange occurs. */ public void prePostBreedingExchangeStatistics(final EvolutionState state); /** Called immediately after the post-breeding exchange occurs. */ public void postPostBreedingExchangeStatistics(final EvolutionState state); /** Called immediately after the run has completed. result is either state.R_FAILURE, indicating that an ideal individual was not found, or state.R_SUCCESS, indicating that an ideal individual was found. */ public void finalStatistics(final EvolutionState state, final int result); }