MOEA Framework 2.12
API Specification

org.moeaframework.core.operator.real
Class SPX

java.lang.Object
  extended by org.moeaframework.core.operator.real.SPX
All Implemented Interfaces:
Variation

public class SPX
extends Object
implements Variation

Simplex crossover (SPX) operator. SPX is a multiparent operator, allowing a user-defined number of parents and offspring. The parents form a convex hull, called a simplex. Offspring are generated uniformly at random from within the simplex. The expansion rate parameter can be used to expand the size of the simplex beyond the bounds of the parents. For example, the figure below shows three parent points and the offspring distribution, clearly filling an expanded triangular simplex.

Example SPX operator distribution

References:

  1. Tsutsui, S., Yamamura, M., and Higuchi, T., "Multi-parent Recombination with Simplex Crossover in Real Coded Genetic Algorithms," Proceedings of the Genetic and Evolutionary Computation Conference, vol. 1, pp. 657-664, 1999.
  2. Higuchi, T., Tsutsui, S., and Yamamura, M., "Theoretical Analysis of Simplex Crossover for Real-Coded Genetic Algorithms," Parallel Problem Solving from Nature PPSN VI, pp. 365-374, 2000.


Constructor Summary
SPX(int numberOfParents, int numberOfOffspring)
          Constructs a SPX operator with the specified number of parents and number of offspring.
SPX(int numberOfParents, int numberOfOffspring, double epsilon)
          Constructs a simplex operator with the specified number of parents, number of offspring, and expansion rate.
 
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 getEpsilon()
          Returns the expansion rate of this operator.
 int getNumberOfOffspring()
          Returns the number of offspring produced by this operator.
 int getNumberOfParents()
          Returns the number of parents required by this operator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SPX

public SPX(int numberOfParents,
           int numberOfOffspring)
Constructs a SPX operator with the specified number of parents and number of offspring. The expansion rate is set to sqrt(numberOfParents+1) to preserve the covariance matrix of the population.

Parameters:
numberOfParents - the number of parents
numberOfOffspring - the number of offspring

SPX

public SPX(int numberOfParents,
           int numberOfOffspring,
           double epsilon)
Constructs a simplex operator with the specified number of parents, number of offspring, and expansion rate.

Parameters:
numberOfParents - the number of parents
numberOfOffspring - the number of offspring
epsilon - the expansion rate
Method Detail

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

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

getNumberOfParents

public int getNumberOfParents()
Returns the number of parents required by this operator.

Returns:
the number of parents required by this operator

getNumberOfOffspring

public int getNumberOfOffspring()
Returns the number of offspring produced by this operator.

Returns:
the number of offspring produced by this operator

getEpsilon

public double getEpsilon()
Returns the expansion rate of this operator.

Returns:
the expansion rate of this operator

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!