Class PM
java.lang.Object
org.moeaframework.core.operator.TypeSafeMutation<RealVariable>
org.moeaframework.core.operator.real.PM
- All Implemented Interfaces:
Configurable
,Mutation
,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:
- 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
-
Method Summary
Modifier and TypeMethodDescriptiondouble
Returns the distribution index controlling the shape of the polynomial mutation.getName()
Returns the name of this variation operator.void
Mutates the specified variable using polynomial mutation.void
setDistributionIndex
(double distributionIndex) Sets the distribution index controlling the shape of the polynomial mutation.Methods inherited from class org.moeaframework.core.operator.TypeSafeMutation
getProbability, mutate, setProbability
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.moeaframework.core.configuration.Configurable
applyConfiguration, getConfiguration
-
Constructor Details
-
PM
public PM()Constructs a polynomial mutation operator with the default settings. This includes a mutation probability of0.1
and a distribution index of20.0
. -
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 variabledistributionIndex
- the distribution index controlling the shape of the polynomial mutation.
-
-
Method Details
-
getName
Description copied from interface:Variation
Returns the name of this variation operator. This name should also be used as the prefix for any parameters. As such, the name should only contain alphanumeric characters, avoid using whitespace and other symbols.- Returns:
- the name of this variation operator
-
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
-
setDistributionIndex
public void setDistributionIndex(double distributionIndex) Sets the distribution index controlling the shape of the polynomial mutation.- Parameters:
distributionIndex
- the distribution index controlling the shape of the polynomial mutation
-
mutate
Mutates the specified variable using polynomial mutation.- Specified by:
mutate
in classTypeSafeMutation<RealVariable>
- Parameters:
v
- the variable to be mutated
-