ec.multiobjective.nsga2
Class NSGA2Breeder

java.lang.Object
  extended by ec.Breeder
      extended by ec.simple.SimpleBreeder
          extended by ec.multiobjective.nsga2.NSGA2Breeder
All Implemented Interfaces:
Setup, Singleton, java.io.Serializable

public class NSGA2Breeder
extends SimpleBreeder

This SimpleBreeder subclass breeds a set of children from the Population, then joins the original Population with the children in a (mu+mu) fashion. An NSGA2Breeder may have multiple threads for breeding.

NSGA-II has fixed archive size (the population size), and so ignores the 'elites' declaration. However it will adhere to the 'reevaluate-elites' parameter in SimpleBreeder to determine whether to force fitness reevaluation.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class ec.simple.SimpleBreeder
elite, P_ELITE, P_REEVALUATE_ELITES, reevaluateElites
 
Constructor Summary
NSGA2Breeder()
           
 
Method Summary
 Population breedPopulation(EvolutionState state)
          Override breedPopulation().
 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 ec.simple.SimpleBreeder
breedPopChunk, computeSubpopulationLength, loadElites, unmarkElitesEvaluated
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NSGA2Breeder

public NSGA2Breeder()
Method Detail

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
Overrides:
setup in class SimpleBreeder

breedPopulation

public Population breedPopulation(EvolutionState state)
Override breedPopulation(). We take the result from the super method in SimpleBreeder and append it to the old population. Hence, after generation 0, every subsequent call to NSGA2Evaluator.evaluatePopulation() will be passed a population of 2xoriginalPopSize individuals.

Overrides:
breedPopulation in class SimpleBreeder