ec
Class Evaluator

java.lang.Object
  |
  +--ec.Evaluator
All Implemented Interfaces:
java.io.Serializable, Setup, Singleton
Direct Known Subclasses:
CompetitiveEvaluator, SimpleEvaluator, SPEA2Evaluator

public abstract class Evaluator
extends java.lang.Object
implements Singleton

An Evaluator is a singleton object which is responsible for the evaluation process during the course of an evolutionary run. Only one Evaluator is created in a run, and is stored in the EvolutionState object.

Evaluators typically do their work by applying an instance of some subclass of Problem to individuals in the population. Evaluators come with a Problem prototype which they may clone as necessary to create new Problem spaces to evaluate individuals in (Problems may be reused to prevent constant cloning).

Evaluators may be multithreaded, with one Problem instance per thread usually. The number of threads they may spawn (excepting a parent "gathering" thread) is governed by the EvolutionState's evalthreads value.

Be careful about spawning threads -- this system has no few synchronized methods for efficiency's sake, so you must either divvy up evaluation in a thread-safe fashion, or otherwise you must obtain the appropriate locks on individuals in the population and other objects as necessary.

Parameters
base.problem
classname, inherits and != ec.Problem
(the class for the Problem prototype p_problem)

See Also:
Serialized Form

Field Summary
 Problem p_problem
           
static java.lang.String P_PROBLEM
           
 
Constructor Summary
Evaluator()
           
 
Method Summary
abstract  void evaluatePopulation(EvolutionState state)
          Evaluates the fitness of an entire population.
abstract  boolean runComplete(EvolutionState state)
          Returns true if an ideal individual has been found or some other run result has shortcircuited the run so that it should end prematurely right now.
 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

P_PROBLEM

public static final java.lang.String P_PROBLEM

p_problem

public Problem p_problem
Constructor Detail

Evaluator

public Evaluator()
Method Detail

evaluatePopulation

public abstract void evaluatePopulation(EvolutionState state)
Evaluates the fitness of an entire population. You will have to determine how to handle multiple threads on your own, as this is a very domain-specific thing.

runComplete

public abstract boolean runComplete(EvolutionState state)
Returns true if an ideal individual has been found or some other run result has shortcircuited the run so that it should end prematurely right now.

setup

public void setup(EvolutionState state,
                  Parameter base)
Description copied from interface: Setup
Sets up the object by reading it from the parameters stored in state, built off of the parameter base base. If an ancestor implements this method, be sure to call super.setup(state,base); before you do anything else.
Specified by:
setup in interface Setup