Package org.moeaframework.core
Interface Variation
- All Superinterfaces:
Configurable
- All Known Subinterfaces:
Mutation
- All Known Implementing Classes:
AbstractCompoundVariation
,AdaptiveMetropolis
,AdaptiveMultimethodVariation
,Add
,BitFlip
,CompoundMutation
,CompoundVariation
,DifferentialEvolutionVariation
,GrammarCrossover
,GrammarMutation
,HUX
,Insertion
,MultiParentVariation
,OnePointCrossover
,PCX
,PM
,PMX
,PointMutation
,Remove
,Replace
,SBX
,SelfAdaptiveNormalVariation
,SPX
,SSX
,SubtreeCrossover
,Swap
,TwoPointCrossover
,TypeSafeCrossover
,TypeSafeMutation
,UM
,UNDX
,UniformCrossover
Interface for variation operators. Variation operators manipulate one or more existing solutions, called
parents, to produce one or more new solutions, called children or offspring.
A variation operator is type-safe if it checks variable types at runtime and operates only on those
variables it supports. Unsupported variables must be left unmodified. A type-safe variation operator must ensure
casts are valid and never throw a ClassCastException
. A type-safe variation class should indicate this fact
by stating "This variation operator is type-safe" in the class comments.
Mixed-type encodings are supported by using type-safe variation operators. Variation operators for each type in the encoding are applied sequentially, each operating on only those variables with the correct type.
-
Method Summary
Methods inherited from interface org.moeaframework.core.configuration.Configurable
applyConfiguration, getConfiguration
-
Method Details
-
getName
String getName()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
-
getArity
int getArity()Returns the number of solutions that must be supplied to theevolve
method.- Returns:
- the number of solutions that must be supplied to the
evolve
method
-
evolve
Evolves one or more parent solutions (specified bygetArity
) 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.- Parameters:
parents
- the array of parent solutions- Returns:
- an array of child solutions
- Throws:
IllegalArgumentException
- if an incorrect number of parents was supplied(parents.length != getArity())
-