MOEA Framework 2.12
API Specification

org.moeaframework.core.operator.real
Class PCX

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

public class PCX
extends Object
implements Variation

Parent-centric crossover (PCX) operator. PCX is a multiparent operator, allowing a user-defined number of parents and offspring. Offspring are clustered around the parents, as depicted in the figure below.

Example PCX operator distribution

References:

  1. Deb, K., Anand, A., and Joshi, D., "A Computationally Efficient Evolutionary Algorithm for Real-Parameter Optimization," Evolutionary Computation, 10(4):371-395, 2002.


Constructor Summary
PCX(int numberOfParents, int numberOfOffspring)
          Constructs a PCX operator with the specified number of parents and offspring.
PCX(int numberOfParents, int numberOfOffspring, double eta, double zeta)
          Constructs a PCX operator with the specified number of parents and offspring, and the specified values for sigma_eta and sigma_zeta.
 
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 getEta()
          Returns the standard deviation of the normal distribution controlling the spread of solutions in the direction of the selected parent.
 int getNumberOfOffspring()
          Returns the number of offspring produced by this operator.
 int getNumberOfParents()
          Returns the number of parents required by this operator.
 double getZeta()
          Returns the standard deviation of the normal distribution controlling the spread of solutions in the directions defined by the remaining parents.
protected  Solution pcx(Solution[] parents)
          Returns one randomly-generated offspring produced by this operator using parents[parents.length-1] as the selected parent.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PCX

public PCX(int numberOfParents,
           int numberOfOffspring)
Constructs a PCX operator with the specified number of parents and offspring. The eta and zeta parameters are set to 0.1, as suggested by Deb et al. (2002).

Parameters:
numberOfParents - the number of parents required by this operator
numberOfOffspring - the number of offspring produced by this operator

PCX

public PCX(int numberOfParents,
           int numberOfOffspring,
           double eta,
           double zeta)
Constructs a PCX operator with the specified number of parents and offspring, and the specified values for sigma_eta and sigma_zeta.

Parameters:
numberOfParents - the number of parents required by this operator
numberOfOffspring - the number of offspring produced by this operator
eta - the standard deviation of the normal distribution controlling the spread of solutions in the direction of the selected parent
zeta - the standard deviation of the normal distribution controlling the spread of solutions in the directions defined by the remaining parents
Method Detail

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

getEta

public double getEta()
Returns the standard deviation of the normal distribution controlling the spread of solutions in the direction of the selected parent.

Returns:
the standard deviation of the normal distribution controlling the spread of solutions in the direction of the selected parent

getZeta

public double getZeta()
Returns the standard deviation of the normal distribution controlling the spread of solutions in the directions defined by the remaining parents.

Returns:
the standard deviation of the normal distribution controlling the spread of solutions in the directions defined by the remaining parents

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

pcx

protected Solution pcx(Solution[] parents)
Returns one randomly-generated offspring produced by this operator using parents[parents.length-1] as the selected parent. Multiple invocations of this method with the same argument will produce offspring distributed about the selected parent.

Parameters:
parents - the parent solutions
Returns:
one randomly-generated offspring produced by this operator using parents[parents.length-1] as the selected parent

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!