ec.de
Class DEEvaluator

java.lang.Object
  extended by ec.Evaluator
      extended by ec.simple.SimpleEvaluator
          extended by ec.de.DEEvaluator
All Implemented Interfaces:
Setup, Singleton, java.io.Serializable

public class DEEvaluator
extends SimpleEvaluator

DEEvaluator is a simple subclass of SimpleEvaluator which first evaluates the population, then compares each population member against the parent which had created it in Differential Evolution. The parents are stored in DEBreeder.previousPopulation. If the parent is superior to the child, then the parent replaces the child in the population and the child is discarded. This does not happen in the first generation, as there are of course no parents yet.

This code could have been moved into the Breeder of course. But then the better of the parents and children would not appear in standard Statistics objects. So we've broken it out here.

The full description of Differential Evolution may be found in the book "Differential Evolution: A Practical Approach to Global Optimization" by Kenneth Price, Rainer Storn, and Jouni Lampinen.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class ec.Evaluator
P_IAMSLAVE, P_MASTERPROBLEM, p_problem, P_PROBLEM
 
Constructor Summary
DEEvaluator()
           
 
Method Summary
 void evaluatePopulation(EvolutionState state)
          A simple evaluator that doesn't do any coevolutionary evaluation.
 
Methods inherited from class ec.simple.SimpleEvaluator
evalPopChunk, runComplete, setup
 
Methods inherited from class ec.Evaluator
closeContacts, initializeContacts, reinitializeContacts
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DEEvaluator

public DEEvaluator()
Method Detail

evaluatePopulation

public void evaluatePopulation(EvolutionState state)
Description copied from class: SimpleEvaluator
A simple evaluator that doesn't do any coevolutionary evaluation. Basically it applies evaluation pipelines, one per thread, to various subchunks of a new population.

Overrides:
evaluatePopulation in class SimpleEvaluator