MOEA Framework 2.12
API Specification

org.moeaframework.core.operator.real
Class UNDX

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

public class UNDX
extends Object
implements Variation

Unimodal Normal Distribution Crossover (UNDX) operator. UNDX is a multiparent operator, allowing a user-defined number of parents and offspring. Offspring are centered around the centroid, forming a normal distribution whose shape is controlled by the positions of the parents, as depicted in the figure below.

Example UNDX operator distribution

References:

  1. Kita, H., Ono, I., and Kobayashi, S., "Multi-parental Extension of the Unimodal Normal Distribution Crossover for Real-coded Genetic Algorithms," Proceedings of the 1999 Congress on Evolutionary Computation, pp. 1581-1588, 1999.
  2. Deb, K., Anand, A., and Joshi, D., "A Computationally Efficient Evolutionary Algorithm for Real-Parameter Optimization," Evolutionary Computation, vol. 10, no. 4, pp. 371-395, 2002.


Constructor Summary
UNDX(int numberOfParents, int numberOfOffspring)
          Constructs a UNDX operator with the specified number of parents and offspring.
UNDX(int numberOfParents, int numberOfOffspring, double zeta, double eta)
          Constructs a UNDX operator with the specified number of parents and offspring.
 
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 remaining orthogonal directions not defined by the parents.
 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 orthogonal directions defined by the parents.
 Solution undx(Solution[] parents)
          Returns one randomly-generated offspring produced by this operator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UNDX

public UNDX(int numberOfParents,
            int numberOfOffspring)
Constructs a UNDX operator with the specified number of parents and offspring. The parameters zeta=0.5 and eta=0.35 are used as suggested by Kita et al. (1999).

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

UNDX

public UNDX(int numberOfParents,
            int numberOfOffspring,
            double zeta,
            double eta)
Constructs a UNDX operator with the specified number of parents and offspring. The parameters sigma_zeta=0.5 and sigma_eta=0.35 are used as suggested by Kita et al. (1999).

Parameters:
numberOfParents - the number of parents required by this operator
numberOfOffspring - the number of offspring produced by this operator
zeta - the standard deviation of the normal distribution controlling the spread of solutions in the orthogonal directions defined by the parents
eta - the standard deviation of the normal distribution controlling the spread of solutions in the remaining orthogonal directions not defined by the 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

getZeta

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

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

getEta

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

Returns:
the standard deviation of the normal distribution controlling the spread of solutions in the remaining orthogonal directions not defined by the 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

undx

public Solution undx(Solution[] parents)
Returns one randomly-generated offspring produced by this operator.

Parameters:
parents - the parent solutions
Returns:
one randomly-generated offspring produced by 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!