Package ec.de

# Class DEEvaluator

java.lang.Object
ec.Evaluator
ec.simple.SimpleEvaluator
ec.de.DEEvaluator

All Implemented Interfaces:
  `Setup`, `Singleton`, `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.simple.SimpleEvaluator

  `C_AUTO, cloneProblem, MERGE_BEST, MERGE_MEAN, MERGE_MEDIAN, mergeForm, numTests, P_CHUNK_SIZE, P_CLONE_PROBLEM, P_MERGE, P_NUM_TESTS, pool, V_AUTO, V_BEST, V_MEAN, V_MEDIAN`

  ### Fields inherited from class ec.Evaluator

  `masterproblem, P_IAMSLAVE, P_MASTERPROBLEM, p_problem, P_PROBLEM, runComplete`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DEEvaluator()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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, postEvaluationGlobalUpdate, postEvaluationLocalUpdate, reinitializeContacts, setRunComplete`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### DEEvaluator

    public DEEvaluator()

- ## Method Details

  - ### 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`