MOEA Framework 2.12
API Specification

org.moeaframework.core.operator.real
Class PM

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

public class PM
extends Object
implements Variation

Polynomial mutation (PM) operator. PM attempts to simulate the offspring distribution of binary-encoded bit-flip mutation on real-valued decision variables. Similar to SBX, PM favors offspring nearer to the parent.

The distribution index controls the shape of the offspring distribution. Larger values for the distribution index generates offspring closer to the parents.

It is recommended each decision variable is mutated with a probability of 1 / L, where L is the number of decision variables. This results in one mutation per offspring on average.

This operator is type-safe.

References:

  1. Deb, K. and Goyal, M. "A combined genetic adaptive search (GeneAS) for engineering design." Computer Science and Informatics, 26(4):30-45, 1996.


Constructor Summary
PM(double probability, double distributionIndex)
          Constructs a polynomial mutation operator with the specified probability and distribution index.
 
Method Summary
static void evolve(RealVariable v, double distributionIndex)
          Mutates the specified variable using polynomial mutation.
 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 getDistributionIndex()
          Returns the distribution index controlling the shape of the polynomial mutation.
 double getProbability()
          Returns the probability this operator is applied to each decision variable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PM

public PM(double probability,
          double distributionIndex)
Constructs a polynomial mutation operator with the specified probability and distribution index.

Parameters:
probability - the probability this operator is applied to each decision variable
distributionIndex - the distribution index controlling the shape of the polynomial mutation.
Method Detail

getProbability

public double getProbability()
Returns the probability this operator is applied to each decision variable.

Returns:
the probability this operator is applied to each decision variable

getDistributionIndex

public double getDistributionIndex()
Returns the distribution index controlling the shape of the polynomial mutation.

Returns:
the distribution index controlling the shape of the polynomial mutation

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

evolve

public static void evolve(RealVariable v,
                          double distributionIndex)
Mutates the specified variable using polynomial mutation.

Parameters:
v - the variable to be mutated
distributionIndex - the distribution index controlling the shape of the polynomial mutation

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

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!