MOEA Framework 2.12
API Specification

org.moeaframework.core.operator.real
Class DifferentialEvolutionVariation

java.lang.Object
  extended by org.moeaframework.core.operator.real.DifferentialEvolutionVariation
All Implemented Interfaces:
Variation
Direct Known Subclasses:
DifferentialEvolution

public class DifferentialEvolutionVariation
extends Object
implements Variation

Differential evolution (DE) variation operator. Differential evolution works by randomly selecting three distinct individuals from a population. A difference vector is calculated between the first two individuals (shown as the left-most arrow in the figure below), which is subsequently applied to the third individual (shown as the right-most arrow in the figure below).

Example DifferentialEvolution operator distribution

The scaling factor parameter adjusts the magnitude of the difference vector, allowing the user to decrease or increase the magnitude in relation to the actual difference between the individuals. The crossover rate parameter controls the fraction of decision variables which are modified by the DE operator.

References:

  1. Storn and Price. "Differential Evolution - A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces." Journal of Global Optimization, 11:341-359, 1997.


Constructor Summary
DifferentialEvolutionVariation(double CR, double F)
          Constructs a differential evolution operator with the specified crossover rate and scaling factor.
 
Method Summary
 Solution[] evolve(Solution[] parents)
          Evolves one or more parent solutions (specified by getArity) and produces one or more child solutions.
 int getArity()
          Returns the number of solutions that must be supplied to the evolve method.
 double getCrossoverRate()
          Returns the crossover rate of this differential evolution operator.
 double getScalingFactor()
          Returns the scaling factor of this differential evolution operator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DifferentialEvolutionVariation

public DifferentialEvolutionVariation(double CR,
                                      double F)
Constructs a differential evolution operator with the specified crossover rate and scaling factor.

Parameters:
CR - the crossover rate
F - the scaling factor
Method Detail

getCrossoverRate

public double getCrossoverRate()
Returns the crossover rate of this differential evolution operator.

Returns:
the crossover rate

getScalingFactor

public double getScalingFactor()
Returns the scaling factor of this differential evolution operator.

Returns:
the scaling factor

getArity

public int getArity()
Description copied from interface: Variation
Returns the number of solutions that must be supplied to the evolve method.

Specified by:
getArity in interface Variation
Returns:
the number of solutions that must be supplied to the evolve method

evolve

public Solution[] evolve(Solution[] parents)
Description copied from interface: Variation
Evolves one or more parent solutions (specified by getArity) and produces one or more child solutions. By contract, the parents must not be modified. The copy constructor should be used to create copies of the parents with these copies subsequently modified.

Specified by:
evolve in interface Variation
Parameters:
parents - the array of parent solutions
Returns:
an array of child solutions

MOEA Framework 2.12
API Specification

Copyright 2009-2016 MOEA Framework. All rights reserved.
Licensed under the GNU Lesser General Public License.
Return to the MOEA Framework homepage. Visit us on Github!